{ "swagger": "2.0", "info": { "title": "Azure Load Testing", "version": "2026-04-01", "description": "These APIs allow end users to create, view and run load tests using Azure Load Test Service.", "x-typespec-generated": [ { "emitter": "@azure-tools/typespec-autorest" } ] }, "schemes": [ "https" ], "x-ms-parameterized-host": { "hostTemplate": "https://{endpoint}", "useSchemePrefix": false, "parameters": [ { "name": "endpoint", "in": "path", "required": true, "type": "string", "format": "uri", "x-ms-skip-url-encoding": true } ] }, "produces": [ "application/json" ], "consumes": [ "application/json" ], "security": [ { "Oauth2": [ "https://cnt-prod.loadtesting.azure.com/.default" ] } ], "securityDefinitions": { "Oauth2": { "type": "oauth2", "description": "OAuth 2.0 Flow with Microsoft Entra ID.", "flow": "implicit", "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", "scopes": { "https://cnt-prod.loadtesting.azure.com/.default": "" } } }, "tags": [ { "name": "Operations" }, { "name": "Test" }, { "name": "TestRun" }, { "name": "Trigger" }, { "name": "NotificationRule" } ], "paths": { "/notification-rules": { "get": { "operationId": "NotificationRuleAdministration_ListNotificationRules", "tags": [ "NotificationRule" ], "summary": "Get all notification rules for the given filters.", "description": "Get all notification rules for the given filters.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "$ref": "#/parameters/ListNotificationRuleQueryParams.testIds" }, { "$ref": "#/parameters/ListNotificationRuleQueryParams.scopes" }, { "$ref": "#/parameters/ListNotificationRuleQueryParams.lastModifiedStartTime" }, { "$ref": "#/parameters/ListNotificationRuleQueryParams.lastModifiedEndTime" }, { "$ref": "#/parameters/ListNotificationRuleQueryParams.maxpagesize" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/PagedNotificationRule" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Get all notification rules for the specified filters.": { "$ref": "./examples/ListNotificationRules.json" } }, "x-ms-pageable": { "nextLinkName": "nextLink" } } }, "/notification-rules/{notificationRuleId}": { "get": { "operationId": "NotificationRuleAdministration_GetNotificationRule", "tags": [ "NotificationRule" ], "summary": "Get notification rule details by notification rule Id.", "description": "Get notification rule details by notification rule Id.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "notificationRuleId", "in": "path", "description": "The unique identifier of the notification rule.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/NotificationRule" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Get a notification rule.": { "$ref": "./examples/GetNotificationRule.json" } } }, "patch": { "operationId": "NotificationRuleAdministration_CreateOrUpdateNotificationRule", "tags": [ "NotificationRule" ], "summary": "Create a new notification rule or update an existing notification rule.", "description": "Create a new notification rule or update an existing notification rule by providing the notification rule Id.", "consumes": [ "application/merge-patch+json" ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "notificationRuleId", "in": "path", "description": "The unique identifier of the notification rule.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" }, { "name": "body", "in": "body", "description": "The resource instance.", "required": true, "schema": { "$ref": "#/definitions/NotificationRuleCreateOrUpdate" }, "x-ms-client-name": "resource" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/NotificationRule" } }, "201": { "description": "The request has succeeded and a new resource has been created as a result.", "schema": { "$ref": "#/definitions/NotificationRule" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Create or update a notification rule for tests.": { "$ref": "./examples/CreateOrUpdateNotificationRule.json" } } }, "delete": { "operationId": "NotificationRuleAdministration_DeleteNotificationRule", "tags": [ "NotificationRule" ], "summary": "Delete a notification rule by its notification rule Id.", "description": "Delete a notification rule by its notification rule Id.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "notificationRuleId", "in": "path", "description": "The unique identifier of the notification rule.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" } ], "responses": { "204": { "description": "There is no content to send for this request, but the headers may be useful. " }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Delete a notification rule": { "$ref": "./examples/DeleteNotificationRule.json" } } } }, "/operations/{operationId}": { "get": { "operationId": "Operations_GetStatus", "tags": [ "Operations" ], "summary": "Get the status of a long running operation.", "description": "Get the status of a long running operation.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "operationId", "in": "path", "description": "The unique ID of the operation.", "required": true, "type": "string" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/OperationStatus" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Get the status of a long running operation.": { "$ref": "./examples/GetStatus.json" } } } }, "/test-runs": { "get": { "operationId": "LoadTestRun_ListTestRuns", "tags": [ "TestRun" ], "summary": "Get all test runs for the given filters.", "description": "Get all test runs for the given filters.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "$ref": "#/parameters/ListTestRunQueryParams.orderby" }, { "$ref": "#/parameters/ListTestRunQueryParams.search" }, { "$ref": "#/parameters/ListTestRunQueryParams.testId" }, { "$ref": "#/parameters/ListTestRunQueryParams.executionFrom" }, { "$ref": "#/parameters/ListTestRunQueryParams.executionTo" }, { "$ref": "#/parameters/ListTestRunQueryParams.status" }, { "$ref": "#/parameters/ListTestRunQueryParams.maxpagesize" }, { "$ref": "#/parameters/ListTestRunQueryParams.createdByTypes" }, { "$ref": "#/parameters/ListTestRunQueryParams.testIds" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/PagedTestRun" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "List test runs filtered by multiple testIds.": { "$ref": "./examples/ListTestRuns_TestIds.json" }, "List test runs.": { "$ref": "./examples/ListTestRuns.json" } }, "x-ms-pageable": { "nextLinkName": "nextLink" } } }, "/test-runs/{testRunId}": { "get": { "operationId": "LoadTestRun_GetTestRun", "tags": [ "TestRun" ], "summary": "Get test run details by test run Id.", "description": "Get test run details by test run Id.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "testRunId", "in": "path", "description": "Unique test run identifier for the load test run, must contain only lower-case alphabetic, numeric, underscore or hyphen characters.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/TestRun" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Get a load test run while the run is executing.": { "$ref": "./examples/GetTestRun_Executing.json" }, "Get a load test run.": { "$ref": "./examples/GetTestRun.json" } } }, "patch": { "operationId": "LoadTestRun_CreateOrUpdateTestRun", "tags": [ "TestRun" ], "summary": "Create and start a new test run with the given test run Id.", "description": "Create and start a new test run with the given test run Id.", "consumes": [ "application/merge-patch+json" ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "testRunId", "in": "path", "description": "Unique test run identifier for the load test run, must contain only lower-case alphabetic, numeric, underscore or hyphen characters.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" }, { "$ref": "#/parameters/OldTestRunIdQueryParam" }, { "name": "body", "in": "body", "description": "The resource instance.", "required": true, "schema": { "$ref": "#/definitions/TestRunCreateOrUpdate" }, "x-ms-client-name": "resource" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/TestRun" } }, "201": { "description": "The request has succeeded and a new resource has been created as a result.", "schema": { "$ref": "#/definitions/TestRun" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Create/update and start a load test run": { "$ref": "./examples/CreateOrUpdateTestRun.json" } } }, "delete": { "operationId": "LoadTestRun_DeleteTestRun", "tags": [ "TestRun" ], "summary": "Delete an existing load test run.", "description": "Delete an existing load test run by providing the testRunId.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "testRunId", "in": "path", "description": "Unique test run identifier for the load test run, must contain only lower-case alphabetic, numeric, underscore or hyphen characters.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" } ], "responses": { "204": { "description": "There is no content to send for this request, but the headers may be useful. " }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Delete a load test run": { "$ref": "./examples/DeleteTestRun.json" } } } }, "/test-runs/{testRunId}:stop": { "post": { "operationId": "LoadTestRun_StopTestRun", "tags": [ "TestRun" ], "summary": "Stop test run by test run Id.", "description": "Stop test run by test run Id.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "testRunId", "in": "path", "description": "Unique test run identifier for the load test run, must contain only lower-case alphabetic, numeric, underscore or hyphen characters.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/TestRun" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Stop test run by name.": { "$ref": "./examples/StopTestRun.json" } } } }, "/test-runs/{testRunId}/app-components": { "get": { "operationId": "LoadTestRun_GetAppComponents", "tags": [ "TestRun" ], "summary": "Get associated app component (collection of azure resources) for the given test\nrun.", "description": "Get associated app component (collection of azure resources) for the given test\nrun.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "$ref": "#/parameters/TestRunIdParam" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/TestRunAppComponents" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Get associated app component for the given test run.": { "$ref": "./examples/ListTestRunAppComponents.json" } } }, "patch": { "operationId": "LoadTestRun_CreateOrUpdateAppComponents", "tags": [ "TestRun" ], "summary": "Add an app component to a test run.", "description": "Add an app component to a test run by providing the resource Id, name and type.", "consumes": [ "application/merge-patch+json" ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "$ref": "#/parameters/TestRunIdParam" }, { "name": "body", "in": "body", "description": "App Component model.", "required": true, "schema": { "$ref": "#/definitions/TestRunAppComponentsUpdate" } } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/TestRunAppComponents" } }, "201": { "description": "The request has succeeded and a new resource has been created as a result.", "schema": { "$ref": "#/definitions/TestRunAppComponents" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Add or update app components to a load test run": { "$ref": "./examples/CreateOrUpdateTestRunAppComponents.json" } } } }, "/test-runs/{testRunId}/files/{fileName}": { "get": { "operationId": "LoadTestRun_GetTestRunFile", "tags": [ "TestRun" ], "summary": "Get test run file by file name.", "description": "Get test run file by file name.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "testRunId", "in": "path", "description": "Unique test run identifier for the load test run, must contain only lower-case alphabetic, numeric, underscore or hyphen characters.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" }, { "name": "fileName", "in": "path", "description": "Name of the file.", "required": true, "type": "string" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/TestRunFileInfo" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Get a file associated to a load test run.": { "$ref": "./examples/GetTestRunFile.json" } } } }, "/test-runs/{testRunId}/insights/latest": { "get": { "operationId": "LoadTestRun_GetLatestInsights", "tags": [ "TestRun" ], "summary": "Get the latest insights for the test run.", "description": "Get the latest insights for the test run.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "$ref": "#/parameters/TestRunIdParam" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/TestRunInsights" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Get the latest insights for the test run.": { "$ref": "./examples/GetTestRunLatestInsights.json" } } }, "patch": { "operationId": "LoadTestRun_UpdateLatestInsights", "tags": [ "TestRun" ], "summary": "Update the latest insights for the test run.", "description": "Update the latest insights for the test run.", "consumes": [ "application/merge-patch+json" ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "$ref": "#/parameters/TestRunIdParam" }, { "name": "body", "in": "body", "description": "Test run insights model.", "required": true, "schema": { "$ref": "#/definitions/TestRunInsights" } } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/TestRunInsights" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Update the latest insights for the test run.": { "$ref": "./examples/UpdateTestRunLatestInsights.json" } } } }, "/test-runs/{testRunId}/insights:generate": { "post": { "operationId": "LoadTestRun_GenerateInsights", "tags": [ "TestRun" ], "summary": "Generate insights for the test run.", "description": "Generate insights for the test run.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "$ref": "#/parameters/TestRunIdParam" } ], "responses": { "202": { "description": "The request has been accepted for processing, but processing has not yet completed.", "schema": { "$ref": "#/definitions/OperationStatus" }, "headers": { "Operation-Location": { "type": "string", "format": "uri" } } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Generate insights for the test run.": { "$ref": "./examples/GenerateTestRunInsights.json" } }, "x-ms-long-running-operation": true } }, "/test-runs/{testRunId}/metric-definitions": { "get": { "operationId": "LoadTestRun_ListMetricDefinitions", "tags": [ "TestRun" ], "summary": "List the metric definitions for a load test run.", "description": "List the metric definitions for a load test run.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "$ref": "#/parameters/TestRunIdParam" }, { "name": "metricNamespace", "in": "query", "description": "Metric namespace to query metric definitions for.", "required": true, "type": "string" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/MetricDefinitionCollection" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "List the metric definitions for a load test run.": { "$ref": "./examples/ListTestRunMetricsDefinitions.json" } } } }, "/test-runs/{testRunId}/metric-dimensions/{name}/values": { "get": { "operationId": "LoadTestRun_ListMetricDimensionValues", "tags": [ "TestRun" ], "summary": "List the dimension values for the given metric dimension name.", "description": "List the dimension values for the given metric dimension name.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "$ref": "#/parameters/TestRunIdParam" }, { "name": "name", "in": "path", "description": "Dimension name", "required": true, "type": "string" }, { "$ref": "#/parameters/MetricDimensionsRequest.metricname" }, { "$ref": "#/parameters/MetricDimensionsRequest.interval" }, { "$ref": "#/parameters/MetricDimensionsRequest.metricNamespace" }, { "$ref": "#/parameters/MetricDimensionsRequest.timespan" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/DimensionValueList" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "List the dimension values for the given metric dimension name.": { "$ref": "./examples/ListMetricDimensionValues.json" } }, "x-ms-pageable": { "nextLinkName": "nextLink" } } }, "/test-runs/{testRunId}/metric-namespaces": { "get": { "operationId": "LoadTestRun_ListMetricNamespaces", "tags": [ "TestRun" ], "summary": "List the metric namespaces for a load test run.", "description": "List the metric namespaces for a load test run.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "$ref": "#/parameters/TestRunIdParam" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/MetricNamespaceCollection" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "List the metric namespaces for a load test run.": { "$ref": "./examples/ListTestRunMetricsNamespaces.json" } } } }, "/test-runs/{testRunId}/metrics": { "post": { "operationId": "LoadTestRun_ListMetrics", "tags": [ "TestRun" ], "summary": "List the metric values for a load test run.", "description": "List the metric values for a load test run.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "$ref": "#/parameters/TestRunIdParam" }, { "name": "aggregation", "in": "query", "description": "The aggregation", "required": false, "type": "string" }, { "$ref": "#/parameters/MetricDimensionsRequest.metricname" }, { "$ref": "#/parameters/MetricDimensionsRequest.interval" }, { "$ref": "#/parameters/MetricDimensionsRequest.metricNamespace" }, { "$ref": "#/parameters/MetricDimensionsRequest.timespan" }, { "name": "body", "in": "body", "description": "Metric dimension filter ", "required": false, "schema": { "$ref": "#/definitions/MetricRequestPayload" } } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Metrics" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "List the metric values for a load test run.": { "$ref": "./examples/ListTestRunMetrics.json" } }, "x-ms-pageable": { "nextLinkName": "nextLink" } } }, "/test-runs/{testRunId}/server-metrics-config": { "get": { "operationId": "LoadTestRun_GetServerMetricsConfig", "tags": [ "TestRun" ], "summary": "Get associated server metrics configuration for the given test run.", "description": "Get associated server metrics configuration for the given test run.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "$ref": "#/parameters/TestRunIdParam" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/TestRunServerMetricsConfiguration" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "List server metrics configuration for the given test run.": { "$ref": "./examples/ListTestRunServerMetricsConfig.json" } } }, "patch": { "operationId": "LoadTestRun_CreateOrUpdateServerMetricsConfig", "tags": [ "TestRun" ], "summary": "Configure server metrics for a test run", "description": "Configure server metrics for a test run", "consumes": [ "application/merge-patch+json" ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "$ref": "#/parameters/TestRunIdParam" }, { "name": "body", "in": "body", "description": "Server metric configuration model.", "required": true, "schema": { "$ref": "#/definitions/TestRunServerMetricsConfiguration" } } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/TestRunServerMetricsConfiguration" } }, "201": { "description": "The request has succeeded and a new resource has been created as a result.", "schema": { "$ref": "#/definitions/TestRunServerMetricsConfiguration" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Add or update server metrics configuration for a load test run": { "$ref": "./examples/CreateOrUpdateTestRunServerMetricsConfig.json" } } } }, "/tests": { "get": { "operationId": "LoadTestAdministration_ListTests", "tags": [ "Test" ], "summary": "Get all load tests by the fully qualified resource Id e.g\nsubscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.LoadTestService/loadtests/{resName}.", "description": "Get all load tests by the fully qualified resource Id e.g\nsubscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.LoadTestService/loadtests/{resName}.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "$ref": "#/parameters/ListTestQueryParams.orderby" }, { "$ref": "#/parameters/ListTestQueryParams.search" }, { "$ref": "#/parameters/ListTestQueryParams.lastModifiedStartTime" }, { "$ref": "#/parameters/ListTestQueryParams.lastModifiedEndTime" }, { "$ref": "#/parameters/ListTestQueryParams.maxpagesize" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/PagedTest" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Get all load tests.": { "$ref": "./examples/ListTests.json" } }, "x-ms-pageable": { "nextLinkName": "nextLink" } } }, "/tests/{testId}": { "get": { "operationId": "LoadTestAdministration_GetTest", "tags": [ "Test" ], "summary": "Get load test details by test Id", "description": "Get load test details by test Id", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "testId", "in": "path", "description": "Unique test identifier for the load test, must contain only lower-case alphabetic, numeric, underscore or hyphen characters.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Test" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Get a load test.": { "$ref": "./examples/GetTest.json" } } }, "patch": { "operationId": "LoadTestAdministration_CreateOrUpdateTest", "tags": [ "Test" ], "summary": "Create a new test or update an existing test by providing the test Id.", "description": "Create a new test or update an existing test by providing the test Id.", "consumes": [ "application/merge-patch+json" ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "testId", "in": "path", "description": "Unique test identifier for the load test, must contain only lower-case alphabetic, numeric, underscore or hyphen characters.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" }, { "name": "body", "in": "body", "description": "The resource instance.", "required": true, "schema": { "$ref": "#/definitions/TestCreateOrUpdate" }, "x-ms-client-name": "resource" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Test" } }, "201": { "description": "The request has succeeded and a new resource has been created as a result.", "schema": { "$ref": "#/definitions/Test" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Create or update a Locust load test": { "$ref": "./examples/CreateOrUpdateTest_Locust.json" }, "Create or update a load test": { "$ref": "./examples/CreateOrUpdateTest.json" } } }, "delete": { "operationId": "LoadTestAdministration_DeleteTest", "tags": [ "Test" ], "summary": "Delete a test by its test Id.", "description": "Delete a test by its test Id.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "testId", "in": "path", "description": "Unique test identifier for the load test, must contain only lower-case alphabetic, numeric, underscore or hyphen characters.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" } ], "responses": { "204": { "description": "There is no content to send for this request, but the headers may be useful. " }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Delete a load test": { "$ref": "./examples/DeleteTest.json" } } } }, "/tests/{testId}:clone": { "post": { "operationId": "LoadTestAdministration_CloneTest", "tags": [ "Test" ], "summary": "Clone a load test.", "description": "Clone the given test with optional overrides applied to the clone test.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "testId", "in": "path", "description": "Unique test identifier for the load test, must contain only lower-case alphabetic, numeric, underscore or hyphen characters.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" }, { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CloneTestRequest" } } ], "responses": { "202": { "description": "The request has been accepted for processing, but processing has not yet completed.", "schema": { "type": "object", "description": "Provides status details for long running operations.", "properties": { "id": { "type": "string", "description": "The unique ID of the operation." }, "status": { "$ref": "#/definitions/Azure.Core.Foundations.OperationState", "description": "The status of the operation" }, "error": { "$ref": "#/definitions/Azure.Core.Foundations.Error", "description": "Error object that describes the error when status is \"Failed\"." } }, "required": [ "id", "status" ] }, "headers": { "Operation-Location": { "type": "string", "format": "uri", "description": "The location for monitoring the operation state." } } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Clone a given load test with optional overrides.": { "$ref": "./examples/CloneTest.json" } }, "x-ms-long-running-operation": true } }, "/tests/{testId}:generateTestPlanRecommendations": { "post": { "operationId": "LoadTestAdministration_GenerateTestPlanRecommendations", "tags": [ "Test" ], "summary": "Generate load test plan recommendations.", "description": "Generate AI Recommendations to author a load test plan using the uploaded browser recording file.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "testId", "in": "path", "description": "Unique test identifier for the load test, must contain only lower-case alphabetic, numeric, underscore or hyphen characters.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" } ], "responses": { "202": { "description": "The request has been accepted for processing, but processing has not yet completed.", "schema": { "type": "object", "description": "Provides status details for long running operations.", "properties": { "id": { "type": "string", "description": "The unique ID of the operation." }, "status": { "$ref": "#/definitions/Azure.Core.Foundations.OperationState", "description": "The status of the operation" }, "error": { "$ref": "#/definitions/Azure.Core.Foundations.Error", "description": "Error object that describes the error when status is \"Failed\"." } }, "required": [ "id", "status" ] }, "headers": { "Operation-Location": { "type": "string", "format": "uri", "description": "The location for monitoring the operation state." } } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Generate recommendations for given load test.": { "$ref": "./examples/GenerateTestPlanRecommendations.json" } }, "x-ms-long-running-operation": true } }, "/tests/{testId}/app-components": { "get": { "operationId": "LoadTestAdministration_GetAppComponents", "tags": [ "Test" ], "summary": "Get associated app component (collection of azure resources) for the given test.", "description": "Get associated app component (collection of azure resources) for the given test.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "testId", "in": "path", "description": "Unique name for the load test, must contain only lower-case alphabetic,\nnumeric, underscore or hyphen characters.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/TestAppComponents" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Get associated app component for the given test.": { "$ref": "./examples/ListTestAppComponents.json" } } }, "patch": { "operationId": "LoadTestAdministration_CreateOrUpdateAppComponents", "tags": [ "Test" ], "summary": "Add an app component to a test.", "description": "Add an app component to a test by providing the resource Id, name and type.", "consumes": [ "application/merge-patch+json" ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "testId", "in": "path", "description": "Unique name for the load test, must contain only lower-case alphabetic,\nnumeric, underscore or hyphen characters.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" }, { "name": "body", "in": "body", "description": "App Component model.", "required": true, "schema": { "$ref": "#/definitions/TestAppComponentsUpdate" } } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/TestAppComponents" } }, "201": { "description": "The request has succeeded and a new resource has been created as a result.", "schema": { "$ref": "#/definitions/TestAppComponents" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Add or update app components to a load test": { "$ref": "./examples/CreateOrUpdateTestAppComponents.json" } } } }, "/tests/{testId}/files": { "get": { "operationId": "LoadTestAdministration_ListTestFiles", "tags": [ "Test" ], "summary": "Get all test files.", "description": "Get all test files.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "testId", "in": "path", "description": "Unique test identifier for the load test, must contain only lower-case alphabetic, numeric, underscore or hyphen characters.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/PagedTestFileInfo" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Get all test files.": { "$ref": "./examples/ListTestFiles.json" } }, "x-ms-pageable": { "nextLinkName": "nextLink" } } }, "/tests/{testId}/files/{fileName}": { "get": { "operationId": "LoadTestAdministration_GetTestFile", "tags": [ "Test" ], "summary": "Get all the files that are associated with a test.", "description": "Get all the files that are associated with a test.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "testId", "in": "path", "description": "Unique test identifier for the load test, must contain only lower-case alphabetic, numeric, underscore or hyphen characters.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" }, { "name": "fileName", "in": "path", "description": "Name of the file.", "required": true, "type": "string" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/TestFileInfo" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Get a file from a load test": { "$ref": "./examples/GetTestFile.json" } } }, "put": { "operationId": "LoadTestAdministration_UploadTestFile", "tags": [ "Test" ], "summary": "Upload input file for a given test Id. File size can't be more than 50 MB.\nExisting file with same name for the given test will be overwritten. File\nshould be provided in the request body as application/octet-stream.", "description": "Upload input file for a given test Id. File size can't be more than 50 MB.\nExisting file with same name for the given test will be overwritten. File\nshould be provided in the request body as application/octet-stream.", "consumes": [ "application/octet-stream" ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "testId", "in": "path", "description": "Unique name for the load test, must contain only lower-case alphabetic,\nnumeric, underscore or hyphen characters.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" }, { "name": "fileName", "in": "path", "description": "Unique name for test file with file extension like : App.jmx", "required": true, "type": "string" }, { "name": "fileType", "in": "query", "description": "File type", "required": false, "type": "string", "enum": [ "JMX_FILE", "USER_PROPERTIES", "ADDITIONAL_ARTIFACTS", "ZIPPED_ARTIFACTS", "URL_TEST_CONFIG", "TEST_SCRIPT", "BROWSER_RECORDING", "TEST_PLAN_RECOMMENDATIONS" ], "x-ms-enum": { "name": "FileType", "modelAsString": true, "values": [ { "name": "JmxFile", "value": "JMX_FILE", "description": "If the file is a JMX script." }, { "name": "UserProperties", "value": "USER_PROPERTIES", "description": "If the file is a user properties file." }, { "name": "AdditionalArtifacts", "value": "ADDITIONAL_ARTIFACTS", "description": "If the file is not among any of the other supported file types." }, { "name": "ZippedArtifacts", "value": "ZIPPED_ARTIFACTS", "description": "If the file is a compressed archive containing a collection of various artifacts or resources." }, { "name": "UrlTestConfig", "value": "URL_TEST_CONFIG", "description": "If the file is a JSON config file to define the requests for a URL test." }, { "name": "TestScript", "value": "TEST_SCRIPT", "description": "If the file is a test script." }, { "name": "BrowserRecording", "value": "BROWSER_RECORDING", "description": "If the file is a browser recording of interactions with web applications." }, { "name": "TestPlanRecommendations", "value": "TEST_PLAN_RECOMMENDATIONS", "description": "If the file is an AI Recommendations file created by the system containing recommendations to create a load test plan from browser recording." } ] } }, { "name": "body", "in": "body", "description": "The file content as application/octet-stream.", "required": true, "schema": { "type": "string", "format": "binary" } } ], "responses": { "201": { "description": "The request has succeeded and a new resource has been created as a result.", "schema": { "$ref": "#/definitions/TestFileInfo" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Upload input file for a given test name.": { "$ref": "./examples/UploadTestFile.json" } } }, "delete": { "operationId": "LoadTestAdministration_DeleteTestFile", "tags": [ "Test" ], "summary": "Delete file by the file name for a test", "description": "Delete file by the file name for a test", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "testId", "in": "path", "description": "Unique test identifier for the load test, must contain only lower-case alphabetic, numeric, underscore or hyphen characters.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" }, { "name": "fileName", "in": "path", "description": "Name of the file.", "required": true, "type": "string" } ], "responses": { "204": { "description": "There is no content to send for this request, but the headers may be useful. " }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Delete a file from a load test": { "$ref": "./examples/DeleteTestFile.json" } } } }, "/tests/{testId}/server-metrics-config": { "get": { "operationId": "LoadTestAdministration_GetServerMetricsConfig", "tags": [ "Test" ], "summary": "List server metrics configuration for the given test.", "description": "List server metrics configuration for the given test.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "testId", "in": "path", "description": "Unique name for the load test, must contain only lower-case alphabetic,\nnumeric, underscore or hyphen characters.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/TestServerMetricsConfiguration" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "List server metrics configuration for the given test.": { "$ref": "./examples/ListTestServerMetricsConfig.json" } } }, "patch": { "operationId": "LoadTestAdministration_CreateOrUpdateServerMetricsConfig", "tags": [ "Test" ], "summary": "Configure server metrics for a test", "description": "Configure server metrics for a test", "consumes": [ "application/merge-patch+json" ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "testId", "in": "path", "description": "Unique name for the load test, must contain only lower-case alphabetic,\nnumeric, underscore or hyphen characters.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" }, { "name": "body", "in": "body", "description": "Server metric configuration model.", "required": true, "schema": { "$ref": "#/definitions/TestServerMetricsConfigurationUpdate" } } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/TestServerMetricsConfiguration" } }, "201": { "description": "The request has succeeded and a new resource has been created as a result.", "schema": { "$ref": "#/definitions/TestServerMetricsConfiguration" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Add or update server metrics configuration for a load test.": { "$ref": "./examples/CreateOrUpdateTestServerMetricsConfig.json" } } } }, "/triggers": { "get": { "operationId": "TriggerAdministration_ListTriggers", "tags": [ "Trigger" ], "summary": "Get all triggers for the given filters.", "description": "Get all triggers for the given filters.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "$ref": "#/parameters/ListTriggerQueryParams.testIds" }, { "$ref": "#/parameters/ListTriggerQueryParams.states" }, { "$ref": "#/parameters/ListTriggerQueryParams.lastModifiedStartTime" }, { "$ref": "#/parameters/ListTriggerQueryParams.lastModifiedEndTime" }, { "$ref": "#/parameters/ListTriggerQueryParams.maxpagesize" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/PagedTrigger" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Get all triggers for the specified filters.": { "$ref": "./examples/ListTriggers.json" } }, "x-ms-pageable": { "nextLinkName": "nextLink" } } }, "/triggers/{triggerId}": { "get": { "operationId": "TriggerAdministration_GetTrigger", "tags": [ "Trigger" ], "summary": "Get trigger details by trigger Id.", "description": "Get trigger details by trigger Id.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "triggerId", "in": "path", "description": "The unique identifier of the trigger.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Trigger" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Get a trigger.": { "$ref": "./examples/GetTrigger.json" } } }, "patch": { "operationId": "TriggerAdministration_CreateOrUpdateTrigger", "tags": [ "Trigger" ], "summary": "Create a new trigger or update an existing trigger.", "description": "Create a new trigger or update an existing trigger by providing the trigger Id.", "consumes": [ "application/merge-patch+json" ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "triggerId", "in": "path", "description": "The unique identifier of the trigger.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" }, { "name": "body", "in": "body", "description": "The resource instance.", "required": true, "schema": { "$ref": "#/definitions/TriggerCreateOrUpdate" }, "x-ms-client-name": "resource" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Trigger" } }, "201": { "description": "The request has succeeded and a new resource has been created as a result.", "schema": { "$ref": "#/definitions/Trigger" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Create or update a trigger.": { "$ref": "./examples/CreateOrUpdateTrigger.json" } } }, "delete": { "operationId": "TriggerAdministration_DeleteTrigger", "tags": [ "Trigger" ], "summary": "Delete a trigger by its trigger Id.", "description": "Delete a trigger by its trigger Id.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "triggerId", "in": "path", "description": "The unique identifier of the trigger.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$" } ], "responses": { "204": { "description": "There is no content to send for this request, but the headers may be useful. " }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" }, "headers": { "x-ms-error-code": { "type": "string", "description": "String error code indicating what went wrong." } } } }, "x-ms-examples": { "Delete a trigger": { "$ref": "./examples/DeleteTrigger.json" } } } } }, "definitions": { "Aggregation": { "type": "string", "description": "Aggregation type.", "enum": [ "Average", "Count", "None", "Total", "Percentile75", "Percentile90", "Percentile95", "Percentile96", "Percentile97", "Percentile98", "Percentile99", "Percentile999", "Percentile9999" ], "x-ms-enum": { "name": "Aggregation", "modelAsString": true, "values": [ { "name": "Average", "value": "Average", "description": "Average value." }, { "name": "Count", "value": "Count", "description": "Total count." }, { "name": "None", "value": "None", "description": "Aggregation will be average in this case." }, { "name": "Total", "value": "Total", "description": "Total sum." }, { "name": "Percentile75", "value": "Percentile75", "description": "75th percentile." }, { "name": "Percentile90", "value": "Percentile90", "description": "90th percentile." }, { "name": "Percentile95", "value": "Percentile95", "description": "95th percentile." }, { "name": "Percentile96", "value": "Percentile96", "description": "96th percentile." }, { "name": "Percentile97", "value": "Percentile97", "description": "97th percentile." }, { "name": "Percentile98", "value": "Percentile98", "description": "98th percentile." }, { "name": "Percentile99", "value": "Percentile99", "description": "99th percentile." }, { "name": "Percentile999", "value": "Percentile999", "description": "99.9th percentile." }, { "name": "Percentile9999", "value": "Percentile9999", "description": "99.99th percentile." } ] } }, "AppComponent": { "type": "object", "description": "An Azure resource object (Refer azure generic resource model :https://learn.microsoft.com/en-us/rest/api/resources/resources/get-by-id#genericresource)", "properties": { "resourceId": { "type": "string", "format": "arm-id", "description": "fully qualified resource Id e.g subscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.LoadTestService/loadtests/{resName}", "readOnly": true }, "resourceName": { "type": "string", "description": "Azure resource name, required while creating the app component." }, "resourceType": { "type": "string", "description": "Azure resource type, required while creating the app component." }, "displayName": { "type": "string", "description": "Azure resource display name" }, "resourceGroup": { "type": "string", "description": "Resource group name of the Azure resource", "readOnly": true }, "subscriptionId": { "type": "string", "description": "Subscription Id of the Azure resource", "readOnly": true }, "kind": { "type": "string", "description": "Kind of Azure resource type" } }, "required": [ "resourceId", "resourceName", "resourceType" ] }, "AppComponentUpdate": { "type": "object", "description": "An Azure resource object (Refer azure generic resource model :https://learn.microsoft.com/en-us/rest/api/resources/resources/get-by-id#genericresource)", "properties": { "resourceName": { "type": "string", "description": "Azure resource name, required while creating the app component." }, "resourceType": { "type": "string", "description": "Azure resource type, required while creating the app component." }, "displayName": { "type": "string", "description": "Azure resource display name" }, "kind": { "type": "string", "description": "Kind of Azure resource type" } } }, "ArtifactsContainerInfo": { "type": "object", "description": "Artifacts container info.", "properties": { "url": { "type": "string", "format": "uri", "description": "This is a SAS URI to an Azure Storage Container that contains the test run artifacts." }, "expireDateTime": { "type": "string", "format": "date-time", "description": "Expiry time of the container (RFC 3339 literal format)" } } }, "AutoStopCriteria": { "type": "object", "description": "Auto stop criteria for a test. This will automatically stop a load test if the error percentage is high for a certain time window.", "properties": { "autoStopDisabled": { "type": "boolean", "description": "Whether auto-stop should be disabled. The default value is false.", "default": false }, "errorRate": { "type": "number", "format": "float", "description": "Threshold percentage of errors on which test run should be automatically stopped. Allowed values are in range of 0.0-100.0", "default": 90 }, "errorRateTimeWindowInSeconds": { "type": "integer", "format": "int32", "description": "Time window during which the error percentage should be evaluated in seconds.", "default": 60 }, "maximumVirtualUsersPerEngine": { "type": "integer", "format": "int32", "description": "Maximum number of virtual users per load testing engine, at which the test run should be automatically stopped.", "default": 5000 } } }, "Azure.Core.Foundations.Error": { "type": "object", "description": "The error object.", "properties": { "code": { "type": "string", "description": "One of a server-defined set of error codes." }, "message": { "type": "string", "description": "A human-readable representation of the error." }, "target": { "type": "string", "description": "The target of the error." }, "details": { "type": "array", "description": "An array of details about specific errors that led to this reported error.", "items": { "$ref": "#/definitions/Azure.Core.Foundations.Error" } }, "innererror": { "$ref": "#/definitions/Azure.Core.Foundations.InnerError", "description": "An object containing more specific information than the current object about the error." } }, "required": [ "code", "message" ] }, "Azure.Core.Foundations.ErrorResponse": { "type": "object", "description": "A response containing error details.", "properties": { "error": { "$ref": "#/definitions/Azure.Core.Foundations.Error", "description": "The error object." } }, "required": [ "error" ] }, "Azure.Core.Foundations.InnerError": { "type": "object", "description": "An object containing more specific information about the error. As per Azure REST API guidelines - https://aka.ms/AzureRestApiGuidelines#handling-errors.", "properties": { "code": { "type": "string", "description": "One of a server-defined set of error codes." }, "innererror": { "$ref": "#/definitions/Azure.Core.Foundations.InnerError", "description": "Inner error." } } }, "Azure.Core.Foundations.OperationState": { "type": "string", "description": "Enum describing allowed operation states.", "enum": [ "NotStarted", "Running", "Succeeded", "Failed", "Canceled" ], "x-ms-enum": { "name": "OperationState", "modelAsString": true, "values": [ { "name": "NotStarted", "value": "NotStarted", "description": "The operation has not started." }, { "name": "Running", "value": "Running", "description": "The operation is in progress." }, { "name": "Succeeded", "value": "Succeeded", "description": "The operation has completed successfully." }, { "name": "Failed", "value": "Failed", "description": "The operation has failed." }, { "name": "Canceled", "value": "Canceled", "description": "The operation has been canceled by the user." } ] } }, "Azure.Core.azureLocation": { "type": "string", "description": "Represents an Azure geography region where supported resource providers live." }, "CertificateMetadata": { "type": "object", "description": "Certificates metadata", "properties": { "value": { "type": "string", "description": "The value of the certificate for respective type" }, "type": { "$ref": "#/definitions/CertificateType", "description": "Type of certificate" }, "name": { "type": "string", "description": "Name of the certificate." } } }, "CertificateType": { "type": "string", "description": "Types of certificates supported.", "enum": [ "AKV_CERT_URI" ], "x-ms-enum": { "name": "CertificateType", "modelAsString": true, "values": [ { "name": "KeyVaultCertificateUri", "value": "AKV_CERT_URI", "description": "If the certificate is stored in an Azure Key Vault." } ] } }, "CloneTestRequest": { "type": "object", "description": "Request to clone an existing test into a new test.", "properties": { "newTestId": { "type": "string", "description": "Unique identifier for the new test that will be created.", "pattern": "^[a-z0-9_-]*$" }, "displayName": { "type": "string", "description": "Display Name override for the newly created test.", "minLength": 2, "maxLength": 50 }, "description": { "type": "string", "description": "Description override for the newly created test.", "maxLength": 100 } }, "required": [ "newTestId" ] }, "CreatedByType": { "type": "string", "description": "The type of the entity that created the test run. (E.x. User, ScheduleTrigger, etc).", "enum": [ "User", "ScheduledTrigger", "AzurePipelines", "GitHubWorkflows" ], "x-ms-enum": { "name": "CreatedByType", "modelAsString": true, "values": [ { "name": "User", "value": "User", "description": "Entity was created by a user." }, { "name": "ScheduledTrigger", "value": "ScheduledTrigger", "description": "Entity was created by a scheduled trigger." }, { "name": "AzurePipelines", "value": "AzurePipelines", "description": "Entity was created by Azure DevOps pipelines." }, { "name": "GitHubWorkflows", "value": "GitHubWorkflows", "description": "Entity was created by GitHub Workflows." } ] } }, "DailyRecurrence": { "type": "object", "description": "Recurrence model when frequency is set as Daily.", "properties": { "interval": { "type": "integer", "format": "int32", "description": "The interval at which the recurrence should repeat. It signifies the number of days between each recurrence." } }, "required": [ "interval" ], "allOf": [ { "$ref": "#/definitions/Recurrence" } ], "x-ms-discriminator-value": "Daily" }, "DailyRecurrenceCreateOrUpdate": { "type": "object", "description": "Recurrence model when frequency is set as Daily.", "properties": { "interval": { "type": "integer", "format": "int32", "description": "The interval at which the recurrence should repeat. It signifies the number of days between each recurrence." } }, "allOf": [ { "$ref": "#/definitions/RecurrenceCreateOrUpdate" } ], "x-ms-discriminator-value": "Daily" }, "DimensionFilter": { "type": "object", "description": "Dimension name and values to filter", "properties": { "name": { "type": "string", "description": "The dimension name" }, "values": { "type": "array", "description": "The dimension values. Maximum values can be 20.", "items": { "type": "string" } } } }, "DimensionValue": { "type": "object", "description": "Represents a metric dimension value.", "properties": { "name": { "type": "string", "description": "The name of the dimension." }, "value": { "type": "string", "description": "The value of the dimension." } } }, "DimensionValueList": { "type": "object", "description": "Metrics dimension values.", "properties": { "name": { "type": "string", "description": "The dimension name", "readOnly": true }, "value": { "type": "array", "description": "The dimension value", "items": { "type": "string" } }, "nextLink": { "type": "string", "format": "uri", "description": "Link for the next set of values in case of paginated results, if applicable." } } }, "ErrorDetails": { "type": "object", "description": "Error details if there is any failure in load test run", "properties": { "code": { "type": "string", "description": "Error code if there is any failure in load test run.", "readOnly": true }, "message": { "type": "string", "description": "Error details in case test run was not successfully run.", "readOnly": true }, "properties": { "type": "object", "description": "A dictionary for storing additional error information for better context. Each key is a property name (e.g., \"Description\", \"Resolution\", \"Category\", \"Region\"), and its value is an array of strings with relevant details.", "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "readOnly": true } } }, "FileType": { "type": "string", "description": "Types of file supported.", "enum": [ "JMX_FILE", "USER_PROPERTIES", "ADDITIONAL_ARTIFACTS", "ZIPPED_ARTIFACTS", "URL_TEST_CONFIG", "TEST_SCRIPT", "BROWSER_RECORDING", "TEST_PLAN_RECOMMENDATIONS" ], "x-ms-enum": { "name": "FileType", "modelAsString": true, "values": [ { "name": "JmxFile", "value": "JMX_FILE", "description": "If the file is a JMX script." }, { "name": "UserProperties", "value": "USER_PROPERTIES", "description": "If the file is a user properties file." }, { "name": "AdditionalArtifacts", "value": "ADDITIONAL_ARTIFACTS", "description": "If the file is not among any of the other supported file types." }, { "name": "ZippedArtifacts", "value": "ZIPPED_ARTIFACTS", "description": "If the file is a compressed archive containing a collection of various artifacts or resources." }, { "name": "UrlTestConfig", "value": "URL_TEST_CONFIG", "description": "If the file is a JSON config file to define the requests for a URL test." }, { "name": "TestScript", "value": "TEST_SCRIPT", "description": "If the file is a test script." }, { "name": "BrowserRecording", "value": "BROWSER_RECORDING", "description": "If the file is a browser recording of interactions with web applications." }, { "name": "TestPlanRecommendations", "value": "TEST_PLAN_RECOMMENDATIONS", "description": "If the file is an AI Recommendations file created by the system containing recommendations to create a load test plan from browser recording." } ] } }, "FileValidationStatus": { "type": "string", "description": "File status.", "enum": [ "NOT_VALIDATED", "VALIDATION_SUCCESS", "VALIDATION_FAILURE", "VALIDATION_INITIATED", "VALIDATION_NOT_REQUIRED" ], "x-ms-enum": { "name": "FileValidationStatus", "modelAsString": true, "values": [ { "name": "NotValidated", "value": "NOT_VALIDATED", "description": "File is not validated." }, { "name": "ValidationSuccess", "value": "VALIDATION_SUCCESS", "description": "File is validated." }, { "name": "ValidationFailure", "value": "VALIDATION_FAILURE", "description": "File validation is failed." }, { "name": "ValidationInitiated", "value": "VALIDATION_INITIATED", "description": "File validation is in progress." }, { "name": "ValidationNotRequired", "value": "VALIDATION_NOT_REQUIRED", "description": "Validation is not required." } ] } }, "Frequency": { "type": "string", "description": "Frequency of recurrence for a trigger.", "enum": [ "Cron", "Hourly", "Daily", "Weekly", "MonthlyByDays", "MonthlyByDates" ], "x-ms-enum": { "name": "Frequency", "modelAsString": true, "values": [ { "name": "Cron", "value": "Cron", "description": "Recurrence defined by a cron expression." }, { "name": "Hourly", "value": "Hourly", "description": "Recurrence defined on an hourly basis, as specified by HourlyRecurrence." }, { "name": "Daily", "value": "Daily", "description": "Recurrence defined on a daily basis, as specified by DailyRecurrence." }, { "name": "Weekly", "value": "Weekly", "description": "Recurrence defined on a weekly basis, as specified by WeeklyRecurrence." }, { "name": "MonthlyByDays", "value": "MonthlyByDays", "description": "Recurrence defined monthly on specific days, as specified by MonthlyRecurrenceByWeekDays." }, { "name": "MonthlyByDates", "value": "MonthlyByDates", "description": "Recurrence defined monthly on specific dates, as specified by MonthlyRecurrenceByDates." } ] } }, "HourlyRecurrence": { "type": "object", "description": "Recurrence model when frequency is set as Hourly.", "properties": { "interval": { "type": "integer", "format": "int32", "description": "The interval at which the recurrence should repeat. It signifies the number of hours between each recurrence." } }, "required": [ "interval" ], "allOf": [ { "$ref": "#/definitions/Recurrence" } ], "x-ms-discriminator-value": "Hourly" }, "HourlyRecurrenceCreateOrUpdate": { "type": "object", "description": "Recurrence model when frequency is set as Hourly.", "properties": { "interval": { "type": "integer", "format": "int32", "description": "The interval at which the recurrence should repeat. It signifies the number of hours between each recurrence." } }, "allOf": [ { "$ref": "#/definitions/RecurrenceCreateOrUpdate" } ], "x-ms-discriminator-value": "Hourly" }, "LoadTestConfiguration": { "type": "object", "description": "Configurations for the load test.", "properties": { "engineInstances": { "type": "integer", "format": "int32", "description": "The number of engine instances to execute load test. Supported values are in range of 1-400. Required for creating a new test." }, "splitAllCSVs": { "type": "boolean", "description": "If false, Azure Load Testing copies and processes your input files unmodified\nacross all test engine instances. If true, Azure Load Testing splits the CSV\ninput data evenly across all engine instances. If you provide multiple CSV\nfiles, each file will be split evenly.", "default": false }, "quickStartTest": { "type": "boolean", "description": "If true, optionalLoadTestConfig is required and JMX script for the load test is\nnot required to upload.", "default": false }, "optionalLoadTestConfig": { "$ref": "#/definitions/OptionalLoadTestConfiguration", "description": "Configuration for quick load test" }, "regionalLoadTestConfig": { "type": "array", "description": "Region distribution configuration for the load test.", "items": { "$ref": "#/definitions/RegionalConfiguration" } } } }, "ManagedIdentityType": { "type": "string", "description": "Managed identity type.", "enum": [ "SystemAssigned", "UserAssigned" ], "x-ms-enum": { "name": "ManagedIdentityType", "modelAsString": true, "values": [ { "name": "SystemAssigned", "value": "SystemAssigned", "description": "System-assigned managed identity." }, { "name": "UserAssigned", "value": "UserAssigned", "description": "User-assigned managed identity." } ] } }, "MetricAvailability": { "type": "object", "description": "Metric availability specifies the time grain (aggregation interval or frequency)", "properties": { "timeGrain": { "$ref": "#/definitions/TimeGrain", "description": "The time grain specifies the aggregation interval for the metric. Expressed as\na duration 'PT1M', 'PT1H', etc." } } }, "MetricDefinition": { "type": "object", "description": "Metric definition", "properties": { "dimensions": { "type": "array", "description": "List of dimensions", "items": { "$ref": "#/definitions/NameAndDescription" } }, "description": { "type": "string", "description": "The metric description" }, "name": { "type": "string", "description": "The metric name" }, "namespace": { "type": "string", "description": "The namespace the metric belongs to." }, "primaryAggregationType": { "$ref": "#/definitions/Aggregation", "description": "The primary aggregation type value defining how to use the values for display." }, "supportedAggregationTypes": { "type": "array", "description": "The collection of what all aggregation types are supported.", "items": { "type": "string" } }, "unit": { "$ref": "#/definitions/MetricUnit", "description": "The unit of the metric." }, "metricAvailabilities": { "type": "array", "description": "Metric availability specifies the time grain (aggregation interval or\nfrequency).", "items": { "$ref": "#/definitions/MetricAvailability" } } } }, "MetricDefinitionCollection": { "type": "object", "description": "Represents collection of metric definitions.", "properties": { "value": { "type": "array", "description": "the values for the metric definitions.", "items": { "$ref": "#/definitions/MetricDefinition" } } }, "required": [ "value" ] }, "MetricNamespace": { "type": "object", "description": "Metric namespace class specifies the metadata for a metric namespace.", "properties": { "description": { "type": "string", "description": "The namespace description." }, "name": { "type": "string", "description": "The metric namespace name." } } }, "MetricNamespaceCollection": { "type": "object", "description": "Represents collection of metric namespaces.", "properties": { "value": { "type": "array", "description": "The values for the metric namespaces.", "items": { "$ref": "#/definitions/MetricNamespace" } } }, "required": [ "value" ] }, "MetricRequestPayload": { "type": "object", "description": "Filters to fetch the set of metric.", "properties": { "filters": { "type": "array", "description": "Get metrics for specific dimension values. Example: Metric contains dimension\nlike SamplerName, Error. To retrieve all the time series data where SamplerName\nis equals to HTTPRequest1 or HTTPRequest2, the DimensionFilter value will be\n{\"SamplerName\", [\"HTTPRequest1\", \"HTTPRequest2\"}", "items": { "$ref": "#/definitions/DimensionFilter" } } } }, "MetricUnit": { "type": "string", "description": "Metric unit.", "enum": [ "NotSpecified", "Percent", "Count", "Seconds", "Milliseconds", "Bytes", "BytesPerSecond", "CountPerSecond" ], "x-ms-enum": { "name": "MetricUnit", "modelAsString": true, "values": [ { "name": "NotSpecified", "value": "NotSpecified", "description": "No unit specified." }, { "name": "Percent", "value": "Percent", "description": "Percentage." }, { "name": "Count", "value": "Count", "description": "Value count." }, { "name": "Seconds", "value": "Seconds", "description": "Seconds." }, { "name": "Milliseconds", "value": "Milliseconds", "description": "Milliseconds" }, { "name": "Bytes", "value": "Bytes", "description": "Bytes" }, { "name": "BytesPerSecond", "value": "BytesPerSecond", "description": "Bytes per second" }, { "name": "CountPerSecond", "value": "CountPerSecond", "description": "Count per second" } ] } }, "MetricValue": { "type": "object", "description": "Represents a metric value.", "properties": { "timestamp": { "type": "string", "format": "date-time", "description": "The timestamp for the metric value in RFC 3339 format." }, "value": { "type": "number", "format": "double", "description": "The metric value." } } }, "Metrics": { "type": "object", "description": "The response to a metrics query.", "properties": { "value": { "type": "array", "description": "The TimeSeriesElement items on this page", "items": { "$ref": "#/definitions/TimeSeriesElement" } }, "nextLink": { "type": "string", "format": "uri", "description": "The link to the next page of items" } }, "required": [ "value" ] }, "MonthlyRecurrenceByDates": { "type": "object", "description": "Recurrence model when frequency is set as MonthlyByDates.", "properties": { "datesInMonth": { "type": "array", "description": "Recurrence set to repeat on the specified dates of the month. Value of dates can be 1 to 31 and -1. -1 represents the last day of the month.", "items": { "type": "integer", "format": "int32" } }, "interval": { "type": "integer", "format": "int32", "description": "The interval at which the recurrence should repeat. It signifies the number of months between each recurrence." } }, "allOf": [ { "$ref": "#/definitions/Recurrence" } ], "x-ms-discriminator-value": "MonthlyByDates" }, "MonthlyRecurrenceByDatesCreateOrUpdate": { "type": "object", "description": "Recurrence model when frequency is set as MonthlyByDates.", "properties": { "datesInMonth": { "type": "array", "description": "Recurrence set to repeat on the specified dates of the month. Value of dates can be 1 to 31 and -1. -1 represents the last day of the month.", "items": { "type": "integer", "format": "int32" } }, "interval": { "type": "integer", "format": "int32", "description": "The interval at which the recurrence should repeat. It signifies the number of months between each recurrence." } }, "allOf": [ { "$ref": "#/definitions/RecurrenceCreateOrUpdate" } ], "x-ms-discriminator-value": "MonthlyByDates" }, "MonthlyRecurrenceByWeekDays": { "type": "object", "description": "Recurrence model when frequency is set as MonthlyByDays .", "properties": { "weekDaysInMonth": { "type": "array", "description": "Specific days of the week when the recurrence should repeat.", "items": { "$ref": "#/definitions/WeekDays" } }, "index": { "type": "integer", "format": "int32", "description": "Index of the week in a month at which the recurrence should repeat. For example, if the index is '2', weekDay is 'Monday', interval is 3 and frequency is 'Month', the recurrence will run every second Monday of the month and repeat every 3 months. Value of index can be 1 to 5.", "minimum": 1, "maximum": 5 }, "interval": { "type": "integer", "format": "int32", "description": "The interval at which the recurrence should repeat. It signifies the number of months between each recurrence." } }, "required": [ "index", "interval" ], "allOf": [ { "$ref": "#/definitions/Recurrence" } ], "x-ms-discriminator-value": "MonthlyByDays" }, "MonthlyRecurrenceByWeekDaysCreateOrUpdate": { "type": "object", "description": "Recurrence model when frequency is set as MonthlyByDays .", "properties": { "weekDaysInMonth": { "type": "array", "description": "Specific days of the week when the recurrence should repeat.", "items": { "$ref": "#/definitions/WeekDays" } }, "index": { "type": "integer", "format": "int32", "description": "Index of the week in a month at which the recurrence should repeat. For example, if the index is '2', weekDay is 'Monday', interval is 3 and frequency is 'Month', the recurrence will run every second Monday of the month and repeat every 3 months. Value of index can be 1 to 5.", "minimum": 1, "maximum": 5 }, "interval": { "type": "integer", "format": "int32", "description": "The interval at which the recurrence should repeat. It signifies the number of months between each recurrence." } }, "allOf": [ { "$ref": "#/definitions/RecurrenceCreateOrUpdate" } ], "x-ms-discriminator-value": "MonthlyByDays" }, "NameAndDescription": { "type": "object", "description": "The name and description", "properties": { "description": { "type": "string", "description": "The description" }, "name": { "type": "string", "description": "The name" } } }, "NotificationEventType": { "type": "string", "description": "Notification event type.", "enum": [ "TestRunEnded", "TestRunStarted", "TriggerCompleted", "TriggerDisabled" ], "x-ms-enum": { "name": "NotificationEventType", "modelAsString": true, "values": [ { "name": "TestRunEnded", "value": "TestRunEnded", "description": "Test run ended event. This event would occur when a test run reaches terminal state." }, { "name": "TestRunStarted", "value": "TestRunStarted", "description": "Test run started event. This event would occur when a new test run is triggered." }, { "name": "TriggerCompleted", "value": "TriggerCompleted", "description": "Trigger completed event. This event would occur when a trigger completes." }, { "name": "TriggerDisabled", "value": "TriggerDisabled", "description": "Trigger disabled event. This event would occur when a trigger is disabled." } ] } }, "NotificationRule": { "type": "object", "description": "Notification rule model.", "properties": { "notificationRuleId": { "type": "string", "description": "The unique identifier of the notification rule.", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$", "readOnly": true }, "displayName": { "type": "string", "description": "The name of the notification rule.", "minLength": 2, "maxLength": 50 }, "actionGroupIds": { "type": "array", "description": "The action groups to notify.", "items": { "type": "string" } }, "scope": { "$ref": "#/definitions/NotificationScopeType", "description": "The scope of the notification rule." }, "createdDateTime": { "type": "string", "format": "date-time", "description": "The creation datetime(RFC 3339 literal format).", "readOnly": true }, "createdBy": { "type": "string", "description": "The user that created.", "readOnly": true }, "lastModifiedDateTime": { "type": "string", "format": "date-time", "description": "The last Modified datetime(RFC 3339 literal format).", "readOnly": true }, "lastModifiedBy": { "type": "string", "description": "The user that last modified.", "readOnly": true } }, "discriminator": "scope", "required": [ "notificationRuleId", "displayName", "actionGroupIds", "scope" ] }, "NotificationRuleCreateOrUpdate": { "type": "object", "description": "Notification rule model.", "properties": { "displayName": { "type": "string", "description": "The name of the notification rule.", "minLength": 2, "maxLength": 50 }, "actionGroupIds": { "type": "array", "description": "The action groups to notify.", "items": { "type": "string" } }, "scope": { "$ref": "#/definitions/NotificationScopeType", "description": "The scope of the notification rule." } }, "discriminator": "scope", "required": [ "scope" ] }, "NotificationScopeType": { "type": "string", "description": "Scope type of a notification rule.", "enum": [ "Tests" ], "x-ms-enum": { "name": "NotificationScopeType", "modelAsString": true, "values": [ { "name": "Tests", "value": "Tests", "description": "Notification rule is for Tests." } ] } }, "OperationKind": { "type": "string", "description": "Kind of the long running operation.", "enum": [ "CloneTest", "GenerateTestRunInsights", "TestPlanRecommendations" ], "x-ms-enum": { "name": "OperationKind", "modelAsString": true, "values": [ { "name": "CloneTest", "value": "CloneTest", "description": "Operation represents a clone test operation" }, { "name": "GenerateTestRunInsights", "value": "GenerateTestRunInsights", "description": "Operation represents a test run insights generation operation" }, { "name": "TestPlanRecommendations", "value": "TestPlanRecommendations", "description": "Operation represents a test plan recommendations generation operation" } ] } }, "OperationStatus": { "type": "object", "description": "Status of a long running operation.", "properties": { "id": { "type": "string", "description": "The unique ID of the operation.", "readOnly": true }, "status": { "$ref": "#/definitions/Azure.Core.Foundations.OperationState", "description": "The state of the operation." }, "kind": { "$ref": "#/definitions/OperationKind", "description": "The kind of the operation." }, "error": { "$ref": "#/definitions/Azure.Core.Foundations.Error", "description": "Error object that describes the error when status is \"Failed\"." } }, "required": [ "id", "status", "kind" ] }, "OptionalLoadTestConfiguration": { "type": "object", "description": "Configuration for quick load test", "properties": { "endpointUrl": { "type": "string", "description": "Test URL. Provide the complete HTTP URL. For example, https://contoso-app.azurewebsites.net/login" }, "requestsPerSecond": { "type": "integer", "format": "int32", "description": "Target throughput (requests per second). This may not be necessarily achieved. The actual throughput will be lower if the application is not capable of handling it." }, "maxResponseTimeInMs": { "type": "integer", "format": "int32", "description": "Maximum response time in milliseconds of the API/endpoint." }, "virtualUsers": { "type": "integer", "format": "int32", "description": "No of concurrent virtual users." }, "rampUpTime": { "type": "integer", "format": "int32", "description": "Ramp up time in seconds." }, "duration": { "type": "integer", "format": "int32", "description": "Test run duration in seconds." } } }, "PFMetrics": { "type": "string", "description": "Metrics for pass/fail criteria.", "enum": [ "response_time_ms", "latency", "error", "requests", "requests_per_sec" ], "x-ms-enum": { "name": "PFMetrics", "modelAsString": true, "values": [ { "name": "ResponseTimeInMilliseconds", "value": "response_time_ms", "description": "Pass fail criteria for response time metric in milliseconds." }, { "name": "Latency", "value": "latency", "description": "Pass fail criteria for latency metric in milliseconds." }, { "name": "Error", "value": "error", "description": "Pass fail criteria for error metric." }, { "name": "Requests", "value": "requests", "description": "Pass fail criteria for total requests." }, { "name": "RequestsPerSecond", "value": "requests_per_sec", "description": "Pass fail criteria for request per second." } ] } }, "PagedNotificationRule": { "type": "object", "description": "Paged collection of NotificationRule items", "properties": { "value": { "type": "array", "description": "The NotificationRule items on this page", "items": { "$ref": "#/definitions/NotificationRule" } }, "nextLink": { "type": "string", "format": "uri", "description": "The link to the next page of items" } }, "required": [ "value" ] }, "PagedTest": { "type": "object", "description": "Paged collection of Test items", "properties": { "value": { "type": "array", "description": "The Test items on this page", "items": { "$ref": "#/definitions/Test" } }, "nextLink": { "type": "string", "format": "uri", "description": "The link to the next page of items" } }, "required": [ "value" ] }, "PagedTestFileInfo": { "type": "object", "description": "Paged collection of TestFileInfo items", "properties": { "value": { "type": "array", "description": "The TestFileInfo items on this page", "items": { "$ref": "#/definitions/TestFileInfo" } }, "nextLink": { "type": "string", "format": "uri", "description": "The link to the next page of items" } }, "required": [ "value" ] }, "PagedTestRun": { "type": "object", "description": "Paged collection of TestRun items", "properties": { "value": { "type": "array", "description": "The TestRun items on this page", "items": { "$ref": "#/definitions/TestRun" } }, "nextLink": { "type": "string", "format": "uri", "description": "The link to the next page of items" } }, "required": [ "value" ] }, "PagedTrigger": { "type": "object", "description": "Paged collection of Trigger items", "properties": { "value": { "type": "array", "description": "The Trigger items on this page", "items": { "$ref": "#/definitions/Trigger" } }, "nextLink": { "type": "string", "format": "uri", "description": "The link to the next page of items" } }, "required": [ "value" ] }, "PassFailAggregationFunction": { "type": "string", "description": "Aggregation functions for pass/fail criteria.", "enum": [ "count", "percentage", "avg", "p50", "p75", "p90", "p95", "p96", "p97", "p98", "p99", "p99.9", "p99.99", "min", "max" ], "x-ms-enum": { "name": "PassFailAggregationFunction", "modelAsString": true, "values": [ { "name": "Count", "value": "count", "description": "Criteria applies for count value." }, { "name": "Percentage", "value": "percentage", "description": "Criteria applies for given percentage value." }, { "name": "Average", "value": "avg", "description": "Criteria applies for avg value." }, { "name": "Percentile50", "value": "p50", "description": "Criteria applies for 50th percentile value." }, { "name": "Percentile75", "value": "p75", "description": "Criteria applies for 75th percentile value." }, { "name": "Percentile90", "value": "p90", "description": "Criteria applies for 90th percentile value." }, { "name": "Percentile95", "value": "p95", "description": "Criteria applies for 95th percentile value." }, { "name": "Percentile96", "value": "p96", "description": "Criteria applies for 96th percentile value." }, { "name": "Percentile97", "value": "p97", "description": "Criteria applies for 97th percentile value." }, { "name": "Percentile98", "value": "p98", "description": "Criteria applies for 98th percentile value." }, { "name": "Percentile99", "value": "p99", "description": "Criteria applies for 99th percentile value." }, { "name": "Percentile999", "value": "p99.9", "description": "Criteria applies for 99.9th percentile value." }, { "name": "Percentile9999", "value": "p99.99", "description": "Criteria applies for 99.99th percentile value." }, { "name": "Minimum", "value": "min", "description": "Criteria applies for minimum value." }, { "name": "Maximum", "value": "max", "description": "Criteria applies for maximum value." } ] } }, "PassFailCriteria": { "type": "object", "description": "Pass fail criteria for a test.", "properties": { "passFailMetrics": { "type": "object", "description": "Map of id and pass fail metrics { id : pass fail metrics }.", "additionalProperties": { "$ref": "#/definitions/PassFailMetric" } }, "passFailServerMetrics": { "type": "object", "description": "Map of id and pass fail server metrics { id : pass fail metrics }.", "additionalProperties": { "$ref": "#/definitions/PassFailServerMetric" } } } }, "PassFailMetric": { "type": "object", "description": "Pass fail metric", "properties": { "clientMetric": { "$ref": "#/definitions/PFMetrics", "description": "The client metric on which the criteria should be applied." }, "aggregate": { "$ref": "#/definitions/PassFailAggregationFunction", "description": "The aggregation function to be applied on the client metric. Allowed functions\n- ‘percentage’ - for error metric , ‘avg’, percentiles like ‘p50’, ‘p90’, & so on, ‘min’,\n‘max’ - for response_time_ms and latency metric, ‘avg’ - for requests_per_sec,\n‘count’ - for requests" }, "condition": { "type": "string", "description": "The comparison operator. Supported types ‘>’, ‘<’ " }, "requestName": { "type": "string", "description": "Request name for which the Pass fail criteria has to be applied " }, "value": { "type": "number", "format": "double", "description": "The value to compare with the client metric. Allowed values - ‘error : [0.0 ,\n100.0] unit- % ’, response_time_ms and latency : any integer value unit- ms." }, "action": { "type": "string", "description": "Action taken after the threshold is met. Default is ‘continue’.", "default": "continue", "enum": [ "continue", "stop" ], "x-ms-enum": { "name": "PassFailAction", "modelAsString": true, "values": [ { "name": "continue", "value": "continue", "description": "Test will continue to run even if pass fail metric criteria metric gets failed." }, { "name": "stop", "value": "stop", "description": "Test run will stop if pass fail criteria metric is not passed." } ] } }, "actualValue": { "type": "number", "format": "double", "description": "The actual value of the client metric for the test run.", "readOnly": true }, "result": { "$ref": "#/definitions/PassFailResult", "description": "Outcome of the test run.", "readOnly": true } } }, "PassFailResult": { "type": "string", "description": "Pass/fail criteria result.", "enum": [ "passed", "undetermined", "failed" ], "x-ms-enum": { "name": "PassFailResult", "modelAsString": true, "values": [ { "name": "passed", "value": "passed", "description": "Given pass fail criteria metric has passed." }, { "name": "undetermined", "value": "undetermined", "description": "Given pass fail criteria metric couldn't determine." }, { "name": "failed", "value": "failed", "description": "Given pass fail criteria metric has failed." } ] } }, "PassFailServerMetric": { "type": "object", "description": "Pass fail server metric", "properties": { "resourceId": { "type": "string", "format": "arm-id", "description": "The resource id of the resource emitting the metric." }, "metricNamespace": { "type": "string", "description": "The server metric namespace." }, "metricName": { "type": "string", "description": "The server metric name." }, "aggregation": { "type": "string", "description": "Aggregation Type" }, "condition": { "type": "string", "description": "The comparison operator. Supported types ‘>’, ‘<’ " }, "value": { "type": "number", "format": "double", "description": "The value to compare with the server metric." }, "action": { "type": "string", "description": "Action taken after the threshold is met. Default is ‘continue’.", "default": "continue", "enum": [ "continue", "stop" ], "x-ms-enum": { "name": "PassFailAction", "modelAsString": true, "values": [ { "name": "continue", "value": "continue", "description": "Test will continue to run even if pass fail metric criteria metric gets failed." }, { "name": "stop", "value": "stop", "description": "Test run will stop if pass fail criteria metric is not passed." } ] } }, "actualValue": { "type": "number", "format": "double", "description": "The actual value of the server metric ", "readOnly": true }, "result": { "$ref": "#/definitions/PassFailResult", "description": "Outcome of the test run.", "readOnly": true } }, "required": [ "resourceId", "metricNamespace", "metricName", "aggregation", "condition", "value" ] }, "PassFailTestResult": { "type": "string", "description": "Test result based on pass/fail criteria.", "enum": [ "PASSED", "NOT_APPLICABLE", "FAILED" ], "x-ms-enum": { "name": "PassFailTestResult", "modelAsString": true, "values": [ { "name": "PASSED", "value": "PASSED", "description": "Pass/fail criteria has passed." }, { "name": "NOT_APPLICABLE", "value": "NOT_APPLICABLE", "description": "Pass/fail criteria is not applicable." }, { "name": "FAILED", "value": "FAILED", "description": "Pass/fail criteria has failed." } ] } }, "Recurrence": { "type": "object", "description": "Recurrence model.", "properties": { "frequency": { "$ref": "#/definitions/Frequency", "description": "Frequency of the recurrence." }, "recurrenceEnd": { "$ref": "#/definitions/RecurrenceEnd", "description": "Recurrence end model. You can specify the end either by providing a numberOfOccurrences (which will end the recurrence after the specified number of occurrences) or by providing an endDateTime (which will end the recurrence after the specified date). If neither value is provided, the recurrence will continue until it is manually ended. However, if both values are provided, an error will be thrown." } }, "discriminator": "frequency", "required": [ "frequency" ] }, "RecurrenceCreateOrUpdate": { "type": "object", "description": "Recurrence model.", "properties": { "frequency": { "$ref": "#/definitions/Frequency", "description": "Frequency of the recurrence." }, "recurrenceEnd": { "$ref": "#/definitions/RecurrenceEnd", "description": "Recurrence end model. You can specify the end either by providing a numberOfOccurrences (which will end the recurrence after the specified number of occurrences) or by providing an endDateTime (which will end the recurrence after the specified date). If neither value is provided, the recurrence will continue until it is manually ended. However, if both values are provided, an error will be thrown." } }, "discriminator": "frequency", "required": [ "frequency" ] }, "RecurrenceEnd": { "type": "object", "description": "Recurrence end model. Either provide numberOfOccurrences if you want recurrence to end after a specified number of occurrences or provide endDate if you want recurrence to end after a specified end date. If both values are provided, a validation error will be thrown indicating that only one field should be provided. If neither value is provided, the recurrence will end when manually ended.", "properties": { "numberOfOccurrences": { "type": "integer", "format": "int32", "description": "Number of occurrences after which the recurrence will end." }, "endDateTime": { "type": "string", "format": "date-time", "description": "The date after which the recurrence will end. (RFC 3339 literal format)" } } }, "RecurrenceStatus": { "type": "object", "description": "Actual state of the recurrence for the trigger.", "properties": { "remainingOccurrences": { "type": "integer", "format": "int32", "description": "The number of occurrences remaining for the trigger. Null if recurrence end has end date instead of number of occurrences." }, "nextScheduledDateTimes": { "type": "array", "description": "The next three execution times of the trigger. (RFC 3339 literal format)", "items": { "type": "string", "format": "date-time" } } } }, "RecurrenceWithCron": { "type": "object", "description": "Recurrence is set based on cron expression.", "properties": { "cronExpression": { "type": "string", "description": "Cron expression for the recurrence." } }, "required": [ "cronExpression" ], "allOf": [ { "$ref": "#/definitions/Recurrence" } ], "x-ms-discriminator-value": "Cron" }, "RecurrenceWithCronCreateOrUpdate": { "type": "object", "description": "Recurrence is set based on cron expression.", "properties": { "cronExpression": { "type": "string", "description": "Cron expression for the recurrence." } }, "allOf": [ { "$ref": "#/definitions/RecurrenceCreateOrUpdate" } ], "x-ms-discriminator-value": "Cron" }, "RegionalConfiguration": { "type": "object", "description": "Region distribution configuration for the load test.", "properties": { "engineInstances": { "type": "integer", "format": "int32", "description": " The number of engine instances to execute load test in specified region. Supported values are in range of 1-400." }, "region": { "$ref": "#/definitions/Azure.Core.azureLocation", "description": "Azure region name.\nThe region name should of format accepted by ARM, and should be a region supported by Azure Load Testing. For example, East US should be passed as \"eastus\".\nThe region name must match one of the strings in the \"Name\" column returned from running the \"az account list-locations -o table\" Azure CLI command." } }, "required": [ "engineInstances", "region" ] }, "RequestDataLevel": { "type": "string", "description": "Request data collection level for test run", "enum": [ "NONE", "ERRORS" ], "x-ms-enum": { "name": "RequestDataLevel", "modelAsString": true, "values": [ { "name": "NONE", "value": "NONE", "description": "No request data will be collected" }, { "name": "ERRORS", "value": "ERRORS", "description": "Request data will be collected in case of failed requests" } ] } }, "ResourceMetric": { "type": "object", "description": "Associated metric definition for particular metrics of the azure resource (\nRefer :\nhttps://learn.microsoft.com/en-us/rest/api/monitor/metric-definitions/list#metricdefinition).", "properties": { "id": { "type": "string", "description": "Unique name for metric.", "readOnly": true }, "resourceId": { "type": "string", "format": "arm-id", "description": "Azure resource id." }, "metricNamespace": { "type": "string", "description": "Metric name space." }, "displayDescription": { "type": "string", "description": "Metric description." }, "name": { "type": "string", "description": "The invariant value of metric name" }, "aggregation": { "type": "string", "description": "Metric aggregation." }, "unit": { "type": "string", "description": "Metric unit." }, "resourceType": { "type": "string", "description": "Azure resource type." } }, "required": [ "resourceId", "metricNamespace", "name", "aggregation", "resourceType" ] }, "ResourceMetricUpdate": { "type": "object", "description": "Associated metric definition for particular metrics of the azure resource (\nRefer :\nhttps://learn.microsoft.com/en-us/rest/api/monitor/metric-definitions/list#metricdefinition).", "properties": { "resourceId": { "type": "string", "format": "arm-id", "description": "Azure resource id." }, "metricNamespace": { "type": "string", "description": "Metric name space." }, "displayDescription": { "type": "string", "description": "Metric description." }, "name": { "type": "string", "description": "The invariant value of metric name" }, "aggregation": { "type": "string", "description": "Metric aggregation." }, "unit": { "type": "string", "description": "Metric unit." }, "resourceType": { "type": "string", "description": "Azure resource type." } } }, "ScheduleTestsTrigger": { "type": "object", "description": "ScheduleTestsTrigger model.", "properties": { "testIds": { "type": "array", "description": "The test id of test to be triggered by this schedule trigger. Currently only one test is supported for a trigger.", "items": { "type": "string" } }, "startDateTime": { "type": "string", "format": "date-time", "description": "Start date time of the trigger in UTC timezone. (RFC 3339 literal format)" }, "recurrenceStatus": { "$ref": "#/definitions/RecurrenceStatus", "description": "The current recurrence status of the trigger, including remaining occurrences and next scheduled execution times.", "readOnly": true }, "recurrence": { "$ref": "#/definitions/Recurrence", "description": "Recurrence details of the trigger. Null if schedule is not recurring." } }, "required": [ "testIds" ], "allOf": [ { "$ref": "#/definitions/Trigger" } ], "x-ms-discriminator-value": "ScheduleTestsTrigger" }, "ScheduleTestsTriggerCreateOrUpdate": { "type": "object", "description": "ScheduleTestsTrigger model.", "properties": { "testIds": { "type": "array", "description": "The test id of test to be triggered by this schedule trigger. Currently only one test is supported for a trigger.", "items": { "type": "string" } }, "startDateTime": { "type": "string", "format": "date-time", "description": "Start date time of the trigger in UTC timezone. (RFC 3339 literal format)" }, "recurrence": { "$ref": "#/definitions/RecurrenceCreateOrUpdate", "description": "Recurrence details of the trigger. Null if schedule is not recurring." } }, "allOf": [ { "$ref": "#/definitions/TriggerCreateOrUpdate" } ], "x-ms-discriminator-value": "ScheduleTestsTrigger" }, "Secret": { "type": "object", "description": "Secret", "properties": { "value": { "type": "string", "description": "The value of the secret for the respective type" }, "type": { "$ref": "#/definitions/SecretType", "description": "Type of secret" } } }, "SecretType": { "type": "string", "description": "Types of secrets supported.", "enum": [ "AKV_SECRET_URI", "SECRET_VALUE" ], "x-ms-enum": { "name": "SecretType", "modelAsString": true, "values": [ { "name": "KeyVaultSecretUri", "value": "AKV_SECRET_URI", "description": "If the secret is stored in an Azure Key Vault." }, { "name": "SecretValue", "value": "SECRET_VALUE", "description": "If the secret value provided as plain text." } ] } }, "StateDetails": { "type": "object", "description": "State details of the trigger.", "properties": { "message": { "type": "string", "description": "The error message if the trigger is in disabled state." } } }, "Test": { "type": "object", "description": "Load test model.", "properties": { "passFailCriteria": { "$ref": "#/definitions/PassFailCriteria", "description": "Pass fail criteria for a test." }, "autoStopCriteria": { "$ref": "#/definitions/AutoStopCriteria", "description": "Auto stop criteria for a test. This will automatically stop a load test if the error percentage is high for a certain time window." }, "secrets": { "type": "object", "description": "Secrets can be stored in an Azure Key Vault or any other secret store. If the\nsecret is stored in an Azure Key Vault, the value should be the secret\nidentifier and the type should be AKV_SECRET_URI. If the secret is stored\nelsewhere, the secret value should be provided directly and the type should be\nSECRET_VALUE.", "additionalProperties": { "$ref": "#/definitions/Secret" } }, "certificate": { "$ref": "#/definitions/CertificateMetadata", "description": "Certificates metadata." }, "environmentVariables": { "type": "object", "description": "Environment variables which are defined as a set of pairs.", "additionalProperties": { "type": "string" } }, "loadTestConfiguration": { "$ref": "#/definitions/LoadTestConfiguration", "description": "The load test configuration." }, "baselineTestRunId": { "type": "string", "description": "Id of the test run to be marked as baseline to view trends of client-side metrics from recent test runs" }, "inputArtifacts": { "$ref": "#/definitions/TestInputArtifacts", "description": "The input artifacts for the test.", "readOnly": true }, "testId": { "type": "string", "description": "Unique test identifier for the load test, must contain only lower-case alphabetic, numeric, underscore or hyphen characters.", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$", "readOnly": true }, "description": { "type": "string", "description": "The test description.", "maxLength": 100 }, "displayName": { "type": "string", "description": "Display name of a test.", "minLength": 2, "maxLength": 50 }, "subnetId": { "type": "string", "description": "Subnet ID on which the load test instances should run." }, "kind": { "$ref": "#/definitions/TestKind", "description": "Kind of test." }, "publicIPDisabled": { "type": "boolean", "description": "Inject load test engines without deploying public IP for outbound access" }, "keyvaultReferenceIdentityType": { "type": "string", "description": "Type of the managed identity referencing the Key vault." }, "keyvaultReferenceIdentityId": { "type": "string", "description": "Resource Id of the managed identity referencing the Key vault." }, "metricsReferenceIdentityType": { "type": "string", "description": "Type of the managed identity referencing the metrics.", "default": "SystemAssigned", "enum": [ "SystemAssigned", "UserAssigned" ], "x-ms-enum": { "name": "ManagedIdentityType", "modelAsString": true, "values": [ { "name": "SystemAssigned", "value": "SystemAssigned", "description": "System-assigned managed identity." }, { "name": "UserAssigned", "value": "UserAssigned", "description": "User-assigned managed identity." } ] } }, "metricsReferenceIdentityId": { "type": "string", "description": "Resource Id of the managed identity referencing the metrics." }, "engineBuiltInIdentityType": { "$ref": "#/definitions/ManagedIdentityType", "description": "Type of the managed identity built in load test engines" }, "engineBuiltInIdentityIds": { "type": "array", "description": "Resource Ids of the managed identity built in to load test engines. Required if engineBuiltInIdentityType is UserAssigned.", "items": { "type": "string" } }, "estimatedVirtualUserHours": { "type": "number", "format": "double", "description": "Estimated virtual user hours for the test.", "readOnly": true }, "preferences": { "$ref": "#/definitions/TestPreferences", "description": "Preferences for the test." }, "createdDateTime": { "type": "string", "format": "date-time", "description": "The creation datetime(RFC 3339 literal format).", "readOnly": true }, "createdBy": { "type": "string", "description": "The user that created.", "readOnly": true }, "lastModifiedDateTime": { "type": "string", "format": "date-time", "description": "The last Modified datetime(RFC 3339 literal format).", "readOnly": true }, "lastModifiedBy": { "type": "string", "description": "The user that last modified.", "readOnly": true } }, "required": [ "testId" ] }, "TestAppComponents": { "type": "object", "description": "Test app components", "properties": { "components": { "type": "object", "description": "Azure resource collection { resource id (fully qualified resource Id e.g\nsubscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.LoadTestService/loadtests/{resName})\n: resource object } ", "additionalProperties": { "$ref": "#/definitions/AppComponent" } }, "testId": { "type": "string", "description": "Test identifier", "readOnly": true }, "createdDateTime": { "type": "string", "format": "date-time", "description": "The creation datetime(RFC 3339 literal format).", "readOnly": true }, "createdBy": { "type": "string", "description": "The user that created.", "readOnly": true }, "lastModifiedDateTime": { "type": "string", "format": "date-time", "description": "The last Modified datetime(RFC 3339 literal format).", "readOnly": true }, "lastModifiedBy": { "type": "string", "description": "The user that last modified.", "readOnly": true } }, "required": [ "components" ] }, "TestAppComponentsUpdate": { "type": "object", "description": "Test app components", "properties": { "components": { "type": "object", "description": "Azure resource collection { resource id (fully qualified resource Id e.g\nsubscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.LoadTestService/loadtests/{resName})\n: resource object } ", "additionalProperties": { "$ref": "#/definitions/AppComponentUpdate" } } } }, "TestCreateOrUpdate": { "type": "object", "description": "Load test model.", "properties": { "passFailCriteria": { "$ref": "#/definitions/PassFailCriteria", "description": "Pass fail criteria for a test." }, "autoStopCriteria": { "$ref": "#/definitions/AutoStopCriteria", "description": "Auto stop criteria for a test. This will automatically stop a load test if the error percentage is high for a certain time window." }, "secrets": { "type": "object", "description": "Secrets can be stored in an Azure Key Vault or any other secret store. If the\nsecret is stored in an Azure Key Vault, the value should be the secret\nidentifier and the type should be AKV_SECRET_URI. If the secret is stored\nelsewhere, the secret value should be provided directly and the type should be\nSECRET_VALUE.", "additionalProperties": { "$ref": "#/definitions/Secret" } }, "certificate": { "$ref": "#/definitions/CertificateMetadata", "description": "Certificates metadata." }, "environmentVariables": { "type": "object", "description": "Environment variables which are defined as a set of pairs.", "additionalProperties": { "type": "string" } }, "loadTestConfiguration": { "$ref": "#/definitions/LoadTestConfiguration", "description": "The load test configuration." }, "baselineTestRunId": { "type": "string", "description": "Id of the test run to be marked as baseline to view trends of client-side metrics from recent test runs" }, "description": { "type": "string", "description": "The test description.", "maxLength": 100 }, "displayName": { "type": "string", "description": "Display name of a test.", "minLength": 2, "maxLength": 50 }, "subnetId": { "type": "string", "description": "Subnet ID on which the load test instances should run." }, "kind": { "$ref": "#/definitions/TestKind", "description": "Kind of test." }, "publicIPDisabled": { "type": "boolean", "description": "Inject load test engines without deploying public IP for outbound access" }, "keyvaultReferenceIdentityType": { "type": "string", "description": "Type of the managed identity referencing the Key vault." }, "keyvaultReferenceIdentityId": { "type": "string", "description": "Resource Id of the managed identity referencing the Key vault." }, "metricsReferenceIdentityType": { "type": "string", "description": "Type of the managed identity referencing the metrics.", "default": "SystemAssigned", "enum": [ "SystemAssigned", "UserAssigned" ], "x-ms-enum": { "name": "ManagedIdentityType", "modelAsString": true, "values": [ { "name": "SystemAssigned", "value": "SystemAssigned", "description": "System-assigned managed identity." }, { "name": "UserAssigned", "value": "UserAssigned", "description": "User-assigned managed identity." } ] } }, "metricsReferenceIdentityId": { "type": "string", "description": "Resource Id of the managed identity referencing the metrics." }, "engineBuiltInIdentityType": { "$ref": "#/definitions/ManagedIdentityType", "description": "Type of the managed identity built in load test engines" }, "engineBuiltInIdentityIds": { "type": "array", "description": "Resource Ids of the managed identity built in to load test engines. Required if engineBuiltInIdentityType is UserAssigned.", "items": { "type": "string" } }, "preferences": { "$ref": "#/definitions/TestPreferences", "description": "Preferences for the test." } } }, "TestFileInfo": { "type": "object", "description": "Test file info.", "properties": { "fileName": { "type": "string", "description": "Name of the file." }, "url": { "type": "string", "format": "uri", "description": "File URL.", "readOnly": true }, "fileType": { "$ref": "#/definitions/FileType", "description": "File type", "readOnly": true }, "expireDateTime": { "type": "string", "format": "date-time", "description": "Expiry time of the file (RFC 3339 literal format)", "readOnly": true }, "validationStatus": { "$ref": "#/definitions/FileValidationStatus", "description": "Validation status of the file", "readOnly": true }, "validationFailureDetails": { "type": "string", "description": "Validation failure error details", "readOnly": true } }, "required": [ "fileName" ] }, "TestInputArtifacts": { "type": "object", "description": "The input artifacts for the test.", "properties": { "configFileInfo": { "$ref": "#/definitions/TestFileInfo", "description": "The load test YAML file that contains the the test configuration" }, "testScriptFileInfo": { "$ref": "#/definitions/TestFileInfo", "description": "The test script file for the test run" }, "userPropFileInfo": { "$ref": "#/definitions/TestFileInfo", "description": "The user properties file" }, "inputArtifactsZipFileInfo": { "$ref": "#/definitions/TestFileInfo", "description": "The zip file with all input artifacts" }, "urlTestConfigFileInfo": { "$ref": "#/definitions/TestFileInfo", "description": "The config json file for url based test" }, "additionalFileInfo": { "type": "array", "description": "Additional supported files for the test run", "items": { "$ref": "#/definitions/TestFileInfo" }, "readOnly": true } } }, "TestKind": { "type": "string", "description": "Test kind", "enum": [ "URL", "JMX", "Locust" ], "x-ms-enum": { "name": "TestKind", "modelAsString": true, "values": [ { "name": "Url", "value": "URL", "description": "URL Test" }, { "name": "Jmx", "value": "JMX", "description": "JMX Test" }, { "name": "Locust", "value": "Locust", "description": "Locust Test" } ] } }, "TestPreferences": { "type": "object", "description": "Preferences for the test.", "properties": { "enableAIErrorInsights": { "type": "boolean", "description": "Enable or disable AI based insights on Test Run Errors.", "default": true } } }, "TestRun": { "type": "object", "description": "Load test run model", "properties": { "testRunId": { "type": "string", "description": "Unique test run identifier for the load test run, must contain only lower-case alphabetic, numeric, underscore or hyphen characters.", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$", "readOnly": true }, "passFailCriteria": { "$ref": "#/definitions/PassFailCriteria", "description": "Pass fail criteria for a test." }, "autoStopCriteria": { "$ref": "#/definitions/AutoStopCriteria", "description": "Auto stop criteria for a test. This will automatically stop a load test if the error percentage is high for a certain time window." }, "secrets": { "type": "object", "description": "Secrets can be stored in an Azure Key Vault or any other secret store. If the\nsecret is stored in an Azure Key Vault, the value should be the secret\nidentifier and the type should be AKV_SECRET_URI. If the secret is stored\nelsewhere, the secret value should be provided directly and the type should be\nSECRET_VALUE.", "additionalProperties": { "$ref": "#/definitions/Secret" } }, "certificate": { "$ref": "#/definitions/CertificateMetadata", "description": "Certificates metadata" }, "environmentVariables": { "type": "object", "description": "Environment variables which are defined as a set of pairs.", "additionalProperties": { "type": "string" } }, "errorDetails": { "type": "array", "description": "Error details if there is any failure in load test run", "items": { "$ref": "#/definitions/ErrorDetails" }, "readOnly": true }, "testRunStatistics": { "type": "object", "description": "Test run statistics. Key is the sampler name and value is the set of statistics for performance metrics like response time, throughput, etc. from the load test run.\nThe sampler name is the same as the name mentioned in the test script.\nSampler name \"Total\" represents the aggregated statistics of all the samplers.", "additionalProperties": { "$ref": "#/definitions/TestRunStatistics" }, "readOnly": true }, "regionalStatistics": { "type": "object", "description": "Regional statistics. Key is the Azure region name and value is the test run statistics.\nThe region name should of format accepted by ARM, and should be a region supported by Azure Load Testing. For example, East US should be passed as \"eastus\".\nThe region name must match one of the strings in the \"Name\" column returned from running the \"az account list-locations -o table\" Azure CLI command.", "additionalProperties": { "$ref": "#/definitions/TestRunStatistics" }, "readOnly": true }, "loadTestConfiguration": { "$ref": "#/definitions/LoadTestConfiguration", "description": "The load test configuration.", "readOnly": true }, "testArtifacts": { "$ref": "#/definitions/TestRunArtifacts", "description": "Collection of test run artifacts", "readOnly": true }, "testResult": { "$ref": "#/definitions/PassFailTestResult", "description": "Test result for pass/Fail criteria used during the test run.", "readOnly": true }, "virtualUsers": { "type": "integer", "format": "int32", "description": "Number of virtual users, for which test has been run.", "readOnly": true }, "displayName": { "type": "string", "description": "Display name of a testRun.", "minLength": 2, "maxLength": 50 }, "testId": { "type": "string", "description": "Associated test Id.", "minLength": 2, "maxLength": 50 }, "description": { "type": "string", "description": "The test run description.", "maxLength": 100 }, "status": { "$ref": "#/definitions/TestRunStatus", "description": "The test run status.", "readOnly": true }, "startDateTime": { "type": "string", "format": "date-time", "description": "The test run start DateTime(RFC 3339 literal format).", "readOnly": true }, "endDateTime": { "type": "string", "format": "date-time", "description": "The test run end DateTime(RFC 3339 literal format).", "readOnly": true }, "executedDateTime": { "type": "string", "format": "date-time", "description": "Test run initiated time. This is legacy, new developments should use createdDateTime.", "readOnly": true }, "portalUrl": { "type": "string", "description": "Portal url.", "readOnly": true }, "duration": { "type": "integer", "format": "int64", "description": "Test run duration in milliseconds.", "readOnly": true }, "virtualUserHours": { "type": "number", "format": "double", "description": "Virtual user hours consumed by the test run.", "readOnly": true }, "subnetId": { "type": "string", "description": "Subnet ID on which the load test instances should run.", "readOnly": true }, "kind": { "$ref": "#/definitions/TestKind", "description": "Type of test.", "readOnly": true }, "requestDataLevel": { "$ref": "#/definitions/RequestDataLevel", "description": "Request data collection level for test run" }, "debugLogsEnabled": { "type": "boolean", "description": "Enable or disable debug level logging. True if debug logs are enabled for the test run. False otherwise" }, "publicIPDisabled": { "type": "boolean", "description": "Inject load test engines without deploying public IP for outbound access", "readOnly": true }, "createdByType": { "$ref": "#/definitions/CreatedByType", "description": "The type of the entity that created the test run. (E.x. User, ScheduleTrigger, etc)." }, "createdByUri": { "type": "string", "format": "uri", "description": "The URI pointing to the entity that created the test run.", "readOnly": true }, "estimatedVirtualUserHours": { "type": "number", "format": "double", "description": "Estimated virtual user hours for the test run.", "readOnly": true }, "executionStartDateTime": { "type": "string", "format": "date-time", "description": "The test run execution start DateTime(RFC 3339 literal format).", "readOnly": true }, "executionEndDateTime": { "type": "string", "format": "date-time", "description": "The test run execution end DateTime(RFC 3339 literal format).", "readOnly": true }, "createdDateTime": { "type": "string", "format": "date-time", "description": "The creation datetime(RFC 3339 literal format).", "readOnly": true }, "createdBy": { "type": "string", "description": "The user that created.", "readOnly": true }, "lastModifiedDateTime": { "type": "string", "format": "date-time", "description": "The last Modified datetime(RFC 3339 literal format).", "readOnly": true }, "lastModifiedBy": { "type": "string", "description": "The user that last modified.", "readOnly": true } }, "required": [ "testRunId" ] }, "TestRunAppComponents": { "type": "object", "description": "Test run app component", "properties": { "components": { "type": "object", "description": "Azure resource collection { resource id (fully qualified resource Id e.g\nsubscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.LoadTestService/loadtests/{resName})\n: resource object } ", "additionalProperties": { "$ref": "#/definitions/AppComponent" } }, "testRunId": { "type": "string", "description": "Test run identifier", "readOnly": true }, "createdDateTime": { "type": "string", "format": "date-time", "description": "The creation datetime(RFC 3339 literal format).", "readOnly": true }, "createdBy": { "type": "string", "description": "The user that created.", "readOnly": true }, "lastModifiedDateTime": { "type": "string", "format": "date-time", "description": "The last Modified datetime(RFC 3339 literal format).", "readOnly": true }, "lastModifiedBy": { "type": "string", "description": "The user that last modified.", "readOnly": true } }, "required": [ "components" ] }, "TestRunAppComponentsUpdate": { "type": "object", "description": "Test run app component", "properties": { "components": { "type": "object", "description": "Azure resource collection { resource id (fully qualified resource Id e.g\nsubscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.LoadTestService/loadtests/{resName})\n: resource object } ", "additionalProperties": { "$ref": "#/definitions/AppComponentUpdate" } } } }, "TestRunArtifacts": { "type": "object", "description": "Collection of test run artifacts", "properties": { "inputArtifacts": { "$ref": "#/definitions/TestRunInputArtifacts", "description": "The input artifacts for the test run.", "readOnly": true }, "outputArtifacts": { "$ref": "#/definitions/TestRunOutputArtifacts", "description": "The output artifacts for the test run." } } }, "TestRunCreateOrUpdate": { "type": "object", "description": "Load test run model", "properties": { "passFailCriteria": { "$ref": "#/definitions/PassFailCriteria", "description": "Pass fail criteria for a test." }, "autoStopCriteria": { "$ref": "#/definitions/AutoStopCriteria", "description": "Auto stop criteria for a test. This will automatically stop a load test if the error percentage is high for a certain time window." }, "secrets": { "type": "object", "description": "Secrets can be stored in an Azure Key Vault or any other secret store. If the\nsecret is stored in an Azure Key Vault, the value should be the secret\nidentifier and the type should be AKV_SECRET_URI. If the secret is stored\nelsewhere, the secret value should be provided directly and the type should be\nSECRET_VALUE.", "additionalProperties": { "$ref": "#/definitions/Secret" } }, "certificate": { "$ref": "#/definitions/CertificateMetadata", "description": "Certificates metadata" }, "environmentVariables": { "type": "object", "description": "Environment variables which are defined as a set of pairs.", "additionalProperties": { "type": "string" } }, "displayName": { "type": "string", "description": "Display name of a testRun.", "minLength": 2, "maxLength": 50 }, "testId": { "type": "string", "description": "Associated test Id.", "minLength": 2, "maxLength": 50 }, "description": { "type": "string", "description": "The test run description.", "maxLength": 100 }, "requestDataLevel": { "$ref": "#/definitions/RequestDataLevel", "description": "Request data collection level for test run" }, "debugLogsEnabled": { "type": "boolean", "description": "Enable or disable debug level logging. True if debug logs are enabled for the test run. False otherwise" }, "createdByType": { "$ref": "#/definitions/CreatedByType", "description": "The type of the entity that created the test run. (E.x. User, ScheduleTrigger, etc)." } } }, "TestRunEndedEventCondition": { "type": "object", "description": "TestRunEnded Event condition.", "properties": { "testRunStatuses": { "type": "array", "description": "The test run statuses to send notification for.", "items": { "$ref": "#/definitions/TestRunStatus" } }, "testRunResults": { "type": "array", "description": "The test run results to send notification for.", "items": { "$ref": "#/definitions/PassFailTestResult" } } } }, "TestRunEndedNotificationEventFilter": { "type": "object", "description": "The notification event filter when the event type is TestRunEnded and scope is Tests.", "properties": { "condition": { "$ref": "#/definitions/TestRunEndedEventCondition", "description": "Event filtering condition." } }, "allOf": [ { "$ref": "#/definitions/TestsNotificationEventFilter" } ], "x-ms-discriminator-value": "TestRunEnded" }, "TestRunEndedNotificationEventFilterCreateOrUpdate": { "type": "object", "description": "The notification event filter when the event type is TestRunEnded and scope is Tests.", "properties": { "condition": { "$ref": "#/definitions/TestRunEndedEventCondition", "description": "Event filtering condition." } }, "allOf": [ { "$ref": "#/definitions/TestsNotificationEventFilterCreateOrUpdate" } ], "x-ms-discriminator-value": "TestRunEnded" }, "TestRunFileInfo": { "type": "object", "description": "Test run file info.", "properties": { "fileName": { "type": "string", "description": "Name of the file." }, "url": { "type": "string", "format": "uri", "description": "File URL.", "readOnly": true }, "fileType": { "$ref": "#/definitions/FileType", "description": "File type", "readOnly": true }, "expireDateTime": { "type": "string", "format": "date-time", "description": "Expiry time of the file (RFC 3339 literal format)", "readOnly": true }, "validationStatus": { "$ref": "#/definitions/FileValidationStatus", "description": "Validation status of the file", "readOnly": true }, "validationFailureDetails": { "type": "string", "description": "Validation failure error details", "readOnly": true } }, "required": [ "fileName" ] }, "TestRunInputArtifacts": { "type": "object", "description": "The input artifacts for the test run.", "properties": { "configFileInfo": { "$ref": "#/definitions/TestRunFileInfo", "description": "The load test YAML file that contains the the test configuration" }, "testScriptFileInfo": { "$ref": "#/definitions/TestRunFileInfo", "description": "The test script file for the test run" }, "userPropFileInfo": { "$ref": "#/definitions/TestRunFileInfo", "description": "The user properties file" }, "inputArtifactsZipFileInfo": { "$ref": "#/definitions/TestRunFileInfo", "description": "The zip file for all input artifacts" }, "urlTestConfigFileInfo": { "$ref": "#/definitions/TestRunFileInfo", "description": "The config json file for url based test" }, "additionalFileInfo": { "type": "array", "description": "Additional supported files for the test run", "items": { "$ref": "#/definitions/TestRunFileInfo" }, "readOnly": true } } }, "TestRunInsightColumn": { "type": "object", "description": "Represents a column of the test run insight", "properties": { "name": { "type": "string", "description": "Name of the column." }, "dataType": { "type": "string", "description": "The data type of the column." } }, "required": [ "name", "dataType" ] }, "TestRunInsights": { "type": "object", "description": "Represents insights for the test run.", "properties": { "columns": { "type": "array", "description": "The columns of the insights.", "items": { "$ref": "#/definitions/TestRunInsightColumn" }, "readOnly": true }, "rows": { "type": "object", "description": "The rows of the insights.", "additionalProperties": { "additionalProperties": { "type": "string" }, "type": "object" } }, "version": { "type": "integer", "format": "int64", "description": "The version of the insights.", "readOnly": true }, "status": { "$ref": "#/definitions/Azure.Core.Foundations.OperationState", "description": "The status of the insights.", "readOnly": true } } }, "TestRunOutputArtifacts": { "type": "object", "description": "The output artifacts for the test run.", "properties": { "resultFileInfo": { "$ref": "#/definitions/TestRunFileInfo", "description": "The test run results file" }, "logsFileInfo": { "$ref": "#/definitions/TestRunFileInfo", "description": "The test run report with metrics" }, "artifactsContainerInfo": { "$ref": "#/definitions/ArtifactsContainerInfo", "description": "The container for test run artifacts." }, "reportFileInfo": { "$ref": "#/definitions/TestRunFileInfo", "description": "The report file for the test run." } } }, "TestRunServerMetricsConfiguration": { "type": "object", "description": "Test run server metrics configuration", "properties": { "testRunId": { "type": "string", "description": "Test run identifier", "readOnly": true }, "metrics": { "type": "object", "description": "Azure resource metrics collection {metric id : metrics object} (Refer :\nhttps://learn.microsoft.com/en-us/rest/api/monitor/metric-definitions/list#metricdefinition\nfor metric id).", "additionalProperties": { "$ref": "#/definitions/ResourceMetric" } }, "createdDateTime": { "type": "string", "format": "date-time", "description": "The creation datetime(RFC 3339 literal format).", "readOnly": true }, "createdBy": { "type": "string", "description": "The user that created.", "readOnly": true }, "lastModifiedDateTime": { "type": "string", "format": "date-time", "description": "The last Modified datetime(RFC 3339 literal format).", "readOnly": true }, "lastModifiedBy": { "type": "string", "description": "The user that last modified.", "readOnly": true } } }, "TestRunStartedNotificationEventFilter": { "type": "object", "description": "The notification event filter when the event type is TestRunStarted and scope is Tests.", "allOf": [ { "$ref": "#/definitions/TestsNotificationEventFilter" } ], "x-ms-discriminator-value": "TestRunStarted" }, "TestRunStartedNotificationEventFilterCreateOrUpdate": { "type": "object", "description": "The notification event filter when the event type is TestRunStarted and scope is Tests.", "allOf": [ { "$ref": "#/definitions/TestsNotificationEventFilterCreateOrUpdate" } ], "x-ms-discriminator-value": "TestRunStarted" }, "TestRunStatistics": { "type": "object", "description": "Test run statistics.", "properties": { "transaction": { "type": "string", "description": "Transaction name.", "readOnly": true }, "sampleCount": { "type": "number", "format": "double", "description": "Sampler count.", "readOnly": true }, "errorCount": { "type": "number", "format": "double", "description": "Error count.", "readOnly": true }, "errorPct": { "type": "number", "format": "double", "description": "Error percentage.", "readOnly": true }, "meanResTime": { "type": "number", "format": "double", "description": "Mean response time.", "readOnly": true }, "medianResTime": { "type": "number", "format": "double", "description": "Median response time.", "readOnly": true }, "maxResTime": { "type": "number", "format": "double", "description": "Max response time.", "readOnly": true }, "minResTime": { "type": "number", "format": "double", "description": "Minimum response time.", "readOnly": true }, "pct1ResTime": { "type": "number", "format": "double", "description": "90 percentile response time.", "readOnly": true }, "pct2ResTime": { "type": "number", "format": "double", "description": "95 percentile response time.", "readOnly": true }, "pct3ResTime": { "type": "number", "format": "double", "description": "99 percentile response time.", "readOnly": true }, "pct75ResTime": { "type": "number", "format": "double", "description": "75 percentile response time.", "readOnly": true }, "pct96ResTime": { "type": "number", "format": "double", "description": "96 percentile response time.", "readOnly": true }, "pct97ResTime": { "type": "number", "format": "double", "description": "97 percentile response time.", "readOnly": true }, "pct98ResTime": { "type": "number", "format": "double", "description": "98 percentile response time.", "readOnly": true }, "pct999ResTime": { "type": "number", "format": "double", "description": "99.9 percentile response time.", "readOnly": true }, "pct9999ResTime": { "type": "number", "format": "double", "description": "99.99 percentile response time.", "readOnly": true }, "throughput": { "type": "number", "format": "double", "description": "Throughput.", "readOnly": true }, "receivedKBytesPerSec": { "type": "number", "format": "double", "description": "Received network bytes.", "readOnly": true }, "sentKBytesPerSec": { "type": "number", "format": "double", "description": "Send network bytes.", "readOnly": true } } }, "TestRunStatus": { "type": "string", "description": "Test run status.", "enum": [ "ACCEPTED", "NOTSTARTED", "PROVISIONING", "PROVISIONED", "CONFIGURING", "CONFIGURED", "EXECUTING", "EXECUTED", "DEPROVISIONING", "DEPROVISIONED", "DONE", "CANCELLING", "CANCELLED", "FAILED", "VALIDATION_SUCCESS", "VALIDATION_FAILURE" ], "x-ms-enum": { "name": "TestRunStatus", "modelAsString": true, "values": [ { "name": "Accepted", "value": "ACCEPTED", "description": "Test run request is accepted." }, { "name": "NotStarted", "value": "NOTSTARTED", "description": "Test run is not yet started." }, { "name": "Provisioning", "value": "PROVISIONING", "description": "Test run is provisioning." }, { "name": "Provisioned", "value": "PROVISIONED", "description": "Test run is provisioned." }, { "name": "Configuring", "value": "CONFIGURING", "description": "Test run is getting configured." }, { "name": "Configured", "value": "CONFIGURED", "description": "Test run configuration is done." }, { "name": "Executing", "value": "EXECUTING", "description": "Test run has started executing." }, { "name": "Executed", "value": "EXECUTED", "description": "Test run execution is completed." }, { "name": "Deprovisioning", "value": "DEPROVISIONING", "description": "Test run is getting deprovisioned." }, { "name": "Deprovisioned", "value": "DEPROVISIONED", "description": "Test run is deprovisioned." }, { "name": "Done", "value": "DONE", "description": "Test run is completed." }, { "name": "Cancelling", "value": "CANCELLING", "description": "Test run is being cancelled." }, { "name": "Cancelled", "value": "CANCELLED", "description": "Test run request is cancelled." }, { "name": "Failed", "value": "FAILED", "description": "Test run request is failed." }, { "name": "ValidationSuccess", "value": "VALIDATION_SUCCESS", "description": "Test run JMX file is validated." }, { "name": "ValidationFailure", "value": "VALIDATION_FAILURE", "description": "Test run JMX file validation is failed." } ] } }, "TestServerMetricsConfiguration": { "type": "object", "description": "Test server metrics configuration", "properties": { "testId": { "type": "string", "description": "Test identifier", "readOnly": true }, "metrics": { "type": "object", "description": "Azure resource metrics collection {metric id : metrics object} (Refer :\nhttps://learn.microsoft.com/en-us/rest/api/monitor/metric-definitions/list#metricdefinition\nfor metric id).", "additionalProperties": { "$ref": "#/definitions/ResourceMetric" } }, "createdDateTime": { "type": "string", "format": "date-time", "description": "The creation datetime(RFC 3339 literal format).", "readOnly": true }, "createdBy": { "type": "string", "description": "The user that created.", "readOnly": true }, "lastModifiedDateTime": { "type": "string", "format": "date-time", "description": "The last Modified datetime(RFC 3339 literal format).", "readOnly": true }, "lastModifiedBy": { "type": "string", "description": "The user that last modified.", "readOnly": true } }, "required": [ "metrics" ] }, "TestServerMetricsConfigurationUpdate": { "type": "object", "description": "Test server metrics configuration", "properties": { "metrics": { "type": "object", "description": "Azure resource metrics collection {metric id : metrics object} (Refer :\nhttps://learn.microsoft.com/en-us/rest/api/monitor/metric-definitions/list#metricdefinition\nfor metric id).", "additionalProperties": { "$ref": "#/definitions/ResourceMetricUpdate" } } } }, "TestsNotificationEventFilter": { "type": "object", "description": "The notification event filter for Tests scope.", "properties": { "kind": { "$ref": "#/definitions/NotificationEventType", "description": "The event type" } }, "discriminator": "kind", "required": [ "kind" ] }, "TestsNotificationEventFilterCreateOrUpdate": { "type": "object", "description": "The notification event filter for Tests scope.", "properties": { "kind": { "$ref": "#/definitions/NotificationEventType", "description": "The event type" } }, "discriminator": "kind", "required": [ "kind" ] }, "TestsNotificationRule": { "type": "object", "description": "Tests Notification rule model.", "properties": { "testIds": { "type": "array", "description": "The test ids to include. If not provided, notification will be sent for all testIds.", "items": { "type": "string" } }, "eventFilters": { "type": "object", "description": "The event to receive notifications for along with filtering conditions.\nKey is a user-assigned identifier for the event filter.", "additionalProperties": { "$ref": "#/definitions/TestsNotificationEventFilter" } } }, "required": [ "eventFilters" ], "allOf": [ { "$ref": "#/definitions/NotificationRule" } ], "x-ms-discriminator-value": "Tests" }, "TestsNotificationRuleCreateOrUpdate": { "type": "object", "description": "Tests Notification rule model.", "properties": { "testIds": { "type": "array", "description": "The test ids to include. If not provided, notification will be sent for all testIds.", "items": { "type": "string" } }, "eventFilters": { "type": "object", "description": "The event to receive notifications for along with filtering conditions.\nKey is a user-assigned identifier for the event filter.", "additionalProperties": { "$ref": "#/definitions/TestsNotificationEventFilterCreateOrUpdate" } } }, "allOf": [ { "$ref": "#/definitions/NotificationRuleCreateOrUpdate" } ], "x-ms-discriminator-value": "Tests" }, "TimeGrain": { "type": "string", "description": "Time Grain", "enum": [ "PT5S", "PT10S", "PT1M", "PT5M", "PT1H" ], "x-ms-enum": { "name": "TimeGrain", "modelAsString": true, "values": [ { "name": "PT5S", "value": "PT5S", "description": "5 seconds, available only if test run duration is less than 10 minutes." }, { "name": "PT10S", "value": "PT10S", "description": "10 seconds, available only if test run duration is less than 10 minutes." }, { "name": "PT1M", "value": "PT1M", "description": "1 minute" }, { "name": "PT5M", "value": "PT5M", "description": "5 minutes, available only if test run duration is greater than 1 minute." }, { "name": "PT1H", "value": "PT1H", "description": "1 hour, available only if test run duration is greater than 1 minute." } ] } }, "TimeSeriesElement": { "type": "object", "description": "The time series returned when a data query is performed.", "properties": { "data": { "type": "array", "description": "An array of data points representing the metric values.", "items": { "$ref": "#/definitions/MetricValue" } }, "dimensionValues": { "type": "array", "description": "The dimension values ", "items": { "$ref": "#/definitions/DimensionValue" } } } }, "Trigger": { "type": "object", "description": "Trigger model.", "properties": { "triggerId": { "type": "string", "description": "The unique identifier of the trigger.", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$", "readOnly": true }, "displayName": { "type": "string", "description": "The name of the trigger.", "minLength": 2, "maxLength": 50 }, "description": { "type": "string", "description": "The description of the trigger.", "maxLength": 100 }, "kind": { "$ref": "#/definitions/TriggerType", "description": "The type of the trigger." }, "state": { "$ref": "#/definitions/TriggerState", "description": "The current state of the trigger." }, "stateDetails": { "$ref": "#/definitions/StateDetails", "description": "Details of current state of the trigger.", "readOnly": true }, "createdDateTime": { "type": "string", "format": "date-time", "description": "The creation datetime(RFC 3339 literal format).", "readOnly": true }, "createdBy": { "type": "string", "description": "The user that created.", "readOnly": true }, "lastModifiedDateTime": { "type": "string", "format": "date-time", "description": "The last Modified datetime(RFC 3339 literal format).", "readOnly": true }, "lastModifiedBy": { "type": "string", "description": "The user that last modified.", "readOnly": true } }, "discriminator": "kind", "required": [ "triggerId", "displayName", "kind" ] }, "TriggerCompletedNotificationEventFilter": { "type": "object", "description": "The notification event filter when the event type is TriggerCompleted.", "allOf": [ { "$ref": "#/definitions/TestsNotificationEventFilter" } ], "x-ms-discriminator-value": "TriggerCompleted" }, "TriggerCompletedNotificationEventFilterCreateOrUpdate": { "type": "object", "description": "The notification event filter when the event type is TriggerCompleted.", "allOf": [ { "$ref": "#/definitions/TestsNotificationEventFilterCreateOrUpdate" } ], "x-ms-discriminator-value": "TriggerCompleted" }, "TriggerCreateOrUpdate": { "type": "object", "description": "Trigger model.", "properties": { "displayName": { "type": "string", "description": "The name of the trigger.", "minLength": 2, "maxLength": 50 }, "description": { "type": "string", "description": "The description of the trigger.", "maxLength": 100 }, "kind": { "$ref": "#/definitions/TriggerType", "description": "The type of the trigger." }, "state": { "$ref": "#/definitions/TriggerState", "description": "The current state of the trigger." } }, "discriminator": "kind", "required": [ "kind" ] }, "TriggerDisabledNotificationEventFilter": { "type": "object", "description": "The notification event filter when the event type is TriggerDisabled.", "allOf": [ { "$ref": "#/definitions/TestsNotificationEventFilter" } ], "x-ms-discriminator-value": "TriggerDisabled" }, "TriggerDisabledNotificationEventFilterCreateOrUpdate": { "type": "object", "description": "The notification event filter when the event type is TriggerDisabled.", "allOf": [ { "$ref": "#/definitions/TestsNotificationEventFilterCreateOrUpdate" } ], "x-ms-discriminator-value": "TriggerDisabled" }, "TriggerState": { "type": "string", "description": "Current state of a trigger.", "enum": [ "Active", "Paused", "Completed", "Disabled" ], "x-ms-enum": { "name": "TriggerState", "modelAsString": true, "values": [ { "name": "Active", "value": "Active", "description": "The trigger is active." }, { "name": "Paused", "value": "Paused", "description": "The trigger is paused manually." }, { "name": "Completed", "value": "Completed", "description": "The trigger is completed." }, { "name": "Disabled", "value": "Disabled", "description": "The trigger is disabled due to error." } ] } }, "TriggerType": { "type": "string", "description": "Type of a trigger.", "enum": [ "ScheduleTestsTrigger" ], "x-ms-enum": { "name": "TriggerType", "modelAsString": true, "values": [ { "name": "ScheduleTestsTrigger", "value": "ScheduleTestsTrigger", "description": "Trigger is a Scheduled Trigger on a Test." } ] } }, "WeekDays": { "type": "string", "description": "Defines the days of the week.", "enum": [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], "x-ms-enum": { "name": "WeekDays", "modelAsString": true, "values": [ { "name": "Sunday", "value": "Sunday", "description": "Refers to Sunday." }, { "name": "Monday", "value": "Monday", "description": "Refers to Monday." }, { "name": "Tuesday", "value": "Tuesday", "description": "Refers to Tuesday." }, { "name": "Wednesday", "value": "Wednesday", "description": "Refers to Wednesday." }, { "name": "Thursday", "value": "Thursday", "description": "Refers to Thursday." }, { "name": "Friday", "value": "Friday", "description": "Refers to Friday." }, { "name": "Saturday", "value": "Saturday", "description": "Refers to Saturday." } ] } }, "WeeklyRecurrence": { "type": "object", "description": "Recurrence model when frequency is set as weekly.", "properties": { "daysOfWeek": { "type": "array", "description": "Recurrence set to repeat on the specified days of the week.", "items": { "$ref": "#/definitions/WeekDays" } }, "interval": { "type": "integer", "format": "int32", "description": "The interval at which the recurrence should repeat. It signifies the number of weeks between each recurrence." } }, "allOf": [ { "$ref": "#/definitions/Recurrence" } ], "x-ms-discriminator-value": "Weekly" }, "WeeklyRecurrenceCreateOrUpdate": { "type": "object", "description": "Recurrence model when frequency is set as weekly.", "properties": { "daysOfWeek": { "type": "array", "description": "Recurrence set to repeat on the specified days of the week.", "items": { "$ref": "#/definitions/WeekDays" } }, "interval": { "type": "integer", "format": "int32", "description": "The interval at which the recurrence should repeat. It signifies the number of weeks between each recurrence." } }, "allOf": [ { "$ref": "#/definitions/RecurrenceCreateOrUpdate" } ], "x-ms-discriminator-value": "Weekly" } }, "parameters": { "Azure.Core.Foundations.ApiVersionParameter": { "name": "api-version", "in": "query", "description": "The API version to use for this operation.", "required": true, "type": "string", "minLength": 1, "x-ms-parameter-location": "method", "x-ms-client-name": "apiVersion" }, "ListNotificationRuleQueryParams.lastModifiedEndTime": { "name": "lastModifiedEndTime", "in": "query", "description": "End DateTime(RFC 3339 literal format) of the last updated time range to filter notification rules.", "required": false, "type": "string", "format": "date-time", "x-ms-parameter-location": "method" }, "ListNotificationRuleQueryParams.lastModifiedStartTime": { "name": "lastModifiedStartTime", "in": "query", "description": "Start DateTime(RFC 3339 literal format) of the last updated time range to filter notification rules.", "required": false, "type": "string", "format": "date-time", "x-ms-parameter-location": "method" }, "ListNotificationRuleQueryParams.maxpagesize": { "name": "maxpagesize", "in": "query", "description": "Number of results in response. Default page size is 50.", "required": false, "type": "integer", "format": "int32", "default": 50, "x-ms-parameter-location": "method" }, "ListNotificationRuleQueryParams.scopes": { "name": "scopes", "in": "query", "description": "Search based on notification rules for the provided scopes.", "required": false, "type": "string", "x-ms-parameter-location": "method" }, "ListNotificationRuleQueryParams.testIds": { "name": "testIds", "in": "query", "description": "Search based on notification rules associated with the provided test ids.", "required": false, "type": "string", "x-ms-parameter-location": "method" }, "ListTestQueryParams.lastModifiedEndTime": { "name": "lastModifiedEndTime", "in": "query", "description": "End DateTime(RFC 3339 literal format) of the last updated time range to filter tests.", "required": false, "type": "string", "format": "date-time", "x-ms-parameter-location": "method" }, "ListTestQueryParams.lastModifiedStartTime": { "name": "lastModifiedStartTime", "in": "query", "description": "Start DateTime(RFC 3339 literal format) of the last updated time range to filter tests.", "required": false, "type": "string", "format": "date-time", "x-ms-parameter-location": "method" }, "ListTestQueryParams.maxpagesize": { "name": "maxpagesize", "in": "query", "description": "Number of results in response.", "required": false, "type": "integer", "format": "int32", "default": 50, "x-ms-parameter-location": "method" }, "ListTestQueryParams.orderby": { "name": "orderby", "in": "query", "description": "Sort on the supported fields in (field asc/desc) format. eg:\nlastModifiedDateTime asc. Supported fields - lastModifiedDateTime", "required": false, "type": "string", "x-ms-parameter-location": "method" }, "ListTestQueryParams.search": { "name": "search", "in": "query", "description": "Prefix based, case sensitive search on searchable fields - displayName,\ncreatedBy. For example, to search for a test, with display name is Login Test,\nthe search parameter can be Login.", "required": false, "type": "string", "x-ms-parameter-location": "method" }, "ListTestRunQueryParams.createdByTypes": { "name": "createdByTypes", "in": "query", "description": "Comma separated list of type of entities that have created the test run.", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "csv", "x-ms-parameter-location": "method" }, "ListTestRunQueryParams.executionFrom": { "name": "executionFrom", "in": "query", "description": "Start DateTime(RFC 3339 literal format) of test-run execution time filter range.", "required": false, "type": "string", "format": "date-time", "x-ms-parameter-location": "method" }, "ListTestRunQueryParams.executionTo": { "name": "executionTo", "in": "query", "description": "End DateTime(RFC 3339 literal format) of test-run execution time filter range.", "required": false, "type": "string", "format": "date-time", "x-ms-parameter-location": "method" }, "ListTestRunQueryParams.maxpagesize": { "name": "maxpagesize", "in": "query", "description": "Number of results in response.", "required": false, "type": "integer", "format": "int32", "default": 50, "x-ms-parameter-location": "method" }, "ListTestRunQueryParams.orderby": { "name": "orderby", "in": "query", "description": "Sort on the supported fields in (field asc/desc) format. eg: createdDateTime asc.\nSupported fields - createdDateTime, executedDateTime (legacy)", "required": false, "type": "string", "x-ms-parameter-location": "method" }, "ListTestRunQueryParams.search": { "name": "search", "in": "query", "description": "Prefix based, case sensitive search on searchable fields - description,\nexecutedUser. For example, to search for a test run, with description 500 VUs,\nthe search parameter can be 500.", "required": false, "type": "string", "x-ms-parameter-location": "method" }, "ListTestRunQueryParams.status": { "name": "status", "in": "query", "description": "Comma separated list of test run status.", "required": false, "type": "string", "x-ms-parameter-location": "method" }, "ListTestRunQueryParams.testId": { "name": "testId", "in": "query", "description": "Unique name of an existing load test.", "required": false, "type": "string", "x-ms-parameter-location": "method" }, "ListTestRunQueryParams.testIds": { "name": "testIds", "in": "query", "description": "Comma-separated list of test IDs. If you are using testIds, do not send a value for testId.", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "csv", "x-ms-parameter-location": "method" }, "ListTriggerQueryParams.lastModifiedEndTime": { "name": "lastModifiedEndTime", "in": "query", "description": "End DateTime(RFC 3339 literal format) of the last updated time range to filter triggers.", "required": false, "type": "string", "format": "date-time", "x-ms-parameter-location": "method" }, "ListTriggerQueryParams.lastModifiedStartTime": { "name": "lastModifiedStartTime", "in": "query", "description": "Start DateTime(RFC 3339 literal format) of the last updated time range to filter triggers.", "required": false, "type": "string", "format": "date-time", "x-ms-parameter-location": "method" }, "ListTriggerQueryParams.maxpagesize": { "name": "maxpagesize", "in": "query", "description": "Number of results in response. Default page size is 50.", "required": false, "type": "integer", "format": "int32", "default": 50, "x-ms-parameter-location": "method" }, "ListTriggerQueryParams.states": { "name": "states", "in": "query", "description": "Filter triggers based on a comma separated list of states.", "required": false, "type": "string", "enum": [ "Active", "Paused", "Completed", "Disabled" ], "x-ms-enum": { "name": "TriggerState", "modelAsString": true, "values": [ { "name": "Active", "value": "Active", "description": "The trigger is active." }, { "name": "Paused", "value": "Paused", "description": "The trigger is paused manually." }, { "name": "Completed", "value": "Completed", "description": "The trigger is completed." }, { "name": "Disabled", "value": "Disabled", "description": "The trigger is disabled due to error." } ] }, "x-ms-parameter-location": "method" }, "ListTriggerQueryParams.testIds": { "name": "testIds", "in": "query", "description": "Search based on triggers associated with the provided test ids.", "required": false, "type": "string", "x-ms-parameter-location": "method" }, "MetricDimensionsRequest.interval": { "name": "interval", "in": "query", "description": "The interval (i.e. timegrain) of the query.", "required": false, "type": "string", "default": "PT1M", "enum": [ "PT5S", "PT10S", "PT1M", "PT5M", "PT1H" ], "x-ms-enum": { "name": "TimeGrain", "modelAsString": true, "values": [ { "name": "PT5S", "value": "PT5S", "description": "5 seconds, available only if test run duration is less than 10 minutes." }, { "name": "PT10S", "value": "PT10S", "description": "10 seconds, available only if test run duration is less than 10 minutes." }, { "name": "PT1M", "value": "PT1M", "description": "1 minute" }, { "name": "PT5M", "value": "PT5M", "description": "5 minutes, available only if test run duration is greater than 1 minute." }, { "name": "PT1H", "value": "PT1H", "description": "1 hour, available only if test run duration is greater than 1 minute." } ] }, "x-ms-parameter-location": "method" }, "MetricDimensionsRequest.metricNamespace": { "name": "metricNamespace", "in": "query", "description": "Metric namespace to query metric definitions for.", "required": true, "type": "string", "x-ms-parameter-location": "method" }, "MetricDimensionsRequest.metricname": { "name": "metricname", "in": "query", "description": "Metric name", "required": true, "type": "string", "x-ms-parameter-location": "method" }, "MetricDimensionsRequest.timespan": { "name": "timespan", "in": "query", "description": "The timespan of the query. It is a string with the following format 'startDateTime_ISO/endDateTime_ISO'.", "required": true, "type": "string", "x-ms-parameter-location": "method" }, "OldTestRunIdQueryParam": { "name": "oldTestRunId", "in": "query", "description": "Existing test run identifier that should be rerun, if this is provided, the\ntest will run with the JMX file, configuration and app components from the\nexisting test run. You can override the configuration values for new test run\nin the request body.", "required": false, "type": "string", "x-ms-parameter-location": "method" }, "TestRunIdParam": { "name": "testRunId", "in": "path", "description": "Unique name for the load test run, must contain only lower-case alphabetic,\nnumeric, underscore or hyphen characters.", "required": true, "type": "string", "minLength": 2, "maxLength": 50, "pattern": "^[a-z0-9_-]*$", "x-ms-parameter-location": "method" } } }