diff --git a/openapi.json b/openapi.json index 6a096e4..fe738a6 100644 --- a/openapi.json +++ b/openapi.json @@ -8,7 +8,7 @@ }, "termsOfService": "https://www.instana.com/terms-of-use/", "title": "Introduction to Instana public APIs", - "version": "1.275.949", + "version": "1.276.1145", "x-logo": { "altText": "instana logo", "backgroundColor": "#FAFBFC", @@ -171,7 +171,7 @@ }, { "name": "Synthetic Settings", - "description": "The API endpoints of this group can be used to manage Synthetic Locations, Synthetic Tests and Synthetic Credentials. \n\n## Synthetic Location Properties:\n- **id** Unique identifier of the location resource.\n- **label** Friendly name of the location.\n- **description** The description of the location.\n- **locationType** Indicates if the location is managed or private.\n- **playbackCapability** The playback capabilities provided by this location resource.\n The playbackCapability object has the following properties: \n - **syntheticType** Different types of synthetic tests that can be executed at this location. \n Possible values are HTTPAction, HTTPScript, BrowserScript, WebpageAction, WebpageScript, and SSLCertificate. \n The values are corresponding to the syntheticType parameter available in the createSyntheticTest endpoint.\n - **browserType** Different types of supported Web browsers when creating synthetic tests for BrowserScript, WebpageAction and WebpageScript.\n Right now, only Chrome and Firefox are supported. \n- **geoPoint** An object includes the longitude, latitude, country name, and city name properties of a location. \n- **popVersion** PoP's version\n- **customProperties** An object with name/value pairs to provide additional information of the Synthetic location.\n- **createdAt** The location created time, following RFC3339 standard.\n- **modifiedAt** The location modified time, following RFC3339 standard.\n- **observedAt** The timestamp when PoP requests a Synthetic test, following RFC3339 standard.\n\n## Synthetic Test Properties:\n- **id** Unique identifier of the Synthetic test resource.\n- **label** Friendly name of the Synthetic test resource.\n- **description** The description of the Synthetic test.\n- **active** Indicates if the Synthetic test is started or not. The default is true.\n- **applicationId** Unique identifier of the Application Perspective.\n- **configuration** An object which has two properties: syntheticType and the corresponding configuration object:\n - **syntheticType** The type of the Synthetic test. Supported values are HTTPAction, HTTScript, BrowserScript, WebpageAction,\n WebpageScript, and SSLCertificate. The locations assigned to execute this Synthetic\n test must support this syntheticType, i.e. the location's playbackCapabilities property.\n - **markSyntheticCall** Flag used to control if HTTP calls will be marked as synthetic calls/endpoints in Instana backend, so they can be ignored when calculating service and application KPIs, users can also check \"Hide Synthetic Calls\" checkbox to hide/show them in UI.\n - **retries** An integer type from 0 to 2, 0 by default.\n It indicates how many attempts (max 2) will be allowed\n to get a successful connection (not necessarily a successful result).\n For API Simple, failures like socket hangups, gateway timeouts, and DNS lookup fails cause retires, but 404's 400's, do not.\n API Script and Browser Script test will retry if script failed for any reason.\n - **retryInterval** The time interval between retries in seconds. The default is 1s, max is 10s.\n - **timeout** The timeout to be used by the PoP playback engines running the test. Values are in integers followed by a time unit (ms, s, m). \n It is the minimum value of test configuration `timeout`, `testFrequency` and `maxTimeout` configured in PoP deployment.\n - If user defined timeout value exceeds the `maxTimeout` or `testFrequency` in test configuration, the timeout value does not take effect \n and PoP playback engines use the smaller one of `maxTimeout` and `testFrequency` as the actual timeout value.\n - If timeout value in test configuration is not provided, the default value is **1m** for HTTPAction and HTTPScript tests. \n BrowserScript, WebpageAction, and WebpageScript tests use the smaller one of `maxTimeout` and `testFrequency` as the actual timeout value.\n - **XXXConfiguration** The configuration corresponding to the syntheticType. Configuration types are HTTPActionConfiguration, HTTPScriptConfiguration,\n BrowserScriptConfiguration, WebpageActionConfiguration, WebpageScriptConfiguration, and SSLCertificateConfiguration. \n - **HTTPActionConfiguration** has the following properties:\n - **url** The URL is being tested. It is required.\n - **syntheticType** Its value is HTTPAction. It is required.\n - **operation** An operation being used must be one of GET, HEAD, OPTIONS, PATCH, POST, PUT, and DELETE. By default, it is GET.\n - **headers** An object with header/value pairs\n - **header** The header to be sent in operation. It should not contain the terminating ':' character.\n - **value** The value of the header.\n - **body** The body content to send with the operation.\n - **validationString** An expression to be evaluated.\n - **followRedirect** A boolean type, true by default; to allow redirect.\n - **allowInsecure** A boolean type, true by default; if set to true then allow insecure certificates\n (expired, self-signed, etc).\n - **expectStatus** An integer type, by default, the Synthetic passes for any 2XX status code.\n This forces just one status code to cause a pass, including what would normally be a fail, for example, a 404.\n - **expectJson** An optional object to be used to check against the test response object.\n - **expectMatch** An optional regular expression string to be used to check the test response.\n - **expectExists** An optional list of property labels used to check if they are present in the test response object.\n - **expectNotEmpty** An optional list of property labels used to check if they are present in the test response object with a non-empty value.\n - **HTTPScriptConfiguration** has the following properties:\n - **script** The Javascript content, it is plain text, not base64 encoded. **script** and **scripts** are mutually exclusive.\n - **scripts** Multi script package. **script** and **scripts** are mutually exclusive.\n - **scriptFile** The name of the file to run\n - **bundle** All required js files bundled up into a single zip file with base64 encoded\n - **syntheticType** Its value is HTTPScript. It is required.\n - The API Script Guide, including examples, can be found at: https://www.ibm.com/docs/en/instana-observability/current?topic=monitoring-using-api-scripts\n - **BrowserScriptConfiguration** has the following properties:\n - **script** A Node.js based test script, it is plain text, not base64 encoded. **script** and **scripts** are mutually exclusive.\n - **scripts** Multi script package. **script** and **scripts** are mutually exclusive.\n - **scriptFile** The name of the file to run\n - **bundle** All required js files bundled up into a single zip file with base64 encoded\n - **scriptType** The type of the script, right now, only Basic type is supported. \n - **browser** The type of the browser: chrome or firefox, chrome by default.\n - **recordVideo** A boolean type, false by default.\n - **syntheticType** Its value is BrowserScript. It is required.\n - **WebpageActionConfiguration** has the following properties:\n - **url** The URL of the Web page being tested. It is required.\n - **browser** The type of the browser: chrome or firefox, chrome by default.\n - **recordVideo** A boolean type, false by default.\n - **syntheticType** Its value is WebpageAction. It is required.\n - **WebpageScriptConfiguration** has the following properties:\n - **script** A Selenium IDE recording script. It is required.\n - **browser** The type of the browser: chrome or firefox, chrome by default.\n - **recordVideo** A boolean type, false by default.\n - **syntheticType** Its value is WebpageScript. It is required.\n - **SSLCertificateConfiguration** has the following properties:\n - **hostname** The hostname of the SSL enabled website.\n - **port** The SSL port, set to 443 by default.\n - **daysRemainingCheck** The number of days to use on the validation check. The test will fail when the certificate validity has less than this number of days remaining until expiration.\n- **createdAt** The test created time, following RFC3339 standard.\n- **createdBy** The user identifier who created the test resource.\n- **customProperties** An object with name/value pairs to provide additional information of the Synthetic test.\n- **locations** It is an array of the PoP location IDs where the Synthetic tests are located.\n- **modifiedAt** The test last updated time, following RFC3339 standard.\n- **modifiedBy** The user identifier who updated the test resource.\n- **playbackMode** Defines how the Synthetic test should be executed across multiple\n PoPs. This property is optional, and its default value is Simultaneous, and only Simultaneous is supported, i.e.,\n Synthetic tests run at all locations simultaneously. \n- **testFrequency** How often the playback for a Synthetic test is scheduled. The unit of the testFrequency parameter is minute.\n The default is every 15 minutes. The range is from 1 minute to 120 minutes. \n For SSLCertificate tests, the default is every 24 hours and the range is from 60 minute to 1440 minutes.\n\n## Synthetic Credentials:\n\nSynthetic credentials can be used to store passwords and/or secrets used by the Synthetic Tests.\n\nAll Script Tests can use credentials in their body and API Simple Tests can use them on header parameters.\n\nIt is required that the credentials used in the test be created before the test is created or modified.\n\nTests using credentials are validated during test creation and update whether you use the API or UI, as follows:\n\n1. The user Id of the logged in user or API Token being used to create or modify the test must have permission to use credentials. \n Requests to create or update a test referencing credentials without the correct permission will fail with return code `Forbidden`.\n\n2. The credentials or secrets used in the test must exist. \n Requests to create or update a test referencing credentials that do not exist will fail with return code `Bad Request`." + "description": "The API endpoints of this group can be used to manage Synthetic Locations, Synthetic Tests and Synthetic Credentials. \n\n## Synthetic Location Properties:\n- **id** Unique identifier of the location resource.\n- **label** Friendly name of the location.\n- **description** The description of the location.\n- **locationType** Indicates if the location is managed or private.\n- **playbackCapability** The playback capabilities provided by this location resource.\n The playbackCapability object has the following properties: \n - **syntheticType** Different types of synthetic tests that can be executed at this location. \n Possible values are HTTPAction, HTTPScript, BrowserScript, WebpageAction, WebpageScript, and SSLCertificate. \n The values are corresponding to the syntheticType parameter available in the createSyntheticTest endpoint.\n - **browserType** Different types of supported Web browsers when creating synthetic tests for BrowserScript, WebpageAction and WebpageScript.\n Right now, only Chrome and Firefox are supported. \n- **geoPoint** An object includes the longitude, latitude, country name, and city name properties of a location. \n- **popVersion** PoP's version\n- **customProperties** An object with name/value pairs to provide additional information of the Synthetic location.\n- **createdAt** The location created time, following RFC3339 standard.\n- **modifiedAt** The location modified time, following RFC3339 standard.\n- **observedAt** The timestamp when PoP requests a Synthetic test, following RFC3339 standard.\n\n## Synthetic Test Properties:\n- **id** Unique identifier of the Synthetic test resource.\n- **label** Friendly name of the Synthetic test resource.\n- **description** The description of the Synthetic test.\n- **active** Indicates if the Synthetic test is started or not. The default is true.\n- **applicationId** Unique identifier of the Application Perspective.\n- **configuration** An object which has two properties: syntheticType and the corresponding configuration object:\n - **syntheticType** The type of the Synthetic test. Supported values are HTTPAction, HTTScript, BrowserScript, WebpageAction,\n WebpageScript, and SSLCertificate. The locations assigned to execute this Synthetic\n test must support this syntheticType, i.e. the location's playbackCapabilities property.\n - **markSyntheticCall** Flag used to control if HTTP calls will be marked as synthetic calls/endpoints in Instana backend, so they can be ignored when calculating service and application KPIs, users can also check \"Hide Synthetic Calls\" checkbox to hide/show them in UI.\n - **retries** An integer type from 0 to 2, 0 by default.\n It indicates how many attempts (max 2) will be allowed\n to get a successful connection (not necessarily a successful result).\n For API Simple, failures like socket hangups, gateway timeouts, and DNS lookup fails cause retires, but 404's 400's, do not.\n API Script and Browser Script test will retry if script failed for any reason.\n - **retryInterval** The time interval between retries in seconds. The default is 1s, max is 10s.\n - **timeout** The timeout to be used by the PoP playback engines running the test. Values are in integers followed by a time unit (ms, s, m). \n It is the minimum value of test configuration `timeout`, `testFrequency` and `maxTimeout` configured in PoP deployment.\n - If user defined timeout value exceeds the `maxTimeout` or `testFrequency` in test configuration, the timeout value does not take effect \n and PoP playback engines use the smaller one of `maxTimeout` and `testFrequency` as the actual timeout value.\n - If timeout value in test configuration is not provided, the default value is **1m** for HTTPAction and HTTPScript tests. \n BrowserScript, WebpageAction, and WebpageScript tests use the smaller one of `maxTimeout` and `testFrequency` as the actual timeout value.\n - **XXXConfiguration** The configuration corresponding to the syntheticType. Configuration types are HTTPActionConfiguration, HTTPScriptConfiguration,\n BrowserScriptConfiguration, WebpageActionConfiguration, WebpageScriptConfiguration, and SSLCertificateConfiguration. \n - **HTTPActionConfiguration** has the following properties:\n - **url** The URL is being tested. It is required.\n - **syntheticType** Its value is HTTPAction. It is required.\n - **operation** An operation being used must be one of GET, HEAD, OPTIONS, PATCH, POST, PUT, and DELETE. By default, it is GET.\n - **headers** An object with header/value pairs\n - **header** The header to be sent in operation. It should not contain the terminating ':' character.\n - **value** The value of the header.\n - **body** The body content to send with the operation.\n - **validationString** An expression to be evaluated.\n - **followRedirect** A boolean type, true by default; to allow redirect.\n - **allowInsecure** A boolean type, true by default; if set to true then allow insecure certificates\n (expired, self-signed, etc).\n - **expectStatus** An integer type, by default, the Synthetic passes for any 2XX status code.\n This forces just one status code to cause a pass, including what would normally be a fail, for example, a 404.\n - **expectJson** An optional object to be used to check against the test response object.\n - **expectMatch** An optional regular expression string to be used to check the test response.\n - **expectExists** An optional list of property labels used to check if they are present in the test response object.\n - **expectNotEmpty** An optional list of property labels used to check if they are present in the test response object with a non-empty value.\n - **HTTPScriptConfiguration** has the following properties:\n - **script** The Javascript content, it is plain text, not base64 encoded. **script** and **scripts** are mutually exclusive.\n - **scripts** Multi script package. **script** and **scripts** are mutually exclusive.\n - **scriptFile** The name of the file to run\n - **bundle** All required js files bundled up into a single zip file with base64 encoded\n - **syntheticType** Its value is HTTPScript. It is required.\n - The API Script Guide, including examples, can be found at: https://www.ibm.com/docs/en/instana-observability/current?topic=monitoring-using-api-scripts\n - **BrowserScriptConfiguration** has the following properties:\n - **script** A Node.js based test script, it is plain text, not base64 encoded. **script** and **scripts** are mutually exclusive.\n - **scripts** Multi script package. **script** and **scripts** are mutually exclusive.\n - **scriptFile** The name of the file to run\n - **bundle** All required js files bundled up into a single zip file with base64 encoded\n - **scriptType** The type of the script, right now, only Basic type is supported. \n - **browser** The type of the browser: chrome or firefox, chrome by default.\n - **recordVideo** A boolean type, false by default.\n - **syntheticType** Its value is BrowserScript. It is required.\n - **WebpageActionConfiguration** has the following properties:\n - **url** The URL of the Web page being tested. It is required.\n - **browser** The type of the browser: chrome or firefox, chrome by default.\n - **recordVideo** A boolean type, false by default.\n - **syntheticType** Its value is WebpageAction. It is required.\n - **WebpageScriptConfiguration** has the following properties:\n - **script** A Selenium IDE recording script. It is required.\n - **browser** The type of the browser: chrome or firefox, chrome by default.\n - **recordVideo** A boolean type, false by default.\n - **syntheticType** Its value is WebpageScript. It is required.\n - **SSLCertificateConfiguration** has the following properties:\n - **hostname** The hostname of the SSL enabled website.\n - **port** The SSL port, set to 443 by default.\n - **daysRemainingCheck** The number of days to use on the validation check. The test will fail when the certificate validity has less than this number of days remaining until expiration.\n- **createdAt** The test created time, following RFC3339 standard.\n- **createdBy** The user identifier who created the test resource.\n- **customProperties** An object with name/value pairs to provide additional information of the Synthetic test.\n- **locations** It is an array of the PoP location IDs where the Synthetic tests are located.\n- **applications** (Technology Preview) It is an array of the unique identifiers of the Application Perspectives associated to this test.\n- **modifiedAt** The test last updated time, following RFC3339 standard.\n- **modifiedBy** The user identifier who updated the test resource.\n- **playbackMode** Defines how the Synthetic test should be executed across multiple\n PoPs. This property is optional, and its default value is Simultaneous, and only Simultaneous is supported, i.e.,\n Synthetic tests run at all locations simultaneously. \n- **testFrequency** How often the playback for a Synthetic test is scheduled. The unit of the testFrequency parameter is minute.\n The default is every 15 minutes. The range is from 1 minute to 120 minutes. \n For SSLCertificate tests, the default is every 24 hours and the range is from 60 minute to 1440 minutes.\n\n## Synthetic Credentials:\n\nSynthetic credentials can be used to store passwords and/or secrets used by the Synthetic Tests.\n\nAll Script Tests can use credentials in their body and API Simple Tests can use them on header parameters.\n\nIt is required that the credentials used in the test be created before the test is created or modified.\n\n(Technology Preview) Credentials can be associated to multiple Application Perspective.\n\nTests using credentials are validated during test creation and update whether you use the API or UI, as follows:\n\n1. The user Id of the logged in user or API Token being used to create or modify the test must have permission to use credentials. \n Requests to create or update a test referencing credentials without the correct permission will fail with return code `Forbidden`.\n\n2. The credentials or secrets used in the test must exist. \n Requests to create or update a test referencing credentials that do not exist will fail with return code `Bad Request`.\n\n3. (Technology Preview) Credentials associated to Application Perspectives can only be used by tests that are associated to at least one common Application Perspective.\n Requests to create or update a test referencing credentials without matching Application Perspectives will fail with return code `Bad Request`." }, { "name": "Synthetic Test Playback Results", @@ -5326,7 +5326,7 @@ "application/json": { "example": [ { - "id": "0", + "id": "gBwNFIbjS6Ozwt0a12regg", "label": "biz-perspective5", "description": "This is an example business perspective", "tagFilterExpression": { @@ -5451,7 +5451,7 @@ "content": { "application/json": { "example": { - "id": 0, + "id": "gBwNFIbjS6Ozwt0a12regg", "label": "biz-perspective1", "description": "This is an example business perspective", "tagFilterExpression": { @@ -5565,7 +5565,7 @@ "content": { "application/json": { "example": { - "id": "0", + "id": "gBwNFIbjS6Ozwt0a12regg", "label": "biz-perspective5", "description": "This is an example business perspective", "tagFilterExpression": { @@ -5644,9 +5644,8 @@ "content": { "application/json": { "example": { - "id": "0", + "id": "gBwNFIbjS6Ozwt0a12regg", "label": "biz-perspective1", - "description": "This is an example business perspective", "tagFilterExpression": { "type": "EXPRESSION", "logicalOperator": "AND", @@ -5700,8 +5699,9 @@ "content": { "application/json": { "example": { - "id": "0", + "id": "gBwNFIbjS6Ozwt0a12regg", "label": "biz-perspective1", + "description": "This is an example business perspective", "tagFilterExpression": { "type": "EXPRESSION", "logicalOperator": "AND", @@ -5775,17 +5775,6 @@ "format": "int64" } }, - { - "in": "query", - "name": "dataSource", - "schema": { - "type": "string", - "enum": [ - "CALLS", - "TRACES" - ] - } - }, { "in": "query", "name": "useCase", @@ -7088,11 +7077,25 @@ "required": true }, "responses": { - "default": { + "200": { "content": { - "application/json": {} + "application/json": { + "schema": { + "$ref": "#/components/schemas/AbstractIntegration" + } + } }, - "description": "default response" + "description": "Persisted an alert channel setting" + }, + "400": { + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + }, + "description": "failed persisting an alert channel setting" } }, "security": [ @@ -7102,7 +7105,7 @@ ] } ], - "summary": "Update alerting channel", + "summary": "Update alert channel", "tags": [ "Event Settings" ] @@ -9220,6 +9223,8 @@ "operationId": "findActiveServiceLevelsAlertConfigs", "parameters": [ { + "description": "Service Levels Objective(SLO) Configuration ID", + "example": "SLOEANnWh9tQOa2h88kGxK6wQ", "in": "query", "name": "sloId", "schema": { @@ -9227,6 +9232,8 @@ } }, { + "description": "List of Service Levels Alert Configuration IDs", + "example": "ln3IGogYS-S7CPqcOQYTNA", "in": "query", "name": "alertIds", "schema": { @@ -9244,30 +9251,42 @@ "200": { "content": { "application/json": { - "example": [ - { - "name": "Service level status below 70%", - "rule": "SLO_STATUS", - "severity": 10, - "threshold": { - "type": "staticThreshold", - "value": 0.7, - "operator": "<=", - "lastUpdated": 0 - }, - "triggering": false, - "description": "Calls are slower or equal to 33 ms based on latency (90th).", - "sloIds": [ - "qweqwqeqw", - "qqq" - ], - "timeThreshold": { - "timeWindow": 600000 - }, - "alertChannelIds": [], - "customPayloadFields": [] - } - ], + "example": { + "name": "Error Budget Remaining is low", + "description": "Error Budget Remaining is less than or equal to 5%.", + "severity": 5, + "triggering": true, + "rule": { + "alertType": "ERROR_BUDGET", + "metric": "BURNED_PERCENTAGE" + }, + "threshold": { + "type": "staticThreshold", + "operator": ">=", + "value": 0.05, + "lastUpdated": 1716454787342 + }, + "sloIds": [ + "SLOEANnWh9tQOa2h88kGxK6wQ" + ], + "alertChannelIds": [], + "timeThreshold": { + "expiry": null, + "timeWindow": 600000 + }, + "customPayloadFields": [ + { + "type": "staticString", + "key": "foo", + "value": "bar" + } + ], + "id": "ln3IGogYS-S7CPqcOQYTNA", + "created": 1717668384754, + "initialCreated": 1717668384754, + "readOnly": false, + "enabled": true + }, "schema": { "type": "array", "items": { @@ -9296,22 +9315,109 @@ "requestBody": { "content": { "application/json": { + "example": { + "alertChannelIds": [], + "customPayloadFields": [ + { + "key": "foo", + "id": "avvh9tbxpfRE65t", + "type": "staticString", + "value": "bar" + } + ], + "description": "Error Budget Remaining is less than or equal to 5%.", + "name": "Error Budget Remaining is low", + "rule": { + "alertType": "ERROR_BUDGET", + "metric": "BURNED_PERCENTAGE" + }, + "severity": 5, + "sloIds": [ + "SLOEANnWh9tQOa2h88kGxK6wQ" + ], + "threshold": { + "type": "staticThreshold", + "value": 0.05, + "operator": ">=", + "lastUpdated": 1716454787342 + }, + "timeThreshold": { + "timeWindow": 600000 + }, + "triggering": true + }, "schema": { "$ref": "#/components/schemas/ServiceLevelsAlertConfig" } } }, + "description": "Create Request Body", "required": true }, "responses": { - "default": { + "200": { "content": { "application/json": { + "example": { + "name": "Error Budget Remaining is low", + "description": "Error Budget Remaining is less than or equal to 5%.", + "severity": 5, + "triggering": true, + "rule": { + "alertType": "ERROR_BUDGET", + "metric": "BURNED_PERCENTAGE" + }, + "threshold": { + "type": "staticThreshold", + "operator": ">=", + "value": 0.05, + "lastUpdated": 1716454787342 + }, + "sloIds": [ + "SLOEANnWh9tQOa2h88kGxK6wQ" + ], + "alertChannelIds": [], + "timeThreshold": { + "expiry": null, + "timeWindow": 600000 + }, + "customPayloadFields": [ + { + "type": "staticString", + "key": "foo", + "value": "bar" + } + ], + "id": "ln3IGogYS-S7CPqcOQYTNA", + "created": 1717668384754, + "initialCreated": 1717668384754, + "readOnly": false, + "enabled": true + }, "schema": { "$ref": "#/components/schemas/ServiceLevelseAlertConfigWithMetadata" } } - } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "example": { + "errors": [ + "Website SLOs do not support triggering -> true" + ] + }, + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceLevelseAlertConfigWithMetadata" + } + } + } + }, + "description": "Service levels Alert Config with Website SLOs do not support triggering" } }, "security": [ @@ -9332,6 +9438,8 @@ "operationId": "deleteServiceLevelsAlertConfig", "parameters": [ { + "description": "Service Levels Alert Configuration ID", + "example": "ln3IGogYS-S7CPqcOQYTNA", "in": "path", "name": "id", "required": true, @@ -9365,6 +9473,8 @@ "operationId": "findServiceLevelsAlertConfig", "parameters": [ { + "description": "Service Levels Alert Configuration ID", + "example": "ln3IGogYS-S7CPqcOQYTNA", "in": "path", "name": "id", "required": true, @@ -9373,6 +9483,8 @@ } }, { + "description": "Service Levels Alert Version Creation Date", + "example": 1706617456952, "in": "query", "name": "validOn", "schema": { @@ -9386,26 +9498,40 @@ "content": { "application/json": { "example": { - "name": "Service level status below 70%", - "rule": "SLO_STATUS", - "severity": 10, + "name": "Error Budget Remaining is low", + "description": "Error Budget Remaining is less than or equal to 5%.", + "severity": 5, + "triggering": true, + "rule": { + "alertType": "ERROR_BUDGET", + "metric": "BURNED_PERCENTAGE" + }, "threshold": { "type": "staticThreshold", - "value": 0.7, - "operator": "<=", - "lastUpdated": 0 + "operator": ">=", + "value": 0.05, + "lastUpdated": 1716454787342 }, - "triggering": false, - "description": "Calls are slower or equal to 33 ms based on latency (90th).", "sloIds": [ - "qweqwqeqw", - "qqq" + "SLOEANnWh9tQOa2h88kGxK6wQ" ], + "alertChannelIds": [], "timeThreshold": { + "expiry": null, "timeWindow": 600000 }, - "alertChannelIds": [], - "customPayloadFields": [] + "customPayloadFields": [ + { + "type": "staticString", + "key": "foo", + "value": "bar" + } + ], + "id": "ln3IGogYS-S7CPqcOQYTNA", + "created": 1717668384754, + "initialCreated": 1717668384754, + "readOnly": false, + "enabled": true }, "schema": { "$ref": "#/components/schemas/ServiceLevelseAlertConfigWithMetadata" @@ -9413,6 +9539,21 @@ } }, "description": "OK" + }, + "404": { + "content": { + "application/json": { + "example": { + "errors": [ + "Config with id: -DZZjflTQTmZ7yGvBilPlQ is not found" + ] + }, + "schema": { + "$ref": "#/components/schemas/ServiceLevelseAlertConfigWithMetadata" + } + } + }, + "description": "Service levels Alert Config with given ID not found" } }, "security": [ @@ -9431,6 +9572,8 @@ "operationId": "updateServiceLevelsAlertConfig", "parameters": [ { + "description": "Service Levels Alert Configuration ID", + "example": "ln3IGogYS-S7CPqcOQYTNA", "in": "path", "name": "id", "required": true, @@ -9442,26 +9585,112 @@ "requestBody": { "content": { "application/json": { + "example": { + "alertChannelIds": [], + "customPayloadFields": [ + { + "key": "foo", + "id": "avvh9tbxpfRE65t", + "type": "staticString", + "value": "bar" + } + ], + "description": "Error Budget Remaining is less than or equal to 5%.", + "name": "Error Budget Remaining is low", + "rule": { + "alertType": "ERROR_BUDGET", + "metric": "BURNED_PERCENTAGE" + }, + "severity": 5, + "sloIds": [ + "SLOEANnWh9tQOa2h88kGxK6wQ" + ], + "threshold": { + "type": "staticThreshold", + "value": 0.05, + "operator": ">=", + "lastUpdated": 1716454787342 + }, + "timeThreshold": { + "timeWindow": 600000 + }, + "triggering": true + }, "schema": { "$ref": "#/components/schemas/ServiceLevelsAlertConfig" } } }, + "description": "Update Request Body", "required": true }, "responses": { "200": { "content": { "application/json": { + "example": { + "name": "Error Budget Remaining is low", + "description": "Error Budget Remaining is less than or equal to 5%.", + "severity": 5, + "triggering": true, + "rule": { + "alertType": "ERROR_BUDGET", + "metric": "BURNED_PERCENTAGE" + }, + "threshold": { + "type": "staticThreshold", + "operator": ">=", + "value": 0.05, + "lastUpdated": 1716454787342 + }, + "sloIds": [ + "SLOEANnWh9tQOa2h88kGxK6wQ" + ], + "alertChannelIds": [], + "timeThreshold": { + "expiry": null, + "timeWindow": 600000 + }, + "customPayloadFields": [ + { + "type": "staticString", + "key": "foo", + "value": "bar" + } + ], + "id": "ln3IGogYS-S7CPqcOQYTNA", + "created": 1717668384754, + "initialCreated": 1717668384754, + "readOnly": false, + "enabled": true + }, "schema": { "$ref": "#/components/schemas/ServiceLevelseAlertConfigWithMetadata" } } }, - "description": "Synthetic Smart Alert successfully updated" + "description": "Service levels Smart Alert successfully updated" }, "204": { - "description": "Synthetic Smart Alert did not change" + "description": "Service levels Smart Alert did not change" + }, + "400": { + "content": { + "application/json": { + "example": { + "errors": [ + "Website SLOs do not support triggering -> true" + ] + }, + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceLevelseAlertConfigWithMetadata" + } + } + } + }, + "description": "Service levels Alert Config with Website SLOs do not support triggering" } }, "security": [ @@ -9482,6 +9711,8 @@ "operationId": "disableServiceLevelsAlertConfig", "parameters": [ { + "description": "Service Levels Alert Configuration ID", + "example": "ln3IGogYS-S7CPqcOQYTNA", "in": "path", "name": "id", "required": true, @@ -9526,6 +9757,8 @@ "operationId": "enableServiceLevelsAlertConfig", "parameters": [ { + "description": "Service Levels Alert Configuration ID", + "example": "ln3IGogYS-S7CPqcOQYTNA", "in": "path", "name": "id", "required": true, @@ -9570,6 +9803,8 @@ "operationId": "restoreServiceLevelsAlertConfig", "parameters": [ { + "description": "Service Levels Alert Configuration ID", + "example": "ln3IGogYS-S7CPqcOQYTNA", "in": "path", "name": "id", "required": true, @@ -9578,6 +9813,8 @@ } }, { + "description": "Service Levels Alert Version Creation Date", + "example": 1706617456952, "in": "path", "name": "created", "required": true, @@ -9624,6 +9861,8 @@ "operationId": "findServiceLevelsAlertConfigVersions", "parameters": [ { + "description": "Service Levels Alert Configuration ID", + "example": "ln3IGogYS-S7CPqcOQYTNA", "in": "path", "name": "id", "required": true, @@ -9636,28 +9875,36 @@ "200": { "content": { "application/json": { - "example": { - "name": "Service level status below 70%", - "rule": "SLO_STATUS", - "severity": 10, - "threshold": { - "type": "staticThreshold", - "value": 0.7, - "operator": "<=", - "lastUpdated": 0 - }, - "triggering": false, - "description": "Calls are slower or equal to 33 ms based on latency (90th).", - "sloIds": [ - "qweqwqeqw", - "qqq" - ], - "timeThreshold": { - "timeWindow": 600000 + "example": [ + { + "id": "ln3IGogYS-S7CPqcOQYTNA", + "created": 1717507017767, + "enabled": false, + "deleted": false, + "changeSummary": { + "changeType": "DISABLE", + "author": { + "id": "SCzqyU_LTtmO9CCnvvVOAg", + "type": "API", + "fullName": "userToken" + } + } }, - "alertChannelIds": [], - "customPayloadFields": [] - }, + { + "id": "ln3IGogYS-S7CPqcOQYTNA", + "created": 1717506979607, + "enabled": true, + "deleted": false, + "changeSummary": { + "changeType": "CREATE", + "author": { + "id": "SCzqyU_LTtmO9CCnvvVOAg", + "type": "API", + "fullName": "userToken" + } + } + } + ], "schema": { "type": "array", "items": { @@ -9667,6 +9914,21 @@ } }, "description": "OK" + }, + "404": { + "content": { + "application/json": { + "example": { + "errors": [ + "Config with id: -DZZjflTQTmZ7yGvBilPlQ is not found" + ] + }, + "schema": { + "$ref": "#/components/schemas/ServiceLevelseAlertConfigWithMetadata" + } + } + }, + "description": "Service levels Alert Config with given ID not found" } }, "security": [ @@ -13395,70 +13657,6 @@ ] } }, - "/api/infrastructure-monitoring/topology/filtered-topology": { - "post": { - "operationId": "getApplicationInfrastructure", - "requestBody": { - "content": { - "application/json": { - "examples": { - "This example retrieves the topology information for an Application Id.": { - "description": "This example retrieves the topology information for an Application Id.", - "value": { - "appId": "AB3DeFGHIJkLm9OpQrstUVwxY_z", - "extendedTraversal": [ - { - "terminus": "kubernetesService", - "related": [ - "kubernetesPod", - "kubernetesPersistentVolume", - "kubernetesPersistentVolumeClaim" - ] - }, - { - "terminus": "host", - "related": [ - "vsphereVM", - "vsphereHost", - "vsphereDatacenter" - ] - } - ] - } - } - }, - "schema": { - "$ref": "#/components/schemas/GetApplicationTopologyQuery" - } - } - } - }, - "responses": { - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Topology" - } - } - }, - "description": "snapshots matching appId as well as snapshots related snapshots to terminus snapshots" - } - }, - "security": [ - { - "ApiKeyAuth": [ - "Default" - ] - } - ], - "summary": "Get Application Infrastructure", - "tags": [ - "Infrastructure Resources" - ], - "description": "These APIs can be used to retrieve information about hosts, processes, JVMs and other entities that we are calling snapshots. A snapshot represents static information about an entity as it was at a specific point in time. To clarify:\r\n**Static information** is any information which is seldom changing, e.g. process IDs, host FQDNs or a list of host hard disks. The counterpart to static information are metrics which have a much higher change rate, e.g. host CPU usage or JVM garbage collection activity. Snapshots only contain static information.\r\n- Snapshots are **versioned** and represent an entity's state for a specific point in time. While snapshots only contain static information, even that information may change. For example you may add another hard disk to a server. For such a change, a new snapshot would be created.\r\n- The **size** parameter can be used in order to limit the maximum number of retrieved snapshots.\r\n- The **offline** parameter is used to allow deeper visibility into snapshots. Set to `false`, the query will return all snapshots that are still available on the given **to** timestamp. However, set to `true`, the query will return all snapshots that have been active within the time window, this must at least include the online result and snapshots terminated within this time.\r\n" - } - }, "/api/instana/health": { "get": { "operationId": "getHealthState", @@ -16859,84 +17057,6 @@ "description": "See [creating group mapping](#operation/createGroupMapping)" } }, - "/api/settings/rca/incident/feedback": { - "get": { - "operationId": "getRCAIncidentFeedbackById", - "responses": { - "default": { - "content": { - "application/json": {} - }, - "description": "default response" - } - }, - "security": [ - { - "ApiKeyAuth": [ - "Default" - ] - } - ], - "summary": "Get feedback of an RCA Incident's probable root cause entity whether good or bad. ", - "tags": [ - "Events" - ] - } - }, - "/api/settings/rca/incident/feedback/{id}": { - "post": { - "operationId": "postRCAIncidentFeedbackById", - "parameters": [ - { - "example": "exampleRcaIncidentId", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "required": true - }, - "responses": { - "default": { - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RCAFeedback" - } - } - } - } - } - }, - "security": [ - { - "ApiKeyAuth": [ - "Default" - ] - } - ], - "summary": "Post feedback of an RCA Incident's probable root cause entity whether good or bad. ", - "tags": [ - "Events" - ] - } - }, "/api/settings/session": { "delete": { "operationId": "deleteSessionSettings", @@ -19991,6 +20111,145 @@ ] } }, + "/api/synthetics/metrics": { + "post": { + "operationId": "getMetricsResult", + "requestBody": { + "content": { + "application/json": { + "example": { + "pagination": { + "page": 1, + "pageSize": 3 + }, + "metrics": [ + { + "metric": "synthetic.metricsResponseTime", + "aggregation": "SUM" + } + ], + "timeFrame": { + "to": 0, + "windowSize": 144000000 + }, + "groups": [ + { + "groupbyTag": "synthetic.applicationId" + }, + { + "groupbyTag": "synthetic.tags", + "groupbyTagSecondLevelTag": "region" + } + ] + }, + "schema": { + "$ref": "#/components/schemas/GetMetricsResult" + } + } + } + }, + "responses": { + "default": { + "content": { + "application/json": { + "example": { + "metricsResult": [ + { + "tests": [ + { + "testId": "6GwdCuiMjGdMrtz8THjo", + "testName": "rumattach-BasicNavTest", + "locationId": [ + "f7cEoG61DJfVyWcDnWsc" + ], + "applicationId": "application1", + "serviceId": "serviceId1" + } + ], + "metrics": [ + { + "synthetic.metricsResponseTime": 1276 + } + ], + "customMetrics": [ + { + "region": "region1" + } + ] + }, + { + "tests": [ + { + "testId": "OCnmrLSlNgzntI68094j", + "testName": "test-javascript-bundled", + "locationId": [ + "wHICfVoIpiHbwawo5xQ6" + ], + "applicationId": "application2", + "serviceId": "serviceId2" + } + ], + "metrics": [ + { + "synthetic.metricsResponseTime": 14 + } + ], + "customMetrics": [ + { + "location": "location1", + "region": "region2" + } + ] + }, + { + "tests": [ + { + "testId": "9i6gpys6whaYtN5k9VeD", + "testName": "My_Test_ReadFile", + "locationId": [ + "DemoPoP1_saas_instana_test" + ], + "applicationId": "application3", + "serviceId": "serviceid3" + } + ], + "metrics": [ + { + "synthetic.metricsResponseTime": 7 + } + ], + "customMetrics": [ + { + "location": "location3", + "region": "region3" + } + ] + } + ], + "page": 1, + "pageSize": 3, + "totalHits": 2212 + }, + "schema": { + "$ref": "#/components/schemas/MetricsResult" + } + } + } + } + }, + "security": [ + { + "ApiKeyAuth": [ + "Default" + ] + } + ], + "summary": "Get Synthetic metrics", + "tags": [ + "Synthetic Metrics" + ] + } + }, "/api/synthetics/results": { "post": { "operationId": "getSyntheticResult", @@ -20864,7 +21123,7 @@ "credentialValue": "123456" }, "schema": { - "$ref": "#/components/schemas/SyntheticCredentials" + "$ref": "#/components/schemas/SyntheticCredential" } } }, @@ -20891,6 +21150,149 @@ ] } }, + "/api/synthetics/settings/credentials/associations": { + "get": { + "operationId": "getSyntheticCredentialAssociations", + "responses": { + "default": { + "content": { + "application/json": { + "example": [ + { + "credentialName": "password1", + "createdAt": 1717617206785, + "modifiedAt": 1717617206785 + }, + { + "credentialName": "password2", + "applications": [ + "f4KX5zd8RW2pERKKFUCZgQ" + ], + "applicationLabels": [ + "All Services" + ], + "createdAt": 1717620972843, + "modifiedAt": 1717620972843 + } + ], + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SyntheticCredential" + } + } + } + } + } + }, + "security": [ + { + "ApiKeyAuth": [ + "canUseSyntheticCredentials", + "canConfigureSyntheticTests" + ] + } + ], + "summary": "(Technical Preview) All Synthetic Credential Names and Associations", + "tags": [ + "Synthetic Settings" + ] + } + }, + "/api/synthetics/settings/credentials/associations/{name}": { + "get": { + "operationId": "getOneSyntheticCredentialAssociations", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "content": { + "application/json": { + "example": { + "credentialName": "password4", + "applications": [ + "f4KX5zd8RW2pERKKFUCZgQ" + ], + "applicationLabels": [ + "All Services" + ], + "createdAt": 1717620972843, + "modifiedAt": 1717620972843 + }, + "schema": { + "$ref": "#/components/schemas/SyntheticCredential" + } + } + } + } + }, + "security": [ + { + "ApiKeyAuth": [ + "canUseSyntheticCredentials", + "canConfigureSyntheticTests" + ] + } + ], + "summary": "(Technical Preview) A Synthetic Credential with Name and Associations", + "tags": [ + "Synthetic Settings" + ] + }, + "patch": { + "operationId": "patchSyntheticCredentialAssociations", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "example": " {\n \"applications\": [\n \"f4KX5zd8RW2pERKKFUCZgQ\"\n ],\n }\n", + "schema": { + "$ref": "#/components/schemas/SyntheticCredential" + } + } + }, + "required": true + }, + "responses": { + "default": { + "content": { + "application/json": {} + }, + "description": "default response" + } + }, + "security": [ + { + "ApiKeyAuth": [ + "canUseSyntheticCredentials", + "canConfigureSyntheticTests" + ] + } + ], + "summary": "(Technical Preview) Patch the associations of a Synthetic Credential", + "tags": [ + "Synthetic Settings" + ], + "description": "This API updates the endpoint associations of a Synthetic Credential.\n\n- Credential values cannot be patched.\n- Credentials can be associated to multiple application ids.\n- Patching a credential association will replace the entire array with the full set of values provided.\n\n## Sample script and payload: \n- A sample script to patch a DB2 Admin password and associate it to application ids 'Ss2FBjSTQVef5LsqhPiYkg' and 'KJ8MdZVqK4odMUoBaClH'.\n\n```\ncurl -k -v -X PATCH \\\nhttps:///api/synthetics/settings/credentials/associations/db2AdminPwd \\\n-H 'authorization: apiToken ' \\\n-H 'content-type: application/json' \\\n-d '{\n \"applications\" : [ \"Ss2FBjSTQVef5LsqhPiYkg\", \"KJ8MdZVqK4odMUoBaClH\" ]\n }'\n```" + } + }, "/api/synthetics/settings/credentials/{name}": { "delete": { "operationId": "deleteSyntheticCredential", @@ -21531,7 +21933,7 @@ "tags": [ "Synthetic Settings" ], - "description": "This API endpoint updates selected attributes of a Synthetic Test.\n\n- All attributes listed as in the schema, including the required ones, are optional for this call.\n- Synthetic Test configuration properties set to null will be removed from the configuration.\n- For major updates to the Synthetic Test or to remove main attributes, see \"Update a Synthetic test\"\n\n## Sample script and payload: \n- A sample script to patch a simple HTTP Script Test to enable it and to switch from multi-scripts to single script.\n\n```\ncurl -k -v -X PATCH \\\nhttps:///api/synthetics/settings/tests/Ilfs9bW97KkTxuyGtxBF \\\n-H 'authorization: apiToken ' \\\n-H 'content-type: application/json' \\\n-d '{\n \"active\" : true,\n \"configuration\" : { \n \"scripts\" : null,\n \"script\" : \"//script goes here\"\n }\n }'\n```" + "description": "This API endpoint updates selected attributes of a Synthetic Test.\n\n- All attributes listed as in the schema, including the required ones, are optional for this call.\n- Synthetic Test configuration properties set to null will be removed from the configuration.\n- Patching an array attribute will replace the entire array with the full set of values provided.\n- For major updates to the Synthetic Test or to remove main attributes, see \"Update a Synthetic test\"\n\n## Sample script and payload: \n- A sample script to patch a simple HTTP Script Test to enable it and to switch from multi-scripts to single script.\n\n```\ncurl -k -v -X PATCH \\\nhttps:///api/synthetics/settings/tests/Ilfs9bW97KkTxuyGtxBF \\\n-H 'authorization: apiToken ' \\\n-H 'content-type: application/json' \\\n-d '{\n \"active\" : true,\n \"configuration\" : { \n \"scripts\" : null,\n \"script\" : \"//script goes here\"\n }\n }'\n```" }, "put": { "operationId": "updateSyntheticTest", @@ -22933,6 +23335,7 @@ "PAGER_DUTY": "#/components/schemas/PagerdutyIntegration", "PROMETHEUS_WEBHOOK": "#/components/schemas/PrometheusWebhookIntegration", "SALESFORCE": "#/components/schemas/SalesforceIntegration", + "SERVICE_NOW_APPLICATION": "#/components/schemas/ServiceNowEnhancedIntegration", "SERVICE_NOW_WEBHOOK": "#/components/schemas/ServiceNowIntegration", "SLACK": "#/components/schemas/SlackIntegration", "SPLUNK": "#/components/schemas/SplunkIntegration", @@ -24487,46 +24890,6 @@ } ] }, - "ApplicationExtendedTraversal": { - "type": "object", - "description": "extended Traversal", - "properties": { - "related": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "host", - "vsphereDatacenter", - "vsphereHost", - "vsphereVM", - "kubernetesService", - "kubernetesPod", - "kubernetesPersistentVolume", - "kubernetesPersistentVolumeClaim" - ] - } - }, - "terminus": { - "type": "string", - "description": "Plugin ID of terminus", - "enum": [ - "host", - "vsphereDatacenter", - "vsphereHost", - "vsphereVM", - "kubernetesService", - "kubernetesPod", - "kubernetesPersistentVolume", - "kubernetesPersistentVolumeClaim" - ] - } - }, - "required": [ - "related", - "terminus" - ] - }, "ApplicationItem": { "type": "object", "properties": { @@ -25347,6 +25710,14 @@ } } }, + "CommonVulnerabilitiesAndExposuresIssue": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Event" + } + ] + }, "Condition": { "type": "object", "properties": { @@ -25546,6 +25917,62 @@ "title" ] }, + "CustomEmailSubjectPrefix": { + "type": "object", + "properties": { + "agentMonitoringIssue": { + "type": "object", + "additionalProperties": { + "type": "string", + "description": "A map containing the open and close email subject value of a given agent monitoring issue", + "example": "{\"openValue\":\"Open email subject prefix value\",\"closeValue\":\"Close email subject prefix value\"}" + }, + "description": "A map containing the open and close email subject value of a given agent monitoring issue", + "example": { + "closeValue": "Close email subject prefix value", + "openValue": "Open email subject prefix value" + } + }, + "change": { + "type": "object", + "additionalProperties": { + "type": "string", + "description": "A map containing the open and close email subject value of a given change event", + "example": "{\"changeValue\":\"Email subject prefix value\"}" + }, + "description": "A map containing the open and close email subject value of a given change event", + "example": { + "changeValue": "Email subject prefix value" + } + }, + "incident": { + "type": "object", + "additionalProperties": { + "type": "string", + "description": "A map containing the open and close email subject value of a given incident", + "example": "{\"openValue\":\"Open email subject prefix value\",\"closeValue\":\"Close email subject prefix value\"}" + }, + "description": "A map containing the open and close email subject value of a given incident", + "example": { + "closeValue": "Close email subject prefix value", + "openValue": "Open email subject prefix value" + } + }, + "issue": { + "type": "object", + "additionalProperties": { + "type": "string", + "description": "A map containing the open and close email subject value of a given issue", + "example": "{\"openValue\":\"Open email subject prefix value\",\"closeValue\":\"Close email subject prefix value\"}" + }, + "description": "A map containing the open and close email subject value of a given issue", + "example": { + "closeValue": "Close email subject prefix value", + "openValue": "Open email subject prefix value" + } + } + } + }, "CustomEventMobileAppAlertRule": { "type": "object", "allOf": [ @@ -25995,6 +26422,9 @@ { "type": "object", "properties": { + "customEmailSubjectPrefix": { + "$ref": "#/components/schemas/CustomEmailSubjectPrefix" + }, "emails": { "type": "array", "items": { @@ -26588,6 +27018,7 @@ "online", "offline", "agent_monitoring_issue", + "cve_issue", "none" ] }, @@ -27088,25 +27519,6 @@ "timeFrame" ] }, - "GetApplicationTopologyQuery": { - "type": "object", - "properties": { - "appId": { - "type": "string", - "description": "Application Id" - }, - "extendedTraversal": { - "type": "array", - "description": "extended Traversal", - "items": { - "$ref": "#/components/schemas/ApplicationExtendedTraversal" - } - } - }, - "required": [ - "appId" - ] - }, "GetApplications": { "type": "object", "properties": { @@ -27509,6 +27921,44 @@ "timeFrame" ] }, + "GetMetricsResult": { + "type": "object", + "properties": { + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SyntheticMetricTagGroup" + } + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SyntheticMetricConfiguration" + } + }, + "order": { + "$ref": "#/components/schemas/Order" + }, + "pagination": { + "$ref": "#/components/schemas/Pagination" + }, + "tagFilterExpression": { + "$ref": "#/components/schemas/TagFilterExpressionElement" + }, + "tagFilters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TagFilter" + } + }, + "timeFrame": { + "$ref": "#/components/schemas/TimeFrame" + } + }, + "required": [ + "metrics" + ] + }, "GetMobileAppBeaconGroups": { "type": "object", "properties": { @@ -29575,7 +30025,6 @@ "service_20", "endpoint_20", "website", - "sli", "synthetic", "mobile_app" ], @@ -30035,6 +30484,9 @@ "type": "integer", "format": "int64" }, + "muteAlerts": { + "type": "boolean" + }, "reasonForClosing": { "type": "string" }, @@ -30119,6 +30571,9 @@ } } }, + "aiOriginated": { + "type": "boolean" + }, "builtIn": { "type": "boolean" }, @@ -30528,6 +30983,76 @@ "prefix" ] }, + "MetricsResult": { + "type": "object", + "properties": { + "metricsResult": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetricsResultItem" + } + } + }, + "required": [ + "metricsResult" + ] + }, + "MetricsResultItem": { + "type": "object", + "properties": { + "customTags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "metrics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "tests": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetricsTestResultItem" + } + } + }, + "required": [ + "metrics", + "tests" + ] + }, + "MetricsTestResultItem": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + }, + "locationId": { + "type": "array", + "items": { + "type": "string" + } + }, + "serviceId": { + "type": "string" + }, + "testId": { + "type": "string" + }, + "testName": { + "type": "string" + } + }, + "required": [ + "testId" + ] + }, "MobileApp": { "type": "object", "properties": { @@ -31115,6 +31640,16 @@ "maxLength": 16384, "minLength": 0 }, + "stackTraceKeyChecksum": { + "type": "string", + "maxLength": 128, + "minLength": 0 + }, + "stackTraceKeyInformation": { + "type": "string", + "maxLength": 1024, + "minLength": 0 + }, "stackTraceLine": { "type": "array", "items": { @@ -31923,29 +32458,6 @@ "webhookUrl" ] }, - "RCAFeedback": { - "type": "object", - "properties": { - "eventId": { - "type": "string", - "maxLength": 64, - "minLength": 0 - }, - "feedback": { - "type": "boolean" - }, - "snapshotId": { - "type": "string", - "maxLength": 64, - "minLength": 0 - } - }, - "required": [ - "eventId", - "feedback", - "snapshotId" - ] - }, "RecurrentMaintenanceWindow": { "type": "object", "allOf": [ @@ -32817,6 +33329,56 @@ "serviceId" ] }, + "ServiceNowEnhancedIntegration": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/AbstractIntegration" + }, + { + "type": "object", + "properties": { + "autoCloseIncidents": { + "type": "boolean" + }, + "instanaUrl": { + "type": "string" + }, + "manuallyClosedIncidents": { + "type": "boolean" + }, + "password": { + "type": "string" + }, + "resolutionOfIncident": { + "type": "boolean" + }, + "serviceNowUrl": { + "type": "string" + }, + "tenant": { + "type": "string" + }, + "unit": { + "type": "string" + }, + "username": { + "type": "string" + } + } + } + ], + "required": [ + "id", + "kind", + "name", + "password", + "serviceNowUrl", + "tenant", + "unit", + "username" + ] + }, "ServiceNowIntegration": { "type": "object", "allOf": [ @@ -34177,14 +34739,40 @@ "defaultRules" ] }, - "SyntheticCredentials": { + "SyntheticCredential": { "type": "object", "properties": { + "applicationLabels": { + "type": "array", + "description": "(Technology Preview)", + "items": { + "type": "string", + "description": "(Technology Preview)" + } + }, + "applications": { + "type": "array", + "description": "(Technology Preview)", + "items": { + "type": "string", + "description": "(Technology Preview)" + } + }, + "createdAt": { + "type": "integer", + "format": "int64" + }, "credentialName": { - "type": "string" + "type": "string", + "maxLength": 128, + "minLength": 1 }, "credentialValue": { "type": "string" + }, + "modifiedAt": { + "type": "integer", + "format": "int64" } }, "required": [ @@ -34345,6 +34933,33 @@ "metric" ] }, + "SyntheticMetricTagGroup": { + "type": "object", + "properties": { + "groupbyTag": { + "type": "string", + "maxLength": 256, + "minLength": 0 + }, + "groupbyTagEntity": { + "type": "string", + "enum": [ + "NOT_APPLICABLE", + "DESTINATION", + "SOURCE" + ] + }, + "groupbyTagSecondLevelKey": { + "type": "string", + "maxLength": 256, + "minLength": 0 + } + }, + "required": [ + "groupbyTag", + "groupbyTagEntity" + ] + }, "SyntheticPlaybackCapabilities": { "type": "object", "properties": { @@ -34386,6 +35001,26 @@ "maxLength": 512, "minLength": 0 }, + "applicationLabels": { + "type": "array", + "description": "(Technology Preview)", + "items": { + "type": "string", + "description": "(Technology Preview)" + }, + "maxItems": 1, + "minItems": 0 + }, + "applications": { + "type": "array", + "description": "(Technology Preview)", + "items": { + "type": "string", + "description": "(Technology Preview)" + }, + "maxItems": 1, + "minItems": 0 + }, "configuration": { "$ref": "#/components/schemas/SyntheticTypeConfiguration" }, @@ -36003,6 +36638,7 @@ "online", "offline", "agent_monitoring_issue", + "cve_issue", "none" ] }, @@ -37973,7 +38609,8 @@ "tags": [ "Infrastructure Analyze", "Service Levels Objective(SLO) Configurations", - "Service Levels Objective(SLO) Report" + "Service Levels Objective(SLO) Report", + "Service levels Alert Configuration" ] }, { diff --git a/openapi.yaml b/openapi.yaml index 19966ea..2fdeacb 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: Introduction to Instana public APIs - version: 1.275.949 + version: 1.276.1145 x-logo: altText: instana logo backgroundColor: '#FAFBFC' @@ -374,6 +374,7 @@ tags: - **createdBy** The user identifier who created the test resource. - **customProperties** An object with name/value pairs to provide additional information of the Synthetic test. - **locations** It is an array of the PoP location IDs where the Synthetic tests are located. + - **applications** (Technology Preview) It is an array of the unique identifiers of the Application Perspectives associated to this test. - **modifiedAt** The test last updated time, following RFC3339 standard. - **modifiedBy** The user identifier who updated the test resource. - **playbackMode** Defines how the Synthetic test should be executed across multiple @@ -391,6 +392,8 @@ tags: It is required that the credentials used in the test be created before the test is created or modified. + (Technology Preview) Credentials can be associated to multiple Application Perspective. + Tests using credentials are validated during test creation and update whether you use the API or UI, as follows: 1. The user Id of the logged in user or API Token being used to create or modify the test must have permission to use credentials. @@ -398,6 +401,9 @@ tags: 2. The credentials or secrets used in the test must exist. Requests to create or update a test referencing credentials that do not exist will fail with return code `Bad Request`. + + 3. (Technology Preview) Credentials associated to Application Perspectives can only be used by tests that are associated to at least one common Application Perspective. + Requests to create or update a test referencing credentials without matching Application Perspectives will fail with return code `Bad Request`. - name: Synthetic Test Playback Results description: "The endpoints of this group retrieve the results for defined Synthetic tests.\n\n**Note on names in TagFilter/TagFilterExpression**: From R243, the name used in a TagFilter or a TagFilterExpression has the format: synthetic.\\.\nIt can be one of the following: synthetic.id (id is the test result id), synthetic.testId,\nsynthetic.testName, synthetic.locationId, synthetic.applicationId, synthetic.serviceId, synthetic.syntheticType,\nsynthetic.locationName, and synthetic.locationLabel. If it is a metric name, then the format is: synthetic.metrics\\.\nFor example, synthetic.metricsResponseTime, synthetic.metricsStatus.\n\nThe names used prior to R243 should be considered as deprecated. They will be accepted temporarily and will be removed in an upcoming release.\n\n## Get Synthetic test playback results \nThe endpoint returns the aggregated Synthetic test result data\n\n### Mandatory Parameters \n\n**testId** An array of the unique identifiers of Synthetic tests\n\n**metrics** A list of metric objects that define which metric should be returned, with the defined aggregation. Each metrics objects consists of minimum two items:\n1. *metric* select a particular metric. This is the list of available metrics for all types of Synthetic Tests: \n synthetic.metricsResponseTime (ms), synthetic.metricsResponseSize (bytes), synthetic.metricsStatusCode (an integer represents an HTTP response code, e.g., 200, 401, 500), synthetic.metricsRequestSize (bytes), \n synthetic.metricsUploadSpeed (bytes per second), synthetic.metricsDownloadSpeed (bytes per second), \n synthetic.metricsRedirectTime (ms), synthetic.metricsRedirectCount, synthetic.metricsConnectCount, synthetic.metricsStatus (an integer, 1-success or 0-failure), and synthetic.tags (list of custom properties and values). \n \n The following metrics are only available for the HTTPAction type Synthetic Tests: synthetic.metricsBlocking (bytes), synthetic.metricsDns (bytes), synthetic.metricsConnect (bytes), synthetic.metricsSsl (bytes), \n synthetic.metricsSending (bytes), synthetic.metricsWaiting (bytes), and synthetic.metricsReceiving (bytes).\n\n The metric synthetic.customMetrics (list of custom metrics and values) is only available for SSLCertificate tests.\n\n The metric synthetic.tags adds the latest list of custom properties to the response.\n\n2. *aggregation* Depending on the selected metric, different aggregations are available e.g., SUM, MEAN, P90 (90th percentile), DISTINCT_COUNT, and MAX. MAX is only allowed for synthetic.tags.\n\n**timeFrame** As in our UI you can specify the timeframe for metrics retrieval.\n```\n windowSize to\n (ms) (unix-timestamp)\n<----------------------|\n```\nThe timeFrame might be adjusted to fit the metric granularity so that there is no partial bucket. For example, if the query timeFrame is 08:02 - 09:02 and the metric granularity is 5 minutes, the timeFrame will be adjusted to 08:05 - 09:00. The adjusted timeFrame will be returned in the response payload. If the query does not have any metric with granularity, a default granularity will be used for adjustment.\n\n### Optional Parameters\n\n**metrics** By default you will get an aggregated metric for the selected timeframe\n\n* *granularity*\n * If it is not set you will get an aggregated value for the selected timeframe\n * If the granularity is set you will get data points with the specified granularity **in seconds**\n * The granularity should not be greater than the `windowSize` (important: `windowSize` is expressed in **milliseconds**)\n * The granularity should not be set too small relative to the `windowSize` to avoid creating an excessively large number of data points (max 600)\n * The granularity values are the same for all metrics\n\n**pagination** if you use pagination you most probably want to fix the timeFrame for the retrieved metrics\n1. *page* select the page number you want to retrieve\n2. *pageSize* set the number of Synthetic test results you want to return with one query\n\n**order** You can order the returned items alphanumerical by label, either ascending or descending\n1. *by* Use the metric name, e.g. \"synthetic.metricsResponseTime\", to order by its value\n2. *direction* either ascending (ASC) or descending (DESC)\n\n**tagFilters** It serves as a filter to narrow down return results.\nIt will be replaced by **tagFilterExpression**.\n\n**tagFilterExpression** It serves as a filter to narrow down return results. Its type can be either EXPRESSION or TAG_FILTER with\nlogical operators AND or OR.\n\nA payload only needs either tagFilters or tagFilterExpression as a filter, not both.\n\nEither tagFilters or tagFilterExpression can specify a custom property by its key and value.\n```\n\"tagFilters\":[{\n \"name\":\"synthetic.tags\",\n \"key\":\"location\",\n \"value\":\"Denver\",\n \"operator\":\"EQUALS\"\n}]\n```\n\nTo narrow down the result set you have two options to search for a test.\n\n**locationId | applicationId**\n\n* *synthetic.locationId:* filter by locationId\n\n* *synthetic.applicationId:* filter by applicationId\n\n### Defaults\n\n**metrics**\n* *granularity:* 0\n\n**timeFrame**\n```\n\"timeFrame\": {\n\t\"windowSize\": 60000,\n\t\"to\": {current timestamp}\n}\n```\n**locationId | applicationId**\n* no filters are applied in the default call\n\n### Sample payload to get a Synthetic test result\n```\n{\n \"testId\": [\"tUmWgvzdo1Q1vpVRpzR5\", \"Pg0Q1UqHRd7OMysohVLd\"],\n \"//comment1\": \"Get test results from last 30 minutes (windowSize), data are aggregated every 10 minutes (granularity)\",\n \"//comment2\": \"The granularity values for responseTime and responseSize must be the same\"\n \"metrics\": [\n {\n \"aggregation\": \"MEAN\",\n \"granularity\": 600, \n \"metric\": \"synthetic.metricsResponseTime\"\n },\n {\n \"aggregation\": \"MEAN\",\n \"granularity\": 600, \n \"metric\": \"synthetic.metricsResponseSize\"\n }],\n \"timeFrame\": {\n \"to\": 0,\n \"windowSize\": 1800000 \n }\n}\n```\n\n## Get a list of Synthetic test playback results (no aggregation)\n### Mandatory Parameters\n**syntheticMetrics** It is an array of metrics. The available metrics for all types of Synthetic Tests: synthetic.id (a string representing the test result ID), \nsynthetic.metricsResponseTime (ms), synthetic.metricsResponseSize (bytes), synthetic.metricsStatusCode (an integer represents an HTTP response code, e.g., 200, 401, 500), synthetic.metricsRequestSize (bytes),\nsynthetic.metricsUploadSpeed (bytes per second), synthetic.metricsDownloadSpeed (bytes per second),\nsynthetic.metricsRedirectTime (ms), synthetic.metricsRedirectCount, synthetic.metricsConnectCount, synthetic.metricsStatus (an integer, 1-success or 0-failure), and synthetic.tags (list of custom properties and values).\n\nThe following metrics are only available for the HTTPAction type Synthetic Tests: synthetic.metricsBlocking (bytes), synthetic.metricsDns (bytes), synthetic.metricsConnect (bytes), synthetic.metricsSsl (bytes),\nsynthetic.metricsSending (bytes), synthetic.metricsWaiting (bytes), and synthetic.metricsReceiving (bytes).\n\nThe metric synthetic.customMetrics (list of custom metrics and values) is only available for SSLCertificate tests.\n\nThe metric synthetic.tags adds the latest list of custom properties to the response.\n\n**timeFrame** As in our UI you can specify the timeframe for metrics retrieval.\n```\n windowSize to\n (ms) (unix-timestamp)\n<----------------------|\n```\n\n### Optional Parameters\n**pagination** if you use pagination you most probably want to fix the timeFrame for the retrieved metrics\n1. *page* select the page number you want to retrieve\n2. *pageSize* set the number of Synthetic test results you want to return with one query\n\n**order** You can order the returned items alphanumerical by label, either ascending or descending\n1. *by* Use the metric name, e.g. \"synthetic.metricsResponseTime\" to order by that value\n2. *direction* either ascending (ASC) or descending (DESC)\n\n**tagFilters** It serves as a filter to narrow down return results. \nIt will be replaced by **tagFilterExpression**.\n\n**tagFilterExpression** It serves as a filter to narrow down return results. Its type can be either EXPRESSION or TAG_FILTER with \nlogical operators AND or OR.\n\nA payload only needs either tagFilters or tagFilterExpression as a filter, not both.\n\nEither tagFilters or tagFilterExpression can specify a custom property by its key and value.\n```\n\"tagFilters\":[{\n \"name\":\"synthetic.tags\",\n \"key\":\"location\",\n \"value\":\"Denver\",\n \"operator\":\"EQUALS\"\n}]\n```\n\n### Sample payload to get a list of Synthetic test results with tagFilters\n```json\n{\n \"syntheticMetrics\":[\"synthetic.metricsResponseTime\",\"synthetic.metricsResponseSize\"],\n \"order\":{\n \"by\":\"synthetic.metricsResponseTime\",\n \"direction\":\"DESC\"\n },\n \"tagFilters\":[{\n \"stringValue\":\"hYziqsaXSJmQsehOWg1S\",\n \"name\":\"synthetic.testId\",\n \"operator\":\"EQUALS\"\n }],\n \"timeFrame\": {\n \"to\": 0,\n \"windowSize\": 1800000\n }\n}\n```\n\n### Sample payload to get a list of Synthetic test results with tagFilterExpression\n```json\n{\n \"syntheticMetrics\":[\"synthetic.metricsResponseTime\",\"synthetic.metricsResponseSize\"],\n \"order\":{\n \"by\":\"synthetic.metricsResponseTime\",\n \"direction\":\"DESC\"\n },\n \"tagFilterExpression\": { \n \"type\":\"EXPRESSION\",\n \"logicalOperator\":\"AND\",\n \"elements\":[{\n \"stringValue\":\"hYziqsaXSJmQsehOWg1S\",\n \"name\":\"synthetic.testId\",\n \"operator\":\"EQUALS\"\n }, {\n \"name\": \"synthetic.locationId\", \n \"operator\": \"EQUALS\", \n \"stringValue\": \"abcdefgXSJmQsehOWg1S\"\n }]\n },\n \"timeFrame\": {\n \"to\": 0,\n \"windowSize\": 1800000\n }\n}\n```\n\n### Sample payload to get the custom metrics of a Synthetic SSLCertificate test\n```json\n{\n \"syntheticMetrics\":[\"synthetic.customMetrics\"],\n \"tagFilters\":[{\n \"stringValue\":\"dk6yzb9fxCDlB6axIhUu\",\n \"name\":\"synthetic.testId\",\n \"operator\":\"EQUALS\"\n }],\n \"timeFrame\": {\n \"to\": 0,\n \"windowSize\": 172800000\n }\n}\n```\n\n## Get a list of Synthetic tests with Success Rate and Average Response Time data\nThe endpoint returns a list of Synthetic tests with Success Rate and Average Response Time result data\n\n### Mandatory Parameters\n\n**metrics**\n1. *metric* select a particular metric. Right now, only synthetic.metricsResponseTime (ms) is supported.\n2. *aggregation* MEAN\n3. *granularity* 60\n\n**timeFrame** As in our UI you can specify the timeframe for metrics retrieval.\n```\n windowSize to\n (ms) (unix-timestamp)\n<----------------------|\n\n\"timeFrame\": {\n\t\"windowSize\": 60000,\n\t\"to\": {current timestamp}\n}\n```\n\n### Optional Parameters\n\n**pagination** if you use pagination you most probably want to fix the timeFrame for the retrieved metrics\n1. *page* select the page number you want to retrieve\n2. *pageSize* set the number of Synthetic test results you want to return with one query\n\n**order** You can order the returned items alphanumerical by label, either ascending or descending\n1. *by* Use the metric name, \"synthetic.metricsResponseTime\", to order by its value\n2. *direction* either ascending (ASC) or descending (DESC)\n\n**tagFilters** It serves as a filter to narrow down return results. The name of a tagFilter is one of the following: \nsynthetic.syntheticType, synthetic.locationId, and synthetic.applicationId.\nIt will be replaced by **tagFilterExpression**.\n```\n\"tagFilters\":[{\n \"stringValue\":\"hYziqsaXSJmQsehOWg1S\",\n \"name\":\"synthetic.applicationId\",\n \"operator\":\"EQUALS\"\n}]\n```\n\n**tagFilterExpression** It serves as a filter to narrow down return results. Its type can be either EXPRESSION or TAG_FILTER with\nlogical operators AND or OR.\n```\n\"tagFilterExpression\": { \n \"type\":\"EXPRESSION\",\n \"logicalOperator\":\"AND\",\n \"elements\":[{\n \"name\": \"synthetic.metricsStatus\", \n \"operator\": \"EQUALS\", \n \"numberValue\": 1\n }, {\n \"name\": \"synthetic.locationId\", \n \"operator\": \"EQUALS\", \n \"stringValue\":\"WnjlKKbgzLDnyGra6PAs\"\n }]\n}\n```\n\nA payload only needs either tagFilters or tagFilterExpression as a filter, not both.\n\nEither tagFilters or tagFilterExpression can specify a custom property by its key and value.\n```\n\"tagFilters\":[{\n \"name\":\"synthetic.tags\",\n \"key\":\"location\",\n \"value\":\"Denver\",\n \"operator\":\"EQUALS\"\n}]\n```\n\nTo narrow down the result set you have three options to search for a test.\n\n**syntheticType | locationId | applicationId**\n\n* *synthetic.syntheticType:* filter by syntheticType, either HTTPAction or HTTPScript\n\n* *synthetic.locationId:* filter by locationId\n\n* *synthetic.applicationId:* filter by applicationId\n\n\nTests can also be filtered by their active state (`true`/`false`) using the custom property label `synthetic.testActive`.\n```\n\"tagFilters\": [{ \n \"name\":\"synthetic.testActive\", \n \"operator\":\"EQUALS\",\n \"booleanValue\": false \n}]\n```\n\n### Defaults\n\n**syntheticType | locationId | applicationId**\n* no filters are applied in the default call\n\n### Sample payload to get a list of active Synthetic tests with SuccessRate and Average Response Time results\n```\n{\n \"metrics\": [\n {\n \"aggregation\": \"MEAN\",\n \"granularity\": 60, \n \"metric\": \"synthetic.metricsResponseTime\"\n }],\n \"tagFilterExpression\": { \n \"type\":\"EXPRESSION\",\n \"logicalOperator\":\"AND\",\n \"elements\":[{\n \"name\": \"synthetic.locationId\", \n \"operator\": \"EQUALS\", \n \"stringValue\": \"abcdefgXSJmQsehOWg1S\"\n }, {\n \"name\": \"synthetic.testActive\",\n \"operator\": \"EQUALS\",\n \"booleanValue\": true\n }]\n },\n \"timeFrame\": {\n \"to\": 0,\n \"windowSize\": 3600000 \n }\n}\n```\n\n## Get a list of Synthetic locations with Last Test Run on (each location) data\nThe endpoint returns a list of Synthetic locations with Last Test Run on (each location) result data\n\n### Mandatory Parameters\n\n**timeFrame** As in our UI you can specify the timeframe for metrics retrieval.\n```\n windowSize to\n (ms) (unix-timestamp)\n<----------------------|\n\n\"timeFrame\": {\n\t\"windowSize\": 60000,\n\t\"to\": {current timestamp}\n}\n```\n\n### Optional Parameters\n\n**pagination** if you use pagination you should use the same timeFrame for all of the pages you want to query\n1. *page* select the page number you want to retrieve\n2. *pageSize* set the number of Synthetic locations you want to return with one query\n\n**order** You can order the returned items alphanumerically by label, either ascending or descending\n1. *by* Use the metric name, e.g., \"location_name\", to order by its value\n2. *direction* either ascending (ASC) or descending (DESC)\n\n The sorting can be done on the following metrics: location_name, location_label, status, type, total_tests,\n last_test_run, and namespace\n\n**tagFilters** It serves as a filter to narrow down return results. The name of a tagFilter is one of the following: \nsynthetic.locationName, synthetic.locationLabel, and synthetic.locationId.\nIt will be replaced by **tagFilterExpression**.\n```\n\"tagFilters\":[{\n \"stringValue\":\"hYziqsaXSJmQsehOWg1S\",\n \"name\":\"synthetic.locationId\",\n \"operator\":\"EQUALS\"\n}]\n```\n\n**tagFilterExpression** It serves as a filter to narrow down return results. Its type can be either EXPRESSION or TAG_FILTER with\nlogical operators AND or OR.\n```\n\"tagFilterExpression\": { \n \"type\":\"EXPRESSION\",\n \"logicalOperator\":\"OR\",\n \"elements\":[{\n \"name\": \"synthetic.locationId\", \n \"operator\": \"EQUALS\", \n \"stringValue\":\"WnjlKKbgzLDnyGra6PAs\"\n }]\n}\n```\n\nA payload only needs either tagFilters or tagFilterExpression as a filter, not both.\n\n### Sample payload to get a list of Synthetic locations with Last Test Run on (each location) data\n```\n{\n \"order\": {\n \t\"by\": \"status\", \n \t\"direction\": \"Desc\"\n },\n \"timeFrame\": {\n \"to\": 0,\n \"windowSize\": 3600000 \n }\n}\n```\n\n## Get Synthetic test playback result detail data\n\n### Query Parameters\n**type** The type of the detailed data. Its value is one of these types: SUBTRANSACTIONS, LOGS, and HAR.\n\n**name** The name of the file to be retrieved, if more than one file available for the same type. Used when the type equals to LOGS or IMAGES\n\n## Download a Synthetic test playback result detail data file\n\n### Query Parameter\n**type** The type of a single compressed file. Its value is one of these types: SUBTRANSACTIONS, LOGS, IMAGES, VIDEOS, and HAR." - name: Action Catalog @@ -3835,7 +3841,7 @@ paths: content: application/json: example: - - id: '0' + - id: gBwNFIbjS6Ozwt0a12regg label: biz-perspective5 description: This is an example business perspective tagFilterExpression: @@ -3918,7 +3924,7 @@ paths: content: application/json: example: - id: 0 + id: gBwNFIbjS6Ozwt0a12regg label: biz-perspective1 description: This is an example business perspective tagFilterExpression: @@ -3990,7 +3996,7 @@ paths: content: application/json: example: - id: '0' + id: gBwNFIbjS6Ozwt0a12regg label: biz-perspective5 description: This is an example business perspective tagFilterExpression: @@ -4041,9 +4047,8 @@ paths: content: application/json: example: - id: '0' + id: gBwNFIbjS6Ozwt0a12regg label: biz-perspective1 - description: This is an example business perspective tagFilterExpression: type: EXPRESSION logicalOperator: AND @@ -4080,8 +4085,9 @@ paths: content: application/json: example: - id: '0' + id: gBwNFIbjS6Ozwt0a12regg label: biz-perspective1 + description: This is an example business perspective tagFilterExpression: type: EXPRESSION logicalOperator: AND @@ -4127,13 +4133,6 @@ paths: schema: type: integer format: int64 - - in: query - name: dataSource - schema: - type: string - enum: - - CALLS - - TRACES - in: query name: useCase schema: @@ -4996,14 +4995,22 @@ paths: $ref: '#/components/schemas/AbstractIntegration' required: true responses: - default: + '200': content: - application/json: {} - description: default response + application/json: + schema: + $ref: '#/components/schemas/AbstractIntegration' + description: Persisted an alert channel setting + '400': + content: + application/json: + schema: + type: string + description: failed persisting an alert channel setting security: - ApiKeyAuth: - CanConfigureIntegrations - summary: Update alerting channel + summary: Update alert channel tags: - Event Settings /api/events/settings/alerts: @@ -6526,11 +6533,15 @@ paths: description: Configs are sorted descending by their created date. operationId: findActiveServiceLevelsAlertConfigs parameters: - - in: query + - description: Service Levels Objective(SLO) Configuration ID + example: SLOEANnWh9tQOa2h88kGxK6wQ + in: query name: sloId schema: type: string - - in: query + - description: List of Service Levels Alert Configuration IDs + example: ln3IGogYS-S7CPqcOQYTNA + in: query name: alertIds schema: type: array @@ -6544,23 +6555,33 @@ paths: content: application/json: example: - - name: Service level status below 70% - rule: SLO_STATUS - severity: 10 - threshold: - type: staticThreshold - value: 0.7 - operator: <= - lastUpdated: 0 - triggering: false - description: Calls are slower or equal to 33 ms based on latency (90th). - sloIds: - - qweqwqeqw - - qqq - timeThreshold: - timeWindow: 600000 - alertChannelIds: [] - customPayloadFields: [] + name: Error Budget Remaining is low + description: Error Budget Remaining is less than or equal to 5%. + severity: 5 + triggering: true + rule: + alertType: ERROR_BUDGET + metric: BURNED_PERCENTAGE + threshold: + type: staticThreshold + operator: '>=' + value: 0.05 + lastUpdated: 1716454787342 + sloIds: + - SLOEANnWh9tQOa2h88kGxK6wQ + alertChannelIds: [] + timeThreshold: + expiry: null + timeWindow: 600000 + customPayloadFields: + - type: staticString + key: foo + value: bar + id: ln3IGogYS-S7CPqcOQYTNA + created: 1717668384754 + initialCreated: 1717668384754 + readOnly: false + enabled: true schema: type: array items: @@ -6577,15 +6598,79 @@ paths: requestBody: content: application/json: + example: + alertChannelIds: [] + customPayloadFields: + - key: foo + id: avvh9tbxpfRE65t + type: staticString + value: bar + description: Error Budget Remaining is less than or equal to 5%. + name: Error Budget Remaining is low + rule: + alertType: ERROR_BUDGET + metric: BURNED_PERCENTAGE + severity: 5 + sloIds: + - SLOEANnWh9tQOa2h88kGxK6wQ + threshold: + type: staticThreshold + value: 0.05 + operator: '>=' + lastUpdated: 1716454787342 + timeThreshold: + timeWindow: 600000 + triggering: true schema: $ref: '#/components/schemas/ServiceLevelsAlertConfig' + description: Create Request Body required: true responses: - default: + '200': content: application/json: + example: + name: Error Budget Remaining is low + description: Error Budget Remaining is less than or equal to 5%. + severity: 5 + triggering: true + rule: + alertType: ERROR_BUDGET + metric: BURNED_PERCENTAGE + threshold: + type: staticThreshold + operator: '>=' + value: 0.05 + lastUpdated: 1716454787342 + sloIds: + - SLOEANnWh9tQOa2h88kGxK6wQ + alertChannelIds: [] + timeThreshold: + expiry: null + timeWindow: 600000 + customPayloadFields: + - type: staticString + key: foo + value: bar + id: ln3IGogYS-S7CPqcOQYTNA + created: 1717668384754 + initialCreated: 1717668384754 + readOnly: false + enabled: true schema: $ref: '#/components/schemas/ServiceLevelseAlertConfigWithMetadata' + description: OK + '400': + content: + application/json: + example: + errors: + - Website SLOs do not support triggering -> true + schema: + type: array + items: + $ref: '#/components/schemas/ServiceLevelseAlertConfigWithMetadata' + description: Service levels Alert Config with Website SLOs do not support triggering security: - ApiKeyAuth: - CanConfigureServiceLevelsAlerts @@ -6596,7 +6681,9 @@ paths: delete: operationId: deleteServiceLevelsAlertConfig parameters: - - in: path + - description: Service Levels Alert Configuration ID + example: ln3IGogYS-S7CPqcOQYTNA + in: path name: id required: true schema: @@ -6616,12 +6703,16 @@ paths: description: Find a Service levels Alert Config by ID. This will deliver deleted configs too. operationId: findServiceLevelsAlertConfig parameters: - - in: path + - description: Service Levels Alert Configuration ID + example: ln3IGogYS-S7CPqcOQYTNA + in: path name: id required: true schema: type: string - - in: query + - description: Service Levels Alert Version Creation Date + example: 1706617456952 + in: query name: validOn schema: type: integer @@ -6631,26 +6722,45 @@ paths: content: application/json: example: - name: Service level status below 70% - rule: SLO_STATUS - severity: 10 + name: Error Budget Remaining is low + description: Error Budget Remaining is less than or equal to 5%. + severity: 5 + triggering: true + rule: + alertType: ERROR_BUDGET + metric: BURNED_PERCENTAGE threshold: type: staticThreshold - value: 0.7 - operator: <= - lastUpdated: 0 - triggering: false - description: Calls are slower or equal to 33 ms based on latency (90th). + operator: '>=' + value: 0.05 + lastUpdated: 1716454787342 sloIds: - - qweqwqeqw - - qqq + - SLOEANnWh9tQOa2h88kGxK6wQ + alertChannelIds: [] timeThreshold: + expiry: null timeWindow: 600000 - alertChannelIds: [] - customPayloadFields: [] + customPayloadFields: + - type: staticString + key: foo + value: bar + id: ln3IGogYS-S7CPqcOQYTNA + created: 1717668384754 + initialCreated: 1717668384754 + readOnly: false + enabled: true schema: $ref: '#/components/schemas/ServiceLevelseAlertConfigWithMetadata' description: OK + '404': + content: + application/json: + example: + errors: + - 'Config with id: -DZZjflTQTmZ7yGvBilPlQ is not found' + schema: + $ref: '#/components/schemas/ServiceLevelseAlertConfigWithMetadata' + description: Service levels Alert Config with given ID not found security: - ApiKeyAuth: - Default @@ -6660,7 +6770,9 @@ paths: post: operationId: updateServiceLevelsAlertConfig parameters: - - in: path + - description: Service Levels Alert Configuration ID + example: ln3IGogYS-S7CPqcOQYTNA + in: path name: id required: true schema: @@ -6668,18 +6780,81 @@ paths: requestBody: content: application/json: + example: + alertChannelIds: [] + customPayloadFields: + - key: foo + id: avvh9tbxpfRE65t + type: staticString + value: bar + description: Error Budget Remaining is less than or equal to 5%. + name: Error Budget Remaining is low + rule: + alertType: ERROR_BUDGET + metric: BURNED_PERCENTAGE + severity: 5 + sloIds: + - SLOEANnWh9tQOa2h88kGxK6wQ + threshold: + type: staticThreshold + value: 0.05 + operator: '>=' + lastUpdated: 1716454787342 + timeThreshold: + timeWindow: 600000 + triggering: true schema: $ref: '#/components/schemas/ServiceLevelsAlertConfig' + description: Update Request Body required: true responses: '200': content: application/json: + example: + name: Error Budget Remaining is low + description: Error Budget Remaining is less than or equal to 5%. + severity: 5 + triggering: true + rule: + alertType: ERROR_BUDGET + metric: BURNED_PERCENTAGE + threshold: + type: staticThreshold + operator: '>=' + value: 0.05 + lastUpdated: 1716454787342 + sloIds: + - SLOEANnWh9tQOa2h88kGxK6wQ + alertChannelIds: [] + timeThreshold: + expiry: null + timeWindow: 600000 + customPayloadFields: + - type: staticString + key: foo + value: bar + id: ln3IGogYS-S7CPqcOQYTNA + created: 1717668384754 + initialCreated: 1717668384754 + readOnly: false + enabled: true schema: $ref: '#/components/schemas/ServiceLevelseAlertConfigWithMetadata' - description: Synthetic Smart Alert successfully updated + description: Service levels Smart Alert successfully updated '204': - description: Synthetic Smart Alert did not change + description: Service levels Smart Alert did not change + '400': + content: + application/json: + example: + errors: + - Website SLOs do not support triggering -> true + schema: + type: array + items: + $ref: '#/components/schemas/ServiceLevelseAlertConfigWithMetadata' + description: Service levels Alert Config with Website SLOs do not support triggering security: - ApiKeyAuth: - CanConfigureServiceLevelsAlerts @@ -6690,7 +6865,9 @@ paths: put: operationId: disableServiceLevelsAlertConfig parameters: - - in: path + - description: Service Levels Alert Configuration ID + example: ln3IGogYS-S7CPqcOQYTNA + in: path name: id required: true schema: @@ -6716,7 +6893,9 @@ paths: put: operationId: enableServiceLevelsAlertConfig parameters: - - in: path + - description: Service Levels Alert Configuration ID + example: ln3IGogYS-S7CPqcOQYTNA + in: path name: id required: true schema: @@ -6742,12 +6921,16 @@ paths: put: operationId: restoreServiceLevelsAlertConfig parameters: - - in: path + - description: Service Levels Alert Configuration ID + example: ln3IGogYS-S7CPqcOQYTNA + in: path name: id required: true schema: type: string - - in: path + - description: Service Levels Alert Version Creation Date + example: 1706617456952 + in: path name: created required: true schema: @@ -6775,7 +6958,9 @@ paths: description: Find all versions of a Service levels Alert Config by ID. This will deliver deleted configs too. Configs are sorted descending by their created date. operationId: findServiceLevelsAlertConfigVersions parameters: - - in: path + - description: Service Levels Alert Configuration ID + example: ln3IGogYS-S7CPqcOQYTNA + in: path name: id required: true schema: @@ -6785,28 +6970,40 @@ paths: content: application/json: example: - name: Service level status below 70% - rule: SLO_STATUS - severity: 10 - threshold: - type: staticThreshold - value: 0.7 - operator: <= - lastUpdated: 0 - triggering: false - description: Calls are slower or equal to 33 ms based on latency (90th). - sloIds: - - qweqwqeqw - - qqq - timeThreshold: - timeWindow: 600000 - alertChannelIds: [] - customPayloadFields: [] + - id: ln3IGogYS-S7CPqcOQYTNA + created: 1717507017767 + enabled: false + deleted: false + changeSummary: + changeType: DISABLE + author: + id: SCzqyU_LTtmO9CCnvvVOAg + type: API + fullName: userToken + - id: ln3IGogYS-S7CPqcOQYTNA + created: 1717506979607 + enabled: true + deleted: false + changeSummary: + changeType: CREATE + author: + id: SCzqyU_LTtmO9CCnvvVOAg + type: API + fullName: userToken schema: type: array items: $ref: '#/components/schemas/ConfigVersion' description: OK + '404': + content: + application/json: + example: + errors: + - 'Config with id: -DZZjflTQTmZ7yGvBilPlQ is not found' + schema: + $ref: '#/components/schemas/ServiceLevelseAlertConfigWithMetadata' + description: Service levels Alert Config with given ID not found security: - ApiKeyAuth: - Default @@ -9398,44 +9595,6 @@ paths: summary: Gets the infrastructure topology tags: - Infrastructure Topology - /api/infrastructure-monitoring/topology/filtered-topology: - post: - operationId: getApplicationInfrastructure - requestBody: - content: - application/json: - examples: - This example retrieves the topology information for an Application Id.: - description: This example retrieves the topology information for an Application Id. - value: - appId: AB3DeFGHIJkLm9OpQrstUVwxY_z - extendedTraversal: - - terminus: kubernetesService - related: - - kubernetesPod - - kubernetesPersistentVolume - - kubernetesPersistentVolumeClaim - - terminus: host - related: - - vsphereVM - - vsphereHost - - vsphereDatacenter - schema: - $ref: '#/components/schemas/GetApplicationTopologyQuery' - responses: - default: - content: - application/json: - schema: - $ref: '#/components/schemas/Topology' - description: snapshots matching appId as well as snapshots related snapshots to terminus snapshots - security: - - ApiKeyAuth: - - Default - summary: Get Application Infrastructure - tags: - - Infrastructure Resources - description: "These APIs can be used to retrieve information about hosts, processes, JVMs and other entities that we are calling snapshots. A snapshot represents static information about an entity as it was at a specific point in time. To clarify:\r\n**Static information** is any information which is seldom changing, e.g. process IDs, host FQDNs or a list of host hard disks. The counterpart to static information are metrics which have a much higher change rate, e.g. host CPU usage or JVM garbage collection activity. Snapshots only contain static information.\r\n- Snapshots are **versioned** and represent an entity's state for a specific point in time. While snapshots only contain static information, even that information may change. For example you may add another hard disk to a server. For such a change, a new snapshot would be created.\r\n- The **size** parameter can be used in order to limit the maximum number of retrieved snapshots.\r\n- The **offline** parameter is used to allow deeper visibility into snapshots. Set to `false`, the query will return all snapshots that are still available on the given **to** timestamp. However, set to `true`, the query will return all snapshots that have been active within the time window, this must at least include the online result and snapshots terminated within this time.\r\n" /api/instana/health: get: operationId: getHealthState @@ -11766,52 +11925,6 @@ paths: tags: - Groups description: 'See [creating group mapping](#operation/createGroupMapping)' - /api/settings/rca/incident/feedback: - get: - operationId: getRCAIncidentFeedbackById - responses: - default: - content: - application/json: {} - description: default response - security: - - ApiKeyAuth: - - Default - summary: 'Get feedback of an RCA Incident''s probable root cause entity whether good or bad. ' - tags: - - Events - '/api/settings/rca/incident/feedback/{id}': - post: - operationId: postRCAIncidentFeedbackById - parameters: - - example: exampleRcaIncidentId - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - type: array - items: - type: string - required: true - responses: - default: - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/RCAFeedback' - security: - - ApiKeyAuth: - - Default - summary: 'Post feedback of an RCA Incident''s probable root cause entity whether good or bad. ' - tags: - - Events /api/settings/session: delete: operationId: deleteSessionSettings @@ -14245,6 +14358,80 @@ paths: summary: Get synthetic tag catalog tags: - Synthetic Catalog + /api/synthetics/metrics: + post: + operationId: getMetricsResult + requestBody: + content: + application/json: + example: + pagination: + page: 1 + pageSize: 3 + metrics: + - metric: synthetic.metricsResponseTime + aggregation: SUM + timeFrame: + to: 0 + windowSize: 144000000 + groups: + - groupbyTag: synthetic.applicationId + - groupbyTag: synthetic.tags + groupbyTagSecondLevelTag: region + schema: + $ref: '#/components/schemas/GetMetricsResult' + responses: + default: + content: + application/json: + example: + metricsResult: + - tests: + - testId: 6GwdCuiMjGdMrtz8THjo + testName: rumattach-BasicNavTest + locationId: + - f7cEoG61DJfVyWcDnWsc + applicationId: application1 + serviceId: serviceId1 + metrics: + - synthetic.metricsResponseTime: 1276 + customMetrics: + - region: region1 + - tests: + - testId: OCnmrLSlNgzntI68094j + testName: test-javascript-bundled + locationId: + - wHICfVoIpiHbwawo5xQ6 + applicationId: application2 + serviceId: serviceId2 + metrics: + - synthetic.metricsResponseTime: 14 + customMetrics: + - location: location1 + region: region2 + - tests: + - testId: 9i6gpys6whaYtN5k9VeD + testName: My_Test_ReadFile + locationId: + - DemoPoP1_saas_instana_test + applicationId: application3 + serviceId: serviceid3 + metrics: + - synthetic.metricsResponseTime: 7 + customMetrics: + - location: location3 + region: region3 + page: 1 + pageSize: 3 + totalHits: 2212 + schema: + $ref: '#/components/schemas/MetricsResult' + security: + - ApiKeyAuth: + - Default + summary: Get Synthetic metrics + tags: + - Synthetic Metrics /api/synthetics/results: post: operationId: getSyntheticResult @@ -14825,7 +15012,7 @@ paths: credentialName: userPassword credentialValue: '123456' schema: - $ref: '#/components/schemas/SyntheticCredentials' + $ref: '#/components/schemas/SyntheticCredential' required: true responses: default: @@ -14838,6 +15025,116 @@ paths: summary: Create a Synthetic Credential tags: - Synthetic Settings + /api/synthetics/settings/credentials/associations: + get: + operationId: getSyntheticCredentialAssociations + responses: + default: + content: + application/json: + example: + - credentialName: password1 + createdAt: 1717617206785 + modifiedAt: 1717617206785 + - credentialName: password2 + applications: + - f4KX5zd8RW2pERKKFUCZgQ + applicationLabels: + - All Services + createdAt: 1717620972843 + modifiedAt: 1717620972843 + schema: + type: array + items: + $ref: '#/components/schemas/SyntheticCredential' + security: + - ApiKeyAuth: + - canUseSyntheticCredentials + - canConfigureSyntheticTests + summary: (Technical Preview) All Synthetic Credential Names and Associations + tags: + - Synthetic Settings + '/api/synthetics/settings/credentials/associations/{name}': + get: + operationId: getOneSyntheticCredentialAssociations + parameters: + - in: path + name: name + required: true + schema: + type: string + responses: + default: + content: + application/json: + example: + credentialName: password4 + applications: + - f4KX5zd8RW2pERKKFUCZgQ + applicationLabels: + - All Services + createdAt: 1717620972843 + modifiedAt: 1717620972843 + schema: + $ref: '#/components/schemas/SyntheticCredential' + security: + - ApiKeyAuth: + - canUseSyntheticCredentials + - canConfigureSyntheticTests + summary: (Technical Preview) A Synthetic Credential with Name and Associations + tags: + - Synthetic Settings + patch: + operationId: patchSyntheticCredentialAssociations + parameters: + - in: path + name: name + required: true + schema: + type: string + requestBody: + content: + application/json: + example: |2 + { + "applications": [ + "f4KX5zd8RW2pERKKFUCZgQ" + ], + } + schema: + $ref: '#/components/schemas/SyntheticCredential' + required: true + responses: + default: + content: + application/json: {} + description: default response + security: + - ApiKeyAuth: + - canUseSyntheticCredentials + - canConfigureSyntheticTests + summary: (Technical Preview) Patch the associations of a Synthetic Credential + tags: + - Synthetic Settings + description: |- + This API updates the endpoint associations of a Synthetic Credential. + + - Credential values cannot be patched. + - Credentials can be associated to multiple application ids. + - Patching a credential association will replace the entire array with the full set of values provided. + + ## Sample script and payload: + - A sample script to patch a DB2 Admin password and associate it to application ids 'Ss2FBjSTQVef5LsqhPiYkg' and 'KJ8MdZVqK4odMUoBaClH'. + + ``` + curl -k -v -X PATCH \ + https:///api/synthetics/settings/credentials/associations/db2AdminPwd \ + -H 'authorization: apiToken ' \ + -H 'content-type: application/json' \ + -d '{ + "applications" : [ "Ss2FBjSTQVef5LsqhPiYkg", "KJ8MdZVqK4odMUoBaClH" ] + }' + ``` '/api/synthetics/settings/credentials/{name}': delete: operationId: deleteSyntheticCredential @@ -15442,6 +15739,7 @@ paths: - All attributes listed as in the schema, including the required ones, are optional for this call. - Synthetic Test configuration properties set to null will be removed from the configuration. + - Patching an array attribute will replace the entire array with the full set of values provided. - For major updates to the Synthetic Test or to remove main attributes, see "Update a Synthetic test" ## Sample script and payload: @@ -16400,6 +16698,7 @@ components: PAGER_DUTY: '#/components/schemas/PagerdutyIntegration' PROMETHEUS_WEBHOOK: '#/components/schemas/PrometheusWebhookIntegration' SALESFORCE: '#/components/schemas/SalesforceIntegration' + SERVICE_NOW_APPLICATION: '#/components/schemas/ServiceNowEnhancedIntegration' SERVICE_NOW_WEBHOOK: '#/components/schemas/ServiceNowIntegration' SLACK: '#/components/schemas/SlackIntegration' SPLUNK: '#/components/schemas/SplunkIntegration' @@ -17520,38 +17819,6 @@ components: additionalProperties: type: object writeOnly: true - ApplicationExtendedTraversal: - type: object - description: extended Traversal - properties: - related: - type: array - items: - type: string - enum: - - host - - vsphereDatacenter - - vsphereHost - - vsphereVM - - kubernetesService - - kubernetesPod - - kubernetesPersistentVolume - - kubernetesPersistentVolumeClaim - terminus: - type: string - description: Plugin ID of terminus - enum: - - host - - vsphereDatacenter - - vsphereHost - - vsphereVM - - kubernetesService - - kubernetesPod - - kubernetesPersistentVolume - - kubernetesPersistentVolumeClaim - required: - - related - - terminus ApplicationItem: type: object properties: @@ -18119,6 +18386,10 @@ components: $ref: '#/components/schemas/SnapshotPreview' space: $ref: '#/components/schemas/SnapshotPreview' + CommonVulnerabilitiesAndExposuresIssue: + type: object + allOf: + - $ref: '#/components/schemas/Event' Condition: type: object properties: @@ -18255,6 +18526,48 @@ components: - id - ownerId - title + CustomEmailSubjectPrefix: + type: object + properties: + agentMonitoringIssue: + type: object + additionalProperties: + type: string + description: A map containing the open and close email subject value of a given agent monitoring issue + example: '{"openValue":"Open email subject prefix value","closeValue":"Close email subject prefix value"}' + description: A map containing the open and close email subject value of a given agent monitoring issue + example: + closeValue: Close email subject prefix value + openValue: Open email subject prefix value + change: + type: object + additionalProperties: + type: string + description: A map containing the open and close email subject value of a given change event + example: '{"changeValue":"Email subject prefix value"}' + description: A map containing the open and close email subject value of a given change event + example: + changeValue: Email subject prefix value + incident: + type: object + additionalProperties: + type: string + description: A map containing the open and close email subject value of a given incident + example: '{"openValue":"Open email subject prefix value","closeValue":"Close email subject prefix value"}' + description: A map containing the open and close email subject value of a given incident + example: + closeValue: Close email subject prefix value + openValue: Open email subject prefix value + issue: + type: object + additionalProperties: + type: string + description: A map containing the open and close email subject value of a given issue + example: '{"openValue":"Open email subject prefix value","closeValue":"Close email subject prefix value"}' + description: A map containing the open and close email subject value of a given issue + example: + closeValue: Close email subject prefix value + openValue: Open email subject prefix value CustomEventMobileAppAlertRule: type: object allOf: @@ -18572,6 +18885,8 @@ components: - $ref: '#/components/schemas/AbstractIntegration' - type: object properties: + customEmailSubjectPrefix: + $ref: '#/components/schemas/CustomEmailSubjectPrefix' emails: type: array items: @@ -18993,6 +19308,7 @@ components: - online - offline - agent_monitoring_issue + - cve_issue - none maxItems: 1024 minItems: 0 @@ -19342,19 +19658,6 @@ components: required: - metrics - timeFrame - GetApplicationTopologyQuery: - type: object - properties: - appId: - type: string - description: Application Id - extendedTraversal: - type: array - description: extended Traversal - items: - $ref: '#/components/schemas/ApplicationExtendedTraversal' - required: - - appId GetApplications: type: object properties: @@ -19650,6 +19953,31 @@ components: - pagination - tagFilterExpression - timeFrame + GetMetricsResult: + type: object + properties: + groups: + type: array + items: + $ref: '#/components/schemas/SyntheticMetricTagGroup' + metrics: + type: array + items: + $ref: '#/components/schemas/SyntheticMetricConfiguration' + order: + $ref: '#/components/schemas/Order' + pagination: + $ref: '#/components/schemas/Pagination' + tagFilterExpression: + $ref: '#/components/schemas/TagFilterExpressionElement' + tagFilters: + type: array + items: + $ref: '#/components/schemas/TagFilter' + timeFrame: + $ref: '#/components/schemas/TimeFrame' + required: + - metrics GetMobileAppBeaconGroups: type: object properties: @@ -21142,7 +21470,6 @@ components: - service_20 - endpoint_20 - website - - sli - synthetic - mobile_app writeOnly: true @@ -21473,6 +21800,8 @@ components: closeTimestamp: type: integer format: int64 + muteAlerts: + type: boolean reasonForClosing: type: string username: @@ -21529,6 +21858,8 @@ components: type: object additionalProperties: type: object + aiOriginated: + type: boolean builtIn: type: boolean readOnly: @@ -21852,6 +22183,52 @@ components: required: - operator - prefix + MetricsResult: + type: object + properties: + metricsResult: + type: array + items: + $ref: '#/components/schemas/MetricsResultItem' + required: + - metricsResult + MetricsResultItem: + type: object + properties: + customTags: + type: object + additionalProperties: + type: string + metrics: + type: array + items: + type: object + additionalProperties: + type: object + tests: + type: array + items: + $ref: '#/components/schemas/MetricsTestResultItem' + required: + - metrics + - tests + MetricsTestResultItem: + type: object + properties: + applicationId: + type: string + locationId: + type: array + items: + type: string + serviceId: + type: string + testId: + type: string + testName: + type: string + required: + - testId MobileApp: type: object properties: @@ -22295,6 +22672,14 @@ components: type: string maxLength: 16384 minLength: 0 + stackTraceKeyChecksum: + type: string + maxLength: 128 + minLength: 0 + stackTraceKeyInformation: + type: string + maxLength: 1024 + minLength: 0 stackTraceLine: type: array items: @@ -22870,23 +23255,6 @@ components: - kind - name - webhookUrl - RCAFeedback: - type: object - properties: - eventId: - type: string - maxLength: 64 - minLength: 0 - feedback: - type: boolean - snapshotId: - type: string - maxLength: 64 - minLength: 0 - required: - - eventId - - feedback - - snapshotId RecurrentMaintenanceWindow: type: object allOf: @@ -23510,6 +23878,39 @@ components: required: - endpoints - serviceId + ServiceNowEnhancedIntegration: + type: object + allOf: + - $ref: '#/components/schemas/AbstractIntegration' + - type: object + properties: + autoCloseIncidents: + type: boolean + instanaUrl: + type: string + manuallyClosedIncidents: + type: boolean + password: + type: string + resolutionOfIncident: + type: boolean + serviceNowUrl: + type: string + tenant: + type: string + unit: + type: string + username: + type: string + required: + - id + - kind + - name + - password + - serviceNowUrl + - tenant + - unit + - username ServiceNowIntegration: type: object allOf: @@ -24471,13 +24872,33 @@ components: required: - customRules - defaultRules - SyntheticCredentials: + SyntheticCredential: type: object properties: + applicationLabels: + type: array + description: (Technology Preview) + items: + type: string + description: (Technology Preview) + applications: + type: array + description: (Technology Preview) + items: + type: string + description: (Technology Preview) + createdAt: + type: integer + format: int64 credentialName: type: string + maxLength: 128 + minLength: 1 credentialValue: type: string + modifiedAt: + type: integer + format: int64 required: - credentialName - credentialValue @@ -24595,6 +25016,26 @@ components: required: - aggregation - metric + SyntheticMetricTagGroup: + type: object + properties: + groupbyTag: + type: string + maxLength: 256 + minLength: 0 + groupbyTagEntity: + type: string + enum: + - NOT_APPLICABLE + - DESTINATION + - SOURCE + groupbyTagSecondLevelKey: + type: string + maxLength: 256 + minLength: 0 + required: + - groupbyTag + - groupbyTagEntity SyntheticPlaybackCapabilities: type: object properties: @@ -24625,6 +25066,22 @@ components: type: string maxLength: 512 minLength: 0 + applicationLabels: + type: array + description: (Technology Preview) + items: + type: string + description: (Technology Preview) + maxItems: 1 + minItems: 0 + applications: + type: array + description: (Technology Preview) + items: + type: string + description: (Technology Preview) + maxItems: 1 + minItems: 0 configuration: $ref: '#/components/schemas/SyntheticTypeConfiguration' createdAt: @@ -25754,6 +26211,7 @@ components: - online - offline - agent_monitoring_issue + - cve_issue - none maxItems: 6 minItems: 0 @@ -27165,6 +27623,7 @@ x-tagGroups: - Infrastructure Analyze - Service Levels Objective(SLO) Configurations - Service Levels Objective(SLO) Report + - Service levels Alert Configuration - name: Closed Beta Features tags: - Infrastructure Alert Configuration