{ "swagger": "2.0", "info": { "title": "Microsoft.Discovery.Workspace service", "version": "2026-06-01", "x-typespec-generated": [ { "emitter": "@azure-tools/typespec-autorest" } ] }, "schemes": [ "https" ], "x-ms-parameterized-host": { "hostTemplate": "{endpoint}", "useSchemePrefix": false, "parameters": [ { "name": "endpoint", "in": "path", "description": "Supported Discovery Workspace Services endpoints (protocol and hostname, for example: https://{workspaceName}.discovery.azure.com).", "required": true, "type": "string", "format": "uri", "x-ms-skip-url-encoding": true } ] }, "produces": [ "application/json" ], "consumes": [ "application/json" ], "security": [ { "OAuth2Auth": [ "https://discovery.azure.com/.default" ] } ], "securityDefinitions": { "OAuth2Auth": { "type": "oauth2", "flow": "implicit", "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", "scopes": { "https://discovery.azure.com/.default": "" } } }, "tags": [], "paths": { "/conversations": { "get": { "operationId": "Conversations_List", "description": "List Conversation resources", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "investigationName", "in": "query", "description": "The name of the associated Investigation", "required": false, "type": "string" }, { "name": "projectName", "in": "query", "description": "The name of the associated Project", "required": false, "type": "string" }, { "name": "createdSince", "in": "query", "description": "The oldest creation timestamp to keep", "required": false, "type": "string", "format": "date-time" }, { "name": "skip", "in": "query", "description": "The number of results to skip.", "required": false, "type": "integer", "format": "int32" }, { "name": "top", "in": "query", "description": "The maximum number of results to return.", "required": false, "type": "integer", "format": "int32" }, { "name": "maxPageSize", "in": "query", "description": "The maximum number of results per page.", "required": false, "type": "integer", "format": "int32" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/PagedConversation" } }, "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": { "Conversations_List_MaximumSet": { "$ref": "./examples/Conversations_List_MaximumSet_Gen.json" } } }, "post": { "operationId": "Conversations_Create", "description": "Creates a Conversation.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/CreateConversationRequest" } } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Conversation" } }, "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": { "Conversations_Create_MaximumSet": { "$ref": "./examples/Conversations_Create_MaximumSet_Gen.json" } } } }, "/conversations/{conversationName}": { "get": { "operationId": "Conversations_Get", "description": "Fetch a Conversation by name.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "conversationName", "in": "path", "description": "The conversation name.", "required": true, "type": "string", "pattern": "^[a-zA-Z0-9-]{1,75}$" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Conversation" } }, "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": { "Conversations_Get_MaximumSet": { "$ref": "./examples/Conversations_Get_MaximumSet_Gen.json" } } }, "patch": { "operationId": "Conversations_Update", "description": "Updates a Conversation.", "consumes": [ "application/merge-patch+json" ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "conversationName", "in": "path", "description": "The conversation name.", "required": true, "type": "string", "pattern": "^[a-zA-Z0-9-]{1,75}$" }, { "name": "resource", "in": "body", "description": "The resource instance.", "required": true, "schema": { "$ref": "#/definitions/ConversationCreateOrUpdate" } } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Conversation" } }, "201": { "description": "The request has succeeded and a new resource has been created as a result.", "schema": { "$ref": "#/definitions/Conversation" } }, "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": { "Conversations_Update_MaximumSet": { "$ref": "./examples/Conversations_Update_MaximumSet_Gen.json" } } }, "delete": { "operationId": "Conversations_Delete", "description": "Deletes a Conversation.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "conversationName", "in": "path", "description": "The conversation name.", "required": true, "type": "string", "pattern": "^[a-zA-Z0-9-]{1,75}$" } ], "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": { "Conversations_Delete_MaximumSet": { "$ref": "./examples/Conversations_Delete_MaximumSet_Gen.json" } } } }, "/projects/{projectName}/investigations": { "get": { "operationId": "Investigations_List", "description": "List Investigation resources", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "The project name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "createdSince", "in": "query", "description": "The oldest creation timestamp to keep", "required": false, "type": "string", "format": "date-time" }, { "name": "skip", "in": "query", "description": "The number of results to skip.", "required": false, "type": "integer", "format": "int32" }, { "name": "top", "in": "query", "description": "The maximum number of results to return.", "required": false, "type": "integer", "format": "int32" }, { "name": "maxPageSize", "in": "query", "description": "The maximum number of results per page.", "required": false, "type": "integer", "format": "int32" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/PagedInvestigation" } }, "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": { "Investigations_List_MaximumSet": { "$ref": "./examples/Investigations_List_MaximumSet_Gen.json" } } } }, "/projects/{projectName}/investigations/{investigationName}": { "get": { "operationId": "Investigations_Get", "description": "Fetch a Investigation by name.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "The project name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "investigationName", "in": "path", "description": "The investigation name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Investigation" } }, "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": { "Investigations_Get_MaximumSet": { "$ref": "./examples/Investigations_Get_MaximumSet_Gen.json" } } }, "put": { "operationId": "Investigations_CreateOrReplace", "description": "Creates an Investigation.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "The project name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "investigationName", "in": "path", "description": "The investigation name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "resource", "in": "body", "description": "The resource instance.", "required": true, "schema": { "$ref": "#/definitions/Investigation" } } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Investigation" } }, "201": { "description": "The request has succeeded and a new resource has been created as a result.", "schema": { "$ref": "#/definitions/Investigation" } }, "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": { "Investigations_CreateOrReplace_MaximumSet": { "$ref": "./examples/Investigations_CreateOrReplace_MaximumSet_Gen.json" } } }, "patch": { "operationId": "Investigations_CreateOrUpdate", "description": "Updates an Investigation.", "consumes": [ "application/merge-patch+json" ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "The project name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "investigationName", "in": "path", "description": "The investigation name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "resource", "in": "body", "description": "The resource instance.", "required": true, "schema": { "$ref": "#/definitions/InvestigationCreateOrUpdate" } } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Investigation" } }, "201": { "description": "The request has succeeded and a new resource has been created as a result.", "schema": { "$ref": "#/definitions/Investigation" } }, "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": { "Investigations_CreateOrUpdate_MaximumSet": { "$ref": "./examples/Investigations_CreateOrUpdate_MaximumSet_Gen.json" } } }, "delete": { "operationId": "Investigations_Delete", "description": "Delete a Investigation.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "The project name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "investigationName", "in": "path", "description": "The investigation name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "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": { "Investigations_Delete_MaximumSet": { "$ref": "./examples/Investigations_Delete_MaximumSet_Gen.json" } }, "x-ms-long-running-operation": true } }, "/projects/{projectName}/investigations/{investigationName}/discoveryEngine": { "get": { "operationId": "Investigations_GetDiscoveryEngine", "description": "Get the discovery engine for an investigation.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "The project name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "investigationName", "in": "path", "description": "The investigation name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/DiscoveryEngine" } }, "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": { "Investigations_GetDiscoveryEngine_MaximumSet": { "$ref": "./examples/Investigations_GetDiscoveryEngine_MaximumSet_Gen.json" } } }, "patch": { "operationId": "Investigations_UpdateDiscoveryEngine", "description": "Update the discovery engine for an investigation. This will create the discovery engine if it does not already exist.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "The project name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "investigationName", "in": "path", "description": "The investigation name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "body", "in": "body", "description": "The discovery engine update request. This will create the discovery engine if it does not already exist.", "required": true, "schema": { "$ref": "#/definitions/DiscoveryEngineUpdate" } } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/DiscoveryEngine" } }, "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": { "Investigations_UpdateDiscoveryEngine_MaximumSet": { "$ref": "./examples/Investigations_UpdateDiscoveryEngine_MaximumSet_Gen.json" } } } }, "/projects/{projectName}/investigations/{investigationName}/discoveryEngine/workingMemory": { "get": { "operationId": "Investigations_GetDiscoveryEngineMemory", "description": "List discovery engine working memory entries for an investigation.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "The project name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "investigationName", "in": "path", "description": "The investigation name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "skip", "in": "query", "description": "Skip results.", "required": false, "type": "integer", "format": "int32" }, { "name": "top", "in": "query", "description": "Query the top results.", "required": false, "type": "integer", "format": "int32" }, { "name": "maxPageSize", "in": "query", "description": "Bound the number of results that come back in one response.", "required": false, "type": "integer", "format": "int32" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/PagedWorkingMemoryEntry" } }, "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": { "Investigations_GetDiscoveryEngineMemory_MaximumSet": { "$ref": "./examples/Investigations_GetDiscoveryEngineMemory_MaximumSet_Gen.json" } } } }, "/projects/{projectName}/investigations/{investigationName}/discoveryEngine:start": { "post": { "operationId": "Investigations_StartDiscoveryEngine", "description": "Start the discovery engine for an investigation.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "The project name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "investigationName", "in": "path", "description": "The investigation name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/DiscoveryEngine" } }, "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": { "Investigations_StartDiscoveryEngine_MaximumSet": { "$ref": "./examples/Investigations_StartDiscoveryEngine_MaximumSet_Gen.json" } } } }, "/projects/{projectName}/investigations/{investigationName}/discoveryEngine:stop": { "post": { "operationId": "Investigations_StopDiscoveryEngine", "description": "Stop the discovery engine for an investigation.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "The project name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "investigationName", "in": "path", "description": "The investigation name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/DiscoveryEngine" } }, "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": { "Investigations_StopDiscoveryEngine_MaximumSet": { "$ref": "./examples/Investigations_StopDiscoveryEngine_MaximumSet_Gen.json" } } } }, "/projects/{projectName}/investigations/{investigationName}/operations/{operationId}": { "get": { "operationId": "Investigations_GetOperationStatus", "description": "Get the status of a long-running operation.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "The project name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "investigationName", "in": "path", "description": "The investigation name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "operationId", "in": "path", "description": "The unique ID of the operation.", "required": true, "type": "string" } ], "responses": { "200": { "description": "The request has succeeded.", "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\"." }, "result": { "$ref": "#/definitions/Investigation", "description": "The result of the operation." } }, "required": [ "id", "status" ] } }, "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": { "Investigations_GetOperationStatus_MaximumSet": { "$ref": "./examples/Investigations_GetOperationStatus_MaximumSet_Gen.json" } } } }, "/projects/{projectName}/investigations/{investigationName}/tasks": { "get": { "operationId": "Tasks_List", "description": "List tasks with optional OData filters.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "The project name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "investigationName", "in": "path", "description": "The investigation name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "filter", "in": "query", "description": "OData filter expression. Supported fields: investigationId, status, createdByType, priority, createdAt, lastModifiedAt. Example: status eq 'new' or status eq 'executing'", "required": false, "type": "string" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/PagedTask" } }, "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": { "Tasks_List_MaximumSet": { "$ref": "./examples/Tasks_List_MaximumSet_Gen.json" } }, "x-ms-pageable": { "nextLinkName": "nextLink" } }, "post": { "operationId": "Tasks_Create", "description": "Create a new task.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "The project name.", "required": true, "type": "string", "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "investigationName", "in": "path", "description": "The investigation name.", "required": true, "type": "string", "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "body", "in": "body", "description": "Task creation request.", "required": true, "schema": { "$ref": "#/definitions/Task" } } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Task" } }, "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": { "Tasks_Create_MaximumSet": { "$ref": "./examples/Tasks_Create_MaximumSet_Gen.json" } } } }, "/projects/{projectName}/investigations/{investigationName}/tasks/{taskName}": { "get": { "operationId": "Tasks_Get", "description": "Get a task by ID.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "The project name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "investigationName", "in": "path", "description": "The investigation name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "taskName", "in": "path", "description": "The unique identifier of the task.", "required": true, "type": "string", "pattern": "^[a-zA-Z0-9-]{1,75}$" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Task" } }, "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": { "Tasks_Get_MaximumSet": { "$ref": "./examples/Tasks_Get_MaximumSet_Gen.json" } } }, "patch": { "operationId": "Tasks_Update", "description": "Patch (partial update) a task (e.g. status, description, validation requirements, dependencies, result).", "consumes": [ "application/merge-patch+json" ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "The project name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "investigationName", "in": "path", "description": "The investigation name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "taskName", "in": "path", "description": "The unique identifier of the task.", "required": true, "type": "string", "pattern": "^[a-zA-Z0-9-]{1,75}$" }, { "name": "resource", "in": "body", "description": "The resource instance.", "required": true, "schema": { "$ref": "#/definitions/TaskCreateOrUpdate" } } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Task" } }, "201": { "description": "The request has succeeded and a new resource has been created as a result.", "schema": { "$ref": "#/definitions/Task" } }, "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": { "Tasks_Update_MaximumSet": { "$ref": "./examples/Tasks_Update_MaximumSet_Gen.json" } } }, "delete": { "operationId": "Tasks_Delete", "description": "Delete a task by ID.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "The project name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "investigationName", "in": "path", "description": "The investigation name.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "taskName", "in": "path", "description": "The unique identifier of the task.", "required": true, "type": "string", "pattern": "^[a-zA-Z0-9-]{1,75}$" } ], "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": { "Tasks_Delete_MaximumSet": { "$ref": "./examples/Tasks_Delete_MaximumSet_Gen.json" } } } }, "/projects/{projectName}/investigations/{investigationName}/tasks/{taskName}:start": { "post": { "operationId": "Tasks_Start", "description": "Start execution of a task.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "The project name.", "required": true, "type": "string", "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "investigationName", "in": "path", "description": "The investigation name.", "required": true, "type": "string", "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "taskName", "in": "path", "description": "The task name.", "required": true, "type": "string", "pattern": "^[a-zA-Z0-9-]{1,75}$" }, { "name": "body", "in": "body", "description": "Start task request body.", "required": false, "schema": { "$ref": "#/definitions/StartTaskRequest" } } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Task" } }, "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": { "Tasks_Start_MaximumSet": { "$ref": "./examples/Tasks_Start_MaximumSet_Gen.json" } } } }, "/projects/{projectName}/investigations/{investigationName}/tasks/{taskName}:addComment": { "post": { "operationId": "Tasks_AddComment", "description": "Add a comment to a task.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "taskName", "in": "path", "description": "The task name.", "required": true, "type": "string", "pattern": "^[a-zA-Z0-9-]{1,75}$" }, { "name": "projectName", "in": "path", "description": "The project name.", "required": true, "type": "string", "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "investigationName", "in": "path", "description": "The investigation name.", "required": true, "type": "string", "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "body", "in": "body", "description": "Comment to add.", "required": true, "schema": { "$ref": "#/definitions/TaskComment" } } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Task" } }, "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": { "Tasks_AddComment_MaximumSet": { "$ref": "./examples/Tasks_AddComment_MaximumSet_Gen.json" } } } }, "/projects/{projectName}/investigations/{investigationName}/tasks/{taskName}:addExecutionHistory": { "post": { "operationId": "Tasks_AddExecutionHistory", "description": "Add an execution history entry to a task.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "The project name.", "required": true, "type": "string", "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "investigationName", "in": "path", "description": "The investigation name.", "required": true, "type": "string", "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "taskName", "in": "path", "description": "The task name.", "required": true, "type": "string", "pattern": "^[a-zA-Z0-9-]{1,75}$" }, { "name": "body", "in": "body", "description": "Execution history entry to add.", "required": true, "schema": { "$ref": "#/definitions/ExecutionHistoryEntry" } } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Task" } }, "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": { "Tasks_AddExecutionHistory_MaximumSet": { "$ref": "./examples/Tasks_AddExecutionHistory_MaximumSet_Gen.json" } } } }, "/tools/projects/{projectName}:run": { "post": { "operationId": "Tools_Run", "description": "Run the specified tool in the context of the specified project.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "Name of the associated Project.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/RunRequest" } } ], "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\"." }, "result": { "$ref": "#/definitions/RunResult", "description": "The result of the operation." } }, "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": { "Tools_Run_MaximumSet": { "$ref": "./examples/Tools_Run_MaximumSet_Gen.json" } }, "x-ms-long-running-operation": true } }, "/tools/projects/{projectName}/computeUsage": { "get": { "operationId": "Tools_GetComputeUsage", "description": "Examine compute usage.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "Name of the associated Project.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/ComputeUsage" } }, "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": { "Tools_GetComputeUsage_MaximumSet": { "$ref": "./examples/Tools_GetComputeUsage_MaximumSet_Gen.json" } } } }, "/tools/projects/{projectName}/operations": { "get": { "operationId": "Tools_GetOperations", "description": "List tool runs.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "Name of the associated Project.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "skip", "in": "query", "description": "Skip results (pagination control).", "required": false, "type": "integer", "format": "int32" }, { "name": "top", "in": "query", "description": "Query the top results (pagination control).", "required": false, "type": "integer", "format": "int32" }, { "name": "maxPageSize", "in": "query", "description": "Bound the number of results that come back in one response (pagination control).", "required": false, "type": "integer", "format": "int32" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/PagedOperation" } }, "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": { "Tools_GetOperations_MaximumSet": { "$ref": "./examples/Tools_GetOperations_MaximumSet_Gen.json" } } } }, "/tools/projects/{projectName}/operations/{operationId}": { "get": { "operationId": "Tools_GetRunStatus", "description": "Used for to poll status of a Tool run.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "Name of the associated Project.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "logCount", "in": "query", "description": "Number of log lines to return (0-2500).", "required": false, "type": "integer", "format": "int32", "minimum": 0, "maximum": 2500 }, { "name": "operationId", "in": "path", "description": "The unique ID of the operation.", "required": true, "type": "string" } ], "responses": { "200": { "description": "The request has succeeded.", "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\"." }, "result": { "$ref": "#/definitions/RunResult", "description": "The result of the operation." } }, "required": [ "id", "status" ] } }, "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": { "Tools_GetRunStatus_MaximumSet": { "$ref": "./examples/Tools_GetRunStatus_MaximumSet_Gen.json" } } } }, "/tools/projects/{projectName}/operations/{operationId}:cancel": { "post": { "operationId": "Tools_CancelRun", "description": "Cancel an ongoing tool run.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "projectName", "in": "path", "description": "Name of the associated Project.", "required": true, "type": "string", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "operationId", "in": "path", "description": "ID of the operation to cancel.", "required": true, "type": "string", "maxLength": 38 } ], "responses": { "202": { "description": "The request has been accepted for processing, but processing has not yet completed." }, "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": { "Tools_CancelRun_MaximumSet": { "$ref": "./examples/Tools_CancelRun_MaximumSet_Gen.json" } } } } }, "definitions": { "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." } ] } }, "ComputeUsage": { "type": "object", "description": "Overview of compute usage for a project.", "properties": { "supercomputers": { "type": "object", "description": "Index of information for each supercomputer in the workspace of a project.\nIndexed by the (short) name of the supercomputer.", "additionalProperties": { "$ref": "#/definitions/SupercomputerUsage" } } }, "required": [ "supercomputers" ] }, "Conversation": { "type": "object", "description": "A conversation.", "properties": { "name": { "type": "string", "description": "The conversation name.", "pattern": "^[a-zA-Z0-9-]{1,75}$", "readOnly": true }, "createdAt": { "type": "string", "format": "date-time", "description": "The timestamp when the resource was created", "readOnly": true }, "createdBy": { "type": "string", "description": "The ID of the user who created this resource.", "readOnly": true }, "createdByType": { "$ref": "#/definitions/Microsoft.Discovery.Common.ByType", "description": "The type of user who created this resource.", "readOnly": true }, "lastModifiedAt": { "type": "string", "format": "date-time", "description": "The timestamp when the resource was last updated", "readOnly": true }, "lastModifiedBy": { "type": "string", "description": "The ID of the user who updated this resource.", "readOnly": true }, "lastModifiedByType": { "$ref": "#/definitions/Microsoft.Discovery.Common.ByType", "description": "The type of user who updated this resource.", "readOnly": true }, "displayName": { "type": "string", "description": "The title", "x-ms-mutability": [ "read", "update", "create" ] }, "investigationName": { "type": "string", "description": "The Name of the associated Investigation", "x-ms-mutability": [ "read", "create" ] }, "projectName": { "type": "string", "description": "The name of the associated Project", "x-ms-mutability": [ "read", "create" ] } }, "required": [ "name" ] }, "ConversationCreateOrUpdate": { "type": "object", "description": "A conversation.", "properties": { "displayName": { "type": "string", "description": "The title", "x-ms-mutability": [ "read", "update", "create" ] }, "investigationName": { "type": "string", "description": "The Name of the associated Investigation", "x-ms-mutability": [ "read", "create" ] }, "projectName": { "type": "string", "description": "The name of the associated Project", "x-ms-mutability": [ "read", "create" ] } } }, "CreateConversationRequest": { "type": "object", "description": "Request body for creating a conversation.", "properties": { "projectName": { "type": "string", "description": "The name of the associated Project", "x-ms-mutability": [ "read", "create" ] }, "investigationName": { "type": "string", "description": "The Name of the associated Investigation", "x-ms-mutability": [ "read", "create" ] }, "displayName": { "type": "string", "description": "The title", "x-ms-mutability": [ "read", "update", "create" ] } }, "required": [ "projectName" ] }, "DiscoveryEngine": { "type": "object", "description": "Discovery engine instance.", "properties": { "discoveryEngineStatus": { "$ref": "#/definitions/DiscoveryEngineStatus", "description": "The Discovery Engine status." }, "systemPrompt": { "type": "string", "description": "The system prompt." }, "configuration": { "type": "object", "description": "The Discovery Engine configuration.", "additionalProperties": {} }, "createdAt": { "type": "string", "format": "date-time", "description": "The timestamp when the resource was created", "readOnly": true }, "createdBy": { "type": "string", "description": "The ID of the user who created this resource.", "readOnly": true }, "createdByType": { "$ref": "#/definitions/Microsoft.Discovery.Common.ByType", "description": "The type of user who created this resource.", "readOnly": true }, "lastModifiedAt": { "type": "string", "format": "date-time", "description": "The timestamp when the resource was last updated", "readOnly": true }, "lastModifiedBy": { "type": "string", "description": "The ID of the user who updated this resource.", "readOnly": true }, "lastModifiedByType": { "$ref": "#/definitions/Microsoft.Discovery.Common.ByType", "description": "The type of user who updated this resource.", "readOnly": true } }, "required": [ "discoveryEngineStatus" ] }, "DiscoveryEngineStatus": { "type": "string", "description": "Discovery Engine Status", "enum": [ "Inactive", "Active" ], "x-ms-enum": { "name": "DiscoveryEngineStatus", "modelAsString": true, "values": [ { "name": "Inactive", "value": "Inactive", "description": "Discovery Engine Inactive" }, { "name": "Active", "value": "Active", "description": "Discovery Engine Active" } ] } }, "DiscoveryEngineUpdate": { "type": "object", "description": "Discovery Engine Update Request. This will create the discovery engine if it does not already exist.", "properties": { "systemPrompt": { "type": "string", "description": "The system prompt." }, "configuration": { "type": "object", "description": "The Discovery Engine configuration.", "additionalProperties": {} } } }, "ExecutionHistoryEntry": { "type": "object", "description": "Execution history entry for a task.", "properties": { "createdAt": { "type": "string", "format": "date-time", "description": "Timestamp when the entry was created (ISO 8601 UTC format)." }, "action": { "type": "string", "description": "The action that was performed (controlled vocabulary; semi-open)." }, "createdBy": { "type": "string", "description": "Identifier of who created this entry (GUID for user | resourceId for application | arbitrary string for other types)." }, "createdByType": { "$ref": "#/definitions/Microsoft.Discovery.Common.ByType", "description": "Type of entity that created this entry (User, Application, System, or custom type)." }, "summary": { "type": "string", "description": "Brief summary of the execution event.", "maxLength": 2048 }, "responseMessageText": { "type": "string", "description": "Detailed completion message." }, "responseMessageId": { "type": "string", "description": "Run or message ID for full details." }, "additionalDetails": { "type": "object", "description": "Freeform key-value pairs for additional details.", "additionalProperties": {} } }, "required": [ "createdAt", "action", "createdBy", "createdByType" ] }, "InfraOverrides": { "type": "object", "description": "Explicitly set tool run requirements - overrides the tool definition.", "properties": { "cpu": { "type": "string", "description": "Override CPU requirements (e.g. 1, or 500m for 500 milli-CPUs)" }, "ram": { "type": "string", "description": "Override RAM requirements (e.g. 500Mi or 1Gi)." }, "gpu": { "type": "string", "description": "Override GPU count requirements." }, "replicaCount": { "type": "integer", "format": "int32", "description": "Override the number of replicas of the tool image to run." }, "imageUri": { "type": "string", "description": "Override the image to use for this tool run." }, "maxCpu": { "type": "string", "description": "Override the maximum CPU allowed for the tool run (e.g. 1, or 500m for 500 milli-CPUs)" }, "maxRam": { "type": "string", "description": "Override the maximum RAM allowed for the tool run (e.g. 500Mi or 1Gi)" }, "maxGpu": { "type": "string", "description": "Override the maximum GPU count allowed for the tool run" } } }, "InlineFile": { "type": "object", "description": "A file to be included in the input data for a tool run and the path where it will be mounted, relative to the working directory.", "properties": { "mountPath": { "type": "string", "description": "Absolute path within the container at which to mount this file.", "pattern": "^/.+$" }, "encodedFile": { "type": "string", "description": "File contents: Compressed using .gz then base64-encoded.", "maxLength": 100000 } }, "required": [ "mountPath", "encodedFile" ] }, "InputDataMount": { "type": "object", "description": "Data URI and path where it will be mounted in the tool container.", "properties": { "storageUri": { "$ref": "#/definitions/StorageUri", "description": "URI of input data to mount." }, "mountPath": { "type": "string", "description": "Absolute path within the container at which to mount this input.", "pattern": "^/.+$" }, "mountProtocol": { "$ref": "#/definitions/StorageMountProtocol", "description": "The protocol to use for mounting this storage. Overrides any value specified on the storage container." } }, "required": [ "storageUri", "mountPath" ] }, "Investigation": { "type": "object", "description": "A investigation list item.", "properties": { "name": { "type": "string", "description": "The investigation name.", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$", "readOnly": true }, "projectName": { "type": "string", "description": "The parent project name.", "maxLength": 24, "pattern": "^[a-zA-Z0-9-]{3,24}$", "readOnly": true }, "createdAt": { "type": "string", "format": "date-time", "description": "The timestamp when the resource was created", "readOnly": true }, "createdBy": { "type": "string", "description": "The ID of the user who created this resource.", "readOnly": true }, "createdByType": { "$ref": "#/definitions/Microsoft.Discovery.Common.ByType", "description": "The type of user who created this resource.", "readOnly": true }, "lastModifiedAt": { "type": "string", "format": "date-time", "description": "The timestamp when the resource was last updated", "readOnly": true }, "lastModifiedBy": { "type": "string", "description": "The ID of the user who updated this resource.", "readOnly": true }, "lastModifiedByType": { "$ref": "#/definitions/Microsoft.Discovery.Common.ByType", "description": "The type of user who updated this resource.", "readOnly": true }, "status": { "$ref": "#/definitions/InvestigationStatus", "description": "The status", "readOnly": true }, "description": { "type": "string", "description": "The description", "x-ms-mutability": [ "read", "update", "create" ] }, "tags": { "type": "array", "description": "The tags", "items": { "$ref": "#/definitions/Microsoft.Discovery.Common.Tag" }, "x-ms-mutability": [ "read", "update", "create" ] }, "displayName": { "type": "string", "description": "The title", "x-ms-mutability": [ "read", "update", "create" ] } }, "required": [ "name", "projectName" ] }, "InvestigationCreateOrUpdate": { "type": "object", "description": "A investigation list item.", "properties": { "description": { "type": "string", "description": "The description", "x-ms-mutability": [ "read", "update", "create" ] }, "tags": { "type": "array", "description": "The tags", "items": { "$ref": "#/definitions/Microsoft.Discovery.Common.Tag" }, "x-ms-mutability": [ "read", "update", "create" ] }, "displayName": { "type": "string", "description": "The title", "x-ms-mutability": [ "read", "update", "create" ] } } }, "InvestigationStatus": { "type": "string", "description": "Status", "enum": [ "Created", "Validated", "Failed" ], "x-ms-enum": { "name": "InvestigationStatus", "modelAsString": true, "values": [ { "name": "Created", "value": "Created", "description": "Investigation Created" }, { "name": "Validated", "value": "Validated", "description": "Investigation Validated" }, { "name": "Failed", "value": "Failed", "description": "Investigation Failed" } ] } }, "Microsoft.Discovery.Common.ByType": { "type": "string", "description": "Enum for entity type", "enum": [ "User", "Application", "System" ], "x-ms-enum": { "name": "ByType", "modelAsString": true, "values": [ { "name": "User", "value": "User", "description": "A human user." }, { "name": "Application", "value": "Application", "description": "Application" }, { "name": "System", "value": "System", "description": "The backend system." } ] } }, "Microsoft.Discovery.Common.Tag": { "type": "object", "description": "Definition of Tag", "properties": { "key": { "type": "string", "description": "Property key" }, "value": { "type": "string", "description": "Property value" } } }, "NodepoolUsage": { "type": "object", "description": "Overview of compute usage for a nodepool.", "properties": { "reservedCPUs": { "type": "string", "description": "CPUs in use (e.g. 1, or 500m for 500 milli-CPUs)\nacross all nodes in the nodepool." }, "allocatableCPUs": { "type": "string", "description": "CPUs which are free to use (e.g. 1, or 500m for 500 milli-CPUs)\nacross all nodes in the nodepool." }, "reservedMemory": { "type": "string", "description": "Memory which is in use (e.g. 500Mi or 1Gi)." }, "allocatableMemory": { "type": "string", "description": "Memory which is free to use (e.g. 500Mi or 1Gi)." }, "reservedGPUs": { "type": "string", "description": "GPUs which are in use." }, "allocatableGPUs": { "type": "string", "description": "GPUs which are free to use." } }, "required": [ "reservedCPUs", "allocatableCPUs", "reservedMemory", "allocatableMemory", "reservedGPUs", "allocatableGPUs" ] }, "Operation": { "type": "object", "description": "Summary information for an operation.", "properties": { "id": { "type": "string", "description": "Operation id." }, "nodepoolId": { "type": "string", "description": "The nodepool the operation targets." }, "status": { "$ref": "#/definitions/RunStatus", "description": "Current status of the operation." }, "runtimeDetails": { "type": "string", "description": "Human-readable details about the run status." }, "createdAt": { "type": "string", "format": "date-time", "description": "When the operation was submitted." }, "completedAt": { "type": "string", "format": "date-time", "description": "When the operation completed." }, "createdBy": { "type": "string", "description": "The user who created the operation." } }, "required": [ "id", "nodepoolId", "status", "runtimeDetails", "createdAt" ] }, "OutputDataMount": { "type": "object", "description": "Definition of a mount for collecting tool output data.", "properties": { "storageUri": { "$ref": "#/definitions/StorageUri", "description": "URI of location to persist output to." }, "mountPath": { "type": "string", "description": "Absolute path within the container from which to collect output data.", "pattern": "^/.+$" }, "mountProtocol": { "$ref": "#/definitions/StorageMountProtocol", "description": "The protocol to use for mounting this storage. Overrides any value specified on the storage container." } }, "required": [ "storageUri", "mountPath" ] }, "OutputDataUri": { "type": "object", "description": "Model for providing the URI of the output collected from a specific container path.", "properties": { "storageUri": { "$ref": "#/definitions/StorageUri", "description": "The URI of the output data." }, "mountPath": { "type": "string", "description": "The path within the container from which the output was collected.", "pattern": "^/.+$" } }, "required": [ "storageUri", "mountPath" ] }, "PagedConversation": { "type": "object", "description": "Paged collection of Conversation items", "properties": { "value": { "type": "array", "description": "The Conversation items on this page", "items": { "$ref": "#/definitions/Conversation" } }, "nextLink": { "type": "string", "format": "uri", "description": "The link to the next page of items" } }, "required": [ "value" ] }, "PagedInvestigation": { "type": "object", "description": "Paged collection of Investigation items", "properties": { "value": { "type": "array", "description": "The Investigation items on this page", "items": { "$ref": "#/definitions/Investigation" } }, "nextLink": { "type": "string", "format": "uri", "description": "The link to the next page of items" } }, "required": [ "value" ] }, "PagedOperation": { "type": "object", "description": "Paged collection of Operation items", "properties": { "value": { "type": "array", "description": "The Operation items on this page", "items": { "$ref": "#/definitions/Operation" } }, "nextLink": { "type": "string", "format": "uri", "description": "The link to the next page of items" } }, "required": [ "value" ] }, "PagedTask": { "type": "object", "description": "Paged collection of Task items", "properties": { "value": { "type": "array", "description": "The Task items on this page", "items": { "$ref": "#/definitions/Task" } }, "nextLink": { "type": "string", "format": "uri", "description": "The link to the next page of items" } }, "required": [ "value" ] }, "PagedWorkingMemoryEntry": { "type": "object", "description": "Paged collection of WorkingMemoryEntry items", "properties": { "value": { "type": "array", "description": "The WorkingMemoryEntry items on this page", "items": { "$ref": "#/definitions/WorkingMemoryEntry" } }, "nextLink": { "type": "string", "format": "uri", "description": "The link to the next page of items" } }, "required": [ "value" ] }, "RunRequest": { "type": "object", "description": "Parameters to run a Tool", "properties": { "toolId": { "type": "string", "format": "arm-id", "description": "ID of the tool to execute", "x-ms-arm-id-details": { "allowedResources": [ { "type": "Microsoft.Discovery/Tools" } ] } }, "command": { "type": "string", "description": "Command to pass to tool container entrypoint.\n\nIf the tool has multiple containers defined, this command is executed on all of them.\n\nIf omitted, all containers execute their raw entrypoints.\n\nThis command is parsed into an argument list which is passed to the underlying container runtime.\nFor example, if the command is \"python /code/wrapper.py --input /inputs/abcdef-input-1/input.txt --output /outputs/abcdef-output-1\",\nthen the container runtime will receive the following argument list:\n[\"python\", \"/code/wrapper.py\", \"--input\", \"/inputs/abcdef-input-1/input.txt\", \"--output\", \"/outputs/abcdef-output-1\"]\n\nThe container's entrypoint is not overridden. In Docker terminology, the above argument list becomes\nthe CMD, not the ENTRYPOINT of the launched container.\n\nOur parsing includes the following limited interpretation of special characters:\n- The only special characters are \" ' and \\.\n- Backslashes `\\` escape the next character if that character is a special character, preserving its literal value.\n- Double quotes `\"` preserve everything inside them literally, with the exception of the characters \" and \\, which must be escaped with a backslash `\\`. Unmatched quotes will throw an error.\n- Single quotes `'` preserve everything inside them literally. A single-quote cannot occur within single-quotes. Unmatched quotes will throw an error.\n\nIf you wish to run a command that relies on shell features such as globbing or output redirection, you either need to:\n- use a container with an entrypoint that is a shell (e.g. `/bin/sh` or `/bin/bash`) and pass a command which is valid for that shell e.g.\n`-c 'python /code/wrapper.py --input /inputs/abcdef-input-1/* --output /outputs/abcdef-output-1'`\n- use a container which has a shell installed, and include the shell in the command, e.g.\n`sh -c \"python /code/wrapper.py --input /inputs/abcdef-input-1/* --output /outputs/abcdef-output-1\"`" }, "inlineFiles": { "type": "array", "description": "Encoded inline files to be mounted into the container, e.g. for generated code.", "maxItems": 10, "items": { "$ref": "#/definitions/InlineFile" } }, "inputData": { "type": "array", "description": "Input data references and mount paths.", "items": { "$ref": "#/definitions/InputDataMount" } }, "outputData": { "type": "array", "description": "Output data references and mount paths.", "items": { "$ref": "#/definitions/OutputDataMount" } }, "nodePoolIds": { "type": "array", "description": "IDs of NodePools to use for this run.", "items": { "type": "string", "format": "arm-id", "description": "A type definition that refers the id to an Azure Resource Manager resource.", "x-ms-arm-id-details": { "allowedResources": [ { "type": "Microsoft.Discovery/Supercomputers/NodePools" } ] } } }, "infraOverrides": { "$ref": "#/definitions/InfraOverrides", "description": "Override the infrastructure requirements in the tool definitions." }, "environmentVariables": { "type": "array", "description": "Optional environment variables to set in the tool container. This must not contain any secrets.", "maxItems": 50, "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the environment variable. This must not contain any secrets.", "pattern": "^[A-Za-z_][A-Za-z0-9_]*$" }, "value": { "type": "string", "description": "Value of the environment variable. This must not contain any secrets.", "maxLength": 8192 } }, "required": [ "name" ] } } }, "required": [ "toolId", "nodePoolIds" ] }, "RunResult": { "type": "object", "description": "Run result", "properties": { "status": { "type": "string", "description": "Status of the run." }, "runtimeDetails": { "type": "string", "description": "Human-readable details about the run status." }, "createdAt": { "type": "string", "format": "date-time", "description": "The timestamp when the resource was created", "readOnly": true }, "completedAt": { "type": "string", "format": "date-time", "description": "The time the run completed.", "readOnly": true }, "createdBy": { "type": "string", "description": "The user that started the tool run." }, "toolReport": { "type": "object", "description": "Details provided by the tool (rather than the platform).", "properties": { "percentageComplete": { "type": "integer", "format": "int32", "description": "Percentage compete" }, "statusInformation": { "type": "object" }, "logs": { "type": "string", "description": "Logs from the tool." } }, "required": [ "percentageComplete" ] }, "outputData": { "type": "array", "description": "Output data URIs.", "items": { "$ref": "#/definitions/OutputDataUri" } }, "debugInfo": { "type": "string", "description": "Debugging information." } }, "required": [ "runtimeDetails", "outputData", "debugInfo" ] }, "RunStatus": { "type": "string", "description": "Enum for run status", "enum": [ "NotStarted", "Running", "Succeeded", "Canceled", "Failed" ], "x-ms-enum": { "name": "RunStatus", "modelAsString": true, "values": [ { "name": "NotStarted", "value": "NotStarted", "description": "Not Started" }, { "name": "Running", "value": "Running", "description": "Running" }, { "name": "Succeeded", "value": "Succeeded", "description": "Succeeded" }, { "name": "Canceled", "value": "Canceled", "description": "Canceled" }, { "name": "Failed", "value": "Failed", "description": "Failed" } ] } }, "StartTaskRequest": { "type": "object", "description": "Request body for starting a task.", "properties": { "assignee": { "$ref": "#/definitions/TaskAssignee", "description": "Assignee that will execute the task. Optional." } } }, "StorageMountProtocol": { "type": "string", "description": "The protocol to use for mounting an storage container.", "enum": [ "NFS", "BlobfuseCaching" ], "x-ms-enum": { "name": "StorageMountProtocol", "modelAsString": true, "values": [ { "name": "NFS", "value": "NFS", "description": "NFS protocol. Version of NFS used may vary based on storage type" }, { "name": "BlobfuseCaching", "value": "BlobfuseCaching", "description": "Blobfuse in file cache mode." } ] } }, "StorageUri": { "type": "string", "description": "A URI that references data. There are two forms this can take:\n1. discovery://storageassets/ to reference a Discovery Storage Asset.\n2. discovery://storageassets//paths/ to reference a subpath within a Discovery Storage Asset.", "pattern": "^discovery://storageassets/.*$" }, "SupercomputerUsage": { "type": "object", "description": "Overview of compute usage for a supercomputer.", "properties": { "activeJobs": { "type": "integer", "format": "int64", "description": "Number of active jobs on the supercomputer." }, "pendingJobs": { "type": "integer", "format": "int64", "description": "Number of pending jobs on the supercomputer." }, "nodepools": { "type": "object", "description": "Nodepool utilization for each nodepool for a supercomputer.", "additionalProperties": { "$ref": "#/definitions/NodepoolUsage" } } }, "required": [ "activeJobs", "pendingJobs", "nodepools" ] }, "Task": { "type": "object", "description": "Task resource.", "properties": { "name": { "type": "string", "description": "The unique identifier of the task.", "pattern": "^[a-zA-Z0-9-]{1,75}$", "readOnly": true }, "title": { "type": "string", "description": "The title of the task.", "x-ms-mutability": [ "read", "update", "create" ] }, "priority": { "$ref": "#/definitions/TaskPriority", "description": "The priority of the task.", "x-ms-mutability": [ "read", "update", "create" ] }, "description": { "type": "string", "description": "The description of the task.", "x-ms-mutability": [ "read", "update", "create" ] }, "validationRequirements": { "type": "array", "description": "Array of validation requirements for the task.", "items": { "type": "string" }, "x-ms-mutability": [ "read", "update", "create" ] }, "parentId": { "type": "string", "description": "ID of the parent task if this is a subtask.", "x-ms-mutability": [ "read", "update", "create" ] }, "dependsOn": { "type": "array", "description": "IDs of tasks that must complete before this task can be executed.", "items": { "type": "string" }, "x-ms-mutability": [ "read", "update", "create" ] }, "relatedTo": { "type": "array", "description": "IDs of tasks that are related to this task.", "items": { "type": "string" }, "x-ms-mutability": [ "read", "update", "create" ] }, "assignedTo": { "$ref": "#/definitions/TaskAssignee", "description": "Application or user assigned to this task.", "x-ms-mutability": [ "read", "update", "create" ] }, "comments": { "type": "array", "description": "Comments or notes about the task.", "items": { "$ref": "#/definitions/TaskComment" }, "x-ms-mutability": [ "read", "update", "create" ] }, "status": { "$ref": "#/definitions/TaskStatus", "description": "The current status of the task.", "x-ms-mutability": [ "read", "update" ] }, "createdAt": { "type": "string", "format": "date-time", "description": "The timestamp when the resource was created", "readOnly": true }, "createdBy": { "type": "string", "description": "The ID of the user who created this resource.", "readOnly": true }, "createdByType": { "$ref": "#/definitions/Microsoft.Discovery.Common.ByType", "description": "Type of entity that created the resource (User, Application, System, or custom type).", "x-ms-mutability": [ "read", "create" ] }, "lastModifiedAt": { "type": "string", "format": "date-time", "description": "The timestamp when the resource was last updated", "readOnly": true }, "lastModifiedBy": { "type": "string", "description": "The ID of the user who updated this resource.", "readOnly": true }, "lastModifiedByType": { "$ref": "#/definitions/Microsoft.Discovery.Common.ByType", "description": "The type of user who updated this resource.", "readOnly": true }, "executionHistory": { "type": "array", "description": "History of execution events for this task.", "items": { "$ref": "#/definitions/ExecutionHistoryEntry" }, "readOnly": true }, "investigationId": { "type": "string", "description": "The investigation identifier associated with the task.", "x-ms-mutability": [ "read", "create" ] }, "taskResult": { "$ref": "#/definitions/TaskResult", "description": "Task execution result with text and storage assets.", "x-ms-mutability": [ "read", "update" ] }, "storageAssetIds": { "type": "array", "description": "List of storage assets related to the task.", "items": { "type": "string", "format": "arm-id", "description": "A type definition that refers the id to an Azure Resource Manager resource.", "x-ms-arm-id-details": { "allowedResources": [ { "type": "Microsoft.Discovery/StorageContainers/StorageAssets" } ] } }, "x-ms-mutability": [ "read", "update", "create" ] } }, "required": [ "name" ] }, "TaskAssignee": { "type": "object", "description": "Task assignee information.", "properties": { "id": { "type": "string", "description": "The unique identifier of the assignee." }, "type": { "$ref": "#/definitions/Microsoft.Discovery.Common.ByType", "description": "Type of assignee (User, Application, System, or custom type)." } }, "required": [ "id", "type" ] }, "TaskAssigneeCreateOrUpdate": { "type": "object", "description": "Task assignee information.", "properties": { "id": { "type": "string", "description": "The unique identifier of the assignee." }, "type": { "$ref": "#/definitions/Microsoft.Discovery.Common.ByType", "description": "Type of assignee (User, Application, System, or custom type)." } } }, "TaskComment": { "type": "object", "description": "Task comment.", "properties": { "timestamp": { "type": "string", "format": "date-time", "description": "When the comment was created." }, "createdBy": { "type": "string", "description": "ID of the user or application who created the comment." }, "createdByType": { "$ref": "#/definitions/Microsoft.Discovery.Common.ByType", "description": "Type of creator (User, Application, System, or custom type)." }, "text": { "type": "string", "description": "The comment text content." } }, "required": [ "createdBy", "createdByType", "text" ] }, "TaskCreateOrUpdate": { "type": "object", "description": "Task resource.", "properties": { "title": { "type": "string", "description": "The title of the task.", "x-ms-mutability": [ "read", "update", "create" ] }, "priority": { "$ref": "#/definitions/TaskPriority", "description": "The priority of the task.", "x-ms-mutability": [ "read", "update", "create" ] }, "description": { "type": "string", "description": "The description of the task.", "x-ms-mutability": [ "read", "update", "create" ] }, "validationRequirements": { "type": "array", "description": "Array of validation requirements for the task.", "items": { "type": "string" }, "x-ms-mutability": [ "read", "update", "create" ] }, "parentId": { "type": "string", "description": "ID of the parent task if this is a subtask.", "x-ms-mutability": [ "read", "update", "create" ] }, "dependsOn": { "type": "array", "description": "IDs of tasks that must complete before this task can be executed.", "items": { "type": "string" }, "x-ms-mutability": [ "read", "update", "create" ] }, "relatedTo": { "type": "array", "description": "IDs of tasks that are related to this task.", "items": { "type": "string" }, "x-ms-mutability": [ "read", "update", "create" ] }, "assignedTo": { "$ref": "#/definitions/TaskAssigneeCreateOrUpdate", "description": "Application or user assigned to this task.", "x-ms-mutability": [ "read", "update", "create" ] }, "comments": { "type": "array", "description": "Comments or notes about the task.", "items": { "$ref": "#/definitions/TaskComment" }, "x-ms-mutability": [ "read", "update", "create" ] }, "status": { "$ref": "#/definitions/TaskStatus", "description": "The current status of the task.", "x-ms-mutability": [ "read", "update" ] }, "createdByType": { "$ref": "#/definitions/Microsoft.Discovery.Common.ByType", "description": "Type of entity that created the resource (User, Application, System, or custom type).", "x-ms-mutability": [ "read", "create" ] }, "investigationId": { "type": "string", "description": "The investigation identifier associated with the task.", "x-ms-mutability": [ "read", "create" ] }, "taskResult": { "$ref": "#/definitions/TaskResult", "description": "Task execution result with text and storage assets.", "x-ms-mutability": [ "read", "update" ] }, "storageAssetIds": { "type": "array", "description": "List of storage assets related to the task.", "items": { "type": "string", "format": "arm-id", "description": "A type definition that refers the id to an Azure Resource Manager resource.", "x-ms-arm-id-details": { "allowedResources": [ { "type": "Microsoft.Discovery/StorageContainers/StorageAssets" } ] } }, "x-ms-mutability": [ "read", "update", "create" ] } } }, "TaskPriority": { "type": "string", "description": "Task priority level.", "enum": [ "Low", "Medium", "High" ], "x-ms-enum": { "name": "TaskPriority", "modelAsString": true, "values": [ { "name": "Low", "value": "Low", "description": "Low priority" }, { "name": "Medium", "value": "Medium", "description": "Medium priority" }, { "name": "High", "value": "High", "description": "High priority" } ] } }, "TaskResult": { "type": "object", "description": "Task execution result.", "properties": { "text": { "type": "string", "description": "The text content of the task result." }, "storageAssetIds": { "type": "array", "description": "Array of storage asset identifiers related to the result.", "items": { "type": "string", "format": "arm-id", "description": "A type definition that refers the id to an Azure Resource Manager resource.", "x-ms-arm-id-details": { "allowedResources": [ { "type": "Microsoft.Discovery/StorageContainers/StorageAssets" } ] } } } } }, "TaskStatus": { "type": "string", "description": "Task status enumeration.", "enum": [ "New", "OnHold", "Complete", "Removed", "FlaggedHuman", "FlaggedAi", "Executing", "ExecutionDone", "Stale", "Failed", "Incomplete" ], "x-ms-enum": { "name": "TaskStatus", "modelAsString": true, "values": [ { "name": "New", "value": "New", "description": "The task is newly created" }, { "name": "OnHold", "value": "OnHold", "description": "The task is on hold" }, { "name": "Complete", "value": "Complete", "description": "The task has been completed" }, { "name": "Removed", "value": "Removed", "description": "The task has been removed" }, { "name": "FlaggedHuman", "value": "FlaggedHuman", "description": "The task has been flagged for human review" }, { "name": "FlaggedAi", "value": "FlaggedAi", "description": "The task has been flagged for AI review" }, { "name": "Executing", "value": "Executing", "description": "The task is currently executing" }, { "name": "ExecutionDone", "value": "ExecutionDone", "description": "The task execution is done" }, { "name": "Stale", "value": "Stale", "description": "The task has become stale" }, { "name": "Failed", "value": "Failed", "description": "The task has failed" }, { "name": "Incomplete", "value": "Incomplete", "description": "The task is incomplete" } ] } }, "WorkingMemoryEntry": { "type": "object", "description": "Working memory entry.", "properties": { "content": { "type": "string", "description": "The content of the working memory entry." }, "type": { "$ref": "#/definitions/WorkingMemoryEntryType", "description": "The type of the working memory entry." }, "createdAt": { "type": "string", "format": "date-time", "description": "The timestamp when the resource was created", "readOnly": true } }, "required": [ "content", "type" ] }, "WorkingMemoryEntryType": { "type": "string", "description": "Working memory entry type.", "enum": [ "Thought" ], "x-ms-enum": { "name": "WorkingMemoryEntryType", "modelAsString": true, "values": [ { "name": "Thought", "value": "Thought", "description": "Thought" } ] } } }, "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" } } }