From d47ca6415ad5129fbb3482779074677ff8eca2c8 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Tue, 28 Jan 2025 15:59:06 -0500 Subject: [PATCH 001/143] Draft of Unified AI Data Plane TypeSpec --- .../Azure.AI.Unified/agents/common/models.tsp | 176 +++++ .../ai/Azure.AI.Unified/agents/files/main.tsp | 0 .../Azure.AI.Unified/agents/files/models.tsp | 121 ++++ .../Azure.AI.Unified/agents/files/routes.tsp | 122 ++++ .../ai/Azure.AI.Unified/agents/main.tsp | 2 + .../agents/messages/models.tsp | 425 ++++++++++++ .../agents/messages/routes.tsp | 119 ++++ .../ai/Azure.AI.Unified/agents/models.tsp | 204 ++++++ .../ai/Azure.AI.Unified/agents/routes.tsp | 111 ++++ .../agents/run_steps/models.tsp | 351 ++++++++++ .../agents/run_steps/routes.tsp | 85 +++ .../Azure.AI.Unified/agents/runs/models.tsp | 482 ++++++++++++++ .../Azure.AI.Unified/agents/runs/routes.tsp | 205 ++++++ .../agents/streaming/events.tsp | 139 ++++ .../agents/threads/models.tsp | 78 +++ .../agents/threads/routes.tsp | 95 +++ .../Azure.AI.Unified/agents/tools/models.tsp | 610 ++++++++++++++++++ .../agents/tools/tool_resources.tsp | 220 +++++++ .../agents/vector_stores/common/main.tsp | 143 ++++ .../vector_stores/file_batches/models.tsp | 45 ++ .../vector_stores/file_batches/routes.tsp | 122 ++++ .../agents/vector_stores/files/models.tsp | 106 +++ .../agents/vector_stores/files/routes.tsp | 114 ++++ .../agents/vector_stores/main.tsp | 6 + .../agents/vector_stores/models.tsp | 161 +++++ .../agents/vector_stores/routes.tsp | 105 +++ specification/ai/Azure.AI.Unified/client.tsp | 4 + .../ai/Azure.AI.Unified/common/models.tsp | 479 ++++++++++++++ .../Azure.AI.Unified/connections/models.tsp | 51 ++ .../Azure.AI.Unified/connections/routes.tsp | 68 ++ .../Azure.AI.Unified/credentials/models.tsp | 56 ++ .../ai/Azure.AI.Unified/dataset/models.tsp | 80 +++ .../ai/Azure.AI.Unified/dataset/routes.tsp | 179 +++++ .../Azure.AI.Unified/evaluations/models.tsp | 137 ++++ .../Azure.AI.Unified/evaluations/routes.tsp | 74 +++ specification/ai/Azure.AI.Unified/main.tsp | 67 ++ .../ai/Azure.AI.Unified/models/models.tsp | 89 +++ .../ai/Azure.AI.Unified/models/routes.tsp | 106 +++ .../ai/Azure.AI.Unified/tspconfig.yaml | 21 + 39 files changed, 5758 insertions(+) create mode 100644 specification/ai/Azure.AI.Unified/agents/common/models.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/files/main.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/files/models.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/files/routes.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/main.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/messages/models.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/messages/routes.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/models.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/routes.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/run_steps/models.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/run_steps/routes.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/runs/models.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/runs/routes.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/streaming/events.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/threads/models.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/threads/routes.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/tools/models.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/tools/tool_resources.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/vector_stores/common/main.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/models.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/routes.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/vector_stores/files/models.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/vector_stores/files/routes.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/vector_stores/main.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/vector_stores/models.tsp create mode 100644 specification/ai/Azure.AI.Unified/agents/vector_stores/routes.tsp create mode 100644 specification/ai/Azure.AI.Unified/client.tsp create mode 100644 specification/ai/Azure.AI.Unified/common/models.tsp create mode 100644 specification/ai/Azure.AI.Unified/connections/models.tsp create mode 100644 specification/ai/Azure.AI.Unified/connections/routes.tsp create mode 100644 specification/ai/Azure.AI.Unified/credentials/models.tsp create mode 100644 specification/ai/Azure.AI.Unified/dataset/models.tsp create mode 100644 specification/ai/Azure.AI.Unified/dataset/routes.tsp create mode 100644 specification/ai/Azure.AI.Unified/evaluations/models.tsp create mode 100644 specification/ai/Azure.AI.Unified/evaluations/routes.tsp create mode 100644 specification/ai/Azure.AI.Unified/main.tsp create mode 100644 specification/ai/Azure.AI.Unified/models/models.tsp create mode 100644 specification/ai/Azure.AI.Unified/models/routes.tsp create mode 100644 specification/ai/Azure.AI.Unified/tspconfig.yaml diff --git a/specification/ai/Azure.AI.Unified/agents/common/models.tsp b/specification/ai/Azure.AI.Unified/agents/common/models.tsp new file mode 100644 index 000000000000..c3c9aea4c698 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/common/models.tsp @@ -0,0 +1,176 @@ +import "@typespec/http"; +import "@typespec/versioning"; + +using TypeSpec.Http; +using TypeSpec.Versioning; + +namespace Azure.AI.Unified.Agents; + +@doc("The possible values for roles attributed to messages in a thread.") +union MessageRole { + string, + + @doc("The role representing the end-user.") + user: "user", + + @doc("The role representing the agent.") + agent: "assistant", +} + +@doc("The available sorting options when requesting a list of response objects.") +union ListSortOrder { + string, + + @doc("Specifies an ascending sort order.") + ascending: "asc", + + @doc("Specifies a descending sort order.") + descending: "desc", +} + +alias OpenAIListRequestOptions = { + @doc("A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.") + @query + limit?: int32 = 20; + + @doc("Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.") + @query + order?: ListSortOrder = ListSortOrder.descending; + + @doc("A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.") + @query + after?: string; + + @doc("A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.") + @query + before?: string; +}; + +#suppress "@azure-tools/typespec-azure-core/casing-style" "OpenAI is a case-sensitive name" +@doc("The response data for a requested list of items.") +model OpenAIPageableListOf { + @doc("The object type, which is always list.") + object: "list"; + + @doc("The requested list of items.") + data: T[]; + + @encodedName("application/json", "first_id") + @doc("The first ID represented in this list.") + firstId: string; + + @encodedName("application/json", "last_id") + @doc("The last ID represented in this list.") + lastId: string; + + @encodedName("application/json", "has_more") + @doc("A value indicating whether there are additional values available not captured in this list.") + hasMore: boolean; +} + +alias DeletionStatus = { + @doc("The ID of the resource specified for deletion.") + id: string; + + @doc("A value indicating whether deletion was successful.") + deleted: boolean; +}; + +alias RequiredNullableMetadata = { + /** + * A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + metadata: Record | null; +}; + +alias OptionalNullableMetadata = { + /** + * A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + metadata?: Record | null; +}; + +/** + * Specifies the format that the model must output. Compatible with GPT-4 Turbo and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + * + * Setting to `{ "type": "json_object" }` enables JSON mode, which guarantees the message the model generates is valid JSON. + * + * **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. + * Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, + * resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off + * if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + */ +#suppress "@azure-tools/typespec-autorest/union-unsupported" "This union is defined according to the OpenAI API" +union AgentsApiResponseFormatOption { + string, + + /** The model will handle the return format. */ + AgentsApiResponseFormatMode, + + /** Sets the format of the output of the model when a ToolCall is returned. */ + AgentsApiResponseFormat, + + /** Using `json_schema` format will provide a description of what the response format is for. */ + ResponseFormatJsonSchemaType, +} + +/** Represents the mode in which the model will handle the return format of a tool call. */ +union AgentsApiResponseFormatMode { + string, + + /** Default value. Let the model handle the return format. */ + "auto", + + /** Setting the value to `none`, will result in a 400 Bad request. */ + "none", +} + +/** + * An object describing the expected output of the model. If `json_object` only `function` type `tools` are allowed to be passed to the Run. + * If `text` the model can return text or any value needed. + */ +model AgentsApiResponseFormat { + /** Must be one of `text` or `json_object`. */ + type?: ResponseFormat = ResponseFormat.text; +} + +/** Possible API response formats. */ +#suppress "@azure-tools/typespec-autorest/union-unsupported" "OpenAPI v2 support deferred" +union ResponseFormat { + string, + + /** `text` format should be used for requests involving any sort of ToolCall. */ + text: "text", + + /** Using `json_object` format will limit the usage of ToolCall to only functions. */ + jsonObject: "json_object", +} + +/** + * The type of response format being defined: `json_schema` + */ +model ResponseFormatJsonSchemaType { + /** Type */ + type: "json_schema"; + + /** The JSON schema, describing response format. */ + @encodedName("application/json", "json_schema") + jsonSchema: ResponseFormatJsonSchema; +} + +/** + * A description of what the response format is for, used by the model to determine how to respond in the format. + */ +#suppress "@azure-tools/typespec-azure-core/no-unknown" "JSON schema takes an arbitrary json" +model ResponseFormatJsonSchema { + /** A description of what the response format is for, used by the model to determine how to respond in the format. */ + description?: string; + + /** The name of a schema. */ + name: string; + + /** The JSON schema object, describing the response format. */ + schema: unknown; +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/files/main.tsp b/specification/ai/Azure.AI.Unified/agents/files/main.tsp new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/specification/ai/Azure.AI.Unified/agents/files/models.tsp b/specification/ai/Azure.AI.Unified/agents/files/models.tsp new file mode 100644 index 000000000000..5d96c272c21a --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/files/models.tsp @@ -0,0 +1,121 @@ +import "@typespec/versioning"; + +namespace Azure.AI.Unified.Agents; + +using TypeSpec.Versioning; + +#suppress "@azure-tools/typespec-azure-core/casing-style" "OpenAI is a case-sensitive name" +@doc("Represents an agent that can call the model and use tools.") +model OpenAIFile { + @doc("The object type, which is always 'file'.") + object: "file"; + + @doc("The identifier, which can be referenced in API endpoints.") + id: string; + + @doc("The size of the file, in bytes.") + bytes: int32; + + @doc("The name of the file.") + filename: string; + + @encodedName("application/json", "created_at") + @encode(DateTimeKnownEncoding.unixTimestamp, int32) + @doc("The Unix timestamp, in seconds, representing when this object was created.") + createdAt: utcDateTime; + + @doc("The intended purpose of a file.") + purpose: FilePurpose; + + /** The state of the file. This field is available in Azure OpenAI only. */ + status?: FileState; + + /** The error message with details in case processing of this file failed. This field is available in Azure OpenAI only. */ + @encodedName("application/json", "status_details") + statusDetails?: string; +} + +/** The state of the file. */ +union FileState { + string, + + /** + * The file has been uploaded but it's not yet processed. This state is not returned by Azure OpenAI and exposed only for + * compatibility. It can be categorized as an inactive state. + */ + uploaded: "uploaded", + + /** + * The operation was created and is not queued to be processed in the future. It can be categorized as an inactive state. + */ + pending: "pending", + + /** The operation has started to be processed. It can be categorized as an active state. */ + running: "running", + + /** + * The operation has successfully processed and is ready for consumption. It can be categorized as a terminal state. + */ + processed: "processed", + + /** + * The operation has completed processing with a failure and cannot be further consumed. It can be categorized as a terminal state. + */ + error: "error", + + /** + * The entity is in the process to be deleted. This state is not returned by Azure OpenAI and exposed only for compatibility. + * It can be categorized as an active state. + */ + deleting: "deleting", + + /** + * The entity has been deleted but may still be referenced by other entities predating the deletion. It can be categorized as a + * terminal state. + */ + deleted: "deleted", +} + +/** The possible values denoting the intended usage of a file. */ +union FilePurpose { + string, + + /** Indicates a file is used for fine tuning input. */ + fineTune: "fine-tune", + + /** Indicates a file is used for fine tuning results. */ + fineTuneResults: "fine-tune-results", + + /** Indicates a file is used as input to agents. */ + agents: "assistants", + + /** Indicates a file is used as output by agents. */ + agentsOutput: "assistants_output", + + /** Indicates a file is used as input to . */ + batch: "batch", + + /** Indicates a file is used as output by a vector store batch operation. */ + batchOutput: "batch_output", + + /** Indicates a file is used as input to a vision operation. */ + vision: "vision", +} + +@doc("The response data from a file list operation.") +model FileListResponse { + @doc("The object type, which is always 'list'.") + object: "list"; + + @doc("The files returned for the request.") + data: OpenAIFile[]; +} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "https://github.com/Azure/autorest.csharp/issues/4041" +@doc("A status response from a file deletion operation.") +model FileDeletionStatus { + ...DeletionStatus; + + @doc("The object type, which is always 'file'.") + object: "file"; +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/files/routes.tsp b/specification/ai/Azure.AI.Unified/agents/files/routes.tsp new file mode 100644 index 000000000000..c690bb48b8c6 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/files/routes.tsp @@ -0,0 +1,122 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@typespec/versioning"; +import "@azure-tools/typespec-client-generator-core"; +import "./models.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using TypeSpec.Versioning; +using Azure.ClientGenerator.Core; + +namespace Azure.AI.Unified.Agents; + +/** + * Gets a list of previously uploaded files. + * + * @param purpose A value that, when provided, limits list results to files matching the corresponding purpose. + * @returns The requested list of files. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@get +@route("/files") +op listFiles is Azure.Core.Foundations.Operation< + { + @doc("The purpose of the file.") + @query + purpose?: FilePurpose; + }, + FileListResponse +>; + +/** + * Uploads a file for use by other operations. + * + * @param contentType The 'content-type' header value, always 'multipart/format-data' for this operation. + * @param file The file data (not filename) to upload. + * @param purpose The intended purpose of the file. + * @param filename A filename to associate with the uploaded data. + * @returns A representation of the uploaded file. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +#suppress "@azure-tools/typespec-azure-core/byos" "mirrored API" +@post +@route("/files") +op uploadFile is Azure.Core.Foundations.Operation< + { + @doc("The name of the file to upload.") + @header + contentType: "multipart/form-data"; + + @doc("The file data, in bytes.") + @clientName("Data", "csharp") + file: bytes; + + @doc("The intended purpose of the uploaded file. Use `assistants` for Agents and Message files, `vision` for Agents image file inputs, `batch` for Batch API, and `fine-tune` for Fine-tuning.") + purpose: FilePurpose; + + /* + * Spec note: filename is not documented as a distinct option but functionally should be one. The value is encoded + * in the multipart Content-Disposition header for the data section and can be provided independently of + * any specific data source like a file. It can be inferred in some circumstances (as when using direct + * file input, like curl does) but should remain configurable when using a stream or other data source + * lacking an a priori name. + */ + @doc("The name of the file.") + filename?: string; + }, + OpenAIFile +>; + +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@delete +@doc("Delete a previously uploaded file.") +@route("/files/{fileId}") +op deleteFile is Azure.Core.Foundations.Operation< + { + @doc("The ID of the file to delete.") + @encodedName("application/json", "file_id") + @path + fileId: string; + }, + FileDeletionStatus +>; + +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API name parity" +@get +@route("/files/{fileId}") +@doc("Returns information about a specific file. Does not retrieve file content.") +op getFile is Azure.Core.Foundations.Operation< + { + @doc("The ID of the file to retrieve.") + @path + @encodedName("application/json", "file_id") + fileId: string; + }, + OpenAIFile +>; + +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@get +@route("/files/{fileId}/content") +@doc("Retrieves the raw content of a specific file.") +op getFileContent is Azure.Core.Foundations.Operation< + { + @doc("The ID of the file to retrieve.") + @path + @encodedName("application/json", "file_id") + fileId: string; + }, + bytes +>; \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/main.tsp b/specification/ai/Azure.AI.Unified/agents/main.tsp new file mode 100644 index 000000000000..ab251fd3b5d9 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/main.tsp @@ -0,0 +1,2 @@ +import "./models.tsp"; +import "./routes.tsp"; \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/messages/models.tsp b/specification/ai/Azure.AI.Unified/agents/messages/models.tsp new file mode 100644 index 000000000000..5d071658d66d --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/messages/models.tsp @@ -0,0 +1,425 @@ +import "../tools/models.tsp"; + +import "@typespec/versioning"; + +namespace Azure.AI.Unified.Agents; + +using TypeSpec.Versioning; + +/** A single message within an agent thread, as provided during that thread's creation for its initial state. */ +model ThreadMessageOptions { + /** + * The role of the entity that is creating the message. Allowed values include: + * - `user`: Indicates the message is sent by an actual user and should be used in most + * cases to represent user-generated messages. + * - `assistant`: Indicates the message is generated by the agent. Use this value to insert + * messages from the agent into the + * conversation. + */ + role: MessageRole; + + /** The textual content of the initial message. Currently, robust input including images and annotated text may only be provided via + * a separate call to the create message API. + */ + content: string; + + /** A list of files attached to the message, and the tools they should be added to. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + attachments?: MessageAttachment[] | null; + + ...OptionalNullableMetadata; +} + +@doc("A single, existing message within an agent thread.") +model ThreadMessage { + @doc("The identifier, which can be referenced in API endpoints.") + id: string; + + @doc("The object type, which is always 'thread.message'.") + object: "thread.message"; + + @encodedName("application/json", "created_at") + @encode(DateTimeKnownEncoding.unixTimestamp, int32) + @doc("The Unix timestamp, in seconds, representing when this object was created.") + createdAt: utcDateTime; + + @encodedName("application/json", "thread_id") + @doc("The ID of the thread that this message belongs to.") + threadId: string; + + /** The status of the message. */ + status: MessageStatus; + + /** On an incomplete message, details about why the message is incomplete. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "incomplete_details") + incompleteDetails: MessageIncompleteDetails | null; + + /** The Unix timestamp (in seconds) for when the message was completed. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encode(DateTimeKnownEncoding.unixTimestamp, int32) + @encodedName("application/json", "completed_at") + completedAt: utcDateTime | null; + + /** The Unix timestamp (in seconds) for when the message was marked as incomplete. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encode(DateTimeKnownEncoding.unixTimestamp, int32) + @encodedName("application/json", "incomplete_at") + incompleteAt: utcDateTime | null; + + @doc("The role associated with the agent thread message.") + role: MessageRole; + + @doc("The list of content items associated with the agent thread message.") + content: MessageContent[]; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "assistant_id") + @doc("If applicable, the ID of the agent that authored this message.") + assistantId: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "run_id") + @doc("If applicable, the ID of the run associated with the authoring of this message.") + runId: string | null; + + /** A list of files attached to the message, and the tools they were added to. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + attachments: MessageAttachment[] | null; + + ...RequiredNullableMetadata; +} + +/** This describes to which tools a file has been attached. */ +model MessageAttachment { + /** The ID of the file to attach to the message. */ + @encodedName("application/json", "file_id") + fileId?: string; + + /** The data source to be used. This option is mutually exclusive with fileId. */ + @doc("Azure asset ID.") + @encodedName("application/json", "data_source") + dataSource?: VectorStoreDataSource; + + /** The tools to add to this file. */ + tools: MessageAttachmentToolDefinition[]; +} + +/** The possible tools to which files will be added by this message */ +#suppress "@azure-tools/typespec-autorest/union-unsupported" "This union is defined according to the OpenAI API" +union MessageAttachmentToolDefinition { + CodeInterpreterToolDefinition | FileSearchToolDefinition, +} + +// Message content types: "text" | "image_file" + +@discriminator("type") +@doc("An abstract representation of a single item of thread message content.") +model MessageContent { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + @doc("The object type.") + type: string; +} + +@doc("A representation of a textual item of thread message content.") +model MessageTextContent extends MessageContent { + @doc("The object type, which is always 'text'.") + type: "text"; + + @doc("The text and associated annotations for this thread message content item.") + text: MessageTextDetails; +} + +@doc("A representation of image file content in a thread message.") +model MessageImageFileContent extends MessageContent { + @doc("The object type, which is always 'image_file'.") + type: "image_file"; + + @encodedName("application/json", "image_file") + @doc("The image file for this thread message content item.") + imageFile: MessageImageFileDetails; +} + +// Text content details + +@doc("The text and associated annotations for a single item of agent thread message content.") +model MessageTextDetails { + @doc("The text data.") + value: string; + + @doc("A list of annotations associated with this text.") + annotations: MessageTextAnnotation[]; +} + +// Annotations, used by text content: "file_citation" | "file_path" + +@discriminator("type") +@doc("An abstract representation of an annotation to text thread message content.") +model MessageTextAnnotation { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + @doc("The object type.") + type: string; + + @doc("The textual content associated with this text annotation item.") + text: string; +} + +// File citation annotation + details + +@doc("A citation within the message that points to a specific quote from a specific File associated with the agent or the message. Generated when the agent uses the 'file_search' tool to search files.") +model MessageTextFileCitationAnnotation extends MessageTextAnnotation { + @doc("The object type, which is always 'file_citation'.") + type: "file_citation"; + + @encodedName("application/json", "file_citation") + @doc(""" + A citation within the message that points to a specific quote from a specific file. + Generated when the agent uses the "file_search" tool to search files. + """) + fileCitation: MessageTextFileCitationDetails; + + @encodedName("application/json", "start_index") + @doc("The first text index associated with this text annotation.") + startIndex?: int32; + + @encodedName("application/json", "end_index") + @doc("The last text index associated with this text annotation.") + endIndex?: int32; +} + +@doc("A representation of a file-based text citation, as used in a file-based annotation of text thread message content.") +model MessageTextFileCitationDetails { + @encodedName("application/json", "file_id") + @doc("The ID of the file associated with this citation.") + fileId: string; + + @doc("The specific quote cited in the associated file.") + quote: string; +} + +// File path annotation + details + +@doc("A citation within the message that points to a file located at a specific path.") +model MessageTextFilePathAnnotation extends MessageTextAnnotation { + @doc("The object type, which is always 'file_path'.") + type: "file_path"; + + @encodedName("application/json", "file_path") + @doc("A URL for the file that's generated when the agent used the code_interpreter tool to generate a file.") + filePath: MessageTextFilePathDetails; + + @encodedName("application/json", "start_index") + @doc("The first text index associated with this text annotation.") + startIndex?: int32; + + @encodedName("application/json", "end_index") + @doc("The last text index associated with this text annotation.") + endIndex?: int32; +} + +@doc("An encapsulation of an image file ID, as used by message image content.") +model MessageTextFilePathDetails { + @doc("The ID of the specific file that the citation is from.") + @encodedName("application/json", "file_id") + fileId: string; +} + +// Image file content details + +@doc("An image reference, as represented in thread message content.") +model MessageImageFileDetails { + @encodedName("application/json", "file_id") + @doc("The ID for the file associated with this image.") + fileId: string; +} + +/** The possible execution status values for a thread message. */ +union MessageStatus { + string, + + /** A run is currently creating this message. */ + inProgress: "in_progress", + + /** This message is incomplete. See incomplete_details for more information. */ + incomplete: "incomplete", + + /** This message was successfully completed by a run. */ + completed: "completed", +} + +/** Information providing additional detail about a message entering an incomplete status. */ +model MessageIncompleteDetails { + /** The provided reason describing why the message was marked as incomplete. */ + reason: MessageIncompleteDetailsReason; +} + +/** A set of reasons describing why a message is marked as incomplete. */ +union MessageIncompleteDetailsReason { + string, + + /** The run generating the message was terminated due to content filter flagging. */ + contentFilter: "content_filter", + + /** The run generating the message exhausted available tokens before completion. */ + maxTokens: "max_tokens", + + /** The run generating the message was cancelled before completion. */ + runCancelled: "run_cancelled", + + /** The run generating the message failed. */ + runFailed: "run_failed", + + /** The run generating the message expired. */ + runExpired: "run_expired", +} + +// +// These types are specifically used for streaming. +// + +/** Represents a message delta i.e. any changed fields on a message during streaming. */ +model MessageDeltaChunk { + /** The identifier of the message, which can be referenced in API endpoints. */ + id: string; + + /** The object type, which is always `thread.message.delta`. */ + object: "thread.message.delta"; + + /** The delta containing the fields that have changed on the Message. */ + delta: MessageDelta; +} + +/** Represents the typed 'delta' payload within a streaming message delta chunk. */ +model MessageDelta { + /** The entity that produced the message. */ + role: MessageRole; + + /** The content of the message as an array of text and/or images. */ + content: MessageDeltaContent[]; +} + +/** The abstract base representation of a partial streamed message content payload. */ +@discriminator("type") +model MessageDeltaContent { + /** The index of the content part of the message. */ + index: int32; + + /** The type of content for this content part. */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + type: string; +} + +/** Represents a streamed image file content part within a streaming message delta chunk. */ +model MessageDeltaImageFileContent extends MessageDeltaContent { + /** The type of content for this content part, which is always "image_file." */ + type: "image_file"; + + /** The image_file data. */ + @encodedName("application/json", "image_file") + imageFile?: MessageDeltaImageFileContentObject; +} + +/** Represents the 'image_file' payload within streaming image file content. */ +model MessageDeltaImageFileContentObject { + /** The file ID of the image in the message content. */ + @encodedName("application/json", "file_id") + fileId?: string; +} + +/** Represents a streamed text content part within a streaming message delta chunk. */ +model MessageDeltaTextContent extends MessageDeltaContent { + /** The type of content for this content part, which is always "text." */ + type: "text"; + + /** The text content details. */ + text?: MessageDeltaTextContentObject; +} + +/** Represents the data of a streamed text content part within a streaming message delta chunk. */ +model MessageDeltaTextContentObject { + /** The data that makes up the text. */ + value?: string; + + /** Annotations for the text. */ + annotations?: MessageDeltaTextAnnotation[]; +} + +/** The abstract base representation of a streamed text content part's text annotation. */ +@discriminator("type") +model MessageDeltaTextAnnotation { + /** The index of the annotation within a text content part. */ + index: int32; + + /** The type of the text content annotation. */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + type: string; +} + +/** Represents a streamed file citation applied to a streaming text content part. */ +model MessageDeltaTextFileCitationAnnotation + extends MessageDeltaTextAnnotation { + /** The type of the text content annotation, which is always "file_citation." */ + type: "file_citation"; + + /** The file citation information. */ + @encodedName("application/json", "file_citation") + fileCitation?: MessageDeltaTextFileCitationAnnotationObject; + + /** The text in the message content that needs to be replaced */ + text?: string; + + /** The start index of this annotation in the content text. */ + @encodedName("application/json", "start_index") + startIndex?: int32; + + /** The end index of this annotation in the content text. */ + @encodedName("application/json", "end_index") + endIndex?: int32; +} + +/** Represents the data of a streamed file citation as applied to a streaming text content part. */ +model MessageDeltaTextFileCitationAnnotationObject { + /** The ID of the specific file the citation is from. */ + @encodedName("application/json", "file_id") + fileId?: string; + + /** The specific quote in the cited file. */ + quote?: string; +} + +/** Represents a streamed file path annotation applied to a streaming text content part. */ +model MessageDeltaTextFilePathAnnotation extends MessageDeltaTextAnnotation { + /** The type of the text content annotation, which is always "file_path." */ + type: "file_path"; + + /** The file path information. */ + @encodedName("application/json", "file_path") + filePath?: MessageDeltaTextFilePathAnnotationObject; + + /** The start index of this annotation in the content text. */ + @encodedName("application/json", "start_index") + startIndex?: int32; + + /** The end index of this annotation in the content text. */ + @encodedName("application/json", "end_index") + endIndex?: int32; + + /** The text in the message content that needs to be replaced */ + text?: string; +} + +/** Represents the data of a streamed file path annotation as applied to a streaming text content part. */ +model MessageDeltaTextFilePathAnnotationObject { + /** The file ID for the annotation. */ + @encodedName("application/json", "file_id") + fileId?: string; +} + +/** A representation of the URL used for the text citation. */ +model MessageDeltaTextUrlCitationDetails { + /** The URL where the citation is from. */ + url?: string; + + /** The title of the URL. */ + title?: string; +} diff --git a/specification/ai/Azure.AI.Unified/agents/messages/routes.tsp b/specification/ai/Azure.AI.Unified/agents/messages/routes.tsp new file mode 100644 index 000000000000..39d81cdfba74 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/messages/routes.tsp @@ -0,0 +1,119 @@ +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "@typespec/http"; +import "@typespec/versioning"; + +import "../common/models.tsp"; +import "./models.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using TypeSpec.Versioning; + +using Azure.Core; + +namespace Azure.AI.Unified.Agents; + +/** + * Creates a new message on a specified thread. + * + * @param threadId The ID of the thread to create the new message on. + * @returns A representation of the new message. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@post +@route("/threads/{threadId}/messages") +op createMessage is Azure.Core.Foundations.Operation< + { + @doc("Identifier of the thread.") + @path + threadId: string; + + /** A single message within an agent thread, as provided during that thread's creation for its initial state. */ + ...ThreadMessageOptions; + }, + ThreadMessage +>; + +/** + * Gets a list of messages that exist on a thread. + * + * @param threadId The ID of the thread to list messages from. + * @returns The requested list of messages. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@get +@route("/threads/{threadId}/messages") +op listMessages is Azure.Core.Foundations.Operation< + { + @doc("Identifier of the thread.") + @path + threadId: string; + + /** Filter messages by the run ID that generated them. */ + @query + runId?: string; + + ...OpenAIListRequestOptions; + }, + OpenAIPageableListOf +>; + +/** + * Gets an existing message from an existing thread. + * + * @param threadId The ID of the thread to retrieve the specified message from. + * @param messageId The ID of the message to retrieve from the specified thread. + * @returns A representation of the requested message. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API name parity" +@get +@route("/threads/{threadId}/messages/{messageId}") +op getMessage is Azure.Core.Foundations.Operation< + { + @doc("Identifier of the thread.") + @path + threadId: string; + + @doc("Identifier of the message.") + @path + messageId: string; + }, + ThreadMessage +>; + +/** + * Modifies an existing message on an existing thread. + * + * @param threadId The ID of the thread containing the specified message to modify. + * @param messageId The ID of the message to modify on the specified thread. + * @returns A representation of the modified message. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@post +@route("/threads/{threadId}/messages/{messageId}") +op updateMessage is Azure.Core.Foundations.Operation< + { + @doc("Identifier of the thread.") + @path + threadId: string; + + @doc("Identifier of the message.") + @path + messageId: string; + + ...OptionalNullableMetadata; + }, + ThreadMessage +>; \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/models.tsp b/specification/ai/Azure.AI.Unified/agents/models.tsp new file mode 100644 index 000000000000..a0b3fbdc9254 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/models.tsp @@ -0,0 +1,204 @@ +import "@typespec/versioning"; +import "./common/models.tsp"; +import "./tools/models.tsp"; +import "./tools/tool_resources.tsp"; +import "../main.tsp"; + +using TypeSpec.Http; +using TypeSpec.Versioning; + +namespace Azure.AI.Unified.Agents; + +@doc("Represents an agent that can call the model and use tools.") +model Agent { + @doc("The identifier, which can be referenced in API endpoints.") + id: string; + + @doc("The object type, which is always assistant.") + object: "assistant"; + + @encodedName("application/json", "created_at") + @encode(DateTimeKnownEncoding.unixTimestamp, int32) + @doc("The Unix timestamp, in seconds, representing when this object was created.") + createdAt: utcDateTime; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("The name of the agent.") + name: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("The description of the agent.") + description: string | null; + + @doc("The ID of the model to use.") + `model`: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("The system instructions for the agent to use.") + instructions: string | null; + + @doc("The collection of tools enabled for the agent.") + tools: ToolDefinition[] = #[]; + + /** + * A set of resources that are used by the agent's tools. The resources are specific to the type of tool. For example, the `code_interpreter` + * tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "tool_resources") + toolResources: ToolResources | null; + + /** + * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, + * while lower values like 0.2 will make it more focused and deterministic. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @minValue(0) + @maxValue(2) + temperature: float32 | null = 1; + + /** + * An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. + * So 0.1 means only the tokens comprising the top 10% probability mass are considered. + * + * We generally recommend altering this or temperature but not both. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @minValue(0) + @maxValue(1) + @encodedName("application/json", "top_p") + topP: float32 | null = 1; + + /** The response format of the tool calls used by this agent. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "response_format") + responseFormat?: AgentsApiResponseFormatOption | null; + + ...RequiredNullableMetadata; +} + +@doc("The request details to use when creating a new agent.") +model CreateAgentOptions { + @doc("The ID of the model to use.") + `model`: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("The name of the new agent.") + name?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("The description of the new agent.") + description?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("The system instructions for the new agent to use.") + instructions?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("The collection of tools to enable for the new agent.") + tools?: ToolDefinition[] = #[]; + + /** + * A set of resources that are used by the agent's tools. The resources are specific to the type of tool. For example, the `code_interpreter` + * tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "tool_resources") + toolResources?: ToolResources | null; + + /** + * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, + * while lower values like 0.2 will make it more focused and deterministic. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @minValue(0) + @maxValue(2) + temperature?: float32 | null = 1; + + /** + * An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. + * So 0.1 means only the tokens comprising the top 10% probability mass are considered. + * + * We generally recommend altering this or temperature but not both. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @minValue(0) + @maxValue(1) + @encodedName("application/json", "top_p") + topP?: float32 | null = 1; + + /** The response format of the tool calls used by this agent. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "response_format") + responseFormat?: AgentsApiResponseFormatOption | null; + + ...OptionalNullableMetadata; +} + +@doc("The request details to use when modifying an existing agent.") +model UpdateAgentOptions { + @path + @doc("The ID of the agent to modify.") + assistantId: string; + + @doc("The ID of the model to use.") + `model`?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("The modified name for the agent to use.") + name?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("The modified description for the agent to use.") + description?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("The modified system instructions for the new agent to use.") + instructions?: string | null; + + @doc("The modified collection of tools to enable for the agent.") + tools?: ToolDefinition[] = #[]; + + /** + * A set of resources that are used by the agent's tools. The resources are specific to the type of tool. For example, + * the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + */ + @encodedName("application/json", "tool_resources") + toolResources?: ToolResources; + + /** + * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, + * while lower values like 0.2 will make it more focused and deterministic. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @minValue(0) + @maxValue(2) + temperature?: float32 | null = 1; + + /** + * An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. + * So 0.1 means only the tokens comprising the top 10% probability mass are considered. + * + * We generally recommend altering this or temperature but not both. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @minValue(0) + @maxValue(1) + @encodedName("application/json", "top_p") + topP?: float32 | null = 1; + + /** The response format of the tool calls used by this agent. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "response_format") + responseFormat?: AgentsApiResponseFormatOption | null; + + ...OptionalNullableMetadata; +} + +@doc("The status of an agent deletion operation.") +model AgentDeletionStatus { + ...DeletionStatus; + + @doc("The object type, which is always 'assistant.deleted'.") + object: "assistant.deleted"; +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/routes.tsp b/specification/ai/Azure.AI.Unified/agents/routes.tsp new file mode 100644 index 000000000000..b0dd99fb2c86 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/routes.tsp @@ -0,0 +1,111 @@ +import "@typespec/rest"; +import "@azure-tools/typespec-autorest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "./models.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.Core.Traits; +using Azure.Core.Foundations; + +namespace Azure.AI.Unified.Agents; + +/** + * Creates a new agent. + * + * @returns The new agent instance. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@post +@route("/assistants") +op createAgent is Azure.Core.Foundations.Operation< + { + ...CreateAgentOptions; + }, + Agent +>; + +/** + * Gets a list of agents that were previously created. + * + * @returns The requested list of agents. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@get +@route("/assistants") +op listAgents is Azure.Core.Foundations.Operation< + { + ...OpenAIListRequestOptions; + }, + OpenAIPageableListOf +>; + +/** + * Retrieves an existing agent. + * + * @param assistantId The ID of the agent to retrieve. + * @returns The requested agent instance. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API name parity" +@get +@route("/assistants/{assistantId}") +op getAgent is Azure.Core.Foundations.Operation< + { + @doc("Identifier of the agent.") + @path + assistantId: string; + }, + Agent +>; + +/** + * Modifies an existing agent. + * + * @param updateAgentOptions The details of the modification to perform on a specified agent. + * @returns The updated agent instance. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@post +@route("/assistants/{assistantId}") +op updateAgent is Azure.Core.Foundations.Operation< + { + /** + * The request details to use when modifying an existing agent. + */ + ...UpdateAgentOptions; + }, + Agent +>; + +/** + * Deletes an agent. + * + * @param assistantId The ID of the agent to delete. + * @returns Status information about the requested deletion operation. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@delete +@route("/assistants/{assistantId}") +op deleteAgent is Azure.Core.Foundations.Operation< + { + @doc("Identifier of the agent.") + @path + assistantId: string; + }, + AgentDeletionStatus +>; \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/run_steps/models.tsp b/specification/ai/Azure.AI.Unified/agents/run_steps/models.tsp new file mode 100644 index 000000000000..3c547e6c23d9 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/run_steps/models.tsp @@ -0,0 +1,351 @@ +import "@typespec/versioning"; + +import "../tools/models.tsp"; + +namespace Azure.AI.Unified.Agents; + +using TypeSpec.Versioning; + +@doc("Detailed information about a single step of an agent thread run.") +model RunStep { + @doc("The identifier, which can be referenced in API endpoints.") + id: string; + + @doc("The object type, which is always 'thread.run.step'.") + object: "thread.run.step"; + + @doc("The type of run step, which can be either message_creation or tool_calls.") + type: RunStepType; + + @encodedName("application/json", "assistant_id") + @doc("The ID of the agent associated with the run step.") + assistantId: string; + + @encodedName("application/json", "thread_id") + @doc("The ID of the thread that was run.") + threadId: string; + + @encodedName("application/json", "run_id") + @doc("The ID of the run that this run step is a part of.") + runId: string; + + @doc("The status of this run step.") + status: RunStepStatus; + + @encodedName("application/json", "step_details") + @doc("The details for this run step.") + stepDetails: RunStepDetails; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "last_error") + @doc("If applicable, information about the last error encountered by this run step.") + lastError: RunStepError | null; + + @encodedName("application/json", "created_at") + @encode(DateTimeKnownEncoding.unixTimestamp, int32) + @doc("The Unix timestamp, in seconds, representing when this object was created.") + createdAt: utcDateTime; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "expired_at") + @encode(DateTimeKnownEncoding.unixTimestamp, int32) + @doc("The Unix timestamp, in seconds, representing when this item expired.") + expiredAt: utcDateTime | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "completed_at") + @encode(DateTimeKnownEncoding.unixTimestamp, int32) + @doc("The Unix timestamp, in seconds, representing when this completed.") + completedAt: utcDateTime | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "cancelled_at") + @encode(DateTimeKnownEncoding.unixTimestamp, int32) + @doc("The Unix timestamp, in seconds, representing when this was cancelled.") + cancelledAt: utcDateTime | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "failed_at") + @encode(DateTimeKnownEncoding.unixTimestamp, int32) + @doc("The Unix timestamp, in seconds, representing when this failed.") + failedAt: utcDateTime | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`.") + usage?: RunStepCompletionUsage | null; // required in OpenAI, not present in AOpenAI + + ...RequiredNullableMetadata; +} + +@doc("Usage statistics related to the run step.") +model RunStepCompletionUsage { + @doc("Number of completion tokens used over the course of the run step.") + @encodedName("application/json", "completion_tokens") + completionTokens: int64; + + @doc("Number of prompt tokens used over the course of the run step.") + @encodedName("application/json", "prompt_tokens") + promptTokens: int64; + + @doc("Total number of tokens used (prompt + completion).") + @encodedName("application/json", "total_tokens") + totalTokens: int64; +} + +@doc("The possible types of run steps.") +union RunStepType { + string, + + @doc("Represents a run step to create a message.") + messageCreation: "message_creation", + + @doc("Represents a run step that calls tools.") + toolCalls: "tool_calls", +} + +@discriminator("type") +@doc("An abstract representation of the details for a run step.") +model RunStepDetails { + @doc("The object type.") + type: RunStepType; +} + +@doc("The detailed information associated with a message creation run step.") +model RunStepMessageCreationDetails extends RunStepDetails { + @doc("The object type, which is always 'message_creation'.") + type: RunStepType.messageCreation; + + @encodedName("application/json", "message_creation") + @doc("Information about the message creation associated with this run step.") + messageCreation: RunStepMessageCreationReference; +} + +@doc("The detailed information associated with a run step calling tools.") +model RunStepToolCallDetails extends RunStepDetails { + @doc("The object type, which is always 'tool_calls'.") + type: RunStepType.toolCalls; + + @encodedName("application/json", "tool_calls") + @doc("A list of tool call details for this run step.") + toolCalls: RunStepToolCall[]; +} + +@doc("The details of a message created as a part of a run step.") +model RunStepMessageCreationReference { + @encodedName("application/json", "message_id") + @doc("The ID of the message created by this run step.") + messageId: string; +} + +@doc("Possible values for the status of a run step.") +union RunStepStatus { + string, + + @doc("Represents a run step still in progress.") + inProgress: "in_progress", + + @doc("Represents a run step that was cancelled.") + cancelled: "cancelled", + + @doc("Represents a run step that failed.") + failed: "failed", + + @doc("Represents a run step that successfully completed.") + completed: "completed", + + @doc("Represents a run step that expired before otherwise finishing.") + expired: "expired", +} + +@doc("Possible error code values attributable to a failed run step.") +union RunStepErrorCode { + string, + + @doc("Represents a server error.") + serverError: "server_error", + + @doc("Represents an error indicating configured rate limits were exceeded.") + rateLimitExceeded: "rate_limit_exceeded", +} + +@doc("The error information associated with a failed run step.") +model RunStepError { + @doc("The error code for this error.") + code: RunStepErrorCode; + + @doc("The human-readable text associated with this error.") + message: string; +} + +// +// The following types facilitate streaming use. +// + +/** Represents a run step delta i.e. any changed fields on a run step during streaming. */ +model RunStepDeltaChunk { + /** The identifier of the run step, which can be referenced in API endpoints. */ + id: string; + + /** The object type, which is always `thread.run.step.delta`. */ + object: "thread.run.step.delta"; + + /** The delta containing the fields that have changed on the run step. */ + delta: RunStepDelta; +} + +/** Represents the delta payload in a streaming run step delta chunk. */ +model RunStepDelta { + /** The details of the run step. */ + @encodedName("application/json", "step_details") + stepDetails?: RunStepDeltaDetail; +} + +/** Represents a single run step detail item in a streaming run step's delta payload. */ +@discriminator("type") +model RunStepDeltaDetail { + /** The object type for the run step detail object. */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + type: string; +} + +/** Represents a message creation within a streaming run step delta. */ +model RunStepDeltaMessageCreation extends RunStepDeltaDetail { + /** The object type, which is always "message_creation." */ + type: "message_creation"; + + /** The message creation data. */ + @encodedName("application/json", "message_creation") + messageCreation?: RunStepDeltaMessageCreationObject; +} + +/** Represents the data within a streaming run step message creation response object. */ +model RunStepDeltaMessageCreationObject { + /** The ID of the newly-created message. */ + @encodedName("application/json", "message_id") + messageId?: string; +} + +/** Represents an invocation of tool calls as part of a streaming run step. */ +model RunStepDeltaToolCallObject extends RunStepDeltaDetail { + /** The object type, which is always "tool_calls." */ + type: "tool_calls"; + + /** The collection of tool calls for the tool call detail item. */ + @encodedName("application/json", "tool_calls") + toolCalls?: RunStepDeltaToolCall[]; +} + +/** The abstract base representation of a single tool call within a streaming run step's delta tool call details. */ +@discriminator("type") +model RunStepDeltaToolCall { + /** The index of the tool call detail in the run step's tool_calls array. */ + index: int32; + + /** The ID of the tool call, used when submitting outputs to the run. */ + id: string; + + /** The type of the tool call detail item in a streaming run step's details. */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + type: string; +} + +/** Represents a function tool call within a streaming run step's tool call details. */ +model RunStepDeltaFunctionToolCall extends RunStepDeltaToolCall { + /** The object type, which is always "function." */ + type: "function"; + + /** The function data for the tool call. */ + function?: RunStepDeltaFunction; +} + +/** Represents a file search tool call within a streaming run step's tool call details. */ +model RunStepDeltaFileSearchToolCall extends RunStepDeltaToolCall { + /** The object type, which is always "file_search." */ + type: "file_search"; + + /** Reserved for future use. */ + @encodedName("application/json", "file_search") + fileSearch?: Record; +} + +/** Represents a Code Interpreter tool call within a streaming run step's tool call details. */ +model RunStepDeltaCodeInterpreterToolCall extends RunStepDeltaToolCall { + /** The object type, which is always "code_interpreter." */ + type: "code_interpreter"; + + /** The Code Interpreter data for the tool call. */ + @encodedName("application/json", "code_interpreter") + codeInterpreter?: RunStepDeltaCodeInterpreterDetailItemObject; +} + +/** Represents the function data in a streaming run step delta's function tool call. */ +model RunStepDeltaFunction { + /** The name of the function. */ + name?: string; + + /** The arguments passed to the function as input. */ + arguments?: string; + + /** The output of the function, null if outputs have not yet been submitted. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + output?: string | null; +} + +/** Represents the Code Interpreter tool call data in a streaming run step's tool calls. */ +model RunStepDeltaCodeInterpreterDetailItemObject { + /** The input into the Code Interpreter tool call. */ + input?: string; + + /** + * The outputs from the Code Interpreter tool call. Code Interpreter can output one or more + * items, including text (`logs`) or images (`image`). Each of these are represented by a + * different object type. + */ + outputs?: RunStepDeltaCodeInterpreterOutput[]; +} + +/** The abstract base representation of a streaming run step tool call's Code Interpreter tool output. */ +@discriminator("type") +model RunStepDeltaCodeInterpreterOutput { + /** The index of the output in the streaming run step tool call's Code Interpreter outputs array. */ + index: int32; + + /** The type of the streaming run step tool call's Code Interpreter output. */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + type: string; +} + +/** Represents a log output as produced by the Code Interpreter tool and as represented in a streaming run step's delta tool calls collection. */ +model RunStepDeltaCodeInterpreterLogOutput + extends RunStepDeltaCodeInterpreterOutput { + /** The type of the object, which is always "logs." */ + type: "logs"; + + /** The text output from the Code Interpreter tool call. */ + logs?: string; +} + +/** Represents an image output as produced the Code interpreter tool and as represented in a streaming run step's delta tool calls collection. */ +model RunStepDeltaCodeInterpreterImageOutput + extends RunStepDeltaCodeInterpreterOutput { + /** The object type, which is always "image." */ + type: "image"; + + /** The image data for the Code Interpreter tool call output. */ + image?: RunStepDeltaCodeInterpreterImageOutputObject; +} + +/** Represents the data for a streaming run step's Code Interpreter tool call image output. */ +model RunStepDeltaCodeInterpreterImageOutputObject { + /** The file ID for the image. */ + @encodedName("application/json", "file_id") + fileId?: string; +} + +/** A list of additional fields to include in the response. */ +union RunAdditionalFieldList { + string, + + /** File search result content. */ + FileSearchContents: "step_details.tool_calls[*].file_search.results[*].content", +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/run_steps/routes.tsp b/specification/ai/Azure.AI.Unified/agents/run_steps/routes.tsp new file mode 100644 index 000000000000..743e355a7a0c --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/run_steps/routes.tsp @@ -0,0 +1,85 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@typespec/versioning"; + +import "./models.tsp"; +import "../common/models.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using TypeSpec.Versioning; + +namespace Azure.AI.Unified.Agents; + +/** + * Gets a single run step from a thread run. + * + * @param threadId The ID of the thread that was run. + * @param runId The ID of the specific run to retrieve the step from. + * @param stepId The ID of the step to retrieve information about. + * @returns Information about the requested run step. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API name parity" +@get +@route("/threads/{threadId}/runs/{runId}/steps/{stepId}") +op getRunStep is Azure.Core.Foundations.Operation< + { + @doc("Identifier of the thread.") + @path + threadId: string; + + @doc("Identifier of the run.") + @path + runId: string; + + @doc("Identifier of the run step.") + @path + stepId: string; + + @doc(""" + A list of additional fields to include in the response. + Currently the only supported value is `step_details.tool_calls[*].file_search.results[*].content` to fetch the file search result content. + """) + @query("include[]") + include?: RunAdditionalFieldList[]; + }, + RunStep +>; + +/** + * Gets a list of run steps from a thread run. + * + * @param threadId The ID of the thread that was run. + * @param runId The ID of the run to list steps from. + * @returns The requested list of run steps. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@get +@route("/threads/{threadId}/runs/{runId}/steps") +op listRunSteps is Azure.Core.Foundations.Operation< + { + @doc("Identifier of the thread.") + @path + threadId: string; + + @doc("Identifier of the run.") + @path + runId: string; + + @doc(""" + A list of additional fields to include in the response. + Currently the only supported value is `step_details.tool_calls[*].file_search.results[*].content` to fetch the file search result content. + """) + @query("include[]") + include?: RunAdditionalFieldList[]; + + ...OpenAIListRequestOptions; + }, + OpenAIPageableListOf +>; \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/runs/models.tsp b/specification/ai/Azure.AI.Unified/agents/runs/models.tsp new file mode 100644 index 000000000000..5e11df419c11 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/runs/models.tsp @@ -0,0 +1,482 @@ +import "@typespec/versioning"; +import "@azure-tools/typespec-client-generator-core"; +import "../common/models.tsp"; +import "../threads/models.tsp"; +import "../tools/models.tsp"; + +namespace Azure.AI.Unified.Agents; + +using TypeSpec.Versioning; +using Azure.ClientGenerator.Core; + +@doc("Data representing a single evaluation run of an agent thread.") +model ThreadRun { + @doc("The identifier, which can be referenced in API endpoints.") + id: string; + + @doc("The object type, which is always 'thread.run'.") + object: "thread.run"; + + @encodedName("application/json", "thread_id") + @doc("The ID of the thread associated with this run.") + threadId: string; + + @encodedName("application/json", "assistant_id") + @doc("The ID of the agent associated with the thread this run was performed against.") + assistantId: string; + + @doc("The status of the agent thread run.") + status: RunStatus; + + // Internal note: API reference describes this as nullable and the spec explicitly defines it as required and + // nullable, but actual test traffic confirms that runs without tool calls do not present + // required_action on their responses. We split the difference to be optional and nullable. + // https://platform.openai.com/docs/api-reference/runs/object#runs/object-expires_at + // https://github.com/openai/openai-openapi/blob/master/openapi.yaml#L8245 + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "required_action") + @doc("The details of the action required for the agent thread run to continue.") + requiredAction?: RequiredAction | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "last_error") + @doc("The last error, if any, encountered by this agent thread run.") + lastError: RunError | null; + + @doc("The ID of the model to use.") + `model`: string; + + @doc("The overridden system instructions used for this agent thread run.") + instructions: string; + + @doc("The overridden enabled tools used for this agent thread run.") + tools: ToolDefinition[] = #[]; + + @encodedName("application/json", "created_at") + @encode(DateTimeKnownEncoding.unixTimestamp, int32) + @doc("The Unix timestamp, in seconds, representing when this object was created.") + createdAt: utcDateTime; + + // Internal note: API reference describes this as non-nullable, but retrieveThreadRun gets a null expiresAt + // for completed runs. + // https://platform.openai.com/docs/api-reference/runs/object#runs/object-expires_at + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "expires_at") + @encode(DateTimeKnownEncoding.unixTimestamp, int32) + @doc("The Unix timestamp, in seconds, representing when this item expires.") + expiresAt: utcDateTime | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "started_at") + @encode(DateTimeKnownEncoding.unixTimestamp, int32) + @doc("The Unix timestamp, in seconds, representing when this item was started.") + startedAt: utcDateTime | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "completed_at") + @encode(DateTimeKnownEncoding.unixTimestamp, int32) + @doc("The Unix timestamp, in seconds, representing when this completed.") + completedAt: utcDateTime | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "cancelled_at") + @encode(DateTimeKnownEncoding.unixTimestamp, int32) + @doc("The Unix timestamp, in seconds, representing when this was cancelled.") + cancelledAt: utcDateTime | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "failed_at") + @encode(DateTimeKnownEncoding.unixTimestamp, int32) + @doc("The Unix timestamp, in seconds, representing when this failed.") + failedAt: utcDateTime | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "incomplete_details") + @doc("Details on why the run is incomplete. Will be `null` if the run is not incomplete.") + incompleteDetails: IncompleteRunDetails | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.).") + usage: RunCompletionUsage | null; + + /** The sampling temperature used for this run. If not set, defaults to 1. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + temperature?: float32 | null; + + /** The nucleus sampling value used for this run. If not set, defaults to 1. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "top_p") + topP?: float32 | null; + + /** The maximum number of prompt tokens specified to have been used over the course of the run. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "max_prompt_tokens") + @minValue(256) + maxPromptTokens: int32 | null; + + /** The maximum number of completion tokens specified to have been used over the course of the run. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "max_completion_tokens") + @minValue(256) + maxCompletionTokens: int32 | null; + + /** The strategy to use for dropping messages as the context windows moves forward. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "truncation_strategy") + truncationStrategy: TruncationObject | null; + + /** Controls whether or not and which tool is called by the model. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "tool_choice") + toolChoice: AgentsApiToolChoiceOption | null; + + /** The response format of the tool calls used in this run. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "response_format") + responseFormat: AgentsApiResponseFormatOption | null; + + ...RequiredNullableMetadata; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("Override the tools the agent can use for this run. This is useful for modifying the behavior on a per-run basis") + @encodedName("application/json", "tool_resources") + toolResources?: UpdateToolResourcesOptions | null; + + @doc("Determines if tools can be executed in parallel within the run.") + @encodedName("application/json", "parallel_tool_calls") + parallelToolCalls: boolean; +} + +/** + * Details on why the run is incomplete. Will be `null` if the run is not incomplete. + */ +model IncompleteRunDetails { + @doc("The reason why the run is incomplete. This indicates which specific token limit was reached during the run.") + reason: IncompleteDetailsReason; +} + +/** The reason why the run is incomplete. This will point to which specific token limit was reached over the course of the run. */ +union IncompleteDetailsReason { + string, + + /** Maximum completion tokens exceeded */ + maxCompletionTokens: "max_completion_tokens", + + /** Maximum prompt tokens exceeded */ + maxPromptTokens: "max_prompt_tokens", +} + +/** + * Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + */ +model RunCompletionUsage { + @doc("Number of completion tokens used over the course of the run.") + @encodedName("application/json", "completion_tokens") + completionTokens: int64; + + @doc("Number of prompt tokens used over the course of the run.") + @encodedName("application/json", "prompt_tokens") + promptTokens: int64; + + @doc("Total number of tokens used (prompt + completion).") + @encodedName("application/json", "total_tokens") + totalTokens: int64; +} + +@doc("The details used when creating a new run of an agent thread.") +model CreateRunOptions { + @doc("The ID of the agent that should run the thread.") + @encodedName("application/json", "assistant_id") + assistantId: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("The overridden model name that the agent should use to run the thread.") + `model`?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("The overridden system instructions that the agent should use to run the thread.") + instructions?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "additional_instructions") + @doc(""" + Additional instructions to append at the end of the instructions for the run. This is useful for modifying the behavior + on a per-run basis without overriding other instructions. + """) + additionalInstructions?: string | null; + + /** Adds additional messages to the thread before creating the run. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "additional_messages") + additionalMessages?: ThreadMessageOptions[] | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("The overridden list of enabled tools that the agent should use to run the thread.") + tools?: ToolDefinition[] | null; + + /** + * If `true`, returns a stream of events that happen during the Run as server-sent events, + * terminating when the Run enters a terminal state with a `data: [DONE]` message. + */ + stream?: boolean; + + /** + * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output + * more random, while lower values like 0.2 will make it more focused and deterministic. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @minValue(0) + @maxValue(2) + temperature?: float32 | null = 1; + + /** + * An alternative to sampling with temperature, called nucleus sampling, where the model + * considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens + * comprising the top 10% probability mass are considered. + * + * We generally recommend altering this or temperature but not both. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @minValue(0) + @maxValue(1) + @encodedName("application/json", "top_p") + topP?: float32 | null = 1; + + /** + * The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only + * the number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified, + * the run will end with status `incomplete`. See `incomplete_details` for more info. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @minValue(256) + @encodedName("application/json", "max_prompt_tokens") + maxPromptTokens?: int32 | null; + + /** + * The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort + * to use only the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of + * completion tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @minValue(256) + @encodedName("application/json", "max_completion_tokens") + maxCompletionTokens?: int32 | null; + + /** The strategy to use for dropping messages as the context windows moves forward. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "truncation_strategy") + truncationStrategy?: TruncationObject | null; + + /** Controls whether or not and which tool is called by the model. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "tool_choice") + toolChoice?: AgentsApiToolChoiceOption | null; + + /** Specifies the format that the model must output. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "response_format") + responseFormat?: AgentsApiResponseFormatOption | null; + + /** If `true` functions will run in parallel during tool use. */ + @encodedName("application/json", "parallel_tool_calls") + parallelToolCalls?: boolean; + + ...OptionalNullableMetadata; +} + +@doc("The details of an error as encountered by an agent thread run.") +model RunError { + @doc("The status for the error.") + code: string; + + @doc("The human-readable text associated with the error.") + message: string; +} + +@doc("Possible values for the status of an agent thread run.") +union RunStatus { + string, + + @doc("Represents a run that is queued to start.") + queued: "queued", + + @doc("Represents a run that is in progress.") + inProgress: "in_progress", + + @doc("Represents a run that needs another operation, such as tool output submission, to continue.") + requiresAction: "requires_action", + + @doc("Represents a run that is in the process of cancellation.") + cancelling: "cancelling", + + @doc("Represents a run that has been cancelled.") + cancelled: "cancelled", + + @doc("Represents a run that failed.") + failed: "failed", + + @doc("Represents a run that successfully completed.") + completed: "completed", + + @doc("Represents a run that expired before it could otherwise finish.") + expired: "expired", +} + +@discriminator("type") +@doc("An abstract representation of a required action for an agent thread run to continue.") +model RequiredAction { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + @doc("The object type.") + type: string; +} + +@doc("The details for required tool calls that must be submitted for an agent thread run to continue.") +model SubmitToolOutputsAction extends RequiredAction { + @doc("The object type, which is always 'submit_tool_outputs'.") + type: "submit_tool_outputs"; + + @encodedName("application/json", "submit_tool_outputs") + @doc("The details describing tools that should be called to submit tool outputs.") + submitToolOutputs: SubmitToolOutputsDetails; +} + +@doc("The details describing tools that should be called to submit tool outputs.") +model SubmitToolOutputsDetails { + @encodedName("application/json", "tool_calls") + @doc("The list of tool calls that must be resolved for the agent thread run to continue.") + toolCalls: RequiredToolCall[]; +} + +@doc("The details used when creating and immediately running a new agent thread.") +model CreateAndRunThreadOptions { + @encodedName("application/json", "assistant_id") + @doc("The ID of the agent for which the thread should be created.") + assistantId: string; + + @doc("The details used to create the new thread. If no thread is provided, an empty one will be created.") + thread?: AgentThreadCreationOptions; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("The overridden model that the agent should use to run the thread.") + @clientName("overrideModelName", "csharp") + `model`?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("The overridden system instructions the agent should use to run the thread.") + @clientName("overrideInstructions", "csharp") + instructions?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("The overridden list of enabled tools the agent should use to run the thread.") + @clientName("overrideTools", "csharp") + tools?: ToolDefinition[] | null; + + /** Override the tools the agent can use for this run. This is useful for modifying the behavior on a per-run basis. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("Override the tools the agent can use for this run. This is useful for modifying the behavior on a per-run basis") + @encodedName("application/json", "tool_resources") + toolResources?: UpdateToolResourcesOptions | null; + + /** + * If `true`, returns a stream of events that happen during the Run as server-sent events, + * terminating when the Run enters a terminal state with a `data: [DONE]` message. + */ + stream?: boolean; + + /** + * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output + * more random, while lower values like 0.2 will make it more focused and deterministic. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @minValue(0) + @maxValue(2) + temperature?: float32 | null = 1; + + /** + * An alternative to sampling with temperature, called nucleus sampling, where the model + * considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens + * comprising the top 10% probability mass are considered. + * + * We generally recommend altering this or temperature but not both. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @minValue(0) + @maxValue(1) + @encodedName("application/json", "top_p") + topP?: float32 | null = 1; + + /** + * The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only + * the number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified, + * the run will end with status `incomplete`. See `incomplete_details` for more info. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @minValue(256) + @encodedName("application/json", "max_prompt_tokens") + maxPromptTokens?: int32 | null; + + /** + * The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort to use only + * the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of completion tokens + * specified, the run will end with status `incomplete`. See `incomplete_details` for more info. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @minValue(256) + @encodedName("application/json", "max_completion_tokens") + maxCompletionTokens?: int32 | null; + + /** The strategy to use for dropping messages as the context windows moves forward. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "truncation_strategy") + truncationStrategy?: TruncationObject | null; + + /** Controls whether or not and which tool is called by the model. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "tool_choice") + toolChoice?: AgentsApiToolChoiceOption | null; + + /** Specifies the format that the model must output. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "response_format") + responseFormat?: AgentsApiResponseFormatOption | null; + + /** If `true` functions will run in parallel during tool use. */ + @encodedName("application/json", "parallel_tool_calls") + parallelToolCalls?: boolean; + + ...OptionalNullableMetadata; +} + +/** + * Controls for how a thread will be truncated prior to the run. Use this to control the initial + * context window of the run. + */ +model TruncationObject { + /** + * The truncation strategy to use for the thread. The default is `auto`. If set to `last_messages`, the thread will + * be truncated to the `lastMessages` count most recent messages in the thread. When set to `auto`, messages in the middle of the thread + * will be dropped to fit the context length of the model, `max_prompt_tokens`. + */ + type: TruncationStrategy = TruncationStrategy.auto; + + /** + * The number of most recent messages from the thread when constructing the context for the run. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @minValue(1) + @encodedName("application/json", "last_messages") + lastMessages?: int32 | null; +} + +/** + * Possible truncation strategies for the thread. + */ +union TruncationStrategy { + string, + + /** Default value. Messages in the middle of the thread will be dropped to fit the context length of the model. */ + auto: "auto", + + /** The thread will truncate to the `lastMessages` count of recent messages. */ + lastMessages: "last_messages", +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/runs/routes.tsp b/specification/ai/Azure.AI.Unified/agents/runs/routes.tsp new file mode 100644 index 000000000000..0ec24a265087 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/runs/routes.tsp @@ -0,0 +1,205 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@typespec/versioning"; + +import "../threads/models.tsp"; +import "../runs/models.tsp"; +import "./models.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using TypeSpec.Versioning; + +namespace Azure.AI.Unified.Agents; + +/** + * Creates and starts a new run of the specified thread using the specified agent. + * + * @param threadId The ID of the thread to run. + * @param createRunOptions The details for the run to create. + * + * @returns Information about the new thread run. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@post +@route("/threads/{threadId}/runs") +@doc("Creates a new run for an agent thread.") +op createRun is Azure.Core.Foundations.Operation< + { + @doc("Identifier of the thread.") + @path + threadId: string; + + @doc(""" + A list of additional fields to include in the response. + Currently the only supported value is `step_details.tool_calls[*].file_search.results[*].content` to fetch the file search result content. + """) + @query("include[]") + include?: RunAdditionalFieldList[]; + + /** + * The details used when creating a new run of an agent thread. + */ + ...CreateRunOptions; + }, + ThreadRun +>; + +/** + * Gets a list of runs for a specified thread. + * + * @param threadId The ID of the thread to list runs from. + * @returns The requested list of thread runs. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@get +@route("/threads/{threadId}/runs") +op listRuns is Azure.Core.Foundations.Operation< + { + @doc("Identifier of the thread.") + @path + threadId: string; + + ...OpenAIListRequestOptions; + }, + OpenAIPageableListOf +>; + +/** + * Gets an existing run from an existing thread. + * + * @param threadId The ID of the thread to retrieve run information from. + * @param runId The ID of the thread to retrieve information about. + * @returns The requested information about the specified thread run. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API name parity" +@get +@route("/threads/{threadId}/runs/{runId}") +op getRun is Azure.Core.Foundations.Operation< + { + @doc("Identifier of the thread.") + @path + threadId: string; + + @doc("Identifier of the run.") + @path + runId: string; + }, + ThreadRun +>; + +/** + * Modifies an existing thread run. + * + * @param threadId The ID of the thread associated with the specified run. + * @param runId The ID of the run to modify. + * @returns Information about the modified run. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@post +@route("/threads/{threadId}/runs/{runId}") +op updateRun is Azure.Core.Foundations.Operation< + { + @doc("Identifier of the thread.") + @path + threadId: string; + + @doc("Identifier of the run.") + @path + runId: string; + + ...OptionalNullableMetadata; + }, + ThreadRun +>; + +/** + * Submits outputs from tools as requested by tool calls in a run. Runs that need submitted tool outputs will have a status of 'requires_action' with a required_action.type of 'submit_tool_outputs'. + * + * @param threadId The ID of the thread that was run. + * @param runId The ID of the run that requires tool outputs. + * @param toolOutputs A list of tools for which the outputs are being submitted. + * @param stream If `true`, returns a stream of events that happen during the Run as server-sent events, terminating when the Run enters a terminal state with a `data: [DONE]` message. + * @returns Updated information about the run. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@post +@route("/threads/{threadId}/runs/{runId}/submit_tool_outputs") +op submitToolOutputsToRun is Azure.Core.Foundations.Operation< + { + @doc("Identifier of the thread.") + @path + threadId: string; + + @doc("Identifier of the run.") + @path + runId: string; + + @doc("A list of tools for which the outputs are being submitted") + @encodedName("application/json", "tool_outputs") + toolOutputs: ToolOutput[]; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("If true, returns a stream of events that happen during the Run as server-sent events, terminating when the run enters a terminal state.") + stream?: boolean | null; + }, + ThreadRun +>; + +/** + * Cancels a run of an in progress thread. + * + * @param threadId The ID of the thread being run. + * @param runId The ID of the run to cancel. + * @returns Updated information about the cancelled run. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@post +@route("/threads/{threadId}/runs/{runId}/cancel") +op cancelRun is Azure.Core.Foundations.Operation< + { + @doc("Identifier of the thread.") + @path + threadId: string; + + @doc("Identifier of the run.") + @path + runId: string; + }, + ThreadRun +>; + +/** + * Creates a new thread and immediately starts a run of that thread. + * + * @returns Information about the newly created thread. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@post +@route("/threads/runs") +@doc("Creates a new agent thread and immediately starts a run using that new thread.") +op createThreadAndRun is Azure.Core.Foundations.Operation< + { + /** + * The details used when creating and immediately running a new agent thread. + */ + ...CreateAndRunThreadOptions; + }, + ThreadRun +>; \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/streaming/events.tsp b/specification/ai/Azure.AI.Unified/agents/streaming/events.tsp new file mode 100644 index 000000000000..cf460b631d00 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/streaming/events.tsp @@ -0,0 +1,139 @@ +import "@typespec/versioning"; + +using TypeSpec.Versioning; + +namespace Azure.AI.Unified.Agents; + +@doc(""" + Each event in a server-sent events stream has an `event` and `data` property: + + ``` + event: thread.created + data: {"id": "thread_123", "object": "thread", ...} + ``` + + We emit events whenever a new object is created, transitions to a new state, or is being + streamed in parts (deltas). For example, we emit `thread.run.created` when a new run + is created, `thread.run.completed` when a run completes, and so on. When an Agent chooses + to create a message during a run, we emit a `thread.message.created event`, a + `thread.message.in_progress` event, many `thread.message.delta` events, and finally a + `thread.message.completed` event. + + We may add additional events over time, so we recommend handling unknown events gracefully + in your code. + """) +union AgentStreamEvent { + string, + + | ThreadStreamEvent + | RunStreamEvent + | RunStepStreamEvent + | MessageStreamEvent + | ErrorEvent + | DoneEvent, +} + +/** Thread operation related streaming events */ +union ThreadStreamEvent { + string, + + /** Event sent when a new thread is created. The data of this event is of type AgentThread */ + ThreadCreated: "thread.created", +} + +/** Run operation related streaming events */ +union RunStreamEvent { + string, + + /** Event sent when a new run is created. The data of this event is of type ThreadRun */ + ThreadRunCreated: "thread.run.created", + + /** Event sent when a run moves to `queued` status. The data of this event is of type ThreadRun */ + ThreadRunQueued: "thread.run.queued", + + /** Event sent when a run moves to `in_progress` status. The data of this event is of type ThreadRun */ + ThreadRunInProgress: "thread.run.in_progress", + + /** Event sent when a run moves to `requires_action` status. The data of this event is of type ThreadRun */ + ThreadRunRequiresAction: "thread.run.requires_action", + + /** Event sent when a run is completed. The data of this event is of type ThreadRun */ + ThreadRunCompleted: "thread.run.completed", + + /** Event sent when a run ends incomplete. The data of this event is of type ThreadRun */ + ThreadRunIncomplete: "thread.run.incomplete", + + /** Event sent when a run fails. The data of this event is of type ThreadRun */ + ThreadRunFailed: "thread.run.failed", + + /** Event sent when a run moves to `cancelling` status. The data of this event is of type ThreadRun */ + ThreadRunCancelling: "thread.run.cancelling", + + /** Event sent when a run is cancelled. The data of this event is of type ThreadRun */ + ThreadRunCancelled: "thread.run.cancelled", + + /** Event sent when a run is expired. The data of this event is of type ThreadRun */ + ThreadRunExpired: "thread.run.expired", +} + +/** Run step operation related streaming events */ +union RunStepStreamEvent { + string, + + /** Event sent when a new thread run step is created. The data of this event is of type RunStep */ + ThreadRunStepCreated: "thread.run.step.created", + + /** Event sent when a run step moves to `in_progress` status. The data of this event is of type RunStep */ + ThreadRunStepInProgress: "thread.run.step.in_progress", + + /** Event sent when a run step is being streamed. The data of this event is of type RunStepDeltaChunk */ + ThreadRunStepDelta: "thread.run.step.delta", + + /** Event sent when a run step is completed. The data of this event is of type RunStep */ + ThreadRunStepCompleted: "thread.run.step.completed", + + /** Event sent when a run step fails. The data of this event is of type RunStep */ + ThreadRunStepFailed: "thread.run.step.failed", + + /** Event sent when a run step is cancelled. The data of this event is of type RunStep */ + ThreadRunStepCancelled: "thread.run.step.cancelled", + + /** Event sent when a run step is expired. The data of this event is of type RunStep */ + ThreadRunStepExpired: "thread.run.step.expired", +} + +/** Message operation related streaming events */ +union MessageStreamEvent { + string, + + /** Event sent when a new message is created. The data of this event is of type ThreadMessage */ + ThreadMessageCreated: "thread.message.created", + + /** Event sent when a message moves to `in_progress` status. The data of this event is of type ThreadMessage */ + ThreadMessageInProgress: "thread.message.in_progress", + + /** Event sent when a message is being streamed. The data of this event is of type MessageDeltaChunk */ + ThreadMessageDelta: "thread.message.delta", + + /** Event sent when a message is completed. The data of this event is of type ThreadMessage */ + ThreadMessageCompleted: "thread.message.completed", + + /** Event sent before a message is completed. The data of this event is of type ThreadMessage */ + ThreadMessageIncomplete: "thread.message.incomplete", +} + +/** Terminal event indicating a server side error while streaming. */ +union ErrorEvent { + string, + + /** Event sent when an error occurs, such as an internal server error or a timeout. */ + Error: "error", +} + +/** Terminal event indicating the successful end of a stream. */ +union DoneEvent { + string, + + /** Event sent when the stream is done. */ + Done: "done", +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/threads/models.tsp b/specification/ai/Azure.AI.Unified/agents/threads/models.tsp new file mode 100644 index 000000000000..f2d1b9217683 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/threads/models.tsp @@ -0,0 +1,78 @@ +import "@typespec/versioning"; + +import "../tools/tool_resources.tsp"; +import "../common/models.tsp"; +import "../messages/models.tsp"; + +using TypeSpec.Http; +using TypeSpec.Versioning; + +namespace Azure.AI.Unified.Agents; + +@doc("Information about a single thread associated with an agent.") +model AgentThread { + @doc("The identifier, which can be referenced in API endpoints.") + id: string; + + @doc("The object type, which is always 'thread'.") + object: "thread"; + + @encodedName("application/json", "created_at") + @encode(DateTimeKnownEncoding.unixTimestamp, int32) + @doc("The Unix timestamp, in seconds, representing when this object was created.") + createdAt: utcDateTime; + + /** + * A set of resources that are made available to the agent's tools in this thread. The resources are specific to the type + * of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list + * of vector store IDs. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "tool_resources") + toolResources: ToolResources | null; + + ...RequiredNullableMetadata; +} + +/** The details used to create a new agent thread. */ +model AgentThreadCreationOptions { + /** The initial messages to associate with the new thread. */ + messages?: ThreadMessageOptions[]; + + /** + * A set of resources that are made available to the agent's tools in this thread. The resources are specific to the + * type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires + * a list of vector store IDs. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "tool_resources") + toolResources?: ToolResources | null; + + ...OptionalNullableMetadata; +} + +/** The details used to update an existing agent thread */ +model UpdateAgentThreadOptions { + /** The ID of the thread to modify. */ + @path threadId: string; + + /** + * A set of resources that are made available to the agent's tools in this thread. The resources are specific to the + * type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires + * a list of vector store IDs + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "tool_resources") + toolResources?: ToolResources | null; + + ...OptionalNullableMetadata; +} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "https://github.com/Azure/autorest.csharp/issues/4041" +@doc("The status of a thread deletion operation.") +model ThreadDeletionStatus { + ...DeletionStatus; + + @doc("The object type, which is always 'thread.deleted'.") + object: "thread.deleted"; +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/threads/routes.tsp b/specification/ai/Azure.AI.Unified/agents/threads/routes.tsp new file mode 100644 index 000000000000..bdf3e2a23244 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/threads/routes.tsp @@ -0,0 +1,95 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@typespec/versioning"; +import "./models.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using TypeSpec.Versioning; + +namespace Azure.AI.Unified.Agents; + +/** + * Creates a new thread. Threads contain messages and can be run by agents. + * + * @returns Information about the newly created thread. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@post +@route("/threads") +op createThread is Azure.Core.Foundations.Operation< + { + /** + * The details used to create a new agent thread. + */ + ...AgentThreadCreationOptions; + }, + AgentThread +>; + +// list threads? + +/** + * Gets information about an existing thread. + * + * @param threadId The ID of the thread to retrieve information about. + * @returns Information about the requested thread. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API name parity" +@get +@route("/threads/{threadId}") +op getThread is Azure.Core.Foundations.Operation< + { + @doc("Identifier of the thread.") + @path + threadId: string; + }, + AgentThread +>; + +/** + * Modifies an existing thread. + * + * @param threadId The ID of the thread to modify. + * @param updateAgentThreadOptions The details of the modification to perform on a specified thread. + * @returns Information about the modified thread. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@post +@route("/threads/{threadId}") +op updateThread is Azure.Core.Foundations.Operation< + { + /** + * The details used to update an existing agent thread. + */ + ...UpdateAgentThreadOptions; + }, + AgentThread +>; + +/** + * Deletes an existing thread. + * + * @param threadId The ID of the thread to delete. + * @returns Status information about the requested thread deletion operation. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@delete +@route("/threads/{threadId}") +op deleteThread is Azure.Core.Foundations.Operation< + { + @doc("Identifier of the thread.") + @path + threadId: string; + }, + ThreadDeletionStatus +>; \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/tools/models.tsp b/specification/ai/Azure.AI.Unified/agents/tools/models.tsp new file mode 100644 index 000000000000..5e9aa4365444 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/tools/models.tsp @@ -0,0 +1,610 @@ +import "@typespec/http"; +import "@typespec/versioning"; + +using TypeSpec.Http; +using TypeSpec.Versioning; + +namespace Azure.AI.Unified.Agents; + +// +// Tool inputs -- definitions used before model evaluation to configure agents, threads, and messages +// + +@doc("An abstract representation of an input tool definition that an agent can use.") +@discriminator("type") +model ToolDefinition { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + @doc("The object type.") + type: string; +} + +@doc("The input definition information for a code interpreter tool as used to configure an agent.") +model CodeInterpreterToolDefinition extends ToolDefinition { + @doc("The object type, which is always 'code_interpreter'.") + type: "code_interpreter"; +} + +@doc("The input definition information for a file search tool as used to configure an agent.") +model FileSearchToolDefinition extends ToolDefinition { + @doc("The object type, which is always 'file_search'.") + type: "file_search"; + + /** + * Options overrides for the file search tool. + */ + @encodedName("application/json", "file_search") + fileSearch?: FileSearchToolDefinitionDetails; +} + +@doc("The input definition information for a function tool as used to configure an agent.") +model FunctionToolDefinition extends ToolDefinition { + @doc("The object type, which is always 'function'.") + type: "function"; + + @doc("The definition of the concrete function that the function tool should call.") + function: FunctionDefinition; +} + +// Azure Custom Tools + +@doc("The input definition information for a bing grounding search tool as used to configure an agent.") +model BingGroundingToolDefinition extends ToolDefinition { + @doc("The object type, which is always 'bing_grounding'.") + type: "bing_grounding"; + + @doc("The list of connections used by the bing grounding tool.") + bing_grounding: ToolConnectionList; +} + +@doc("The input definition information for a Microsoft Fabric tool as used to configure an agent.") +model MicrosoftFabricToolDefinition extends ToolDefinition { + @doc("The object type, which is always 'fabric_aiskill'.") + type: "fabric_aiskill"; + + @doc("The list of connections used by the Microsoft Fabric tool.") + fabric_aiskill: ToolConnectionList; +} + +@doc("The input definition information for a sharepoint tool as used to configure an agent.") +model SharepointToolDefinition extends ToolDefinition { + @doc("The object type, which is always 'sharepoint_grounding'.") + type: "sharepoint_grounding"; + + @doc("The list of connections used by the SharePoint tool.") + sharepoint_grounding: ToolConnectionList; +} + +@doc("The input definition information for an Azure AI search tool as used to configure an agent.") +model AzureAISearchToolDefinition extends ToolDefinition { + @doc("The object type, which is always 'azure_ai_search'.") + type: "azure_ai_search"; +} + +@doc("The input definition information for an OpenAPI tool as used to configure an agent.") +model OpenApiToolDefinition extends ToolDefinition { + @doc("The object type, which is always 'openapi'.") + type: "openapi"; + + @doc("The openapi function definition.") + openapi: OpenApiFunctionDefinition; +} + +// Definition details: File Search + +/** + * Options overrides for the file search tool. + */ +model FileSearchToolDefinitionDetails { + /** + * The maximum number of results the file search tool should output. The default is 20 for gpt-4* models and 5 for gpt-3.5-turbo. This number should be between 1 and 50 inclusive. + * + * Note that the file search tool may output fewer than `max_num_results` results. See the file search tool documentation for more information. + */ + @encodedName("application/json", "max_num_results") + @minValue(1) + @maxValue(50) + maxNumResults?: int32; + + /** + * Ranking options for file search. + */ + @encodedName("application/json", "ranking_options") + rankingOptions?: FileSearchRankingOptions; +} + +@doc("The input definition information for a azure function tool as used to configure an agent.") +model AzureFunctionToolDefinition extends ToolDefinition { + @doc("The object type, which is always 'azure_function'.") + type: "azure_function"; + + @doc("The definition of the concrete function that the function tool should call.") + @encodedName("application/json", "azure_function") + azureFunction: AzureFunctionDefinition; +} + +/** + * Ranking options for file search. + */ +model FileSearchRankingOptions { + @doc("File search ranker.") + ranker: string; + + @doc("Ranker search threshold.") + @encodedName("application/json", "score_threshold") + scoreThreshold: float32; +} + +// Definition details: Functions + +@doc("The input definition information for a function.") +model FunctionDefinition { + @doc("The name of the function to be called.") + name: string; + + @doc("A description of what the function does, used by the model to choose when and how to call the function.") + description?: string; + + #suppress "@azure-tools/typespec-azure-core/no-unknown" "External API shape takes an arbitrary json" + @doc("The parameters the functions accepts, described as a JSON Schema object.") + parameters: unknown; +} + +@doc("The definition of Azure function.") +model AzureFunctionDefinition { + @doc("The definition of azure function and its parameters.") + function: FunctionDefinition; + + @doc("Input storage queue. The queue storage trigger runs a function as messages are added to it.") + @encodedName("application/json", "input_binding") + inputBinding: AzureFunctionBinding; + + @doc("Output storage queue. The function writes output to this queue when the input items are processed.") + @encodedName("application/json", "output_binding") + outputBinding: AzureFunctionBinding; +} + +// Definition details: OpenAPI + +@doc("The input definition information for an openapi function.") +model OpenApiFunctionDefinition { + @doc("The name of the function to be called.") + name: string; + + @doc("A description of what the function does, used by the model to choose when and how to call the function.") + description?: string; + + #suppress "@azure-tools/typespec-azure-core/no-unknown" "External API shape takes an arbitrary json" + @doc("The openapi function shape, described as a JSON Schema object.") + spec: unknown; + + @doc("Open API authentication details") + auth: OpenApiAuthDetails; +} + +@doc(""" + Authentication type for OpenApi endpoint. Allowed types are: + - Anonymous (no authentication required) + - Connection (requires connection_id to endpoint, as setup in AI Foundry) + - Managed_Identity (requires audience for identity based auth) + """) +union OpenApiAuthType { + anonymous: "anonymous", + connection: "connection", + managedIdentity: "managed_identity", + string, +} + +@doc("authentication details for OpenApiFunctionDefinition") +@discriminator("type") +model OpenApiAuthDetails { + @doc("The type of authentication, must be anonymous/connection/managed_identity") + type: OpenApiAuthType; +} + +@doc("Security details for OpenApi anonymous authentication") +model OpenApiAnonymousAuthDetails extends OpenApiAuthDetails { + @doc("The object type, which is always 'anonymous'.") + type: OpenApiAuthType.anonymous; +} + +@doc("Security details for OpenApi connection authentication") +model OpenApiConnectionAuthDetails extends OpenApiAuthDetails { + @doc("The object type, which is always 'connection'.") + type: OpenApiAuthType.connection; + + @doc("Connection auth security details") + security_scheme: OpenApiConnectionSecurityScheme; +} + +@doc("Security details for OpenApi managed_identity authentication") +model OpenApiManagedAuthDetails extends OpenApiAuthDetails { + @doc("The object type, which is always 'managed_identity'.") + type: OpenApiAuthType.managedIdentity; + + @doc("Connection auth security details") + security_scheme: OpenApiManagedSecurityScheme; +} + +@doc("Security scheme for OpenApi managed_identity authentication") +model OpenApiManagedSecurityScheme { + @doc("Authentication scope for managed_identity auth type") + audience: string; +} + +@doc("Security scheme for OpenApi managed_identity authentication") +model OpenApiConnectionSecurityScheme { + @doc("Connection id for Connection auth type") + connection_id: string; +} + +// +// Required tool calls -- provided on a run and represent tools that need outputs submitted for the run to continue +// + +@discriminator("type") +@doc(""" + An abstract representation of a tool invocation needed by the model to continue a run. + """) +model RequiredToolCall { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + @doc("The object type for the required tool call.") + type: string; + + @doc("The ID of the tool call. This ID must be referenced when submitting tool outputs.") + id: string; +} + +@doc("A representation of a requested call to a function tool, needed by the model to continue evaluation of a run.") +model RequiredFunctionToolCall extends RequiredToolCall { + @doc("The object type of the required tool call. Always 'function' for function tools.") + type: "function"; + + @doc("Detailed information about the function to be executed by the tool that includes name and arguments.") + function: RequiredFunctionToolCallDetails; +} + +@doc("The detailed information for a function invocation, as provided by a required action invoking a function tool, that includes the name of and arguments to the function.") +model RequiredFunctionToolCallDetails { + @doc("The name of the function.") + name: string; + + @doc("The arguments to use when invoking the named function, as provided by the model. Arguments are presented as a JSON document that should be validated and parsed for evaluation.") + arguments: string; +} + +// +// Tool calls -- present in run steps and provide information about tool execution +// + +@discriminator("type") +@doc("An abstract representation of a detailed tool call as recorded within a run step for an existing run.") +model RunStepToolCall { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + @doc("The object type.") + type: string; + + @doc("The ID of the tool call. This ID must be referenced when you submit tool outputs.") + id: string; +} + +@doc(""" + A record of a call to a code interpreter tool, issued by the model in evaluation of a defined tool, that + represents inputs and outputs consumed and emitted by the code interpreter. + """) +model RunStepCodeInterpreterToolCall extends RunStepToolCall { + @doc("The object type, which is always 'code_interpreter'.") + type: "code_interpreter"; + + @encodedName("application/json", "code_interpreter") + @doc("The details of the tool call to the code interpreter tool.") + codeInterpreter: RunStepCodeInterpreterToolCallDetails; +} + +@doc(""" + A record of a call to a file search tool, issued by the model in evaluation of a defined tool, that represents + executed file search. + """) +model RunStepFileSearchToolCall extends RunStepToolCall { + @doc("The object type, which is always 'file_search'.") + type: "file_search"; + + @doc("The ID of the tool call. This ID must be referenced when you submit tool outputs.") + id: string; + + @doc("For now, this is always going to be an empty object.") + @encodedName("application/json", "file_search") + fileSearch: RunStepFileSearchToolCallResults; +} + +@doc("The results of the file search.") +model RunStepFileSearchToolCallResults { + @doc("Ranking options for file search.") + @encodedName("application/json", "ranking_options") + rankingOptions?: FileSearchRankingOptions; + + @doc("The array of a file search results") + results: RunStepFileSearchToolCallResult[]; +} + +@doc(""" + File search tool call result. + """) +model RunStepFileSearchToolCallResult { + @doc("The ID of the file that result was found in.") + @encodedName("application/json", "file_id") + fileId: string; + + @doc("The name of the file that result was found in.") + @encodedName("application/json", "file_name") + fileName: string; + + @doc("The score of the result. All values must be a floating point number between 0 and 1.") + @minValue(0) + @maxValue(1) + score: float32; + + @doc("The content of the result that was found. The content is only included if requested via the include query parameter.") + content?: FileSearchToolCallContent[]; +} + +@doc("The file search result content object.") +model FileSearchToolCallContent { + @doc("The type of the content.") + type: "text"; + + @doc("The text content of the file.") + text: string; +} + +@doc(""" + A record of a call to a bing grounding tool, issued by the model in evaluation of a defined tool, that represents + executed search with bing grounding. + """) +model RunStepBingGroundingToolCall extends RunStepToolCall { + @doc("The object type, which is always 'bing_grounding'.") + type: "bing_grounding"; + + @doc("Reserved for future use.") + @encodedName("application/json", "bing_grounding") + bingGrounding: Record; +} + +@doc(""" + A record of a call to an Azure AI Search tool, issued by the model in evaluation of a defined tool, that represents + executed Azure AI search. + """) +model RunStepAzureAISearchToolCall extends RunStepToolCall { + @doc("The object type, which is always 'azure_ai_search'.") + type: "azure_ai_search"; + + @doc("Reserved for future use.") + @encodedName("application/json", "azure_ai_search") + azureAISearch: Record; +} + +@doc(""" + A record of a call to a SharePoint tool, issued by the model in evaluation of a defined tool, that represents + executed SharePoint actions. + """) +model RunStepSharepointToolCall extends RunStepToolCall { + @doc("The object type, which is always 'sharepoint_grounding'.") + type: "sharepoint_grounding"; + + @doc("Reserved for future use.") + @encodedName("application/json", "sharepoint_grounding") + sharePoint: Record; +} + +@doc(""" + A record of a call to a Microsoft Fabric tool, issued by the model in evaluation of a defined tool, that represents + executed Microsoft Fabric operations. + """) +model RunStepMicrosoftFabricToolCall extends RunStepToolCall { + @doc("The object type, which is always 'fabric_aiskill'.") + type: "fabric_aiskill"; + + @doc("Reserved for future use.") + @encodedName("application/json", "fabric_aiskill") + microsoftFabric: Record; +} + +@doc(""" + A record of a call to a function tool, issued by the model in evaluation of a defined tool, that represents the inputs + and output consumed and emitted by the specified function. + """) +model RunStepFunctionToolCall extends RunStepToolCall { + @doc("The object type, which is always 'function'.") + type: "function"; + + @doc("The detailed information about the function called by the model.") + function: RunStepFunctionToolCallDetails; +} + +// Call details: Code Interpreter + +@doc("The detailed information about a code interpreter invocation by the model.") +model RunStepCodeInterpreterToolCallDetails { + @doc("The input provided by the model to the code interpreter tool.") + input: string; + + @doc("The outputs produced by the code interpreter tool back to the model in response to the tool call.") + outputs: RunStepCodeInterpreterToolCallOutput[]; +} + +@discriminator("type") +@doc("An abstract representation of an emitted output from a code interpreter tool.") +model RunStepCodeInterpreterToolCallOutput { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + @doc("The object type.") + type: string; +} + +@doc("A representation of a log output emitted by a code interpreter tool in response to a tool call by the model.") +model RunStepCodeInterpreterLogOutput + extends RunStepCodeInterpreterToolCallOutput { + @doc("The object type, which is always 'logs'.") + type: "logs"; + + @doc("The serialized log output emitted by the code interpreter.") + logs: string; +} + +@doc("A representation of an image output emitted by a code interpreter tool in response to a tool call by the model.") +model RunStepCodeInterpreterImageOutput + extends RunStepCodeInterpreterToolCallOutput { + @doc("The object type, which is always 'image'.") + type: "image"; + + @doc("Referential information for the image associated with this output.") + image: RunStepCodeInterpreterImageReference; +} + +@doc("An image reference emitted by a code interpreter tool in response to a tool call by the model.") +model RunStepCodeInterpreterImageReference { + @encodedName("application/json", "file_id") + @doc("The ID of the file associated with this image.") + fileId: string; +} + +// Call details: Functions + +@doc("The detailed information about the function called by the model.") +model RunStepFunctionToolCallDetails { + @doc("The name of the function.") + name: string; + + @doc("The arguments that the model requires are provided to the named function.") + arguments: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("The output of the function, only populated for function calls that have already have had their outputs submitted.") + output: string | null; +} + +// +// Tool outputs -- structured data that provides requested information from tools back to the model +// + +@doc("The data provided during a tool outputs submission to resolve pending tool calls and allow the model to continue.") +model ToolOutput { + @doc("The ID of the tool call being resolved, as provided in the tool calls of a required action from a run.") + @encodedName("application/json", "tool_call_id") + toolCallId?: string; + + @doc("The output from the tool to be submitted.") + output?: string; +} + +/** + * Controls which (if any) tool is called by the model. + * - `none` means the model will not call any tools and instead generates a message. + * - `auto` is the default value and means the model can pick between generating a message or calling a tool. + * Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` + * forces the model to call that tool. + */ +#suppress "@azure-tools/typespec-autorest/union-unsupported" "This union is defined according to the OpenAI API" +union AgentsApiToolChoiceOption { + string, + + /** Specifies how the tool choice will be used */ + AgentsApiToolChoiceOptionMode, + + /** Specifies a tool the model should use. Use to force the model to call a specific tool. */ + AgentsNamedToolChoice, +} + +/** Specifies how the tool choice will be used */ +union AgentsApiToolChoiceOptionMode { + string, + + /** The model will not call a function and instead generates a message. */ + none: "none", + + /** The model can pick between generating a message or calling a function. */ + auto: "auto", +} +/** Specifies a tool the model should use. Use to force the model to call a specific tool. */ +model AgentsNamedToolChoice { + /** the type of tool. If type is `function`, the function name must be set. */ + type: AgentsNamedToolChoiceType; + + /** The name of the function to call */ + function?: FunctionName; +} + +/** Available tool types for agents named tools. */ +union AgentsNamedToolChoiceType { + string, + + /** Tool type `function` */ + function: "function", + + /** Tool type `code_interpreter` */ + codeInterpreter: "code_interpreter", + + /** Tool type `file_search` */ + fileSearch: "file_search", + + /** Tool type `bing_grounding` */ + bingGrounding: "bing_grounding", + + /** Tool type `fabric_aiskill` */ + microsoftFabric: "fabric_aiskill", + + /** Tool type `sharepoint_grounding` */ + sharepoint: "sharepoint_grounding", + + /** Tool type `azure_ai_search` */ + azureAISearch: "azure_ai_search", +} + +/** The function name that will be used, if using the `function` tool */ +model FunctionName { + /** The name of the function to call */ + name: string; +} + +/** + * A set of connection resources currently used by either the `bing_grounding`, `fabric_aiskill`, or `sharepoint_grounding` tools. + */ +model ToolConnectionList { + /** + * The connections attached to this tool. There can be a maximum of 1 connection + * resource attached to the tool. + */ + @maxItems(1) + @encodedName("application/json", "connections") + connectionList?: ToolConnection[]; +} + +/** + * A connection resource. + */ +model ToolConnection { + /** + * A connection in a ToolConnectionList attached to this tool. + */ + @encodedName("application/json", "connection_id") + connectionId: string; +} + +@doc("The structure for keeping storage queue name and URI.") +model AzureFunctionBinding { + @doc("The type of binding, which is always 'storage_queue'.") + type: "storage_queue"; + + @doc("Storage queue.") + @encodedName("application/json", "storage_queue") + storageQueue: AzureFunctionStorageQueue; +} + +@doc("The structure for keeping storage queue name and URI.") +model AzureFunctionStorageQueue { + @doc("URI to the Azure Storage Queue service allowing you to manipulate a queue.") + @encodedName("application/json", "queue_service_endpoint") + storageServiceEndpoint: string; + + @doc("The name of an Azure function storage queue.") + @encodedName("application/json", "queue_name") + queueName: string; +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/tools/tool_resources.tsp b/specification/ai/Azure.AI.Unified/agents/tools/tool_resources.tsp new file mode 100644 index 000000000000..482af7b79ee5 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/tools/tool_resources.tsp @@ -0,0 +1,220 @@ +import "@typespec/http"; +import "@typespec/versioning"; + +import "../vector_stores/common/main.tsp"; + +using TypeSpec.Http; +using TypeSpec.Versioning; + +namespace Azure.AI.Unified.Agents; + +// +// Response objects +// + +/** + * A set of resources that are used by the agent's tools. The resources are specific to the type of + * tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` + * tool requires a list of vector store IDs. + */ +model ToolResources { + /** Resources to be used by the `code_interpreter` tool consisting of file IDs. */ + @encodedName("application/json", "code_interpreter") + codeInterpreter?: CodeInterpreterToolResource; + + /** Resources to be used by the `file_search` tool consisting of vector store IDs. */ + @encodedName("application/json", "file_search") + fileSearch?: FileSearchToolResource; + + /** Resources to be used by the `azure_ai_search` tool consisting of index IDs and names. */ + @encodedName("application/json", "azure_ai_search") + azureAISearch?: AzureAISearchResource; +} + +/** + * A set of resources that are used by the `code_interpreter` tool. + */ +model CodeInterpreterToolResource { + /** + * A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files + * associated with the tool. + */ + @encodedName("application/json", "file_ids") + @maxItems(20) + fileIds?: string[] = #[]; + + /** The data sources to be used. This option is mutually exclusive with the `fileIds` property. */ + @maxItems(20) + @encodedName("application/json", "data_sources") + dataSources?: VectorStoreDataSource[]; +} + +/** + * A set of resources that are used by the `file_search` tool. + */ +model FileSearchToolResource { + /** + * The ID of the vector store attached to this agent. There can be a maximum of 1 vector + * store attached to the agent. + */ + @maxItems(1) + @encodedName("application/json", "vector_store_ids") + vectorStoreIds?: string[]; + + /** + * The list of vector store configuration objects from Azure. + * This list is limited to one element. + * The only element of this list contains the list of azure asset IDs used by the search tool. + */ + @maxItems(1) + @encodedName("application/json", "vector_stores") + vectorStores?: VectorStoreConfigurations[]; +} + +/** + * A set of index resources used by the `azure_ai_search` tool. + */ +model AzureAISearchResource { + /** + * The indices attached to this agent. There can be a maximum of 1 index + * resource attached to the agent. + */ + @maxItems(1) + @encodedName("application/json", "indexes") + indexList?: IndexResource[]; +} + +/** + * A Index resource. + */ +model IndexResource { + /** + * An index connection id in an IndexResource attached to this agent. + */ + @encodedName("application/json", "index_connection_id") + indexConnectionId: string; + + /** + * The name of an index in an IndexResource attached to this agent. + */ + @encodedName("application/json", "index_name") + indexName: string; +} + +// +// Creation request objects +// + +/** + * Request object. A set of resources that are used by the agent's tools. The resources are specific to the + * type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` + * tool requires a list of vector store IDs. + */ +model CreateToolResourcesOptions { + /** + * A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files + * associated with the tool. + */ + @encodedName("application/json", "code_interpreter") + codeInterpreter?: CreateCodeInterpreterToolResourceOptions; + + /** A list of vector stores or their IDs made available to the `file_search` tool. */ + @encodedName("application/json", "file_search") + fileSearch?: CreateFileSearchToolResourceOptions; + + /** Resources to be used by the `azure_ai_search` tool consisting of index IDs and names. */ + @encodedName("application/json", "azure_ai_search") + azureAISearch?: AzureAISearchToolResourceOptions; +} + +alias AzureAISearchToolResourceOptions = AzureAISearchResource; + +/** + * A set of resources that will be used by the `code_interpreter` tool. Request object. + */ +model CreateCodeInterpreterToolResourceOptions { + /** A list of file IDs made available to the `code_interpreter` tool. */ + @maxItems(20) + @encodedName("application/json", "file_ids") + fileIds?: string[] = #[]; +} + +/** + * A set of resources that are used by the agent's tools. The resources are specific to the type of tool. + * For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires + * a list of vector store IDs. + */ +#suppress "@azure-tools/typespec-autorest/union-unsupported" "This union is defined according to the OpenAI API" +union CreateFileSearchToolResourceOptions { + /** The vector store attached to this agent. There can be a maximum of 1 vector store attached to the agent. */ + @encodedName("application/json", "vector_store_ids") + // @maxItems(1) // this can't be applied to string[] + vectorStoreIds: string[], + + /** A helper to create a vector store with file_ids and attach it to this agent. There can be a maximum of 1 vector + * store attached to the agent. */ + @encodedName("application/json", "vector_stores") + // @maxItems(1) // this can't be applied to string[] + vectorStores: CreateFileSearchToolResourceVectorStoreOptions[], +} + +/** File IDs associated to the vector store to be passed to the helper. */ +model CreateFileSearchToolResourceVectorStoreOptions { + /** A list of file IDs to add to the vector store. There can be a maximum of 10000 files in a vector store. */ + @encodedName("application/json", "file_ids") + @maxItems(10000) + fileIds: string[]; + + /** The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy. */ + @encodedName("application/json", "chunking_strategy") + chunkingStrategy: VectorStoreChunkingStrategyRequest; + + /** + * Set of up to 16 key-value pairs that can be attached to a vector store. This can be useful for storing additional + * information about the vector store in a structured format. Keys can be a maximum of 64 characters long and + * values can be a maximum of 512 characters long. + */ + ...OptionalNullableMetadata; +} + +// +// Update request objects +// + +/** + * Request object. A set of resources that are used by the agent's tools. The resources are specific to the type of tool. + * For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of + * vector store IDs. + */ +model UpdateToolResourcesOptions { + /** + * Overrides the list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files + * associated with the tool. + */ + @encodedName("application/json", "code_interpreter") + codeInterpreter?: UpdateCodeInterpreterToolResourceOptions; + + /** Overrides the vector store attached to this agent. There can be a maximum of 1 vector store attached to the agent. */ + @encodedName("application/json", "file_search") + fileSearch?: UpdateFileSearchToolResourceOptions; + + /** Overrides the resources to be used by the `azure_ai_search` tool consisting of index IDs and names. */ + @encodedName("application/json", "azure_ai_search") + azureAISearch?: AzureAISearchToolResourceOptions; +} + +/** Request object to update `code_interpreted` tool resources. */ +model UpdateCodeInterpreterToolResourceOptions { + /** A list of file IDs to override the current list of the agent. */ + @encodedName("application/json", "file_ids") + @maxItems(20) + fileIds?: string[]; +} + +/** Request object to update `file_search` tool resources. */ +model UpdateFileSearchToolResourceOptions { + /** A list of vector store IDs to override the current list of the agent. */ + @maxItems(1) + @encodedName("application/json", "vector_store_ids") + vectorStoreIds?: string[]; +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/common/main.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/common/main.tsp new file mode 100644 index 000000000000..9d5abbffb2ed --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/common/main.tsp @@ -0,0 +1,143 @@ +import "@typespec/http"; +import "@typespec/versioning"; + +using TypeSpec.Http; +using TypeSpec.Versioning; + +namespace Azure.AI.Unified.Agents; + +/** Options to configure a vector store static chunking strategy. */ +model VectorStoreStaticChunkingStrategyOptions { + /** The maximum number of tokens in each chunk. The default value is 800. The minimum value is 100 and the maximum value is 4096. */ + @encodedName("application/json", "max_chunk_size_tokens") + @minValue(100) + @maxValue(4096) + maxChunkSizeTokens: int32; + + /** + * The number of tokens that overlap between chunks. The default value is 400. + * Note that the overlap must not exceed half of max_chunk_size_tokens. + */ + @encodedName("application/json", "chunk_overlap_tokens") + chunkOverlapTokens: int32; +} + +/** Type of chunking strategy */ +union VectorStoreChunkingStrategyRequestType { + auto: "auto", + static: "static", + string, +} + +/** An abstract representation of a vector store chunking strategy configuration. */ +@discriminator("type") +model VectorStoreChunkingStrategyRequest { + /** The object type. */ + type: VectorStoreChunkingStrategyRequestType; +} + +/** + * The default strategy. This strategy currently uses a max_chunk_size_tokens of 800 and chunk_overlap_tokens of 400. + */ +model VectorStoreAutoChunkingStrategyRequest + extends VectorStoreChunkingStrategyRequest { + /** The object type, which is always 'auto'. */ + type: VectorStoreChunkingStrategyRequestType.auto; +} + +/** A statically configured chunking strategy. */ +model VectorStoreStaticChunkingStrategyRequest + extends VectorStoreChunkingStrategyRequest { + /** The object type, which is always 'static'. */ + type: VectorStoreChunkingStrategyRequestType.static; + + /** The options for the static chunking strategy. */ + static: VectorStoreStaticChunkingStrategyOptions; +} + +/** Type of chunking strategy */ +union VectorStoreChunkingStrategyResponseType { + other: "other", + static: "static", + string, +} + +/** An abstract representation of a vector store chunking strategy configuration. */ +@discriminator("type") +model VectorStoreChunkingStrategyResponse { + /** The object type. */ + type: VectorStoreChunkingStrategyResponseType; +} + +/** + * This is returned when the chunking strategy is unknown. Typically, this is because the file was indexed before the chunking_strategy concept was introduced in the API. + */ +model VectorStoreAutoChunkingStrategyResponse + extends VectorStoreChunkingStrategyResponse { + /** The object type, which is always 'other'. */ + type: VectorStoreChunkingStrategyResponseType.other; +} + +/** A statically configured chunking strategy. */ +model VectorStoreStaticChunkingStrategyResponse + extends VectorStoreChunkingStrategyResponse { + /** The object type, which is always 'static'. */ + type: VectorStoreChunkingStrategyResponseType.static; + + /** The options for the static chunking strategy. */ + static: VectorStoreStaticChunkingStrategyOptions; +} + +/** Type of vector storage asset. Asset type may be a uri_asset, in this case it should contain asset URI ID, + * in the case of id_asset it should contain the data ID. + */ +union VectorStoreDataSourceAssetType { + /** + * Azure URI + */ + uri_asset: "uri_asset", + + /** + * The data ID + */ + id_asset: "id_asset", + + string, +} + +/** + * The structure, containing Azure asset URI path and the asset type of the file used as a data source + * for the enterprise file search. + */ +model VectorStoreDataSource { + /** Asset URI. */ + @encodedName("application/json", "uri") + assetIdentifier: string; + + /** The asset type */ + @encodedName("application/json", "type") + assetType: VectorStoreDataSourceAssetType; +} + +/** + * Vector storage configuration is the list of data sources, used when multiple + * files can be used for the enterprise file search. + */ +model VectorStoreConfiguration { + /** Data sources */ + @encodedName("application/json", "data_sources") + dataSources: VectorStoreDataSource[]; +} + +/** + * The structure, containing the list of vector storage configurations i.e. the list of azure asset IDs. + */ +model VectorStoreConfigurations { + /** Name */ + @encodedName("application/json", "name") + storeName: string; + + /** Configurations */ + @encodedName("application/json", "configuration") + storeConfiguration: VectorStoreConfiguration; +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/models.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/models.tsp new file mode 100644 index 000000000000..cda03742378f --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/models.tsp @@ -0,0 +1,45 @@ +namespace Azure.AI.Unified.Agents; + +using TypeSpec.Versioning; + +/** The status of the vector store file batch. */ +union VectorStoreFileBatchStatus { + string, + + /** The vector store is still processing this file batch. */ + inProgress: "in_progress", + + /** the vector store file batch is ready for use. */ + completed: "completed", + + /** The vector store file batch was cancelled. */ + cancelled: "cancelled", + + /** The vector store file batch failed to process. */ + failed: "failed", +} + +/** A batch of files attached to a vector store. */ +model VectorStoreFileBatch { + /** The identifier, which can be referenced in API endpoints. */ + id: string; + + /** The object type, which is always `vector_store.file_batch`. */ + object: "vector_store.files_batch"; + + /** The Unix timestamp (in seconds) for when the vector store files batch was created. */ + @encode("unixTimestamp", int32) + @encodedName("application/json", "created_at") + createdAt: utcDateTime; + + /** The ID of the vector store that the file is attached to. */ + @encodedName("application/json", "vector_store_id") + vectorStoreId: string; + + /** The status of the vector store files batch, which can be either `in_progress`, `completed`, `cancelled` or `failed`. */ + status: VectorStoreFileBatchStatus; + + /** Files count grouped by status processed or being processed by this vector store. */ + @encodedName("application/json", "file_counts") + fileCounts: VectorStoreFileCount; +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/routes.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/routes.tsp new file mode 100644 index 000000000000..2fc183c36bfb --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/routes.tsp @@ -0,0 +1,122 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@typespec/versioning"; + +import "./models.tsp"; +import "../../common/models.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using TypeSpec.Versioning; + +namespace Azure.AI.Unified.Agents; + +/** + * Create a vector store file batch. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@post +@route("/vector_stores/{vectorStoreId}/file_batches") +op createVectorStoreFileBatch is Azure.Core.Foundations.Operation< + { + /** The ID of the vector store for which to create a File Batch. */ + @doc("Identifier of the vector store.") + @path + vectorStoreId: string; + + /** A list of File IDs that the vector store should use. Useful for tools like `file_search` that can access files. */ + @minItems(1) + @maxItems(500) + @encodedName("application/json", "file_ids") + @doc("List of file identifiers.") + fileIds?: string[]; + + /** The data sources to be used. This option is mutually exclusive with fileIds. */ + @minItems(1) + @maxItems(500) + @encodedName("application/json", "data_sources") + @doc("List of Azure assets.") + dataSources?: VectorStoreDataSource[]; + + /** The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. */ + @encodedName("application/json", "chunking_strategy") + chunkingStrategy?: VectorStoreChunkingStrategyRequest; + }, + VectorStoreFileBatch +>; + +/** + * Retrieve a vector store file batch. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@get +@route("/vector_stores/{vectorStoreId}/file_batches/{batchId}") +op getVectorStoreFileBatch is Azure.Core.Foundations.Operation< + { + /** The ID of the vector store that the file batch belongs to. */ + @doc("Identifier of the vector store.") + @path + vectorStoreId: string; + + /** The ID of the file batch being retrieved. */ + @doc("Identifier of the file batch.") + @path + batchId: string; + }, + VectorStoreFileBatch +>; + +/** + * Cancel a vector store file batch. This attempts to cancel the processing of files in this batch as soon as possible. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@post +@route("/vector_stores/{vectorStoreId}/file_batches/{batchId}/cancel") +op cancelVectorStoreFileBatch is Azure.Core.Foundations.Operation< + { + /** The ID of the vector store that the file batch belongs to. */ + @doc("Identifier of the vector store.") + @path + vectorStoreId: string; + + /** The ID of the file batch to cancel. */ + @doc("Identifier of the file batch.") + @path + batchId: string; + }, + VectorStoreFileBatch +>; + +/** + * Returns a list of vector store files in a batch. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@get +@route("/vector_stores/{vectorStoreId}/file_batches/{batchId}/files") +op listVectorStoreFileBatchFiles is Azure.Core.Foundations.Operation< + { + /** The ID of the vector store that the file batch belongs to. */ + @doc("Identifier of the vector store.") + @path + vectorStoreId: string; + + /** The ID of the file batch that the files belong to. */ + @doc("Identifier of the file batch.") + @path + batchId: string; + + /** Filter by file status. */ + @query filter?: VectorStoreFileStatusFilter; + + ...OpenAIListRequestOptions; + }, + OpenAIPageableListOf +>; \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/files/models.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/files/models.tsp new file mode 100644 index 000000000000..e743316572a1 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/files/models.tsp @@ -0,0 +1,106 @@ +namespace Azure.AI.Unified.Agents; + +using TypeSpec.Versioning; + +/** Query parameter filter for vector store file retrieval endpoint */ +union VectorStoreFileStatusFilter { + string, + + /** Retrieve only files that are currently being processed */ + inProgress: "in_progress", + + /** Retrieve only files that have been successfully processed */ + completed: "completed", + + /** Retrieve only files that have failed to process */ + failed: "failed", + + /** Retrieve only files that were cancelled */ + cancelled: "cancelled", +} + +/** Vector store file status */ +union VectorStoreFileStatus { + string, + + /** The file is currently being processed. */ + inProgress: "in_progress", + + /** The file has been successfully processed. */ + completed: "completed", + + /** The file has failed to process. */ + failed: "failed", + + /** The file was cancelled. */ + cancelled: "cancelled", +} + +/** Error code variants for vector store file processing */ +union VectorStoreFileErrorCode { + string, + + /** An server error occurred. */ + serverError: "server_error", + + /** The file is not valid. */ + invalidFile: "invalid_file", + + /** The file is of unsupported type. */ + unsupportedFile: "unsupported_file", +} + +/** Details on the error that may have occurred while processing a file for this vector store */ +model VectorStoreFileError { + /** One of `server_error` or `rate_limit_exceeded`. */ + code: VectorStoreFileErrorCode; + + /** A human-readable description of the error. */ + message: string; +} + +/** Description of a file attached to a vector store. */ +model VectorStoreFile { + /** The identifier, which can be referenced in API endpoints. */ + id: string; + + /** The object type, which is always `vector_store.file`. */ + object: "vector_store.file"; + + /** + * The total vector store usage in bytes. Note that this may be different from the original file + * size. + */ + @encodedName("application/json", "usage_bytes") + usageBytes: int32; + + // Tool customization: _at and created are Unix encoded utcDateTime + /** The Unix timestamp (in seconds) for when the vector store file was created. */ + @encodedName("application/json", "created_at") + @encode("unixTimestamp", int32) + createdAt: utcDateTime; + + /** The ID of the vector store that the file is attached to. */ + @encodedName("application/json", "vector_store_id") + vectorStoreId: string; + + /** The status of the vector store file, which can be either `in_progress`, `completed`, `cancelled`, or `failed`. The status `completed` indicates that the vector store file is ready for use. */ + status: VectorStoreFileStatus; + + /** The last error associated with this vector store file. Will be `null` if there are no errors. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "last_error") + lastError: VectorStoreFileError | null; + + /** The strategy used to chunk the file. */ + @encodedName("application/json", "chunking_strategy") + chunkingStrategy: VectorStoreChunkingStrategyResponse; +} + +/** Response object for deleting a vector store file relationship. */ +model VectorStoreFileDeletionStatus { + ...DeletionStatus; + + /** The object type, which is always 'vector_store.deleted'. */ + object: "vector_store.file.deleted"; +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/files/routes.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/files/routes.tsp new file mode 100644 index 000000000000..28f9540129b7 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/files/routes.tsp @@ -0,0 +1,114 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@typespec/versioning"; + +import "./models.tsp"; +import "../../common/models.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using TypeSpec.Versioning; + +namespace Azure.AI.Unified.Agents; + +/** + * Returns a list of vector store files. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@get +@route("/vector_stores/{vectorStoreId}/files") +op listVectorStoreFiles is Azure.Core.Foundations.Operation< + { + /** The ID of the vector store that the files belong to. */ + @doc("Identifier of the vector store.") + @path + vectorStoreId: string; + + /** Filter by file status. */ + @query filter?: VectorStoreFileStatusFilter; + + ...OpenAIListRequestOptions; + }, + OpenAIPageableListOf +>; + +/** + * Create a vector store file by attaching a file to a vector store. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@post +@route("/vector_stores/{vectorStoreId}/files") +op createVectorStoreFile is Azure.Core.Foundations.Operation< + { + /** The ID of the vector store for which to create a File. */ + @doc("Identifier of the vector store.") + @path + vectorStoreId: string; + + /** A File ID that the vector store should use. Useful for tools like `file_search` that can access files. */ + @doc("Identifier of the file.") + @encodedName("application/json", "file_id") + fileId?: string; + + /** The data sources to be used. This option is mutually exclusive with fileId. */ + @doc("Azure asset ID.") + @encodedName("application/json", "data_source") + dataSource?: VectorStoreDataSource; + + /** The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. */ + @encodedName("application/json", "chunking_strategy") + chunkingStrategy?: VectorStoreChunkingStrategyRequest; + }, + VectorStoreFile +>; + +/** + * Retrieves a vector store file. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@get +@route("/vector_stores/{vectorStoreId}/files/{fileId}") +op getVectorStoreFile is Azure.Core.Foundations.Operation< + { + /** The ID of the vector store that the file belongs to. */ + @doc("Identifier of the vector store.") + @path + vectorStoreId: string; + + /** The ID of the file being retrieved. */ + @doc("Identifier of the file.") + @path + fileId: string; + }, + VectorStoreFile +>; + +/** + * Delete a vector store file. This will remove the file from the vector store but the file itself will not be deleted. + * To delete the file, use the delete file endpoint. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@delete +@route("/vector_stores/{vectorStoreId}/files/{fileId}") +op deleteVectorStoreFile is Azure.Core.Foundations.Operation< + { + /** The ID of the vector store that the file belongs to. */ + @doc("Identifier of the vector store.") + @path + vectorStoreId: string; + + /** The ID of the file to delete its relationship to the vector store. */ + @doc("Identifier of the file.") + @path + fileId: string; + }, + VectorStoreFileDeletionStatus +>; \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/main.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/main.tsp new file mode 100644 index 000000000000..1c683b0cf5a0 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/main.tsp @@ -0,0 +1,6 @@ +import "./models.tsp"; +import "./routes.tsp"; + +import "./common/main.tsp"; +import "./files/main.tsp"; +import "./file_batches/main.tsp"; \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/models.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/models.tsp new file mode 100644 index 000000000000..5864c32a7ffa --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/models.tsp @@ -0,0 +1,161 @@ +namespace Azure.AI.Unified.Agents; + +using TypeSpec.Versioning; + +/** The expiration policy for a vector store. */ +model VectorStoreExpirationPolicy { + /** Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`. */ + anchor: VectorStoreExpirationPolicyAnchor; + + /** The anchor timestamp after which the expiration policy applies. */ + @minValue(1) + @maxValue(365) + days: int32; +} + +/** Describes the relationship between the days and the expiration of this vector store */ +union VectorStoreExpirationPolicyAnchor { + string, + + /** The expiration policy is based on the last time the vector store was active. */ + lastActiveAt: "last_active_at", +} + +/** Vector store possible status */ +union VectorStoreStatus { + string, + + /** expired status indicates that this vector store has expired and is no longer available for use. */ + expired: "expired", + + /** in_progress status indicates that this vector store is still processing files. */ + inProgress: "in_progress", + + /** completed status indicates that this vector store is ready for use. */ + completed: "completed", +} + +/** Counts of files processed or being processed by this vector store grouped by status. */ +model VectorStoreFileCount { + /** The number of files that are currently being processed. */ + @encodedName("application/json", "in_progress") + inProgress: int32; + + /** The number of files that have been successfully processed. */ + completed: int32; + + /** The number of files that have failed to process. */ + failed: int32; + + /** The number of files that were cancelled. */ + cancelled: int32; + + /** The total number of files. */ + total: int32; +} + +/** + * A vector store is a collection of processed files can be used by the `file_search` tool. + */ +model VectorStore { + /** The identifier, which can be referenced in API endpoints. */ + id: string; + + /** The object type, which is always `vector_store` */ + object: "vector_store"; + + // Tool customization: _at and created are Unix encoded utcDateTime + /** The Unix timestamp (in seconds) for when the vector store was created. */ + @encode("unixTimestamp", int32) + @encodedName("application/json", "created_at") + createdAt: utcDateTime; + + /** The name of the vector store. */ + name: string; + + /** The total number of bytes used by the files in the vector store. */ + @encodedName("application/json", "usage_bytes") + usageBytes: int32; + + /** Files count grouped by status processed or being processed by this vector store. */ + @encodedName("application/json", "file_counts") + fileCounts: VectorStoreFileCount; + + /** The status of the vector store, which can be either `expired`, `in_progress`, or `completed`. A status of `completed` indicates that the vector store is ready for use. */ + status: VectorStoreStatus; + + /** Details on when this vector store expires */ + @encodedName("application/json", "expires_after") + expiresAfter?: VectorStoreExpirationPolicy; + + /** The Unix timestamp (in seconds) for when the vector store will expire. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encode("unixTimestamp", int32) + @encodedName("application/json", "expires_at") + expiresAt?: utcDateTime | null; + + /** The Unix timestamp (in seconds) for when the vector store was last active. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encode("unixTimestamp", int32) + @encodedName("application/json", "last_active_at") + lastActiveAt: utcDateTime | null; + + /** + * Set of 16 key-value pairs that can be attached to an object. This can be useful for storing + * additional information about the object in a structured format. Keys can be a maximum of 64 + * characters long and values can be a maximum of 512 characters long. + */ + ...RequiredNullableMetadata; +} + +/** Request object for creating a vector store. */ +model VectorStoreOptions { + /** A list of file IDs that the vector store should use. Useful for tools like `file_search` that can access files. */ + @maxItems(500) + @encodedName("application/json", "file_ids") + fileIds?: string[]; + + /** The name of the vector store. */ + name?: string; + + /** The vector store configuration, used when vector store is created from Azure asset URIs. */ + @encodedName("application/json", "configuration") + storeConfiguration?: VectorStoreConfiguration; + + /** Details on when this vector store expires */ + @encodedName("application/json", "expires_after") + expiresAfter?: VectorStoreExpirationPolicy; + + /** The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. Only applicable if file_ids is non-empty. */ + @encodedName("application/json", "chunking_strategy") + chunkingStrategy?: VectorStoreChunkingStrategyRequest; + + ...OptionalNullableMetadata; +} + +/** Request object for updating a vector store. */ +model VectorStoreUpdateOptions { + /** The name of the vector store. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + name?: string | null; + + /** Details on when this vector store expires */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @encodedName("application/json", "expires_after") + expiresAfter?: VectorStoreExpirationPolicy | null; + + /** + * Set of 16 key-value pairs that can be attached to an object. This can be useful for storing + * additional information about the object in a structured format. Keys can be a maximum of 64 + * characters long and values can be a maximum of 512 characters long. + */ + ...OptionalNullableMetadata; +} + +/** Response object for deleting a vector store. */ +model VectorStoreDeletionStatus { + ...DeletionStatus; + + /** The object type, which is always 'vector_store.deleted'. */ + object: "vector_store.deleted"; +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/routes.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/routes.tsp new file mode 100644 index 000000000000..2967d9cf1a68 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/routes.tsp @@ -0,0 +1,105 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@typespec/versioning"; + +import "./models.tsp"; +import "../common/models.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using TypeSpec.Versioning; + +namespace Azure.AI.Unified.Agents; + +/** + * Returns a list of vector stores. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@get +@route("/vector_stores") +op listVectorStores is Azure.Core.Foundations.Operation< + { + ...OpenAIListRequestOptions; + }, + OpenAIPageableListOf +>; + +/** + * Creates a vector store. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@post +@route("/vector_stores") +op createVectorStore is Azure.Core.Foundations.Operation< + { + /** + * Request object for creating a vector store. + */ + ...VectorStoreOptions; + }, + VectorStore +>; + +/** + * Returns the vector store object matching the specified ID. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@get +@route("/vector_stores/{vectorStoreId}") +op getVectorStore is Azure.Core.Foundations.Operation< + { + /** The ID of the vector store to retrieve. */ + @doc("Identifier of the vector store.") + @path + vectorStoreId: string; + }, + VectorStore +>; + +/** + * The ID of the vector store to modify. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@post +@route("/vector_stores/{vectorStoreId}") +op modifyVectorStore is Azure.Core.Foundations.Operation< + { + /** The ID of the vector store to modify. */ + @doc("Identifier of the vector store.") + @path + vectorStoreId: string; + + /** + * Request object for updating a vector store. + */ + ...VectorStoreUpdateOptions; + }, + VectorStore +>; + +/** + * Deletes the vector store object matching the specified ID. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" +@delete +@route("/vector_stores/{vectorStoreId}") +op deleteVectorStore is Azure.Core.Foundations.Operation< + { + /** The ID of the vector store to delete. */ + @doc("Identifier of the vector store.") + @path + vectorStoreId: string; + }, + VectorStoreDeletionStatus +>; \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/client.tsp b/specification/ai/Azure.AI.Unified/client.tsp new file mode 100644 index 000000000000..086e21510069 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/client.tsp @@ -0,0 +1,4 @@ +import "@azure-tools/typespec-client-generator-core"; +import "./main.tsp"; + +using Azure.ClientGenerator.Core; \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/common/models.tsp b/specification/ai/Azure.AI.Unified/common/models.tsp new file mode 100644 index 000000000000..0c45eea3f004 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/common/models.tsp @@ -0,0 +1,479 @@ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Http; +using TypeSpec.Versioning; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; + +namespace Azure.AI.Unified; + +@doc("The possible values for roles attributed to messages in a thread.") +union MessageRole { + string, + + @doc("The role representing the end-user.") + user: "user", + + @doc("The role representing the assistant.") + assistant: "assistant", +} + +@doc("The available sorting options when requesting a list of response objects.") +union ListSortOrder { + string, + + @doc("Specifies an ascending sort order.") + ascending: "asc", + + @doc("Specifies a descending sort order.") + descending: "desc", +} + +alias OpenAIListRequestOptions = { + @doc("A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.") + @query + limit?: int32 = 20; + + @doc("Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.") + @query + order?: ListSortOrder = ListSortOrder.descending; + + @doc("A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.") + @query + after?: string; + + @doc("A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.") + @query + before?: string; +}; + +#suppress "@azure-tools/typespec-azure-core/casing-style" "OpenAI is a case-sensitive name" +@doc("The response data for a requested list of items.") +model OpenAIPageableListOf { + @doc("The object type, which is always list.") + object: "list"; + + @doc("The requested list of items.") + data: T[]; + + @encodedName("application/json", "first_id") + @doc("The first ID represented in this list.") + firstId: string; + + @encodedName("application/json", "last_id") + @doc("The last ID represented in this list.") + lastId: string; + + @encodedName("application/json", "has_more") + @doc("A value indicating whether there are additional values available not captured in this list.") + hasMore: boolean; +} + +alias DeletionStatus = { + @doc("The ID of the resource specified for deletion.") + id: string; + + @doc("A value indicating whether deletion was successful.") + deleted: boolean; +}; + +alias RequiredNullableMetadata = { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.") + metadata: Record | null; +}; + +alias OptionalNullableMetadata = { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.") + metadata?: Record | null; +}; + +#suppress "@azure-tools/typespec-autorest/union-unsupported" "This union is defined according to the OpenAI API" +@doc("Specifies the format that the model must output. Compatible with GPT-4 Turbo and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. Setting to `{ \"type\": \"json_object\" }` enables JSON mode, which guarantees the message the model generates is valid JSON. **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly \"stuck\" request. Also note that the message content may be partially cut off if `finish_reason=\"length\"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length.") +union AssistantsApiResponseFormatOption { + string, + + @doc("The model will handle the return format.") + AssistantsApiResponseFormatMode, + + @doc("Sets the format of the output of the model when a ToolCall is returned.") + AssistantsApiResponseFormat, +} + +@doc("Represents the mode in which the model will handle the return format of a tool call.") +union AssistantsApiResponseFormatMode { + string, + + @doc("Default value. Let the model handle the return format.") + "auto", + + @doc("Setting the value to `none`, will result in a 400 Bad request.") + "none", +} + +@doc("An object describing the expected output of the model. If `json_object` only `function` type `tools` are allowed to be passed to the Run. If `text` the model can return text or any value needed.") +model AssistantsApiResponseFormat { + @doc("Must be one of `text` or `json_object`.") + type?: ApiResponseFormat = ApiResponseFormat.text; +} + +@doc("Possible API response formats.") +union ApiResponseFormat { + string, + + @doc("`text` format should be used for requests involving any sort of ToolCall.") + text: "text", + + @doc("Using `json_object` format will limit the usage of ToolCall to only functions.") + jsonObject: "json_object", +} + +@doc("Metadata pertaining to creation and last modification of the resource.") +model SystemData { + @visibility("read") + @doc("The timestamp the resource was created at.") + createdAt?: utcDateTime; + + @visibility("read") + @doc("The identity that created the resource.") + createdBy?: string; + + @visibility("read") + @doc("The identity type that created the resource.") + createdByType?: string; + + @visibility("read") + @doc("The timestamp of resource last modification (UTC)") + lastModifiedAt?: utcDateTime; +} + +@doc("List View Type Definition") +union ListViewType { + string, + + @doc("List only active items.") + ActiveOnly: "ActiveOnly", + + @doc("List only archived items.") + ArchivedOnly: "ArchivedOnly", + + @doc("List all items.") + All: "All", +} + +@doc("Enum to determine whether PublicNetworkAccess is Enabled or Disabled.") +union PublicNetworkAccessType { + string, + + @doc("PublicNetworkAccess is enabled.") + Enabled: "Enabled", + + @doc("PublicNetworkAccess is disabled.") + Disabled: "Disabled", +} + +@doc("Enum to determine whether PublicNetworkAccess is Enabled or Disabled for egress of a deployment.") +union EgressPublicNetworkAccessType { + string, + + @doc("PublicNetworkAccess is enabled for egress.") + Enabled: "Enabled", + + @doc("PublicNetworkAccess is disabled for egress.") + Disabled: "Disabled", +} + +@doc("Enum to determine which reference method to use for an asset.") +union ReferenceType { + string, + + @doc("Id") + Id: "Id", + + @doc("DataPath") + DataPath: "DataPath", + + @doc("OutputPath") + OutputPath: "OutputPath", +} + +@doc("Base definition for asset references.") +@discriminator("referenceType") +model AssetReferenceBase { + @doc("Asset reference type.") + referenceType: ReferenceType; +} + +@doc("Reference to an asset via its ARM resource ID.") +model IdAssetReference extends AssetReferenceBase { + @doc("[Required] ARM resource ID of the asset.") + @minLength(1) + @pattern("[a-zA-Z0-9_]") + assetId: string; + + @doc("[Required] Specifies the type of asset reference.") + referenceType: "Id"; +} + +@doc("Reference to an asset via its path in a datastore.") +model DataPathAssetReference extends AssetReferenceBase { + @doc("ARM resource ID of the datastore where the asset is located.") + datastoreId?: string; + + @doc("The path of the file/directory in the datastore.") + path?: string; + + @doc("[Required] Specifies the type of asset reference.") + referenceType: "DataPath"; +} + +@doc("Reference to an asset via its path in a job output.") +model OutputPathAssetReference extends AssetReferenceBase { + @doc("ARM resource ID of the job.") + jobId?: string; + + @doc("The path of the file/directory in the job output.") + path?: string; + + @doc("[Required] Specifies the type of asset reference.") + referenceType: "OutputPath"; +} + +@doc("Enum to determine endpoint compute type.") +union EndpointComputeType { + string, + + @doc("Managed") + Managed: "Managed", + + @doc("Kubernetes") + Kubernetes: "Kubernetes", + + @doc("AzureMLCompute") + AzureMLCompute: "AzureMLCompute", +} + +@doc("The type of ordering to use") +union OrderString { + string, + + @doc("Sort creation date/time in descending order.") + CreatedAtDesc: "CreatedAtDesc", + + @doc("Sort creation date/time in ascending order.") + CreatedAtAsc: "CreatedAtAsc", + + @doc("Sort updated at date/time in descending order.") + UpdatedAtDesc: "UpdatedAtDesc", + + @doc("Sort updated at date/time in ascending order.") + UpdatedAtAsc: "UpdatedAtAsc", +} + +@doc("Strictly used in update requests.") +model PartialMinimalTrackedResource { + @doc("Resource tags.") + tags?: Record; +} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" +@doc("Strictly used in update requests.") +model PartialMinimalTrackedResourceWithIdentity + extends PartialMinimalTrackedResource { + @doc("Managed service identity (system assigned and/or user assigned identities)") + identity?: PartialManagedServiceIdentity; +} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" +@doc("Strictly used in update requests.") +model PartialMinimalTrackedResourceWithSku + extends PartialMinimalTrackedResource { + @doc("Sku details required for ARM contract for Autoscaling.") + sku?: PartialSku; +} + +@doc("Common SKU definition.") +model PartialSku { + @doc("If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.") + capacity?: int32; + + @doc("If the service has different generations of hardware, for the same SKU, then that can be captured here.") + family?: string; + + @doc("The name of the SKU. Ex - P3. It is typically a letter+number code.") + name?: string; + + @doc("The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code.") + size?: string; + + @doc("This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.") + tier?: SkuTier; +} + +@doc("Managed service identity (system assigned and/or user assigned identities)") +model PartialManagedServiceIdentity { + @doc("Managed service identity (system assigned and/or user assigned identities)") + type?: ManagedServiceIdentityType; + + @doc("The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.") + userAssignedIdentities?: Record>; +} + +@doc("Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).") +union ManagedServiceIdentityType { + string, + + @doc("No managed service identity.") + None: "None", + + @doc("SystemAssigned identity") + SystemAssigned: "SystemAssigned", + + @doc("UserAssigned identity.") + UserAssigned: "UserAssigned", + + @doc("SystemAssigned and UserAssigned identity.") + `SystemAssigned,UserAssigned`: "SystemAssigned,UserAssigned", +} + +@doc("Type of key (Primary or Secondary).") +union KeyType { + string, + + @doc("Primary key.") + Primary: "Primary", + + @doc("Secondary key.") + Secondary: "Secondary", +} + +@doc("A paginated list of SkuResource entities.") +model SkuResourceArmPaginatedResult is Azure.Core.Page; + +@doc("Fulfills ARM Contract requirement to list all available SKUS for a resource.") +model SkuResource { + @doc("Gets or sets the Sku Capacity.") + capacity?: SkuCapacity; + + @doc("The resource type name.") + @visibility("read") + resourceType?: string; + + @doc("Gets or sets the Sku.") + sku?: SkuSetting; +} + +@doc("SKU capacity information") +model SkuCapacity { + @doc("Gets or sets the default capacity.") + default?: int32; + + @doc("Gets or sets the maximum.") + maximum?: int32; + + @doc("Gets or sets the minimum.") + minimum?: int32; + + @doc("Gets or sets the type of the scale.") + scaleType?: SkuScaleType; +} + +@doc("SkuSetting fulfills the need for stripped down SKU info in ARM contract.") +model SkuSetting { + @doc("[Required] The name of the SKU. Ex - P3. It is typically a letter+number code.") + @minLength(1) + @pattern("[a-zA-Z0-9_]") + name: string; + + @doc("This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.") + tier?: SkuTier; +} + +@doc("Node scaling setting for the compute sku.") +union SkuScaleType { + string, + + @doc("Automatically scales node count.") + Automatic: "Automatic", + + @doc("Node count scaled upon user request.") + Manual: "Manual", + + @doc("Fixed set of nodes.") + None: "None", +} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" +@doc("Base definition for an asset.") +model AssetBase extends ResourceBase { + @doc("If the name version are system generated (anonymous registration).") + @visibility("read", "create") + isAnonymous?: boolean; + + @doc("Is the asset archived?") + @visibility("read", "create", "update") + isArchived?: boolean; +} + +@doc("Enum to determine the type of data.") +union DataType { + string, + + @doc("URI file.") + uri_file: "uri_file", + + @doc("URI folder.") + uri_folder: "uri_folder", +} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" +@doc("AssetContainer definition") +model AssetContainer extends ResourceBase { + @doc("Is the asset archived?") + @visibility("read", "create", "update") + isArchived?: boolean; + + @doc("The latest version inside this container.") + @visibility("read") + latestVersion?: string; + + @doc("The next auto incremental version") + @visibility("read") + nextVersion?: string; +} + +@doc("ResourceBase definition") +model ResourceBase { + @doc("The asset description text.") + description?: string; + + @doc("The asset property dictionary.") + properties?: Record; + + @doc("Tag dictionary. Tags can be added, removed, and updated.") + tags?: Record; +} + +@doc("Publishing destination registry asset information") +model DestinationAsset { + @doc("Destination asset name") + destinationName?: string; + + @doc("Destination asset version") + destinationVersion?: string; + + @doc("Destination registry name") + registryName?: string; +} + +#suppress "@azure-tools/typespec-providerhub/no-inline-model" "Need to create reponses correctly" +alias ResourceCreatedResponse = TypeSpec.Http.Response<201> & + T; + +#suppress "@azure-tools/typespec-providerhub/no-inline-model" "Need to create reponses correctly" +alias OkResponse = TypeSpec.Http.Response<200> & + T; diff --git a/specification/ai/Azure.AI.Unified/connections/models.tsp b/specification/ai/Azure.AI.Unified/connections/models.tsp new file mode 100644 index 000000000000..c5cc522a5d19 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/connections/models.tsp @@ -0,0 +1,51 @@ +import "@typespec/rest"; +import "@azure-tools/typespec-autorest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "../main.tsp"; +import "../common/models.tsp"; +import "../credentials/models.tsp"; +import "@typespec/openapi"; + +using TypeSpec.OpenAPI; +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.Core.Traits; + +namespace Azure.AI.Unified; + +@doc("Connection Definition") +model Connection { + @doc("Name of the connection") + @visibility("read") + name: string; + + @doc("The type of connection, such as AzureOpenAI, AIServices, AISearch, etc.") + @visibility("read") + type: string; + + @doc("The URL endpoint of the external resource being connected to.") + target: string; + + @doc("Credential used to connect to the external resource.") + credentials: BaseCredential; + + @doc("Metadata containing createdBy and modifiedBy information.") + @visibility("read") + systemData?: SystemData; +} + +@doc("Paged collection of Connection items.") +@pagedResult +model PagedConnection { + @doc("The list of Connections.") + @extension("x-ms-identifiers", []) + @items + value: Connection[]; + + @doc("The link to the next page of items") + @Azure.Core.nextLink + nextLink?: ResourceLocation; +} diff --git a/specification/ai/Azure.AI.Unified/connections/routes.tsp b/specification/ai/Azure.AI.Unified/connections/routes.tsp new file mode 100644 index 000000000000..72a72ccb4434 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/connections/routes.tsp @@ -0,0 +1,68 @@ +import "@typespec/rest"; +import "@azure-tools/typespec-autorest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "./models.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.Core.Traits; +using Azure.Core.Foundations; + +namespace Azure.AI.Unified; + +interface Connections { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("Get a connection by name.") + @route("/connections/{name}") + @get + get is Azure.Core.Foundations.Operation< + { + @doc("Name of the connection.") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") + @maxLength(254) + @path + name: string; + }, + Connection + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("Get a connection with credentials by name.") + @route("/connections/{name}/listsecrets") + @post + post is Azure.Core.Foundations.Operation< + { + @doc("Name of the connection.") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") + @maxLength(254) + @path + name: string; + }, + Connection + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("List all connections in the project.") + @route("/connections") + @get + list is Azure.Core.Foundations.Operation< + { + ...StandardListQueryParameters; + }, + PagedConnection + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("List all connections with credentials in the project.") + @route("/connections/withsecrets") + @post + listWithCredentials is Azure.Core.Foundations.Operation< + { + ...StandardListQueryParameters; + }, + PagedConnection + >; +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/credentials/models.tsp b/specification/ai/Azure.AI.Unified/credentials/models.tsp new file mode 100644 index 000000000000..7058d779a22f --- /dev/null +++ b/specification/ai/Azure.AI.Unified/credentials/models.tsp @@ -0,0 +1,56 @@ +import "@typespec/rest"; +import "@azure-tools/typespec-autorest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@typespec/openapi"; + +using TypeSpec.OpenAPI; +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.Core.Traits; + +namespace Azure.AI.Unified; + +@doc("The different Credential types") +union CredentialType { + string, + ApiKey: "ApiKey", + AAD: "AAD", + SAS: "SAS", +} + +@doc("Base Credential definition") +@discriminator("type") +model BaseCredential { + @doc("Credential name") + @visibility("read") + name: string; + + type: CredentialType; +} + +@doc("ApiKey Credential definition") +model ApiKeyCredential extends BaseCredential { + @doc("API Key") + @visibility("read") + apiKey: string; + + type: CredentialType.ApiKey; +} + +@doc("AAD Credential definition") +model AadCredential extends BaseCredential { + // No properties need to be stored for this case + type: CredentialType.AAD; +} + +@doc("SAS Credential definition") +model SasCredential extends BaseCredential { + @doc("SAS Token") + @visibility("read") + sasToken: string; + + type: CredentialType.SAS; +} diff --git a/specification/ai/Azure.AI.Unified/dataset/models.tsp b/specification/ai/Azure.AI.Unified/dataset/models.tsp new file mode 100644 index 000000000000..e9314b98181a --- /dev/null +++ b/specification/ai/Azure.AI.Unified/dataset/models.tsp @@ -0,0 +1,80 @@ +import "@typespec/rest"; +import "@azure-tools/typespec-autorest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "../common/models.tsp"; +import "../main.tsp"; +import "@typespec/openapi"; +import "@typespec/versioning"; + +using TypeSpec.OpenAPI; +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.Core.Traits; + +namespace Azure.AI.Unified; + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" +@doc("DataContainer Definition") +@discriminator("dataType") +model DataContainer extends AssetContainer { + @doc("[Required] Specifies the type of data") + @visibility("read", "create") + dataType: DataType; +} + +@doc("PagedDataContainer Definition") +@pagedResult +model PagedDataContainer { + @doc("The list of DataContainers.") + @extension("x-ms-identifiers", []) + @items + value: DataContainer[]; + + @doc("The link to the next page of results, if any.") + @Azure.Core.nextLink + nextLink?: string; +} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" +@doc("DataVersionBase Definition") +@discriminator("dataType") +model DataVersionBase extends AssetBase { + @doc("[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330") + @visibility("read", "create") + @minLength(1) + @pattern("[a-zA-Z0-9_]") + dataUri: string; + + @doc("Data type") + dataType: DataType; +} + +@doc("PagedDataVersionBase Definition") +@pagedResult +model PagedDataVersionBase { + @doc("The list of DataVersions.") + @extension("x-ms-identifiers", []) + @items + value: DataVersionBase[]; + + @doc("The link to the next page of results, if any.") + @Azure.Core.nextLink + nextLink?: string; +} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" +@doc("UriFileDataVersion Definition") +model UriFileDataVersion extends DataVersionBase { + @doc("[Required] Specifies the type of data.") + dataType: DataType.uri_file; +} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" +@doc("UriFolderDataVersion Definition") +model UriFolderDataVersion extends DataVersionBase { + @doc("[Required] Specifies the type of data.") + dataType: DataType.uri_folder; +} diff --git a/specification/ai/Azure.AI.Unified/dataset/routes.tsp b/specification/ai/Azure.AI.Unified/dataset/routes.tsp new file mode 100644 index 000000000000..f1ab7069c913 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/dataset/routes.tsp @@ -0,0 +1,179 @@ +import "@typespec/rest"; +import "@azure-tools/typespec-autorest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "../common/models.tsp"; +import "./models.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.Core.Traits; +using Azure.Core.Foundations; + +namespace Azure.AI.Unified; + +interface Data { + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("List data containers.") + @route("/data") + @get + list( + @doc("Continuation token for pagination.") + @query("$skip") + $skip?: string, + + @doc("View type for including/excluding (for example) archived entities.") + @query("listViewType") + listViewType?: ListViewType, + ): PagedDataContainer; + + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("Delete container.") + @route("/data/{name}") + @delete + delete( + @doc("Name of Azure Machine Learning workspace.") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9_-]{2,32}$") + @path + workspaceName: string, + + @doc("Container name.") + @path + name: string, + ): void; + + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("Get container.") + @route("/data/{name}") + @get + get( + @doc("Container name.") + @path + name: string, + ): DataContainer; + + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("Create or update container.") + @route("/data/{name}") + @put + createOrUpdate( + @doc("Container name.") + @path + name: string, + + @doc("Container entity to create or update.") + @body + body: DataContainer, + ): DataContainer; +} + +interface DataVersionsBase { + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("List data versions in the data container") + @route("/data/{name}/versions") + @get + list( + @doc("Container name.") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$") + @path + name: string, + + @doc("Please choose OrderBy value from ['createdtime', 'modifiedtime']") + @query("$orderBy") + $orderBy?: string, + + @doc("Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned") + @query("$top") + $top?: int32, + + @doc("Continuation token for pagination.") + @query("$skip") + $skip?: string, + + @doc("Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2") + @query("$tags") + $tags?: string, + + @doc("[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.") + @query("listViewType") + listViewType?: ListViewType, + ): PagedDataVersionBase; + + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("Delete version.") + @route("/data/{name}/versions/{version}") + @delete + delete( + @doc("Container name.") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$") + @path + name: string, + + @doc("Version identifier.") + @path + version: string, + ): void; + + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("Get version.") + @route("/data/{name}/versions/{version}") + @get + get( + @doc("Container name.") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$") + @path + name: string, + + @doc("Version identifier.") + @path + version: string, + ): DataVersionBase; + + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("Create or update version.") + @route("/data/{name}/versions/{version}") + @put + createOrUpdate( + @doc("Container name.") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$") + @path + name: string, + + @doc("Version identifier.") + @path + version: string, + + @doc("Version entity to create or update.") + @body + body: DataVersionBase, + ): DataVersionBase; + + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("Publish version asset into registry.") + @route("/data/{name}/versions/{version}/publish") + @post + publish( + @doc("Container name.") + @path + name: string, + + @doc("Version identifier.") + @path + version: string, + + @doc("Destination registry info") + @body + body: DestinationAsset, + ): void; +} diff --git a/specification/ai/Azure.AI.Unified/evaluations/models.tsp b/specification/ai/Azure.AI.Unified/evaluations/models.tsp new file mode 100644 index 000000000000..483257229c00 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/evaluations/models.tsp @@ -0,0 +1,137 @@ +import "@typespec/http"; +import "@typespec/rest"; +import "@azure-tools/typespec-autorest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "../common/models.tsp"; +import "../main.tsp"; +import "@typespec/openapi"; + +using TypeSpec.OpenAPI; +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.Core.Traits; + +namespace Azure.AI.Unified; + +@doc("Evaluator Configuration") +model EvaluatorConfiguration { + @doc("Identifier of the evaluator.") + id: string; + + @doc("Initialization parameters of the evaluator.") + initParams?: Record; + + @doc("Data parameters of the evaluator.") + dataMapping?: Record; +} + +#suppress "@azure-tools/typespec-azure-core/no-string-discriminator" +@doc("Abstract data class.") +@discriminator("type") +model InputData { + @doc("Evaluation input data") + id: string; +} + +@doc("Data Source for Application Insight.") +model AppInsightsConfiguration extends InputData { + type: "app_insights"; + + @doc("Application Insight connection string.") + connectionString: string; + + @doc("Query to fetch data.") + query: string; +} + +@doc("Dataset as source for evaluation.") +model Dataset extends InputData { + type: "dataset"; +} + +#suppress "@azure-tools/typespec-azure-core/no-string-discriminator" +@discriminator("type") +@doc("Evaluation Target.") +model EvaluationTarget { + @doc("Name of the evaluation target.") + name?: string; +} + +@doc("Base Model and prompt for evaluation.") +model BaseModel extends EvaluationTarget { + #suppress "@azure-tools/typespec-azure-core/casing-style" + @doc("Base model for evaluation.") + model_config: Record>; + + @doc("System prompt to be used with base model. This property will hold prompt asset id.") + prompt: string; + + @doc("parameters for evaluation.") + parameters: Record; + + type: "base_model"; +} + +@doc("Evaluation Definition") +model Evaluation { + @doc("Identifier of the evaluation.") + id?: string; + + @doc("Data for evaluation.") + data: InputData; + + @doc("Update stage to 'Archive' to archive the asset. Default is Development, which means the asset is under development.") + displayName?: string; + + @doc("Description of the evaluation. It can be used to store additional information about the evaluation and is mutable.") + description?: string; + + @doc("Metadata containing createdBy and modifiedBy information.") + @visibility("read") + systemData?: SystemData; + + @doc("Status of the evaluation. It is set by service and is read-only.") + @visibility("read") + status?: string; + + @doc("Evaluation's tags. Unlike properties, tags are fully mutable.") + tags?: Record; + + @doc("Evaluation's properties. Unlike tags, properties are add-only. Once added, a property cannot be removed.") + properties?: Record; + + @doc("Evaluators to be used for the evaluation.") + evaluators: Record; + + @doc("Evaluation Target.") + evaluationTarget?: EvaluationTarget; +} + +@doc("Paged evaluation items") +@pagedResult +model PagedEvaluation { + @doc("The list of Evaluations.") + @extension("x-ms-identifiers", []) + @items + value: Evaluation[]; + + @doc("The link to the next page of items") + @Azure.Core.nextLink + nextLink?: ResourceLocation; +} + +@doc("Update Evaluation Request") +model UpdateEvaluationRequest { + // Tags do we addition or overwrite? + @doc("Tags to be updated.") + tags: Record; + + @doc("Display Name") + displayName: string; + + @doc("Description") + description: string; +} diff --git a/specification/ai/Azure.AI.Unified/evaluations/routes.tsp b/specification/ai/Azure.AI.Unified/evaluations/routes.tsp new file mode 100644 index 000000000000..4ca76997e399 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/evaluations/routes.tsp @@ -0,0 +1,74 @@ +import "@typespec/rest"; +import "@azure-tools/typespec-autorest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "./models.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.Core.Traits; +using Azure.Core.Foundations; + +namespace Azure.AI.Unified; + +interface Evaluations { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Waiting for bug fix: https://github.com/Azure/typespec-azure-pr/issues/3739." + @doc("Get an evaluation.") + @route("/evaluations/{id}") + @get + get is Azure.Core.Foundations.Operation< + { + @doc("Identifier of the evaluation.") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") + @maxLength(254) + @path + id: string; + }, + Evaluation + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Waiting for bug fix: https://github.com/Azure/typespec-azure-pr/issues/3739." + @doc("Creates an evaluation.") + @route("/evaluations/create") + @post + create is Azure.Core.Foundations.Operation< + { + @doc("Properties of Evaluation.") + @body + body: Evaluation; + }, + ResourceCreatedResponse + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Waiting for bug fix: https://github.com/Azure/typespec-azure-pr/issues/3739." + @doc("List evaluations") + @route("/evaluations") + @get + list is Azure.Core.Foundations.Operation< + { + ...StandardListQueryParameters; + }, + PagedEvaluation + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Waiting for bug fix: https://github.com/Azure/typespec-azure-pr/issues/3739." + @doc("Update an evaluation.") + @route("/evaluations/{id}") + @patch + update is Azure.Core.Foundations.Operation< + { + @doc("Identifier of the evaluation.") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") + @maxLength(254) + @path + id: string; + + @doc("Update evaluation request.") + @body + body: UpdateEvaluationRequest; + }, + OkResponse + >; +} diff --git a/specification/ai/Azure.AI.Unified/main.tsp b/specification/ai/Azure.AI.Unified/main.tsp new file mode 100644 index 000000000000..b992e5fe82b2 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/main.tsp @@ -0,0 +1,67 @@ +import "@typespec/http"; +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./agents/routes.tsp"; +import "./agents/threads/routes.tsp"; +import "./agents/messages/routes.tsp"; +import "./agents/runs/routes.tsp"; +import "./agents/run_steps/routes.tsp"; +import "./agents/files/routes.tsp"; +import "./agents/streaming/events.tsp"; +import "./agents/vector_stores/routes.tsp"; +import "./agents/vector_stores/files/routes.tsp"; +import "./agents/vector_stores/file_batches/routes.tsp"; +import "./connections/routes.tsp"; +import "./evaluations/routes.tsp"; +import "./dataset/routes.tsp"; +import "./models/routes.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.Core.Traits; + +#suppress "@azure-tools/typespec-azure-core/casing-style" +namespace Azure.AI { + +} + +@useAuth( + OAuth2Auth<[ + { + type: OAuth2FlowType.implicit, + authorizationUrl: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", + scopes: ["https://management.azure.com/.default"], + } + ]> +) +@service({ + title: "Azure AI Data Plane", +}) +@server( + "{endpoint}/projects/{projectName}", + "Azure AI Data Plane APIs", + { + @doc(""" + Global endpoint in the form of: https://[hub-id]/api.ai.azure.com + """) + endpoint: url, + + @doc("The name of the AI project.") + projectName: string, + } +) +@versioned(Versions) +namespace Azure.AI.Unified { + @doc("Azure AI API versions") + enum Versions { + @doc("Azure AI API version 2024-07-01-preview.") + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) + @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + `2024-07-01-preview`, + } +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/models/models.tsp b/specification/ai/Azure.AI.Unified/models/models.tsp new file mode 100644 index 000000000000..7546308b056c --- /dev/null +++ b/specification/ai/Azure.AI.Unified/models/models.tsp @@ -0,0 +1,89 @@ +import "@typespec/rest"; +import "@azure-tools/typespec-autorest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "../main.tsp"; +import "../common/models.tsp"; +import "@typespec/openapi"; + +using TypeSpec.OpenAPI; +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.Core.Traits; + +namespace Azure.AI.Unified; + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" +@doc("Model Container Definition") +model ModelContainer extends AssetContainer { + @doc("Provisioning state for the model container.") + @visibility("read") + provisioningState?: AssetProvisioningState; +} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" +@doc("Model Version Definition") +model ModelVersion extends AssetBase { + @doc("Mapping of model flavors to their properties.") + flavors?: Record; + + @doc("Name of the training job which produced this model.") + jobName?: string; + + @doc("The storage format for this entity. Used for NCD.") + modelType?: string; + + @doc("The URI path to the model contents.") + modelUri?: string; + + @doc("Provisioning state for the model version.") + @visibility("read") + provisioningState: AssetProvisioningState; + + @doc("Stage in the model lifecycle assigned to this model.") + stage?: string; +} + +@doc("Paged collection of ModelVersion items.") +@pagedResult +model PagedModelVersion { + @doc("The list of model versions.") + @extension("x-ms-identifiers", []) + @items + value: ModelVersion[]; + + @doc("The link to the next page of items") + @Azure.Core.nextLink + nextLink?: ResourceLocation; +} + +@doc("Asset Provisioning State Definition") +union AssetProvisioningState { + string, + + @doc("The operation succeeded.") + Succeeded: "Succeeded", + + @doc("The operation failed.") + Failed: "Failed", + + @doc("The operation was canceled.") + Canceled: "Canceled", + + @doc("The operation is creating.") + Creating: "Creating", + + @doc("The operation is updating.") + Updating: "Updating", + + @doc("The operation is deleting.") + Deleting: "Deleting", +} + +@doc("Flavor Data Definition") +model FlavorData { + @doc("Model flavor-specific data.") + data?: Record; +} diff --git a/specification/ai/Azure.AI.Unified/models/routes.tsp b/specification/ai/Azure.AI.Unified/models/routes.tsp new file mode 100644 index 000000000000..ddc9b2a96332 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/models/routes.tsp @@ -0,0 +1,106 @@ +import "@typespec/rest"; +import "@azure-tools/typespec-autorest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "./models.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.Core.Traits; +using Azure.Core.Foundations; + +namespace Azure.AI.Unified.Model; + +interface ModelContainers { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("Get a model container.") + @route("/models/{name}") + @get + get is Azure.Core.Foundations.Operation< + { + @doc("Name of the model container.") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") + @maxLength(254) + @path + name: string; + }, + ModelContainer + >; +} + +interface ModelVersions { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("List model versions.") + @route("/models/{name}/versions") + @get + list is Azure.Core.Foundations.Operation< + { + @doc("Name of the model container.") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") + @maxLength(254) + @path + name: string; + + @doc("$skip") + @query("$skip") + $skip?: string; + + @doc("$orderBy") + @query("$orderBy") + $orderBy?: string; + + @doc("$top") + @query("$top") + $top?: int32; + + @doc("Model version") + @query("version") + version?: string; + + @doc("Model description") + @query("description") + description?: string; + + @doc("Number of initial results to skip.") + @query("offset") + offset?: int32; + + @doc("Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2") + @query("tags") + tags?: string; + + @doc("Comma-separated list of property names (and optionally values). Example: prop1,prop2=value2") + @query("properties") + properties?: string; + + @doc("Name of the feed.") + @query("feed") + feed?: string; + + @doc("View type for including/excluding (for example) archived entities.") + @query("listViewType") + listViewType?: ListViewType; + }, + PagedModelVersion + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("Get a model version.") + @route("/models/{name}/versions/{version}") + @get + get is Azure.Core.Foundations.Operation< + { + @doc("Name of the model version.") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") + @maxLength(254) + @path + name: string; + + @doc("Model version") + version: string; + }, + ModelVersion + >; +} diff --git a/specification/ai/Azure.AI.Unified/tspconfig.yaml b/specification/ai/Azure.AI.Unified/tspconfig.yaml new file mode 100644 index 000000000000..0093d99fc3d8 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/tspconfig.yaml @@ -0,0 +1,21 @@ +parameters: + "service-dir": + default: "sdk/ai" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + emitter-output-dir: "{project-root}/.." + azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/azure-ai-unified.json" + "@azure-tools/typespec-python": + package-mode: "dataplane" + package-dir: "azure-ai-unified-autogen" + package-name: "{package-dir}" + flavor: azure + generate-test: true + generate-sample: true +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/data-plane" \ No newline at end of file From 3b16f0c6ad0b8b34af3c0d0e463e7c78850be490 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Tue, 28 Jan 2025 16:08:52 -0500 Subject: [PATCH 002/143] fix errors --- specification/ai/Azure.AI.Unified/connections/models.tsp | 2 +- specification/ai/Azure.AI.Unified/dataset/models.tsp | 4 ++-- specification/ai/Azure.AI.Unified/evaluations/models.tsp | 2 +- specification/ai/Azure.AI.Unified/main.tsp | 2 ++ specification/ai/Azure.AI.Unified/models/models.tsp | 2 +- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/connections/models.tsp b/specification/ai/Azure.AI.Unified/connections/models.tsp index c5cc522a5d19..d3e80805272a 100644 --- a/specification/ai/Azure.AI.Unified/connections/models.tsp +++ b/specification/ai/Azure.AI.Unified/connections/models.tsp @@ -46,6 +46,6 @@ model PagedConnection { value: Connection[]; @doc("The link to the next page of items") - @Azure.Core.nextLink + @nextLink nextLink?: ResourceLocation; } diff --git a/specification/ai/Azure.AI.Unified/dataset/models.tsp b/specification/ai/Azure.AI.Unified/dataset/models.tsp index e9314b98181a..393f58ea730a 100644 --- a/specification/ai/Azure.AI.Unified/dataset/models.tsp +++ b/specification/ai/Azure.AI.Unified/dataset/models.tsp @@ -34,7 +34,7 @@ model PagedDataContainer { value: DataContainer[]; @doc("The link to the next page of results, if any.") - @Azure.Core.nextLink + @nextLink nextLink?: string; } @@ -61,7 +61,7 @@ model PagedDataVersionBase { value: DataVersionBase[]; @doc("The link to the next page of results, if any.") - @Azure.Core.nextLink + @nextLink nextLink?: string; } diff --git a/specification/ai/Azure.AI.Unified/evaluations/models.tsp b/specification/ai/Azure.AI.Unified/evaluations/models.tsp index 483257229c00..f42e522a870b 100644 --- a/specification/ai/Azure.AI.Unified/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Unified/evaluations/models.tsp @@ -119,7 +119,7 @@ model PagedEvaluation { value: Evaluation[]; @doc("The link to the next page of items") - @Azure.Core.nextLink + @nextLink nextLink?: ResourceLocation; } diff --git a/specification/ai/Azure.AI.Unified/main.tsp b/specification/ai/Azure.AI.Unified/main.tsp index b992e5fe82b2..1f94bd32f63f 100644 --- a/specification/ai/Azure.AI.Unified/main.tsp +++ b/specification/ai/Azure.AI.Unified/main.tsp @@ -20,6 +20,8 @@ import "./models/routes.tsp"; using TypeSpec.Http; using TypeSpec.Rest; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; using TypeSpec.Versioning; using Azure.Core; using Azure.Core.Traits; diff --git a/specification/ai/Azure.AI.Unified/models/models.tsp b/specification/ai/Azure.AI.Unified/models/models.tsp index 7546308b056c..a69c7262e3f7 100644 --- a/specification/ai/Azure.AI.Unified/models/models.tsp +++ b/specification/ai/Azure.AI.Unified/models/models.tsp @@ -55,7 +55,7 @@ model PagedModelVersion { value: ModelVersion[]; @doc("The link to the next page of items") - @Azure.Core.nextLink + @nextLink nextLink?: ResourceLocation; } From 7e3de0788a5e4b404292c4424ce6a971a9ba5d11 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Wed, 29 Jan 2025 13:04:34 -0500 Subject: [PATCH 003/143] add indexes to typespec --- .../ai/Azure.AI.Unified/indexes/models.tsp | 66 +++++++++ .../ai/Azure.AI.Unified/indexes/routes.tsp | 132 ++++++++++++++++++ specification/ai/Azure.AI.Unified/main.tsp | 1 + 3 files changed, 199 insertions(+) create mode 100644 specification/ai/Azure.AI.Unified/indexes/models.tsp create mode 100644 specification/ai/Azure.AI.Unified/indexes/routes.tsp diff --git a/specification/ai/Azure.AI.Unified/indexes/models.tsp b/specification/ai/Azure.AI.Unified/indexes/models.tsp new file mode 100644 index 000000000000..82cef328bb25 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/indexes/models.tsp @@ -0,0 +1,66 @@ +import "@typespec/rest"; +import "@azure-tools/typespec-autorest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "../common/models.tsp"; +import "../main.tsp"; + +using TypeSpec.OpenAPI; +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.Core.Traits; + +namespace Microsoft.MachineLearningServices; + +@doc("AssetVersion Definition") +model AssetVersion { + @doc("Fully qualified resource Id: azureml://workspace/{workspaceName}/indexes/{name}/versions/{version} of the index.") + @visibility("read") + id: string; + + @doc("Update stage to 'Archive' to archive the asset. Default is Development, which means the asset is under development.") + stage?: string = "Development"; + + @doc("Description information of the asset.") + description?: string; + + @doc("Metadata containing createdBy and modifiedBy information.") + @visibility("read") + systemData?: SystemData; + + @doc("Asset's tags. Unlike properties, tags are fully mutable.") + tags?: Record; + + @doc("Asset's properties. Unlike tags, properties are add-only. Once added, a property cannot be removed.") + properties?: Record; +} + +@doc("Index resource Definition") +model Index is AssetVersion { + @doc("Default workspace blob storage Uri. Should work across storage types and auth scenarios.") + storageUri: string; +} + +@doc("Paged collection of IndexVersion items.") +@pagedResult +model PagedIndex { + @doc("The list of Indexes.") + @extension("x-ms-identifiers", []) + @items + value: Index[]; + + @doc("The link to the next page of items") + @nextLink + nextLink?: ResourceLocation; +} + +@doc("Next version definition.") +model VersionInfo { + @doc("Next version as defined by the server. The server keeps track of all versions that are string-representations of integers. If one exists, the nextVersion will be a string representation of the highest integer value + 1. Otherwise, the nextVersion will default to '1'.") + nextVersion?: int64; + + @doc("Current latest version of the resource.") + latestVersion: string; +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/indexes/routes.tsp b/specification/ai/Azure.AI.Unified/indexes/routes.tsp new file mode 100644 index 000000000000..479287bc783d --- /dev/null +++ b/specification/ai/Azure.AI.Unified/indexes/routes.tsp @@ -0,0 +1,132 @@ +import "@typespec/rest"; +import "@azure-tools/typespec-autorest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "./main.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.Core.Traits; +using Azure.Core.Foundations; + +namespace Microsoft.MachineLearningServices; + +interface Indexes { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Waiting for bug fix: https://github.com/Azure/typespec-azure-pr/issues/3739." + @doc("Get a specific version of an Index.") + @route("/indexes/{name}/versions/{version}") + @get + get is Azure.Core.Foundations.Operation< + { + @doc("Name of the index.") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") + @maxLength(254) + @path + name: string; + + @doc("Version of the index.") + @path + version: string; + }, + Index + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Waiting for bug fix: https://github.com/Azure/typespec-azure-pr/issues/3739." + @doc("Creates or updates a IndexVersion.") + @route("/indexes/{name}/versions/{version}") + @put + createOrUpdate is Azure.Core.Foundations.Operation< + { + @doc("Name of the index.") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") + @maxLength(254) + @path + name: string; + + @doc("Version of the index.") + @path + version: string; + + @doc("Properties of an Index Version.") + @bodyRoot + body: Index; + }, + ResourceCreatedOrOkResponse + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Need to use same model in both list calls." + @doc("List the versions of an Index given the name.") + @route("/indexes/{name}/versions") + @get + list is Azure.Core.Foundations.Operation< + { + @doc("Name of the index.") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") + @maxLength(254) + @path + name: string; + + @doc("View type for including/excluding (for example) archived entities.") + @query + listViewType: string = "ActiveOnly"; + + @doc("Ordering of list: Please choose orderby value from ['createdAt', 'lastModifiedAt'].") + @query + orderBy?: string; + + @doc("Ordering of list: Please choose orderby value from ['createdAt', 'lastModifiedAt'].") + @query + orderby?: string; + + @doc("Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2.") + @query + tags?: string; + + ...StandardListQueryParameters; + }, + PagedIndex + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Need to define route." + @doc("Get latest version of the Index. Latest is defined by most recent created by date.") + @route("/indexes/{name}") + @get + getLatest is Azure.Core.Foundations.Operation< + { + @doc("Name of the index.") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") + @maxLength(254) + @path + name: string; + }, + Index + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Need to define route." + @doc("Get next Index version as defined by the server. The server keeps track of all versions that are string-representations of integers. If one exists, the nextVersion will be a string representation of the highest integer value + 1. Otherwise, the nextVersion will default to '1'.") + @route("/indexes/{name}:getNextVersion") + @post + getNextVersion is Azure.Core.Foundations.Operation< + { + @doc("Name of the index.") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") + @maxLength(254) + @path + name: string; + }, + VersionInfo + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Need to define route." + @doc("List the latest version of each index. Latest is defined by most recent created by date.") + @route("/indexes") + @get + listLatest is Azure.Core.Foundations.Operation< + { + ...StandardListQueryParameters; + }, + PagedIndex + >; +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/main.tsp b/specification/ai/Azure.AI.Unified/main.tsp index 1f94bd32f63f..07f357df52f1 100644 --- a/specification/ai/Azure.AI.Unified/main.tsp +++ b/specification/ai/Azure.AI.Unified/main.tsp @@ -17,6 +17,7 @@ import "./connections/routes.tsp"; import "./evaluations/routes.tsp"; import "./dataset/routes.tsp"; import "./models/routes.tsp"; +import "./indexes/routes.tsp"; using TypeSpec.Http; using TypeSpec.Rest; From c25ceb6f1c2eba880a59dabd9c66bb07f633bee4 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Wed, 29 Jan 2025 13:14:11 -0500 Subject: [PATCH 004/143] fix import --- specification/ai/Azure.AI.Unified/indexes/routes.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/ai/Azure.AI.Unified/indexes/routes.tsp b/specification/ai/Azure.AI.Unified/indexes/routes.tsp index 479287bc783d..fcb2eb6a9695 100644 --- a/specification/ai/Azure.AI.Unified/indexes/routes.tsp +++ b/specification/ai/Azure.AI.Unified/indexes/routes.tsp @@ -2,7 +2,7 @@ import "@typespec/rest"; import "@azure-tools/typespec-autorest"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; -import "./main.tsp"; +import "./models.tsp"; using TypeSpec.Http; using TypeSpec.Rest; From c23d2efeeac5cd4b7b51ba5850e5bb3e4d60b4ca Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Wed, 29 Jan 2025 15:58:46 -0500 Subject: [PATCH 005/143] fix namespace --- specification/ai/Azure.AI.Unified/indexes/models.tsp | 2 +- specification/ai/Azure.AI.Unified/indexes/routes.tsp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/indexes/models.tsp b/specification/ai/Azure.AI.Unified/indexes/models.tsp index 82cef328bb25..dfd2c3410e16 100644 --- a/specification/ai/Azure.AI.Unified/indexes/models.tsp +++ b/specification/ai/Azure.AI.Unified/indexes/models.tsp @@ -12,7 +12,7 @@ using TypeSpec.Versioning; using Azure.Core; using Azure.Core.Traits; -namespace Microsoft.MachineLearningServices; +namespace Azure.AI.Unified; @doc("AssetVersion Definition") model AssetVersion { diff --git a/specification/ai/Azure.AI.Unified/indexes/routes.tsp b/specification/ai/Azure.AI.Unified/indexes/routes.tsp index fcb2eb6a9695..be5f594f8280 100644 --- a/specification/ai/Azure.AI.Unified/indexes/routes.tsp +++ b/specification/ai/Azure.AI.Unified/indexes/routes.tsp @@ -11,7 +11,7 @@ using Azure.Core; using Azure.Core.Traits; using Azure.Core.Foundations; -namespace Microsoft.MachineLearningServices; +namespace Azure.AI.Unified; interface Indexes { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Waiting for bug fix: https://github.com/Azure/typespec-azure-pr/issues/3739." From de47defab1179b9ada6275256c97c2958780d317 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Thu, 30 Jan 2025 17:49:23 -0500 Subject: [PATCH 006/143] clean up dataset and add in connections --- .../ai/Azure.AI.Unified/common/models.tsp | 10 +- .../Azure.AI.Unified/connections/models.tsp | 106 ++++++++++++++---- .../Azure.AI.Unified/connections/routes.tsp | 15 +-- .../ai/Azure.AI.Unified/dataset/models.tsp | 38 +++---- .../ai/Azure.AI.Unified/dataset/routes.tsp | 69 ++---------- 5 files changed, 128 insertions(+), 110 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/common/models.tsp b/specification/ai/Azure.AI.Unified/common/models.tsp index 0c45eea3f004..cea2f8dc7a35 100644 --- a/specification/ai/Azure.AI.Unified/common/models.tsp +++ b/specification/ai/Azure.AI.Unified/common/models.tsp @@ -420,7 +420,7 @@ model AssetBase extends ResourceBase { } @doc("Enum to determine the type of data.") -union DataType { +union DatasetType { string, @doc("URI file.") @@ -448,6 +448,14 @@ model AssetContainer extends ResourceBase { @doc("ResourceBase definition") model ResourceBase { + @doc("A unique identifier for the asset") + @visibility("read") + id?: string; + + @doc("The name of the resource") + @visibility("read") + name?: string; + @doc("The asset description text.") description?: string; diff --git a/specification/ai/Azure.AI.Unified/connections/models.tsp b/specification/ai/Azure.AI.Unified/connections/models.tsp index d3e80805272a..5bead5587a7f 100644 --- a/specification/ai/Azure.AI.Unified/connections/models.tsp +++ b/specification/ai/Azure.AI.Unified/connections/models.tsp @@ -2,10 +2,8 @@ import "@typespec/rest"; import "@azure-tools/typespec-autorest"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; -import "../main.tsp"; -import "../common/models.tsp"; -import "../credentials/models.tsp"; import "@typespec/openapi"; +import "@typespec/versioning"; using TypeSpec.OpenAPI; using TypeSpec.Http; @@ -16,31 +14,29 @@ using Azure.Core.Traits; namespace Azure.AI.Unified; -@doc("Connection Definition") +@doc("Response from the listSecrets operation") +@discriminator("authType") model Connection { - @doc("Name of the connection") - @visibility("read") - name: string; + @doc("A unique identifier for the connection") + id: string; - @doc("The type of connection, such as AzureOpenAI, AIServices, AISearch, etc.") - @visibility("read") - type: string; + @doc("The name of the resource") + name: string; - @doc("The URL endpoint of the external resource being connected to.") - target: string; + @doc("Authentication type of the connection target") + authType: AuthenticationType; - @doc("Credential used to connect to the external resource.") - credentials: BaseCredential; + @doc("Category of the connection") + category: ConnectionType; - @doc("Metadata containing createdBy and modifiedBy information.") - @visibility("read") - systemData?: SystemData; + @doc("The connection URL to be used for this service") + target: string; } -@doc("Paged collection of Connection items.") +@doc("Paged collection of ModelVersion items.") @pagedResult model PagedConnection { - @doc("The list of Connections.") + @doc("The list of connections.") @extension("x-ms-identifiers", []) @items value: Connection[]; @@ -49,3 +45,75 @@ model PagedConnection { @nextLink nextLink?: ResourceLocation; } + +#suppress "@azure-tools/typespec-azure-core/no-enum" +@doc("Authentication type used by Azure AI service to connect to another service") +enum AuthenticationType { + @doc("API Key authentication") + apiKey: "ApiKey", + + @doc("Entra ID authentication (formerly known as AAD)") + entraId: "AAD", + + @doc("Shared Access Signature (SAS) authentication") + SAS: "SAS", +} + +@doc("Connection properties for connections with API key authentication") +model ApiKeyConnection extends Connection { + @doc("Authentication type of the connection target") + authType: AuthenticationType.apiKey; + + @doc("Credentials will only be present for authType=ApiKey") + credentials: CredentialsApiKeyAuth; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" +@doc("Connection properties for connections with AAD authentication (aka `Entra ID passthrough`)") +model EntraIDConnection extends Connection { + @doc("Authentication type of the connection target") + authType: AuthenticationType.entraId; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" +@doc("Connection properties for connections with SAS authentication") +model SASConnection extends Connection { + @doc("Authentication type of the connection target") + authType: AuthenticationType.SAS; + + @doc("Credentials will only be present for authType=ApiKey") + credentials: CredentialsSASAuth; +} + +@doc("The credentials needed for API key authentication") +model CredentialsApiKeyAuth { + @doc("The API key") + key: string; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" +@doc("The credentials needed for Shared Access Signatures (SAS) authentication") +model CredentialsSASAuth { + @doc("The Shared Access Signatures (SAS) token") + SAS: string; +} + +// https://learn.microsoft.com/rest/api/azureml/workspace-connections/list-secrets?view=rest-azureml-2024-04-01&tabs=HTTP#ConnectionType +#suppress "@azure-tools/typespec-azure-core/no-enum" +@doc("The Type (or category) of the connection") +enum ConnectionType { + @doc("Azure OpenAI Service") + AzureOpenAI: "AzureOpenAI", //TODO: In Python this results in .AZURE_OPEN_AI. How do I make it .AZURE_OPENAI? + + @doc("Serverless API Service") + Serverless: "Serverless", + + @doc("Azure Blob Storage") + AzureBlobStorage: "AzureBlob", + + @doc("Azure AI Services") + AzureAIServices: "AIServices", + + @doc("Azure AI Search") + AzureAISearch: "CognitiveSearch", +} diff --git a/specification/ai/Azure.AI.Unified/connections/routes.tsp b/specification/ai/Azure.AI.Unified/connections/routes.tsp index 72a72ccb4434..9db6b131effa 100644 --- a/specification/ai/Azure.AI.Unified/connections/routes.tsp +++ b/specification/ai/Azure.AI.Unified/connections/routes.tsp @@ -30,8 +30,8 @@ interface Connections { >; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("Get a connection with credentials by name.") - @route("/connections/{name}/listsecrets") + @doc("Get credentials for a connection by name.") + @route("/connections/{name}/listSecrets") @post post is Azure.Core.Foundations.Operation< { @@ -54,15 +54,4 @@ interface Connections { }, PagedConnection >; - - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("List all connections with credentials in the project.") - @route("/connections/withsecrets") - @post - listWithCredentials is Azure.Core.Foundations.Operation< - { - ...StandardListQueryParameters; - }, - PagedConnection - >; } \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/dataset/models.tsp b/specification/ai/Azure.AI.Unified/dataset/models.tsp index 393f58ea730a..acac308e1177 100644 --- a/specification/ai/Azure.AI.Unified/dataset/models.tsp +++ b/specification/ai/Azure.AI.Unified/dataset/models.tsp @@ -19,19 +19,19 @@ namespace Azure.AI.Unified; #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" @doc("DataContainer Definition") @discriminator("dataType") -model DataContainer extends AssetContainer { +model DatasetContainer extends AssetContainer { @doc("[Required] Specifies the type of data") @visibility("read", "create") - dataType: DataType; + datasetType: DatasetType; } @doc("PagedDataContainer Definition") @pagedResult -model PagedDataContainer { - @doc("The list of DataContainers.") +model PagedDatasetContainer { + @doc("The list of DatasetContainers.") @extension("x-ms-identifiers", []) @items - value: DataContainer[]; + value: DatasetContainer[]; @doc("The link to the next page of results, if any.") @nextLink @@ -39,26 +39,26 @@ model PagedDataContainer { } #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" -@doc("DataVersionBase Definition") -@discriminator("dataType") -model DataVersionBase extends AssetBase { +@doc("DatasetVersion Definition") +@discriminator("datasetType") +model DatasetVersion extends AssetBase { @doc("[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330") @visibility("read", "create") @minLength(1) @pattern("[a-zA-Z0-9_]") - dataUri: string; + datasetUri: string; @doc("Data type") - dataType: DataType; + datasetType: DataType; } @doc("PagedDataVersionBase Definition") @pagedResult -model PagedDataVersionBase { - @doc("The list of DataVersions.") +model PagedDatasetVersion { + @doc("The list of DatasetVersions.") @extension("x-ms-identifiers", []) @items - value: DataVersionBase[]; + value: DatasetVersion[]; @doc("The link to the next page of results, if any.") @nextLink @@ -66,15 +66,15 @@ model PagedDataVersionBase { } #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" -@doc("UriFileDataVersion Definition") -model UriFileDataVersion extends DataVersionBase { +@doc("UriFileDatasetVersion Definition") +model UriFileDataserVersion extends DatasetVersion { @doc("[Required] Specifies the type of data.") - dataType: DataType.uri_file; + dataType: DatasetType.uri_file; } #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" -@doc("UriFolderDataVersion Definition") -model UriFolderDataVersion extends DataVersionBase { +@doc("UriFolderDatasetVersion Definition") +model UriFolderDatasetVersion extends DatasetVersion { @doc("[Required] Specifies the type of data.") - dataType: DataType.uri_folder; + dataType: DatasetType.uri_folder; } diff --git a/specification/ai/Azure.AI.Unified/dataset/routes.tsp b/specification/ai/Azure.AI.Unified/dataset/routes.tsp index f1ab7069c913..467c6db59098 100644 --- a/specification/ai/Azure.AI.Unified/dataset/routes.tsp +++ b/specification/ai/Azure.AI.Unified/dataset/routes.tsp @@ -14,13 +14,13 @@ using Azure.Core.Foundations; namespace Azure.AI.Unified; -interface Data { +interface Datasets { #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("List data containers.") - @route("/data") + @doc("List datasets in a project.") + @route("/datasets") @get - list( + listDatasets( @doc("Continuation token for pagination.") @query("$skip") $skip?: string, @@ -33,7 +33,7 @@ interface Data { #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" #suppress "@azure-tools/typespec-azure-core/use-standard-operations" @doc("Delete container.") - @route("/data/{name}") + @route("/datasets/{name}") @delete delete( @doc("Name of Azure Machine Learning workspace.") @@ -46,40 +46,12 @@ interface Data { name: string, ): void; - #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("Get container.") - @route("/data/{name}") - @get - get( - @doc("Container name.") - @path - name: string, - ): DataContainer; - - #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("Create or update container.") - @route("/data/{name}") - @put - createOrUpdate( - @doc("Container name.") - @path - name: string, - - @doc("Container entity to create or update.") - @body - body: DataContainer, - ): DataContainer; -} - -interface DataVersionsBase { #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" #suppress "@azure-tools/typespec-azure-core/use-standard-operations" @doc("List data versions in the data container") @route("/data/{name}/versions") @get - list( + listDatasetVersions( @doc("Container name.") @pattern("^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$") @path @@ -111,7 +83,7 @@ interface DataVersionsBase { @doc("Delete version.") @route("/data/{name}/versions/{version}") @delete - delete( + deleteVersion( @doc("Container name.") @pattern("^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$") @path @@ -124,10 +96,10 @@ interface DataVersionsBase { #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("Get version.") - @route("/data/{name}/versions/{version}") + @doc("Get dataset version.") + @route("/datasets/{name}/versions/{version}") @get - get( + getVersion( @doc("Container name.") @pattern("^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$") @path @@ -141,7 +113,7 @@ interface DataVersionsBase { #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" #suppress "@azure-tools/typespec-azure-core/use-standard-operations" @doc("Create or update version.") - @route("/data/{name}/versions/{version}") + @route("/datasets/{name}/versions/{version}") @put createOrUpdate( @doc("Container name.") @@ -157,23 +129,4 @@ interface DataVersionsBase { @body body: DataVersionBase, ): DataVersionBase; - - #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("Publish version asset into registry.") - @route("/data/{name}/versions/{version}/publish") - @post - publish( - @doc("Container name.") - @path - name: string, - - @doc("Version identifier.") - @path - version: string, - - @doc("Destination registry info") - @body - body: DestinationAsset, - ): void; } From 7bc8b83b4c34a64b36946f1fbbfafccb09003e60 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Thu, 30 Jan 2025 18:18:59 -0500 Subject: [PATCH 007/143] fix type discriminator and some bad references --- .../Azure.AI.Unified/{dataset => datasets}/models.tsp | 6 +++--- .../Azure.AI.Unified/{dataset => datasets}/routes.tsp | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) rename specification/ai/Azure.AI.Unified/{dataset => datasets}/models.tsp (95%) rename specification/ai/Azure.AI.Unified/{dataset => datasets}/routes.tsp (96%) diff --git a/specification/ai/Azure.AI.Unified/dataset/models.tsp b/specification/ai/Azure.AI.Unified/datasets/models.tsp similarity index 95% rename from specification/ai/Azure.AI.Unified/dataset/models.tsp rename to specification/ai/Azure.AI.Unified/datasets/models.tsp index acac308e1177..0530c90896d6 100644 --- a/specification/ai/Azure.AI.Unified/dataset/models.tsp +++ b/specification/ai/Azure.AI.Unified/datasets/models.tsp @@ -49,7 +49,7 @@ model DatasetVersion extends AssetBase { datasetUri: string; @doc("Data type") - datasetType: DataType; + datasetType: DatasetType; } @doc("PagedDataVersionBase Definition") @@ -69,12 +69,12 @@ model PagedDatasetVersion { @doc("UriFileDatasetVersion Definition") model UriFileDataserVersion extends DatasetVersion { @doc("[Required] Specifies the type of data.") - dataType: DatasetType.uri_file; + datasetType: DatasetType.uri_file; } #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" @doc("UriFolderDatasetVersion Definition") model UriFolderDatasetVersion extends DatasetVersion { @doc("[Required] Specifies the type of data.") - dataType: DatasetType.uri_folder; + datasetType: DatasetType.uri_folder; } diff --git a/specification/ai/Azure.AI.Unified/dataset/routes.tsp b/specification/ai/Azure.AI.Unified/datasets/routes.tsp similarity index 96% rename from specification/ai/Azure.AI.Unified/dataset/routes.tsp rename to specification/ai/Azure.AI.Unified/datasets/routes.tsp index 467c6db59098..f12360f5338b 100644 --- a/specification/ai/Azure.AI.Unified/dataset/routes.tsp +++ b/specification/ai/Azure.AI.Unified/datasets/routes.tsp @@ -28,7 +28,7 @@ interface Datasets { @doc("View type for including/excluding (for example) archived entities.") @query("listViewType") listViewType?: ListViewType, - ): PagedDataContainer; + ): PagedDatasetContainer; #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" #suppress "@azure-tools/typespec-azure-core/use-standard-operations" @@ -76,7 +76,7 @@ interface Datasets { @doc("[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.") @query("listViewType") listViewType?: ListViewType, - ): PagedDataVersionBase; + ): PagedDatasetVersion; #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" #suppress "@azure-tools/typespec-azure-core/use-standard-operations" @@ -108,7 +108,7 @@ interface Datasets { @doc("Version identifier.") @path version: string, - ): DataVersionBase; + ): DatasetVersion; #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" #suppress "@azure-tools/typespec-azure-core/use-standard-operations" @@ -127,6 +127,6 @@ interface Datasets { @doc("Version entity to create or update.") @body - body: DataVersionBase, - ): DataVersionBase; + body: DatasetVersion, + ): DatasetVersion; } From d7527769e30ceebfac155c6eebac7fa54a35d183 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Thu, 30 Jan 2025 18:19:27 -0500 Subject: [PATCH 008/143] fix a typo in UriFileDatasetVersion --- specification/ai/Azure.AI.Unified/datasets/models.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/ai/Azure.AI.Unified/datasets/models.tsp b/specification/ai/Azure.AI.Unified/datasets/models.tsp index 0530c90896d6..c7ce3dfa68b5 100644 --- a/specification/ai/Azure.AI.Unified/datasets/models.tsp +++ b/specification/ai/Azure.AI.Unified/datasets/models.tsp @@ -67,7 +67,7 @@ model PagedDatasetVersion { #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" @doc("UriFileDatasetVersion Definition") -model UriFileDataserVersion extends DatasetVersion { +model UriFileDatasetVersion extends DatasetVersion { @doc("[Required] Specifies the type of data.") datasetType: DatasetType.uri_file; } From bf7ac9ad08b0f861e5475548bad9823a28eccaca Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Thu, 30 Jan 2025 18:20:55 -0500 Subject: [PATCH 009/143] remove body from DatasetContainer --- specification/ai/Azure.AI.Unified/datasets/models.tsp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/datasets/models.tsp b/specification/ai/Azure.AI.Unified/datasets/models.tsp index c7ce3dfa68b5..5b05c0e7d30e 100644 --- a/specification/ai/Azure.AI.Unified/datasets/models.tsp +++ b/specification/ai/Azure.AI.Unified/datasets/models.tsp @@ -18,11 +18,8 @@ namespace Azure.AI.Unified; #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" @doc("DataContainer Definition") -@discriminator("dataType") model DatasetContainer extends AssetContainer { - @doc("[Required] Specifies the type of data") - @visibility("read", "create") - datasetType: DatasetType; + } @doc("PagedDataContainer Definition") From f8a1d4fb53f9f427cfdb28ea4fd80dd1db1f8fe0 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Thu, 30 Jan 2025 18:25:03 -0500 Subject: [PATCH 010/143] fix import --- specification/ai/Azure.AI.Unified/main.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/ai/Azure.AI.Unified/main.tsp b/specification/ai/Azure.AI.Unified/main.tsp index 07f357df52f1..997b8015f07b 100644 --- a/specification/ai/Azure.AI.Unified/main.tsp +++ b/specification/ai/Azure.AI.Unified/main.tsp @@ -15,7 +15,7 @@ import "./agents/vector_stores/files/routes.tsp"; import "./agents/vector_stores/file_batches/routes.tsp"; import "./connections/routes.tsp"; import "./evaluations/routes.tsp"; -import "./dataset/routes.tsp"; +import "./datasets/routes.tsp"; import "./models/routes.tsp"; import "./indexes/routes.tsp"; From a19baec886d29c6511713c60cdd8fa60941df1fa Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Wed, 12 Feb 2025 16:23:46 -0500 Subject: [PATCH 011/143] remove creds from connection --- .../Azure.AI.Unified/connections/models.tsp | 39 ------------------- 1 file changed, 39 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/connections/models.tsp b/specification/ai/Azure.AI.Unified/connections/models.tsp index 5bead5587a7f..694eb2f76064 100644 --- a/specification/ai/Azure.AI.Unified/connections/models.tsp +++ b/specification/ai/Azure.AI.Unified/connections/models.tsp @@ -15,7 +15,6 @@ using Azure.Core.Traits; namespace Azure.AI.Unified; @doc("Response from the listSecrets operation") -@discriminator("authType") model Connection { @doc("A unique identifier for the connection") id: string; @@ -59,44 +58,6 @@ enum AuthenticationType { SAS: "SAS", } -@doc("Connection properties for connections with API key authentication") -model ApiKeyConnection extends Connection { - @doc("Authentication type of the connection target") - authType: AuthenticationType.apiKey; - - @doc("Credentials will only be present for authType=ApiKey") - credentials: CredentialsApiKeyAuth; -} - -#suppress "@azure-tools/typespec-azure-core/casing-style" -@doc("Connection properties for connections with AAD authentication (aka `Entra ID passthrough`)") -model EntraIDConnection extends Connection { - @doc("Authentication type of the connection target") - authType: AuthenticationType.entraId; -} - -#suppress "@azure-tools/typespec-azure-core/casing-style" -@doc("Connection properties for connections with SAS authentication") -model SASConnection extends Connection { - @doc("Authentication type of the connection target") - authType: AuthenticationType.SAS; - - @doc("Credentials will only be present for authType=ApiKey") - credentials: CredentialsSASAuth; -} - -@doc("The credentials needed for API key authentication") -model CredentialsApiKeyAuth { - @doc("The API key") - key: string; -} - -#suppress "@azure-tools/typespec-azure-core/casing-style" -@doc("The credentials needed for Shared Access Signatures (SAS) authentication") -model CredentialsSASAuth { - @doc("The Shared Access Signatures (SAS) token") - SAS: string; -} // https://learn.microsoft.com/rest/api/azureml/workspace-connections/list-secrets?view=rest-azureml-2024-04-01&tabs=HTTP#ConnectionType #suppress "@azure-tools/typespec-azure-core/no-enum" From 3f424dc9f58399ed033abdd9a750c2d81bdfa5cd Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Thu, 13 Feb 2025 16:49:53 -0500 Subject: [PATCH 012/143] update index to match latest PR --- .../ai/Azure.AI.Unified/indexes/models.tsp | 54 ++++++++++++++++--- .../ai/Azure.AI.Unified/models/routes.tsp | 2 +- 2 files changed, 47 insertions(+), 9 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/indexes/models.tsp b/specification/ai/Azure.AI.Unified/indexes/models.tsp index dfd2c3410e16..bf3f69e72100 100644 --- a/specification/ai/Azure.AI.Unified/indexes/models.tsp +++ b/specification/ai/Azure.AI.Unified/indexes/models.tsp @@ -39,8 +39,11 @@ model AssetVersion { @doc("Index resource Definition") model Index is AssetVersion { - @doc("Default workspace blob storage Uri. Should work across storage types and auth scenarios.") - storageUri: string; + @doc("Index configuration") + indexConfiguration: IndexConfiguration; + + @doc("Embedding configuration") + embeddingConfiguration: EmbeddingConfiguration; } @doc("Paged collection of IndexVersion items.") @@ -56,11 +59,46 @@ model PagedIndex { nextLink?: ResourceLocation; } -@doc("Next version definition.") -model VersionInfo { - @doc("Next version as defined by the server. The server keeps track of all versions that are string-representations of integers. If one exists, the nextVersion will be a string representation of the highest integer value + 1. Otherwise, the nextVersion will default to '1'.") - nextVersion?: int64; - @doc("Current latest version of the resource.") - latestVersion: string; +@doc("Index configuration class") +model IndexConfiguration { + @doc("Connection id of indexing service") + connectionId: string; + + @doc("Name of index") + indexName: string; + + @doc("Vector store id") + vectorStoreId: string; + + @doc("Type of index") + indexType: IndexType +} + +@doc("Embedding configuration class") +model EmbeddingConfiguration { + @doc("Connection id to embedding model") + connectionId: string; + + @doc("Deployment name of embedding model") + deploymentName: string; + + @doc("Dimension") + dimension: int64; + + @doc("Embedding field") + embeddingField: string; +} + +union IndexType { + string, + + @doc("Azure search") + azureSearch: "AzureSearch", + + @doc("CosmosDB") + cosmosDB: "CosmosDB", + + @doc("Managed Azure Search") + managedAzureSearch: "ManagedAzureSearch", } \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/models/routes.tsp b/specification/ai/Azure.AI.Unified/models/routes.tsp index ddc9b2a96332..452aaf91b3ba 100644 --- a/specification/ai/Azure.AI.Unified/models/routes.tsp +++ b/specification/ai/Azure.AI.Unified/models/routes.tsp @@ -11,7 +11,7 @@ using Azure.Core; using Azure.Core.Traits; using Azure.Core.Foundations; -namespace Azure.AI.Unified.Model; +namespace Azure.AI.Unified; interface ModelContainers { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" From 25b8531a82f3ad8ebd091e5453943d4ac127797a Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Fri, 14 Feb 2025 17:48:22 -0500 Subject: [PATCH 013/143] add credentials back to connection --- .../Azure.AI.Unified/connections/models.tsp | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/connections/models.tsp b/specification/ai/Azure.AI.Unified/connections/models.tsp index 694eb2f76064..c464553549b2 100644 --- a/specification/ai/Azure.AI.Unified/connections/models.tsp +++ b/specification/ai/Azure.AI.Unified/connections/models.tsp @@ -4,6 +4,7 @@ import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; import "@typespec/openapi"; import "@typespec/versioning"; +import "../credentials/models.tsp" using TypeSpec.OpenAPI; using TypeSpec.Http; @@ -22,8 +23,8 @@ model Connection { @doc("The name of the resource") name: string; - @doc("Authentication type of the connection target") - authType: AuthenticationType; + @doc("Credential used to connect to the external resource.") + credentials: BaseCredential; @doc("Category of the connection") category: ConnectionType; @@ -45,20 +46,6 @@ model PagedConnection { nextLink?: ResourceLocation; } -#suppress "@azure-tools/typespec-azure-core/no-enum" -@doc("Authentication type used by Azure AI service to connect to another service") -enum AuthenticationType { - @doc("API Key authentication") - apiKey: "ApiKey", - - @doc("Entra ID authentication (formerly known as AAD)") - entraId: "AAD", - - @doc("Shared Access Signature (SAS) authentication") - SAS: "SAS", -} - - // https://learn.microsoft.com/rest/api/azureml/workspace-connections/list-secrets?view=rest-azureml-2024-04-01&tabs=HTTP#ConnectionType #suppress "@azure-tools/typespec-azure-core/no-enum" @doc("The Type (or category) of the connection") From 538face3ef673b452853ce55b460c64444ae48c9 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Fri, 14 Feb 2025 17:50:00 -0500 Subject: [PATCH 014/143] add getWithSecrets --- specification/ai/Azure.AI.Unified/connections/routes.tsp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/connections/routes.tsp b/specification/ai/Azure.AI.Unified/connections/routes.tsp index 9db6b131effa..d2cd10b87454 100644 --- a/specification/ai/Azure.AI.Unified/connections/routes.tsp +++ b/specification/ai/Azure.AI.Unified/connections/routes.tsp @@ -30,10 +30,10 @@ interface Connections { >; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("Get credentials for a connection by name.") - @route("/connections/{name}/listSecrets") + @doc("Get connection with secrets by name.") + @route("/connections/{name}/getWithSecrets") @post - post is Azure.Core.Foundations.Operation< + getWithSecrets is Azure.Core.Foundations.Operation< { @doc("Name of the connection.") @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") From eca12fc63288c3941eee117276584161b2baf600 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Fri, 14 Feb 2025 18:26:13 -0500 Subject: [PATCH 015/143] fix thing --- .../ai/Azure.AI.Unified/common/models.tsp | 4 + .../Azure.AI.Unified/connections/models.tsp | 7 +- .../ai/Azure.AI.Unified/indexes/routes.tsp | 41 ---------- .../ai/Azure.AI.Unified/models/models.tsp | 82 ++++++------------- .../ai/Azure.AI.Unified/models/routes.tsp | 78 ++---------------- 5 files changed, 42 insertions(+), 170 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/common/models.tsp b/specification/ai/Azure.AI.Unified/common/models.tsp index cea2f8dc7a35..9033e300643b 100644 --- a/specification/ai/Azure.AI.Unified/common/models.tsp +++ b/specification/ai/Azure.AI.Unified/common/models.tsp @@ -464,6 +464,10 @@ model ResourceBase { @doc("Tag dictionary. Tags can be added, removed, and updated.") tags?: Record; + + @doc("System data of the resource") + @visibility("read") + systemData?: SystemData; } @doc("Publishing destination registry asset information") diff --git a/specification/ai/Azure.AI.Unified/connections/models.tsp b/specification/ai/Azure.AI.Unified/connections/models.tsp index c464553549b2..a7e64fa2ead4 100644 --- a/specification/ai/Azure.AI.Unified/connections/models.tsp +++ b/specification/ai/Azure.AI.Unified/connections/models.tsp @@ -4,7 +4,7 @@ import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; import "@typespec/openapi"; import "@typespec/versioning"; -import "../credentials/models.tsp" +import "../credentials/models.tsp"; using TypeSpec.OpenAPI; using TypeSpec.Http; @@ -18,18 +18,23 @@ namespace Azure.AI.Unified; @doc("Response from the listSecrets operation") model Connection { @doc("A unique identifier for the connection") + @visibility("read") id: string; @doc("The name of the resource") + @visibility("read") name: string; @doc("Credential used to connect to the external resource.") + @visibility("read") credentials: BaseCredential; @doc("Category of the connection") + @visibility("read") category: ConnectionType; @doc("The connection URL to be used for this service") + @visibility("read") target: string; } diff --git a/specification/ai/Azure.AI.Unified/indexes/routes.tsp b/specification/ai/Azure.AI.Unified/indexes/routes.tsp index be5f594f8280..6a781fb9686d 100644 --- a/specification/ai/Azure.AI.Unified/indexes/routes.tsp +++ b/specification/ai/Azure.AI.Unified/indexes/routes.tsp @@ -88,45 +88,4 @@ interface Indexes { }, PagedIndex >; - - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Need to define route." - @doc("Get latest version of the Index. Latest is defined by most recent created by date.") - @route("/indexes/{name}") - @get - getLatest is Azure.Core.Foundations.Operation< - { - @doc("Name of the index.") - @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") - @maxLength(254) - @path - name: string; - }, - Index - >; - - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Need to define route." - @doc("Get next Index version as defined by the server. The server keeps track of all versions that are string-representations of integers. If one exists, the nextVersion will be a string representation of the highest integer value + 1. Otherwise, the nextVersion will default to '1'.") - @route("/indexes/{name}:getNextVersion") - @post - getNextVersion is Azure.Core.Foundations.Operation< - { - @doc("Name of the index.") - @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") - @maxLength(254) - @path - name: string; - }, - VersionInfo - >; - - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Need to define route." - @doc("List the latest version of each index. Latest is defined by most recent created by date.") - @route("/indexes") - @get - listLatest is Azure.Core.Foundations.Operation< - { - ...StandardListQueryParameters; - }, - PagedIndex - >; } \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/models/models.tsp b/specification/ai/Azure.AI.Unified/models/models.tsp index a69c7262e3f7..092e32ee3515 100644 --- a/specification/ai/Azure.AI.Unified/models/models.tsp +++ b/specification/ai/Azure.AI.Unified/models/models.tsp @@ -16,74 +16,42 @@ using Azure.Core.Traits; namespace Azure.AI.Unified; #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" -@doc("Model Container Definition") -model ModelContainer extends AssetContainer { - @doc("Provisioning state for the model container.") +@doc("Model Deployment Definition") +model Model extends ResourceBase { + @doc("Name of the specific model that is deployed") @visibility("read") - provisioningState?: AssetProvisioningState; -} - -#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" -@doc("Model Version Definition") -model ModelVersion extends AssetBase { - @doc("Mapping of model flavors to their properties.") - flavors?: Record; - - @doc("Name of the training job which produced this model.") - jobName?: string; + modelName: string; - @doc("The storage format for this entity. Used for NCD.") - modelType?: string; - - @doc("The URI path to the model contents.") - modelUri?: string; - - @doc("Provisioning state for the model version.") + @doc("Name of the model publisher") @visibility("read") - provisioningState: AssetProvisioningState; + modelPublisher: string; - @doc("Stage in the model lifecycle assigned to this model.") - stage?: string; -} - -@doc("Paged collection of ModelVersion items.") -@pagedResult -model PagedModelVersion { - @doc("The list of model versions.") - @extension("x-ms-identifiers", []) - @items - value: ModelVersion[]; + @doc("Model format") + @visibility("read") + modelFormat: string; - @doc("The link to the next page of items") - @nextLink - nextLink?: ResourceLocation; + @doc("Sku of the model deployment") + @visibility("read") + sku: Sku; } -@doc("Asset Provisioning State Definition") -union AssetProvisioningState { - string, - @doc("The operation succeeded.") - Succeeded: "Succeeded", - - @doc("The operation failed.") - Failed: "Failed", +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" +@doc("Sku information") +model Sku { + @doc("Sku capacity") + capacity: int64; - @doc("The operation was canceled.") - Canceled: "Canceled", + @doc("Sku family") + family: string; - @doc("The operation is creating.") - Creating: "Creating", + @doc("Sku name") + name: string; - @doc("The operation is updating.") - Updating: "Updating", + @doc("Sku size") + size: string; - @doc("The operation is deleting.") - Deleting: "Deleting", + @doc("Sku tier") + tier: string; } -@doc("Flavor Data Definition") -model FlavorData { - @doc("Model flavor-specific data.") - data?: Record; -} diff --git a/specification/ai/Azure.AI.Unified/models/routes.tsp b/specification/ai/Azure.AI.Unified/models/routes.tsp index 452aaf91b3ba..5d530b79eaaf 100644 --- a/specification/ai/Azure.AI.Unified/models/routes.tsp +++ b/specification/ai/Azure.AI.Unified/models/routes.tsp @@ -13,9 +13,9 @@ using Azure.Core.Foundations; namespace Azure.AI.Unified; -interface ModelContainers { +interface Models { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("Get a model container.") + @doc("Get a deployed model.") @route("/models/{name}") @get get is Azure.Core.Foundations.Operation< @@ -26,81 +26,17 @@ interface ModelContainers { @path name: string; }, - ModelContainer + Model >; -} -interface ModelVersions { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("List model versions.") - @route("/models/{name}/versions") + @doc("List all deployed models in the project.") + @route("/models") @get list is Azure.Core.Foundations.Operation< { - @doc("Name of the model container.") - @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") - @maxLength(254) - @path - name: string; - - @doc("$skip") - @query("$skip") - $skip?: string; - - @doc("$orderBy") - @query("$orderBy") - $orderBy?: string; - - @doc("$top") - @query("$top") - $top?: int32; - - @doc("Model version") - @query("version") - version?: string; - - @doc("Model description") - @query("description") - description?: string; - - @doc("Number of initial results to skip.") - @query("offset") - offset?: int32; - - @doc("Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2") - @query("tags") - tags?: string; - - @doc("Comma-separated list of property names (and optionally values). Example: prop1,prop2=value2") - @query("properties") - properties?: string; - - @doc("Name of the feed.") - @query("feed") - feed?: string; - - @doc("View type for including/excluding (for example) archived entities.") - @query("listViewType") - listViewType?: ListViewType; - }, - PagedModelVersion - >; - - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("Get a model version.") - @route("/models/{name}/versions/{version}") - @get - get is Azure.Core.Foundations.Operation< - { - @doc("Name of the model version.") - @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") - @maxLength(254) - @path - name: string; - - @doc("Model version") - version: string; + ...StandardListQueryParameters; }, - ModelVersion + Model >; } From b916218e1d187659ae0af31ea0e9ffe68c98b818 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Thu, 20 Feb 2025 15:50:19 -0500 Subject: [PATCH 016/143] update connection based on spec feedback --- specification/ai/Azure.AI.Unified/connections/routes.tsp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/connections/routes.tsp b/specification/ai/Azure.AI.Unified/connections/routes.tsp index d2cd10b87454..a2a0cda9ed31 100644 --- a/specification/ai/Azure.AI.Unified/connections/routes.tsp +++ b/specification/ai/Azure.AI.Unified/connections/routes.tsp @@ -31,9 +31,9 @@ interface Connections { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" @doc("Get connection with secrets by name.") - @route("/connections/{name}/getWithSecrets") + @route("/connections/{name}:getWithCredentials") @post - getWithSecrets is Azure.Core.Foundations.Operation< + getWithCredentials is Azure.Core.Foundations.Operation< { @doc("Name of the connection.") @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") From 3f261605cc60331cdba2a1d6b9b8169c7ad6d7d1 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Mon, 24 Feb 2025 14:02:55 -0500 Subject: [PATCH 017/143] add fields to model typespec --- .../ai/Azure.AI.Unified/models/models.tsp | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/models/models.tsp b/specification/ai/Azure.AI.Unified/models/models.tsp index 092e32ee3515..b34097cd861d 100644 --- a/specification/ai/Azure.AI.Unified/models/models.tsp +++ b/specification/ai/Azure.AI.Unified/models/models.tsp @@ -17,22 +17,34 @@ namespace Azure.AI.Unified; #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" @doc("Model Deployment Definition") -model Model extends ResourceBase { - @doc("Name of the specific model that is deployed") +model Model { + @doc("Name of the deployment for the model") + @visibility("read") + deploymentName: string; + + @doc("Publisher-specific name of the model") @visibility("read") modelName: string; @doc("Name of the model publisher") @visibility("read") - modelPublisher: string; + publisher: string; + + @doc("Capabilities of model") + @visibility("read") + capabilities: Record; - @doc("Model format") + @doc("RAI policy enabled for model") @visibility("read") - modelFormat: string; + raiPolicyName: string; @doc("Sku of the model deployment") @visibility("read") sku: Sku; + + @doc("System data of the resource") + @visibility("read") + systemData: SystemData; } From 51b3511f5078c4ce0a7fd39782b690641d352a3b Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Tue, 25 Feb 2025 14:59:32 -0500 Subject: [PATCH 018/143] add query parameters --- .../ai/Azure.AI.Unified/connections/routes.tsp | 4 ++++ specification/ai/Azure.AI.Unified/models/models.tsp | 6 +++++- specification/ai/Azure.AI.Unified/models/routes.tsp | 12 ++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/specification/ai/Azure.AI.Unified/connections/routes.tsp b/specification/ai/Azure.AI.Unified/connections/routes.tsp index a2a0cda9ed31..151ed3448ea3 100644 --- a/specification/ai/Azure.AI.Unified/connections/routes.tsp +++ b/specification/ai/Azure.AI.Unified/connections/routes.tsp @@ -50,6 +50,10 @@ interface Connections { @get list is Azure.Core.Foundations.Operation< { + @doc("Specific type of connection to return in list") + @query("$connectionType") + connectionType: string, + ...StandardListQueryParameters; }, PagedConnection diff --git a/specification/ai/Azure.AI.Unified/models/models.tsp b/specification/ai/Azure.AI.Unified/models/models.tsp index b34097cd861d..0ea159380118 100644 --- a/specification/ai/Azure.AI.Unified/models/models.tsp +++ b/specification/ai/Azure.AI.Unified/models/models.tsp @@ -20,12 +20,16 @@ namespace Azure.AI.Unified; model Model { @doc("Name of the deployment for the model") @visibility("read") - deploymentName: string; + name: string; @doc("Publisher-specific name of the model") @visibility("read") modelName: string; + @doc("Publisher-specific version of the model") + @visibility("read") + modelVersion: string; + @doc("Name of the model publisher") @visibility("read") publisher: string; diff --git a/specification/ai/Azure.AI.Unified/models/routes.tsp b/specification/ai/Azure.AI.Unified/models/routes.tsp index 5d530b79eaaf..1caa43b2b023 100644 --- a/specification/ai/Azure.AI.Unified/models/routes.tsp +++ b/specification/ai/Azure.AI.Unified/models/routes.tsp @@ -35,6 +35,18 @@ interface Models { @get list is Azure.Core.Foundations.Operation< { + @doc("Model publisher to filter models by") + @query("$modelPublisher") + modelPublisher: string, + + @doc("Model name (the publisher specific name) to filter models by") + @query("$modelName") + modelName: string, + + @doc("Flag to include models from connections in response. Accepted values are 'true' and 'false'") + @query("$includeConnectionModels") + includeConnectionModels: string, + ...StandardListQueryParameters; }, Model From efc3eaf433a42990cf0a4d89d51e5478faaf0b56 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Tue, 25 Feb 2025 15:16:52 -0500 Subject: [PATCH 019/143] clean up evals namespace --- .../Azure.AI.Unified/evaluations/models.tsp | 57 ++----------------- .../Azure.AI.Unified/evaluations/routes.tsp | 19 ------- 2 files changed, 5 insertions(+), 71 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/evaluations/models.tsp b/specification/ai/Azure.AI.Unified/evaluations/models.tsp index f42e522a870b..3f8f1fbc2140 100644 --- a/specification/ai/Azure.AI.Unified/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Unified/evaluations/models.tsp @@ -22,7 +22,7 @@ model EvaluatorConfiguration { id: string; @doc("Initialization parameters of the evaluator.") - initParams?: Record; + initParams?: Record; @doc("Data parameters of the evaluator.") dataMapping?: Record; @@ -32,47 +32,16 @@ model EvaluatorConfiguration { @doc("Abstract data class.") @discriminator("type") model InputData { - @doc("Evaluation input data") - id: string; -} - -@doc("Data Source for Application Insight.") -model AppInsightsConfiguration extends InputData { - type: "app_insights"; - - @doc("Application Insight connection string.") - connectionString: string; - - @doc("Query to fetch data.") - query: string; + @doc("Type of the data") + type: string; } @doc("Dataset as source for evaluation.") model Dataset extends InputData { type: "dataset"; -} - -#suppress "@azure-tools/typespec-azure-core/no-string-discriminator" -@discriminator("type") -@doc("Evaluation Target.") -model EvaluationTarget { - @doc("Name of the evaluation target.") - name?: string; -} -@doc("Base Model and prompt for evaluation.") -model BaseModel extends EvaluationTarget { - #suppress "@azure-tools/typespec-azure-core/casing-style" - @doc("Base model for evaluation.") - model_config: Record>; - - @doc("System prompt to be used with base model. This property will hold prompt asset id.") - prompt: string; - - @doc("parameters for evaluation.") - parameters: Record; - - type: "base_model"; + @doc("Evaluation input data") + id: string; } @doc("Evaluation Definition") @@ -105,9 +74,6 @@ model Evaluation { @doc("Evaluators to be used for the evaluation.") evaluators: Record; - - @doc("Evaluation Target.") - evaluationTarget?: EvaluationTarget; } @doc("Paged evaluation items") @@ -122,16 +88,3 @@ model PagedEvaluation { @nextLink nextLink?: ResourceLocation; } - -@doc("Update Evaluation Request") -model UpdateEvaluationRequest { - // Tags do we addition or overwrite? - @doc("Tags to be updated.") - tags: Record; - - @doc("Display Name") - displayName: string; - - @doc("Description") - description: string; -} diff --git a/specification/ai/Azure.AI.Unified/evaluations/routes.tsp b/specification/ai/Azure.AI.Unified/evaluations/routes.tsp index 4ca76997e399..a51c04e0f9f1 100644 --- a/specification/ai/Azure.AI.Unified/evaluations/routes.tsp +++ b/specification/ai/Azure.AI.Unified/evaluations/routes.tsp @@ -52,23 +52,4 @@ interface Evaluations { }, PagedEvaluation >; - - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Waiting for bug fix: https://github.com/Azure/typespec-azure-pr/issues/3739." - @doc("Update an evaluation.") - @route("/evaluations/{id}") - @patch - update is Azure.Core.Foundations.Operation< - { - @doc("Identifier of the evaluation.") - @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") - @maxLength(254) - @path - id: string; - - @doc("Update evaluation request.") - @body - body: UpdateEvaluationRequest; - }, - OkResponse - >; } From 464cf9b3a85b9ed166d853f4fd0a5c6579c2bc71 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Tue, 25 Feb 2025 15:26:45 -0500 Subject: [PATCH 020/143] change evaluations/create to evaluations:create --- specification/ai/Azure.AI.Unified/evaluations/routes.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/ai/Azure.AI.Unified/evaluations/routes.tsp b/specification/ai/Azure.AI.Unified/evaluations/routes.tsp index a51c04e0f9f1..ca34be3dbd03 100644 --- a/specification/ai/Azure.AI.Unified/evaluations/routes.tsp +++ b/specification/ai/Azure.AI.Unified/evaluations/routes.tsp @@ -31,7 +31,7 @@ interface Evaluations { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Waiting for bug fix: https://github.com/Azure/typespec-azure-pr/issues/3739." @doc("Creates an evaluation.") - @route("/evaluations/create") + @route("/evaluations:create") @post create is Azure.Core.Foundations.Operation< { From 3daf5179e04905f8f44125499c0cb943a982c2e7 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Tue, 25 Feb 2025 16:01:17 -0500 Subject: [PATCH 021/143] fix typo --- specification/ai/Azure.AI.Unified/evaluations/models.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/ai/Azure.AI.Unified/evaluations/models.tsp b/specification/ai/Azure.AI.Unified/evaluations/models.tsp index 3f8f1fbc2140..229dd6f1bafe 100644 --- a/specification/ai/Azure.AI.Unified/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Unified/evaluations/models.tsp @@ -22,7 +22,7 @@ model EvaluatorConfiguration { id: string; @doc("Initialization parameters of the evaluator.") - initParams?: Record; + initParams?: Record; @doc("Data parameters of the evaluator.") dataMapping?: Record; From fa63ef1546c60ae4da90338185df7086892036de Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Tue, 25 Feb 2025 17:24:34 -0500 Subject: [PATCH 022/143] clean up common/models.tsp and add inference APIs --- .../ai/Azure.AI.Unified/common/models.tsp | 198 ----- .../models/chat_completion.tsp | 743 ++++++++++++++++++ .../ai/Azure.AI.Unified/models/embeddings.tsp | 139 ++++ .../models/image_embeddings.tsp | 61 ++ .../ai/Azure.AI.Unified/models/routes.tsp | 56 ++ 5 files changed, 999 insertions(+), 198 deletions(-) create mode 100644 specification/ai/Azure.AI.Unified/models/chat_completion.tsp create mode 100644 specification/ai/Azure.AI.Unified/models/embeddings.tsp create mode 100644 specification/ai/Azure.AI.Unified/models/image_embeddings.tsp diff --git a/specification/ai/Azure.AI.Unified/common/models.tsp b/specification/ai/Azure.AI.Unified/common/models.tsp index 9033e300643b..1febaf6a0576 100644 --- a/specification/ai/Azure.AI.Unified/common/models.tsp +++ b/specification/ai/Azure.AI.Unified/common/models.tsp @@ -165,28 +165,6 @@ union ListViewType { All: "All", } -@doc("Enum to determine whether PublicNetworkAccess is Enabled or Disabled.") -union PublicNetworkAccessType { - string, - - @doc("PublicNetworkAccess is enabled.") - Enabled: "Enabled", - - @doc("PublicNetworkAccess is disabled.") - Disabled: "Disabled", -} - -@doc("Enum to determine whether PublicNetworkAccess is Enabled or Disabled for egress of a deployment.") -union EgressPublicNetworkAccessType { - string, - - @doc("PublicNetworkAccess is enabled for egress.") - Enabled: "Enabled", - - @doc("PublicNetworkAccess is disabled for egress.") - Disabled: "Disabled", -} - @doc("Enum to determine which reference method to use for an asset.") union ReferenceType { string, @@ -243,170 +221,6 @@ model OutputPathAssetReference extends AssetReferenceBase { referenceType: "OutputPath"; } -@doc("Enum to determine endpoint compute type.") -union EndpointComputeType { - string, - - @doc("Managed") - Managed: "Managed", - - @doc("Kubernetes") - Kubernetes: "Kubernetes", - - @doc("AzureMLCompute") - AzureMLCompute: "AzureMLCompute", -} - -@doc("The type of ordering to use") -union OrderString { - string, - - @doc("Sort creation date/time in descending order.") - CreatedAtDesc: "CreatedAtDesc", - - @doc("Sort creation date/time in ascending order.") - CreatedAtAsc: "CreatedAtAsc", - - @doc("Sort updated at date/time in descending order.") - UpdatedAtDesc: "UpdatedAtDesc", - - @doc("Sort updated at date/time in ascending order.") - UpdatedAtAsc: "UpdatedAtAsc", -} - -@doc("Strictly used in update requests.") -model PartialMinimalTrackedResource { - @doc("Resource tags.") - tags?: Record; -} - -#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" -@doc("Strictly used in update requests.") -model PartialMinimalTrackedResourceWithIdentity - extends PartialMinimalTrackedResource { - @doc("Managed service identity (system assigned and/or user assigned identities)") - identity?: PartialManagedServiceIdentity; -} - -#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" -@doc("Strictly used in update requests.") -model PartialMinimalTrackedResourceWithSku - extends PartialMinimalTrackedResource { - @doc("Sku details required for ARM contract for Autoscaling.") - sku?: PartialSku; -} - -@doc("Common SKU definition.") -model PartialSku { - @doc("If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible for the resource this may be omitted.") - capacity?: int32; - - @doc("If the service has different generations of hardware, for the same SKU, then that can be captured here.") - family?: string; - - @doc("The name of the SKU. Ex - P3. It is typically a letter+number code.") - name?: string; - - @doc("The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code.") - size?: string; - - @doc("This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.") - tier?: SkuTier; -} - -@doc("Managed service identity (system assigned and/or user assigned identities)") -model PartialManagedServiceIdentity { - @doc("Managed service identity (system assigned and/or user assigned identities)") - type?: ManagedServiceIdentityType; - - @doc("The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.") - userAssignedIdentities?: Record>; -} - -@doc("Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).") -union ManagedServiceIdentityType { - string, - - @doc("No managed service identity.") - None: "None", - - @doc("SystemAssigned identity") - SystemAssigned: "SystemAssigned", - - @doc("UserAssigned identity.") - UserAssigned: "UserAssigned", - - @doc("SystemAssigned and UserAssigned identity.") - `SystemAssigned,UserAssigned`: "SystemAssigned,UserAssigned", -} - -@doc("Type of key (Primary or Secondary).") -union KeyType { - string, - - @doc("Primary key.") - Primary: "Primary", - - @doc("Secondary key.") - Secondary: "Secondary", -} - -@doc("A paginated list of SkuResource entities.") -model SkuResourceArmPaginatedResult is Azure.Core.Page; - -@doc("Fulfills ARM Contract requirement to list all available SKUS for a resource.") -model SkuResource { - @doc("Gets or sets the Sku Capacity.") - capacity?: SkuCapacity; - - @doc("The resource type name.") - @visibility("read") - resourceType?: string; - - @doc("Gets or sets the Sku.") - sku?: SkuSetting; -} - -@doc("SKU capacity information") -model SkuCapacity { - @doc("Gets or sets the default capacity.") - default?: int32; - - @doc("Gets or sets the maximum.") - maximum?: int32; - - @doc("Gets or sets the minimum.") - minimum?: int32; - - @doc("Gets or sets the type of the scale.") - scaleType?: SkuScaleType; -} - -@doc("SkuSetting fulfills the need for stripped down SKU info in ARM contract.") -model SkuSetting { - @doc("[Required] The name of the SKU. Ex - P3. It is typically a letter+number code.") - @minLength(1) - @pattern("[a-zA-Z0-9_]") - name: string; - - @doc("This field is required to be implemented by the Resource Provider if the service has more than one tier, but is not required on a PUT.") - tier?: SkuTier; -} - -@doc("Node scaling setting for the compute sku.") -union SkuScaleType { - string, - - @doc("Automatically scales node count.") - Automatic: "Automatic", - - @doc("Node count scaled upon user request.") - Manual: "Manual", - - @doc("Fixed set of nodes.") - None: "None", -} - #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" @doc("Base definition for an asset.") model AssetBase extends ResourceBase { @@ -470,18 +284,6 @@ model ResourceBase { systemData?: SystemData; } -@doc("Publishing destination registry asset information") -model DestinationAsset { - @doc("Destination asset name") - destinationName?: string; - - @doc("Destination asset version") - destinationVersion?: string; - - @doc("Destination registry name") - registryName?: string; -} - #suppress "@azure-tools/typespec-providerhub/no-inline-model" "Need to create reponses correctly" alias ResourceCreatedResponse = TypeSpec.Http.Response<201> & T; diff --git a/specification/ai/Azure.AI.Unified/models/chat_completion.tsp b/specification/ai/Azure.AI.Unified/models/chat_completion.tsp new file mode 100644 index 000000000000..ec86aa815c16 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/models/chat_completion.tsp @@ -0,0 +1,743 @@ +import "@azure-tools/typespec-client-generator-core"; +import "@typespec/rest"; +import "@typespec/http"; + +using TypeSpec.Rest; +using TypeSpec.Http; + +using Azure.ClientGenerator.Core; + +namespace Azure.AI.Unified; + +@doc(""" + The configuration information for a chat completions request. + Completions support a wide variety of tasks and generate text that continues from or "completes" + provided prompt data. + """) +model ChatCompletionsOptions { + @doc(""" + The collection of context messages associated with this chat completions request. + Typical usage begins with a chat message for the System role that provides instructions for + the behavior of the assistant, followed by alternating messages between the User and + Assistant roles. + """) + @minItems(1) + messages: ChatRequestMessage[]; + + @doc(""" + A value that influences the probability of generated tokens appearing based on their cumulative + frequency in generated text. + Positive values will make tokens less likely to appear as their frequency increases and + decrease the likelihood of the model repeating the same statements verbatim. + Supported range is [-2, 2]. + """) + @maxValue(2.0) + @minValue(-2.0) + frequency_penalty?: float32 = 0.0; + + @doc(""" + A value indicating whether chat completions should be streamed for this request. + """) + @clientName("InternalShouldStreamResponse", "csharp") + stream?: boolean; + + @doc(""" + A value that influences the probability of generated tokens appearing based on their existing + presence in generated text. + Positive values will make tokens less likely to appear when they already exist and increase the + model's likelihood to output new topics. + Supported range is [-2, 2]. + """) + @maxValue(2.0) + @minValue(-2.0) + presence_penalty?: float32 = 0.0; + + @doc(""" + The sampling temperature to use that controls the apparent creativity of generated completions. + Higher values will make output more random while lower values will make results more focused + and deterministic. + It is not recommended to modify temperature and top_p for the same completions request as the + interaction of these two settings is difficult to predict. + Supported range is [0, 1]. + """) + @maxValue(1.0) + @minValue(0.0) + temperature?: float32 = 0.7; + + @doc(""" + An alternative to sampling with temperature called nucleus sampling. This value causes the + model to consider the results of tokens with the provided probability mass. As an example, a + value of 0.15 will cause only the tokens comprising the top 15% of probability mass to be + considered. + It is not recommended to modify temperature and top_p for the same completions request as the + interaction of these two settings is difficult to predict. + Supported range is [0, 1]. + """) + @maxValue(1.0) + @minValue(0.0) + @clientName("NucleusSamplingFactor", "csharp") + top_p?: float32 = 1.0; + + @doc("The maximum number of tokens to generate.") + @minValue(0.0) + max_tokens?: int32; + + @doc(""" + An object specifying the format that the model must output. + + Setting to `{ "type": "json_schema", "json_schema": {...} }` enables Structured Outputs which ensures the model will match your supplied JSON schema. + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + """) + response_format?: ChatCompletionsResponseFormat; + + @doc(""" + A collection of textual sequences that will end completions generation. + """) + @minItems(1) + @clientName("StopSequences", "csharp") + stop?: string[]; + + @doc(""" + A list of tools the model may request to call. Currently, only functions are supported as a tool. The model + may response with a function call request and provide the input arguments in JSON format for that function. + """) + @minItems(1) + tools?: ChatCompletionsToolDefinition[]; + + @encodedName("application/json", "tool_choice") + @doc(""" + If specified, the model will configure which of the provided tools it can use for the chat completions response. + """) + toolChoice?: ChatCompletionsToolChoice; + + @doc(""" + If specified, the system will make a best effort to sample deterministically such that repeated requests with the + same seed and parameters should return the same result. Determinism is not guaranteed. + """) + seed?: int64; + + @doc(""" + ID of the specific AI model to use, if more than one model is available on the endpoint. + """) + `model`?: string; + + @doc(""" + The modalities that the model is allowed to use for the chat completions response. The default modality + is `text`. Indicating an unsupported modality combination results in an 422 error. + """) + modalities?: ChatCompletionsModality[]; + + ...Record; +} +@doc("The modalities that the model is allowed to use for the chat completions response.") +union ChatCompletionsModality { + string, + + @doc("The model is only allowed to generate text.") + text: "text", + + @doc("The model is allowed to generate audio.") + audio: "audio", +} + +alias ChatCompletionsCommon = { + @doc("A unique identifier associated with this chat completions response.") + id: string; + + @doc("The response object type, which is always `chat.completion`.") + object: "chat.completion"; + + #suppress "@microsoft/azure-openapi-validator/IntegerTypeMustHaveFormat" "Format is present but rule only allow int32 or int64." + @doc(""" + The first timestamp associated with generation activity for this completions response, + represented as seconds since the beginning of the Unix epoch of 00:00 on 1 Jan 1970. + """) + @encode(DateTimeKnownEncoding.unixTimestamp, int64) + created: utcDateTime; + + @doc("The model used for the chat completion.") + `model`: string; +}; + +@doc(""" + Representation of the response data from a chat completions request. + Completions support a wide variety of tasks and generate text that continues from or "completes" + provided prompt data. + """) +model ChatCompletions { + ...ChatCompletionsCommon; + + @doc(""" + The collection of completions choices associated with this completions response. + Generally, `n` choices are generated per provided prompt with a default value of 1. + Token limits and other settings may limit the number of choices generated. + """) + @minItems(1) + choices: ChatChoice[]; + + @doc(""" + Usage information for tokens processed and generated as part of this completions operation. + """) + usage: CompletionsUsage; +} + +@doc(""" + Represents a response update to a chat completions request, when the service is streaming updates + using Server Sent Events (SSE). + Completions support a wide variety of tasks and generate text that continues from or "completes" + provided prompt data. + """) +model StreamingChatCompletionsUpdate { + ...ChatCompletionsCommon; + + @doc(""" + An update to the collection of completion choices associated with this completions response. + Generally, `n` choices are generated per provided prompt with a default value of 1. + Token limits and other settings may limit the number of choices generated. + """) + @minItems(1) + choices: StreamingChatChoiceUpdate[]; + + @doc(""" + Usage information for tokens processed and generated as part of this completions operation. + """) + usage?: CompletionsUsage; +} + +@doc(""" + Representation of the token counts processed for a completions request. + Counts consider all tokens across prompts, choices, choice alternates, best_of generations, and + other consumers. + """) +model CompletionsUsage { + @doc("The number of tokens generated across all completions emissions.") + completion_tokens: int32; + + @doc("The number of tokens in the provided prompts for the completions request.") + prompt_tokens: int32; + + @doc("The total number of tokens processed for the completions request and response.") + total_tokens: int32; + + @doc("Breakdown of tokens used in a completion.") + completion_tokens_details?: CompletionsUsageDetails; + + @doc("Breakdown of tokens used in the prompt/chat history.") + prompt_tokens_details?: PromptUsageDetails; +} + +@doc("A breakdown of tokens used in a completion.") +model CompletionsUsageDetails { + @doc("The number of tokens corresponding to audio input.") + audio_tokens: int32; + + @doc("The total number of tokens processed for the completions request and response.") + total_tokens: int32; +} + +@doc("A breakdown of tokens used in the prompt/chat history.") +model PromptUsageDetails { + @doc("The number of tokens corresponding to audio input.") + audio_tokens: int32; + + @doc("The total number of tokens cached.") + cached_tokens: int32; +} + +@doc(""" + Representation of the manner in which a completions response concluded. + """) +union CompletionsFinishReason { + string, + + @doc("Completions ended normally and reached its end of token generation.") + stopped: "stop", + + @doc("Completions exhausted available token limits before generation could complete.") + tokenLimitReached: "length", + + @doc(""" + Completions generated a response that was identified as potentially sensitive per content + moderation policies. + """) + contentFiltered: "content_filter", + + @doc("Completion ended with the model calling a provided tool for output.") + toolCalls: "tool_calls", +} + +@doc("A description of the intended purpose of a message within a chat completions interaction.") +union ChatRole { + string, + + @doc("The role that instructs or sets the behavior of the assistant.") + system: "system", + + @doc("The role that provides instructions to the model prioritized ahead of user messages.") + developer: "developer", + + @doc("The role that provides input for chat completions.") + user: "user", + + @doc("The role that provides responses to system-instructed, user-prompted input.") + assistant: "assistant", + + @doc("The role that represents extension tool activity within a chat completions operation.") + tool: "tool", +} + +@doc(""" + Represents the format that the model must output. Use this to enable JSON mode instead of the default text mode. + Note that to enable JSON mode, some AI models may also require you to instruct the model to produce JSON + via a system or user message. + """) +@discriminator("type") +model ChatCompletionsResponseFormat { + @doc("The response format type to use for chat completions.") + type: string; +} + +@doc(""" + A response format for Chat Completions that emits text responses. This is the default response format. + """) +model ChatCompletionsResponseFormatText extends ChatCompletionsResponseFormat { + @doc("Response format type: always 'text' for this object.") + type: "text"; +} + +@doc(""" + A response format for Chat Completions that restricts responses to emitting valid JSON objects. + Note that to enable JSON mode, some AI models may also require you to instruct the model to produce JSON + via a system or user message. + """) +model ChatCompletionsResponseFormatJsonObject + extends ChatCompletionsResponseFormat { + @doc("Response format type: always 'json_object' for this object.") + type: "json_object"; +} + +@doc(""" + The definition of the required JSON schema in the response, and associated metadata. + """) +model ChatCompletionsResponseFormatJsonSchemaDefinition { + /** The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. */ + name: string; + + /** The definition of the JSON schema */ + schema: Record; + + /** A description of the response format, used by the AI model to determine how to generate responses in this format. */ + description?: string; + + @doc(""" + Whether to enable strict schema adherence when generating the output. + If set to true, the model will always follow the exact schema defined in the `schema` field. Only a subset of + JSON Schema is supported when `strict` is `true`. + """) + strict?: boolean = false; +} + +@doc(""" + A response format for Chat Completions that restricts responses to emitting valid JSON objects, with a + JSON schema specified by the caller. + """) +model ChatCompletionsResponseFormatJsonSchema + extends ChatCompletionsResponseFormat { + @doc(""" + The type of response format being defined: `json_schema` + """) + type: "json_schema"; + + /** The definition of the required JSON schema in the response, and associated metadata. */ + json_schema: ChatCompletionsResponseFormatJsonSchemaDefinition; +} + +alias ChatChoiceCommon = { + @doc("The ordered index associated with this chat completions choice.") + index: int32; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "The operation already returns nulls" + #suppress "@azure-tools/typespec-autorest/union-unsupported" "OpenAPI v2 support deferred" + @doc("The reason that this chat completions choice completed its generated.") + finish_reason: CompletionsFinishReason | null; +}; + +@doc(""" + The representation of a single prompt completion as part of an overall chat completions request. + Generally, `n` choices are generated per provided prompt with a default value of 1. + Token limits and other settings may limit the number of choices generated. + """) +model ChatChoice { + ...ChatChoiceCommon; + + @doc("The chat message for a given chat completions prompt.") + message: ChatResponseMessage; +} + +@doc(""" + Represents an update to a single prompt completion when the service is streaming updates + using Server Sent Events (SSE). + Generally, `n` choices are generated per provided prompt with a default value of 1. + Token limits and other settings may limit the number of choices generated. + """) +model StreamingChatChoiceUpdate { + ...ChatChoiceCommon; + + @doc("An update to the chat message for a given chat completions prompt.") + delta: StreamingChatResponseMessageUpdate; +} + +@discriminator("role") +@doc("An abstract representation of a chat message as provided in a request.") +model ChatRequestMessage { + @doc("The chat role associated with this message.") + role: ChatRole; +} + +@doc(""" + A request chat message containing system instructions that influence how the model will generate a chat completions + response. + """) +model ChatRequestSystemMessage extends ChatRequestMessage { + @doc("The chat role associated with this message, which is always 'system' for system messages.") + role: ChatRole.system; + + @doc("The contents of the system message.") + content: string; +} + +@doc("A request chat message representing user input to the assistant.") +model ChatRequestUserMessage extends ChatRequestMessage { + @doc("The chat role associated with this message, which is always 'user' for user messages.") + role: ChatRole.user; + + #suppress "@azure-tools/typespec-autorest/union-unsupported" "External API shape is defined in OpenAPI 3.0 as oneOf." + @doc("The contents of the user message, with available input types varying by selected model.") + content: string | ChatMessageContentItem[]; +} + +@doc("A request chat message representing response or action from the assistant.") +model ChatRequestAssistantMessage extends ChatRequestMessage { + @doc("The chat role associated with this message, which is always 'assistant' for assistant messages.") + role: ChatRole.assistant; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "explicitly nullable in mirrored API" + @doc("The content of the message.") + content?: string; + + @encodedName("application/json", "tool_calls") + @doc(""" + The tool calls that must be resolved and have their outputs appended to subsequent input messages for the chat + completions request to resolve as configured. + """) + toolCalls?: ChatCompletionsToolCall[]; + + @doc(""" + The audio generated by a previous response in a multi-turn conversation. + """) + audio?: ChatRequestAudioReference; +} + +@doc("A reference to an audio response generated by the model.") +model ChatRequestAudioReference { + @doc(""" + Unique identifier for the audio response. This value corresponds to the id of a previous audio completion. + """) + id: string; +} + +@doc("A request chat message representing requested output from a configured tool.") +model ChatRequestToolMessage extends ChatRequestMessage { + @doc("The chat role associated with this message, which is always 'tool' for tool messages.") + role: ChatRole.tool; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "explicitly nullable in mirrored API" + @doc("The content of the message.") + content?: string; + + @encodedName("application/json", "tool_call_id") + @doc("The ID of the tool call resolved by the provided content.") + toolCallId: string; +} + +@doc("A representation of a chat message update as received in a streaming response.") +model StreamingChatResponseMessageUpdate { + @doc("The chat role associated with the message. If present, should always be 'assistant'") + role?: ChatRole; + + //#suppress "@azure-tools/typespec-azure-core/no-nullable" "explicitly nullable in mirrored API" + @doc("The content of the message.") + content?: string; + + @encodedName("application/json", "tool_calls") + @doc(""" + The tool calls that must be resolved and have their outputs appended to subsequent input messages for the chat + completions request to resolve as configured. + """) + toolCalls?: StreamingChatResponseToolCallUpdate[]; +} + +@doc("A representation of a chat message as received in a response.") +model ChatResponseMessage { + @doc("The chat role associated with the message.") + role: ChatRole; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "explicitly nullable in mirrored API" + @doc("The content of the message.") + content: string | null; + + @encodedName("application/json", "tool_calls") + @doc(""" + The tool calls that must be resolved and have their outputs appended to subsequent input messages for the chat + completions request to resolve as configured. + """) + toolCalls?: ChatCompletionsToolCall[]; + + @doc(""" + The audio generated by the model as a response to the messages if the model is configured to generate audio. + """) + audio?: ChatCompletionsAudio; +} + +#suppress "@azure-tools/typespec-autorest/union-unsupported" "External API shape is defined in OpenAPI 3.0 as oneOf." +alias ChatCompletionsToolChoice = ChatCompletionsToolChoicePreset | ChatCompletionsNamedToolChoice; + +@doc("Represents a generic policy for how a chat completions tool may be selected.") +union ChatCompletionsToolChoicePreset { + string, + + @doc(""" + Specifies that the model may either use any of the tools provided in this chat completions request or + instead return a standard chat completions response as if no tools were provided. + """) + auto: "auto", + + @doc(""" + Specifies that the model should not respond with a tool call and should instead provide a standard chat + completions response. Response content may still be influenced by the provided tool definitions. + """) + none: "none", + + @doc(""" + Specifies that the model should respond with a call to one or more tools. + """) + required: "required", +} + +@doc("A tool selection of a specific, named function tool that will limit chat completions to using the named function.") +model ChatCompletionsNamedToolChoice { + @doc("The type of the tool. Currently, only `function` is supported.") + type: "function"; + + @doc("The function that should be called.") + function: ChatCompletionsNamedToolChoiceFunction; +} + +@doc("A tool selection of a specific, named function tool that will limit chat completions to using the named function.") +model ChatCompletionsNamedToolChoiceFunction { + @doc("The name of the function that should be called.") + name: string; +} + +@doc(""" + The definition of a chat completions tool that can call a function. + """) +model ChatCompletionsToolDefinition { + @doc("The type of the tool. Currently, only `function` is supported.") + type: "function"; + + @doc("The function definition details for the function tool.") + function: FunctionDefinition; +} + +@doc(""" + The definition of a caller-specified function that chat completions may invoke in response to matching user input. + """) +model FunctionDefinition { + @doc("The name of the function to be called.") + name: string; + + @doc(""" + A description of what the function does. The model will use this description when selecting the function and + interpreting its parameters. + """) + description?: string; + + #suppress "@azure-tools/typespec-azure-core/no-unknown" "External API shape takes an arbitrary json" + @doc("The parameters the function accepts, described as a JSON Schema object.") + parameters?: Record; +} + +@doc(""" + An update to the function tool call information requested by the AI model. + """) +model StreamingChatResponseToolCallUpdate { + @doc("The ID of the tool call.") + id: string; + + @doc("Updates to the function call requested by the AI model.") + function: FunctionCall; +} + +@doc(""" + A function tool call requested by the AI model. + """) +model ChatCompletionsToolCall { + @doc("The ID of the tool call.") + id: string; + + @doc("The type of tool call. Currently, only `function` is supported.") + type: "function"; + + @doc("The details of the function call requested by the AI model.") + function: FunctionCall; +} + +@doc("The name and arguments of a function that should be called, as generated by the model.") +model FunctionCall { + @doc("The name of the function to call.") + name: string; + + @doc(""" + The arguments to call the function with, as generated by the model in JSON format. + Note that the model does not always generate valid JSON, and may hallucinate parameters + not defined by your function schema. Validate the arguments in your code before calling + your function. + """) + arguments: string; +} + +@doc("An abstract representation of a structured content item within a chat message.") +@discriminator("type") +model ChatMessageContentItem { + @doc("The discriminated object type.") + type: string; +} + +@doc("A structured chat content item containing plain text.") +model ChatMessageTextContentItem extends ChatMessageContentItem { + @doc("The discriminated object type: always 'text' for this type.") + type: "text"; + + @doc("The content of the message.") + text: string; +} + +@doc("A structured chat content item containing an image reference.") +model ChatMessageImageContentItem extends ChatMessageContentItem { + @doc("The discriminated object type: always 'image_url' for this type.") + type: "image_url"; + + @doc("An internet location, which must be accessible to the model,from which the image may be retrieved.") + @encodedName("application/json", "image_url") + imageUrl: ChatMessageImageUrl; +} + +@doc("An internet location from which the model may retrieve an image.") +model ChatMessageImageUrl { + @doc("The URL of the image.") + url: string; + + @doc(""" + The evaluation quality setting to use, which controls relative prioritization of speed, token consumption, and + accuracy. + """) + detail?: ChatMessageImageDetailLevel; +} + +@doc("A representation of the possible image detail levels for image-based chat completions message content.") +union ChatMessageImageDetailLevel { + string, + + @doc("Specifies that the model should determine which detail level to apply using heuristics like image size.") + auto: "auto", + + @doc(""" + Specifies that image evaluation should be constrained to the 'low-res' model that may be faster and consume fewer + tokens but may also be less accurate for highly detailed images. + """) + low: "low", + + @doc(""" + Specifies that image evaluation should enable the 'high-res' model that may be more accurate for highly detailed + images but may also be slower and consume more tokens. + """) + high: "high", +} + +@doc("A structured chat content item containing an audio reference.") +model ChatMessageAudioContentItem extends ChatMessageContentItem { + @doc("The discriminated object type: always 'image_url' for this type.") + type: "audio_url"; + + @doc("An internet location, which must be accessible to the model, from which the audio may be retrieved.") + @encodedName("application/json", "audio_url") + audioUrl: ChatMessageAudioUrl; +} + +@doc("An internet location from which the model may retrieve an audio.") +model ChatMessageAudioUrl { + @doc("The URL of the audio.") + url: string; +} + +@doc("A structured chat content item containing an audio content.") +model ChatMessageInputAudioContentItem extends ChatMessageContentItem { + @doc("The discriminated object type: always 'input_audio' for this type.") + type: "input_audio"; + + @doc("The audio format of the audio reference.") + format: AudioContentFormat; +} + +@doc("The details of an audio chat message content part.") +model ChatMessageInputAudio { + @doc("Base64 encoded audio data") + data: string; + + @doc("The audio format of the audio content.") + format: AudioContentFormat; +} + +@doc("A representation of the possible audio formats for audio.") +union AudioContentFormat { + string, + + @doc("Specifies audio in WAV format.") + wav: "wav", + + @doc("Specifies audio in MP3 format.") + mp3: "mp3", +} + +@doc("A representation of the audio generated by the model.") +model ChatCompletionsAudio { + @doc(""" + Unique identifier for the audio response. This value can be used in chat history messages instead of passing + the full audio object. + """) + id: string; + + @doc(""" + The Unix timestamp (in seconds) at which the audio piece expires and can't be any longer referenced by its ID in + multi-turn conversations. + """) + @encode(DateTimeKnownEncoding.unixTimestamp, int64) + @encodedName("application/json", "expires_at") + expiresAt: utcDateTime; + + @doc("Base64 encoded audio data") + data: string; + + @doc(""" + The format of the audio content. If format is not provided, it will match the format used in the + input audio request. + """) + format?: AudioContentFormat; + + @doc("The transcript of the audio file.") + transcript: string; +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/models/embeddings.tsp b/specification/ai/Azure.AI.Unified/models/embeddings.tsp new file mode 100644 index 000000000000..6b707f8ac954 --- /dev/null +++ b/specification/ai/Azure.AI.Unified/models/embeddings.tsp @@ -0,0 +1,139 @@ +import "@typespec/rest"; +import "@typespec/http"; + +using TypeSpec.Rest; +using TypeSpec.Http; + +namespace Azure.AI.Unified; + +@doc("Represents the input types used for embedding search.") +union EmbeddingInputType { + string, + + @doc("Indicates the input is a general text input.") + text: "text", + + @doc("Indicates the input represents a search query to find the most relevant documents in your vector database.") + query: "query", + + @doc("Indicates the input represents a document that is stored in a vector database.") + document: "document", +} + +@doc(""" + Specifies the types of embeddings to generate. Compressed embeddings types like `uint8`, `int8`, `ubinary` and + `binary`, may reduce storage costs without sacrificing the integrity of the data. Returns a 422 error if the + model doesn't support the value or parameter. Read the model's documentation to know the values supported by + the your model. + """) +union EmbeddingEncodingFormat { + string, + + @doc(""" + Get back binary representation of the embeddings encoded as Base64 string. OpenAI Python library retrieves + embeddings from the API as encoded binary data, rather than using intermediate decimal representations as is + usually done. + """) + base64: "base64", + + @doc("Get back signed binary embeddings") + binary: "binary", + + @doc("Get back full precision embeddings") + float: "float", + + @doc("Get back signed int8 embeddings") + int8: "int8", + + @doc("Get back unsigned binary embeddings") + ubinary: "ubinary", + + @doc("Get back unsigned int8 embeddings") + uint8: "uint8", +} + +@doc(""" + Representation of the response data from an embeddings request. + Embeddings measure the relatedness of text strings and are commonly used for search, clustering, + recommendations, and other similar scenarios. + """) +model EmbeddingsResult { + @doc("Unique identifier for the embeddings result.") + id: string; + + @doc("Embedding values for the prompts submitted in the request.") + data: EmbeddingItem[]; + + @doc("Usage counts for tokens input using the embeddings API.") + usage: EmbeddingsUsage; + + @doc("The object type of the embeddings result. Will always be `list`.") + object: "list"; + + @doc("The model ID used to generate this result.") + `model`: string; +} + +@doc("Representation of a single embeddings relatedness comparison.") +model EmbeddingItem { + @doc(""" + List of embedding values for the input prompt. These represent a measurement of the + vector-based relatedness of the provided input. Or a base64 encoded string of the embedding vector. + """) + embedding: float32[]; + + @doc("Index of the prompt to which the EmbeddingItem corresponds.") + index: int32; + + @doc("The object type of this embeddings item. Will always be `embedding`.") + object: "embedding"; +} + +@doc("Measurement of the amount of tokens used in this request and response.") +model EmbeddingsUsage { + @doc("Number of tokens in the request.") + prompt_tokens: int32; + + @doc(""" + Total number of tokens transacted in this request/response. Should equal the + number of tokens in the request. + """) + total_tokens: int32; +} + +@doc(""" + The configuration information for an embeddings request. + """) +model EmbeddingsOptions { + @doc(""" + Input text to embed, encoded as a string or array of tokens. + To embed multiple inputs in a single request, pass an array + of strings or array of token arrays. + """) + input: string[]; + + @doc(""" + Optional. The number of dimensions the resulting output embeddings should have. + Passing null causes the model to use its default value. + Returns a 422 error if the model doesn't support the value or parameter. + """) + dimensions?: int32; + + @doc(""" + Optional. The desired format for the returned embeddings. + """) + encoding_format?: EmbeddingEncodingFormat; + + @doc(""" + Optional. The type of the input. + Returns a 422 error if the model doesn't support the value or parameter. + """) + input_type?: EmbeddingInputType; + + @doc(""" + ID of the specific AI model to use, if more than one model is available on the endpoint. + """) + `model`?: string; + + ...Record; +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Unified/models/image_embeddings.tsp b/specification/ai/Azure.AI.Unified/models/image_embeddings.tsp new file mode 100644 index 000000000000..5293067abb6f --- /dev/null +++ b/specification/ai/Azure.AI.Unified/models/image_embeddings.tsp @@ -0,0 +1,61 @@ +import "@typespec/rest"; +import "@typespec/http"; + +import "./embeddings.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; + +namespace Azure.AI.Unified; + +@doc(""" + The configuration information for an image embeddings request. + """) +model ImageEmbeddingsOptions { + @doc(""" + Input image to embed. To embed multiple inputs in a single request, pass an array. + The input must not exceed the max input tokens for the model. + """) + input: ImageEmbeddingInput[]; + + @doc(""" + Optional. The number of dimensions the resulting output embeddings should have. + Passing null causes the model to use its default value. + Returns a 422 error if the model doesn't support the value or parameter. + """) + dimensions?: int32; + + @doc(""" + Optional. The number of dimensions the resulting output embeddings should have. + Passing null causes the model to use its default value. + Returns a 422 error if the model doesn't support the value or parameter. + """) + encoding_format?: EmbeddingEncodingFormat; + + @doc(""" + Optional. The type of the input. + Returns a 422 error if the model doesn't support the value or parameter. + """) + input_type?: EmbeddingInputType; + + @doc(""" + ID of the specific AI model to use, if more than one model is available on the endpoint. + """) + `model`?: string; + + ...Record; +} + +@doc("Represents an image with optional text.") +model ImageEmbeddingInput { + @doc(""" + The input image encoded in base64 string as a data URL. Example: `data:image/{format};base64,{data}`. + """) + image: string; + + @doc(""" + Optional. The text input to feed into the model (like DINO, CLIP). + Returns a 422 error if the model doesn't support the value or parameter. + """) + text?: string; +} diff --git a/specification/ai/Azure.AI.Unified/models/routes.tsp b/specification/ai/Azure.AI.Unified/models/routes.tsp index 1caa43b2b023..2e48452741f7 100644 --- a/specification/ai/Azure.AI.Unified/models/routes.tsp +++ b/specification/ai/Azure.AI.Unified/models/routes.tsp @@ -3,6 +3,9 @@ import "@azure-tools/typespec-autorest"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; import "./models.tsp"; +import "./chat_completions.tsp" +import "./embeddings.tsp" +import "./image_embeddings.tsp" using TypeSpec.Http; using TypeSpec.Rest; @@ -51,4 +54,57 @@ interface Models { }, Model >; + + @doc(""" + Gets chat completions for the provided chat messages. + Completions support a wide variety of tasks and generate text that continues from or "completes" + provided prompt data. The method makes a REST API call to the `/chat/completions` route + on the given endpoint. + """) + @actionSeparator("/") + @route("models/chat/completions") + op getChatCompletions is Azure.Core.RpcOperation< + { + @doc("The parameters of the chat completions request.") + @body + body: ChatCompletionsOptions; + + ...AdditionalRequestHeaders; + }, + ChatCompletions + >; + + @doc(""" + Return the embedding vectors for given text prompts. + The method makes a REST API call to the `/embeddings` route on the given endpoint. + """) + @actionSeparator("/") + @route("models/embeddings") + op getEmbeddings is Azure.Core.RpcOperation< + { + @doc("The parameters of the embeddings request.") + @body + body: EmbeddingsOptions; + + ...AdditionalRequestHeaders; + }, + EmbeddingsResult + >; + + @doc(""" + Return the embedding vectors for given images. + The method makes a REST API call to the `/images/embeddings` route on the given endpoint. + """) + @actionSeparator("/") + @route("models/images/embeddings") + op getImageEmbeddings is Azure.Core.RpcOperation< + { + @doc("The parameters of the image embeddings request.") + @body + body: ImageEmbeddingsOptions; + + ...AdditionalRequestHeaders; + }, + EmbeddingsResult + >; } From 813f2072b54b310310b6fe5df1c1dc289b6120c9 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Tue, 25 Feb 2025 17:38:54 -0500 Subject: [PATCH 023/143] fix some errors and rename file --- .../ai/Azure.AI.Unified/common/models.tsp | 24 +++++++++++++++++++ ...at_completion.tsp => chat_completions.tsp} | 0 .../ai/Azure.AI.Unified/models/routes.tsp | 12 +++++----- 3 files changed, 30 insertions(+), 6 deletions(-) rename specification/ai/Azure.AI.Unified/models/{chat_completion.tsp => chat_completions.tsp} (100%) diff --git a/specification/ai/Azure.AI.Unified/common/models.tsp b/specification/ai/Azure.AI.Unified/common/models.tsp index 1febaf6a0576..989ae1ad93aa 100644 --- a/specification/ai/Azure.AI.Unified/common/models.tsp +++ b/specification/ai/Azure.AI.Unified/common/models.tsp @@ -291,3 +291,27 @@ alias ResourceCreatedResponse = TypeSpec.Ht #suppress "@azure-tools/typespec-providerhub/no-inline-model" "Need to create reponses correctly" alias OkResponse = TypeSpec.Http.Response<200> & T; + + alias AdditionalInferenceRequestHeaders = { + @doc(""" + Controls what happens if extra parameters, undefined by the REST API, + are passed in the JSON request payload. + This sets the HTTP request header `extra-parameters`. + """) + @header("extra-parameters") + extra_params?: ExtraParameters; + }; + + @doc("Controls what happens if extra parameters, undefined by the REST API, are passed in the JSON request payload.") + union ExtraParameters { + string, + + @doc("The service will error if it detected extra parameters in the request payload. This is the service default.") + error: "error", + + @doc("The service will ignore (drop) extra parameters in the request payload. It will only pass the known parameters to the back-end AI model.") + drop: "drop", + + @doc("The service will pass extra parameters to the back-end AI model.") + pass_through: "pass-through", + } diff --git a/specification/ai/Azure.AI.Unified/models/chat_completion.tsp b/specification/ai/Azure.AI.Unified/models/chat_completions.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/models/chat_completion.tsp rename to specification/ai/Azure.AI.Unified/models/chat_completions.tsp diff --git a/specification/ai/Azure.AI.Unified/models/routes.tsp b/specification/ai/Azure.AI.Unified/models/routes.tsp index 2e48452741f7..79ed79654ab8 100644 --- a/specification/ai/Azure.AI.Unified/models/routes.tsp +++ b/specification/ai/Azure.AI.Unified/models/routes.tsp @@ -3,9 +3,9 @@ import "@azure-tools/typespec-autorest"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; import "./models.tsp"; -import "./chat_completions.tsp" -import "./embeddings.tsp" -import "./image_embeddings.tsp" +import "./chat_completions.tsp"; +import "./embeddings.tsp"; +import "./image_embeddings.tsp"; using TypeSpec.Http; using TypeSpec.Rest; @@ -69,7 +69,7 @@ interface Models { @body body: ChatCompletionsOptions; - ...AdditionalRequestHeaders; + ...AdditionalInferenceRequestHeaders; }, ChatCompletions >; @@ -86,7 +86,7 @@ interface Models { @body body: EmbeddingsOptions; - ...AdditionalRequestHeaders; + ...AdditionalInferenceRequestHeaders; }, EmbeddingsResult >; @@ -103,7 +103,7 @@ interface Models { @body body: ImageEmbeddingsOptions; - ...AdditionalRequestHeaders; + ...AdditionalInferenceRequestHeaders; }, EmbeddingsResult >; From c1fd302f401ec844e02694a702a21351378e613f Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Tue, 25 Feb 2025 18:37:04 -0500 Subject: [PATCH 024/143] update with latest PR --- .../ai/Azure.AI.Unified/indexes/models.tsp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/indexes/models.tsp b/specification/ai/Azure.AI.Unified/indexes/models.tsp index bf3f69e72100..28f44c38b5d2 100644 --- a/specification/ai/Azure.AI.Unified/indexes/models.tsp +++ b/specification/ai/Azure.AI.Unified/indexes/models.tsp @@ -44,6 +44,9 @@ model Index is AssetVersion { @doc("Embedding configuration") embeddingConfiguration: EmbeddingConfiguration; + + @doc("Type of index") + indexType: IndexType } @doc("Paged collection of IndexVersion items.") @@ -65,14 +68,17 @@ model IndexConfiguration { @doc("Connection id of indexing service") connectionId: string; + @doc("Name of database") + databaseName: string; + + @doc("Name of container") + containerName: string; + @doc("Name of index") indexName: string; @doc("Vector store id") vectorStoreId: string; - - @doc("Type of index") - indexType: IndexType } @doc("Embedding configuration class") @@ -81,10 +87,7 @@ model EmbeddingConfiguration { connectionId: string; @doc("Deployment name of embedding model") - deploymentName: string; - - @doc("Dimension") - dimension: int64; + deploymentName: string; @doc("Embedding field") embeddingField: string; @@ -101,4 +104,4 @@ union IndexType { @doc("Managed Azure Search") managedAzureSearch: "ManagedAzureSearch", -} \ No newline at end of file +} From 7bd94144da292c20198911e66d6077e581e1ad2a Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Wed, 26 Feb 2025 10:07:31 -0500 Subject: [PATCH 025/143] make functiondefinition a common model --- .../Azure.AI.Unified/agents/tools/models.tsp | 16 +-------------- .../ai/Azure.AI.Unified/common/models.tsp | 20 +++++++++++++++++++ .../models/chat_completions.tsp | 19 +----------------- 3 files changed, 22 insertions(+), 33 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/agents/tools/models.tsp b/specification/ai/Azure.AI.Unified/agents/tools/models.tsp index 5e9aa4365444..ced3f312e170 100644 --- a/specification/ai/Azure.AI.Unified/agents/tools/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/tools/models.tsp @@ -1,5 +1,6 @@ import "@typespec/http"; import "@typespec/versioning"; +import "../../common/models.tsp" using TypeSpec.Http; using TypeSpec.Versioning; @@ -134,21 +135,6 @@ model FileSearchRankingOptions { scoreThreshold: float32; } -// Definition details: Functions - -@doc("The input definition information for a function.") -model FunctionDefinition { - @doc("The name of the function to be called.") - name: string; - - @doc("A description of what the function does, used by the model to choose when and how to call the function.") - description?: string; - - #suppress "@azure-tools/typespec-azure-core/no-unknown" "External API shape takes an arbitrary json" - @doc("The parameters the functions accepts, described as a JSON Schema object.") - parameters: unknown; -} - @doc("The definition of Azure function.") model AzureFunctionDefinition { @doc("The definition of azure function and its parameters.") diff --git a/specification/ai/Azure.AI.Unified/common/models.tsp b/specification/ai/Azure.AI.Unified/common/models.tsp index 989ae1ad93aa..d63ca4a87faa 100644 --- a/specification/ai/Azure.AI.Unified/common/models.tsp +++ b/specification/ai/Azure.AI.Unified/common/models.tsp @@ -315,3 +315,23 @@ alias OkResponse = TypeSpec.Http.Response<2 @doc("The service will pass extra parameters to the back-end AI model.") pass_through: "pass-through", } + + + +@doc(""" + The definition of a caller-specified function that chat completions may invoke in response to matching user input. + """) +model FunctionDefinition { + @doc("The name of the function to be called.") + name: string; + + @doc(""" + A description of what the function does. The model will use this description when selecting the function and + interpreting its parameters. + """) + description?: string; + + #suppress "@azure-tools/typespec-azure-core/no-unknown" "External API shape takes an arbitrary json" + @doc("The parameters the function accepts, described as a JSON Schema object.") + parameters?: Record; +} diff --git a/specification/ai/Azure.AI.Unified/models/chat_completions.tsp b/specification/ai/Azure.AI.Unified/models/chat_completions.tsp index ec86aa815c16..35af197d375a 100644 --- a/specification/ai/Azure.AI.Unified/models/chat_completions.tsp +++ b/specification/ai/Azure.AI.Unified/models/chat_completions.tsp @@ -1,6 +1,7 @@ import "@azure-tools/typespec-client-generator-core"; import "@typespec/rest"; import "@typespec/http"; +import "../common/models.tsp"; using TypeSpec.Rest; using TypeSpec.Http; @@ -553,24 +554,6 @@ model ChatCompletionsToolDefinition { function: FunctionDefinition; } -@doc(""" - The definition of a caller-specified function that chat completions may invoke in response to matching user input. - """) -model FunctionDefinition { - @doc("The name of the function to be called.") - name: string; - - @doc(""" - A description of what the function does. The model will use this description when selecting the function and - interpreting its parameters. - """) - description?: string; - - #suppress "@azure-tools/typespec-azure-core/no-unknown" "External API shape takes an arbitrary json" - @doc("The parameters the function accepts, described as a JSON Schema object.") - parameters?: Record; -} - @doc(""" An update to the function tool call information requested by the AI model. """) From bdfd6a3aee426efb59316235b799db85e88339b7 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Wed, 26 Feb 2025 10:42:31 -0500 Subject: [PATCH 026/143] fix a missing ; --- specification/ai/Azure.AI.Unified/agents/tools/models.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/ai/Azure.AI.Unified/agents/tools/models.tsp b/specification/ai/Azure.AI.Unified/agents/tools/models.tsp index ced3f312e170..7e1a2a129c40 100644 --- a/specification/ai/Azure.AI.Unified/agents/tools/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/tools/models.tsp @@ -1,6 +1,6 @@ import "@typespec/http"; import "@typespec/versioning"; -import "../../common/models.tsp" +import "../../common/models.tsp"; using TypeSpec.Http; using TypeSpec.Versioning; From 23d5e2bb00e21627f353d25c2b093b3354c2bf16 Mon Sep 17 00:00:00 2001 From: adyada <118839465+adyada@users.noreply.github.com> Date: Mon, 3 Mar 2025 14:12:25 -0500 Subject: [PATCH 027/143] Asset contract changes (#32833) * removed some fields from ResourceBase * dataset contract fixes * cleanup * added start pending upload --------- Co-authored-by: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> --- .../ai/Azure.AI.Unified/common/models.tsp | 121 ++++++++++++------ .../ai/Azure.AI.Unified/datasets/models.tsp | 19 ++- .../ai/Azure.AI.Unified/datasets/routes.tsp | 46 ++++--- 3 files changed, 114 insertions(+), 72 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/common/models.tsp b/specification/ai/Azure.AI.Unified/common/models.tsp index d63ca4a87faa..48b358f42f70 100644 --- a/specification/ai/Azure.AI.Unified/common/models.tsp +++ b/specification/ai/Azure.AI.Unified/common/models.tsp @@ -223,46 +223,12 @@ model OutputPathAssetReference extends AssetReferenceBase { #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" @doc("Base definition for an asset.") -model AssetBase extends ResourceBase { - @doc("If the name version are system generated (anonymous registration).") - @visibility("read", "create") - isAnonymous?: boolean; - - @doc("Is the asset archived?") +model AssetBase { + @doc("Asset stage") @visibility("read", "create", "update") - isArchived?: boolean; -} - -@doc("Enum to determine the type of data.") -union DatasetType { - string, - - @doc("URI file.") - uri_file: "uri_file", - - @doc("URI folder.") - uri_folder: "uri_folder", -} + stage?: string; -#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" -@doc("AssetContainer definition") -model AssetContainer extends ResourceBase { - @doc("Is the asset archived?") - @visibility("read", "create", "update") - isArchived?: boolean; - - @doc("The latest version inside this container.") - @visibility("read") - latestVersion?: string; - - @doc("The next auto incremental version") - @visibility("read") - nextVersion?: string; -} - -@doc("ResourceBase definition") -model ResourceBase { - @doc("A unique identifier for the asset") + @doc("A unique identifier for the asset, assetId probably?") @visibility("read") id?: string; @@ -270,12 +236,13 @@ model ResourceBase { @visibility("read") name?: string; + @doc("The version of the resource") + @visibility("read") + version?: string; + @doc("The asset description text.") description?: string; - @doc("The asset property dictionary.") - properties?: Record; - @doc("Tag dictionary. Tags can be added, removed, and updated.") tags?: Record; @@ -284,6 +251,27 @@ model ResourceBase { systemData?: SystemData; } +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" +@doc("AssetContainer definition") +model AssetContainer { + @doc("The next auto incremental version") + @visibility("read") + nextVersion?: string; + + @doc("Key is label name, value is version.") + @visibility("read, update") + labels: Record; + + @doc("A unique identifier for the asset, assetId probably?") + @visibility("read") + id?: string; + + @doc("The name of the resource") + @visibility("read") + name?: string; +} + + #suppress "@azure-tools/typespec-providerhub/no-inline-model" "Need to create reponses correctly" alias ResourceCreatedResponse = TypeSpec.Http.Response<201> & T; @@ -316,8 +304,59 @@ alias OkResponse = TypeSpec.Http.Response<2 pass_through: "pass-through", } + // Pending upload spec + // Define a URI alias for clarity. + alias Uri = string; + enum PendingUploadType { + None, + TemporaryBlobReference, + } + + enum PendingUploadCredentialType { + SAS, + } + + model PendingUploadRequestDto { + /// If PendingUploadId is not provided, a random guid will be used. + pendingUploadId?: string; + /// TemporaryBlobReference is the only supported type. + pendingUploadType: PendingUploadType = PendingUploadType.TemporaryBlobReference; + } + + model PendingUploadResponseDto { + /// Container-level read, write, list SAS. + blobReferenceForConsumption: BlobReferenceForConsumptionDto; + /// ID for this upload request. + pendingUploadId: string; + /// TemporaryBlobReference is the only supported type. + pendingUploadType: PendingUploadType = PendingUploadType.TemporaryBlobReference; + } + + /// Use a discriminated union to represent the abstract credential DTO. + /// The “credentialType” property acts as the discriminator. + @discriminator("credentialType") + union PendingUploadCredentialDto = SASCredentialDto; + + model SASCredentialDto { + /// The credential type is always SAS. + credentialType: PendingUploadCredentialType = PendingUploadCredentialType.SAS; + /// Full SAS Uri, including the storage, container/blob path and SAS token. + /// (SwaggerSecret attribute from C# can be noted here as a comment or using a custom decorator if needed.) + sasUri: Uri; + } + + model BlobReferenceForConsumptionDto { + /// Blob URI path for client to upload data. + /// Example: https://blob.windows.core.net/Container/Path + blobUri: Uri; + /// ARM ID of the storage account to use. + storageAccountArmId: string; + /// Credential info to access the storage account. + credential: PendingUploadCredentialDto; + } + @doc(""" The definition of a caller-specified function that chat completions may invoke in response to matching user input. """) diff --git a/specification/ai/Azure.AI.Unified/datasets/models.tsp b/specification/ai/Azure.AI.Unified/datasets/models.tsp index 5b05c0e7d30e..2e6c257597f8 100644 --- a/specification/ai/Azure.AI.Unified/datasets/models.tsp +++ b/specification/ai/Azure.AI.Unified/datasets/models.tsp @@ -22,19 +22,18 @@ model DatasetContainer extends AssetContainer { } -@doc("PagedDataContainer Definition") -@pagedResult -model PagedDatasetContainer { - @doc("The list of DatasetContainers.") - @extension("x-ms-identifiers", []) - @items - value: DatasetContainer[]; +@doc("Enum to determine the type of data.") +union DatasetType { + string, - @doc("The link to the next page of results, if any.") - @nextLink - nextLink?: string; + @doc("URI file.") + uri_file: "uri_file", + + @doc("URI folder.") + uri_folder: "uri_folder", } + #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" @doc("DatasetVersion Definition") @discriminator("datasetType") diff --git a/specification/ai/Azure.AI.Unified/datasets/routes.tsp b/specification/ai/Azure.AI.Unified/datasets/routes.tsp index f12360f5338b..9db74d082f24 100644 --- a/specification/ai/Azure.AI.Unified/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Unified/datasets/routes.tsp @@ -20,31 +20,15 @@ interface Datasets { @doc("List datasets in a project.") @route("/datasets") @get - listDatasets( - @doc("Continuation token for pagination.") - @query("$skip") - $skip?: string, + listLatestDatasets( + @doc("Continuation token for pagination. This is the nextLink from the previous response.") + @query("$continuationToken") + $continuationToken?: string, @doc("View type for including/excluding (for example) archived entities.") @query("listViewType") listViewType?: ListViewType, - ): PagedDatasetContainer; - - #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("Delete container.") - @route("/datasets/{name}") - @delete - delete( - @doc("Name of Azure Machine Learning workspace.") - @pattern("^[a-zA-Z0-9][a-zA-Z0-9_-]{2,32}$") - @path - workspaceName: string, - - @doc("Container name.") - @path - name: string, - ): void; + ): PagedDatasetVersion; #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" #suppress "@azure-tools/typespec-azure-core/use-standard-operations" @@ -129,4 +113,24 @@ interface Datasets { @body body: DatasetVersion, ): DatasetVersion; + + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("Start pending upload.") + @post + @route("/datasets/{name}/versions/{version}/startPendingUpload") + createOrGetStartPendingUpload( + @doc("Container name.") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$") + @path + name: string, + + @doc("Version identifier.") + @path + version: string, + + @doc("Pensing upload request.") + @body + body: PendingUploadRequestDto + ): PendingUploadResponseDto; } From da96e8750ebc14406880edd56edeef1892d56c2a Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Mon, 3 Mar 2025 14:44:24 -0500 Subject: [PATCH 028/143] fix some comments --- .../ai/Azure.AI.Unified/connections/models.tsp | 18 ++++++++---------- .../ai/Azure.AI.Unified/datasets/routes.tsp | 12 ++++++------ 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/connections/models.tsp b/specification/ai/Azure.AI.Unified/connections/models.tsp index a7e64fa2ead4..f704c45de3b6 100644 --- a/specification/ai/Azure.AI.Unified/connections/models.tsp +++ b/specification/ai/Azure.AI.Unified/connections/models.tsp @@ -17,7 +17,7 @@ namespace Azure.AI.Unified; @doc("Response from the listSecrets operation") model Connection { - @doc("A unique identifier for the connection") + @doc("Fully qualified resource identifier") @visibility("read") id: string; @@ -31,7 +31,7 @@ model Connection { @doc("Category of the connection") @visibility("read") - category: ConnectionType; + category: ConnectionCategory; @doc("The connection URL to be used for this service") @visibility("read") @@ -52,21 +52,19 @@ model PagedConnection { } // https://learn.microsoft.com/rest/api/azureml/workspace-connections/list-secrets?view=rest-azureml-2024-04-01&tabs=HTTP#ConnectionType -#suppress "@azure-tools/typespec-azure-core/no-enum" @doc("The Type (or category) of the connection") -enum ConnectionType { +union ConnectionCategory { + string, + @doc("Azure OpenAI Service") AzureOpenAI: "AzureOpenAI", //TODO: In Python this results in .AZURE_OPEN_AI. How do I make it .AZURE_OPENAI? - @doc("Serverless API Service") - Serverless: "Serverless", - @doc("Azure Blob Storage") AzureBlobStorage: "AzureBlob", - @doc("Azure AI Services") - AzureAIServices: "AIServices", - @doc("Azure AI Search") AzureAISearch: "CognitiveSearch", + + @doc("Generic connection that uses API Key authentication") + APIKey: "ApiKey", } diff --git a/specification/ai/Azure.AI.Unified/datasets/routes.tsp b/specification/ai/Azure.AI.Unified/datasets/routes.tsp index 9db74d082f24..21135ef2ef67 100644 --- a/specification/ai/Azure.AI.Unified/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Unified/datasets/routes.tsp @@ -17,7 +17,7 @@ namespace Azure.AI.Unified; interface Datasets { #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("List datasets in a project.") + @doc("List latest version of each dataset in a project.") @route("/datasets") @get listLatestDatasets( @@ -32,8 +32,8 @@ interface Datasets { #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("List data versions in the data container") - @route("/data/{name}/versions") + @doc("List dataset versions of a specific dataset") + @route("/datasets/{name}/versions") @get listDatasetVersions( @doc("Container name.") @@ -65,7 +65,7 @@ interface Datasets { #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" #suppress "@azure-tools/typespec-azure-core/use-standard-operations" @doc("Delete version.") - @route("/data/{name}/versions/{version}") + @route("/datasets/{name}/versions/{version}") @delete deleteVersion( @doc("Container name.") @@ -111,7 +111,7 @@ interface Datasets { @doc("Version entity to create or update.") @body - body: DatasetVersion, + datasetVersion: DatasetVersion, ): DatasetVersion; #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" @@ -131,6 +131,6 @@ interface Datasets { @doc("Pensing upload request.") @body - body: PendingUploadRequestDto + pendingUploadRequest: PendingUploadRequestDto ): PendingUploadResponseDto; } From 37f9a36c92aa6d94e8b0c36e82f49d38a5a6282e Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Mon, 3 Mar 2025 14:53:35 -0500 Subject: [PATCH 029/143] fix some more comments --- specification/ai/Azure.AI.Unified/main.tsp | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/main.tsp b/specification/ai/Azure.AI.Unified/main.tsp index 997b8015f07b..579b4c6a5aff 100644 --- a/specification/ai/Azure.AI.Unified/main.tsp +++ b/specification/ai/Azure.AI.Unified/main.tsp @@ -37,34 +37,29 @@ namespace Azure.AI { { type: OAuth2FlowType.implicit, authorizationUrl: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", - scopes: ["https://management.azure.com/.default"], + scopes: ["https://cognitiveservices.azure.com/.default"], } ]> ) @service({ - title: "Azure AI Data Plane", + title: "Azure AI", }) @server( - "{endpoint}/projects/{projectName}", - "Azure AI Data Plane APIs", + "{endpoint}", + "Azure AI", { @doc(""" - Global endpoint in the form of: https://[hub-id]/api.ai.azure.com + Project endpoint in the form of: https://.services.ai.azure.com/projects/ """) endpoint: url, - - @doc("The name of the AI project.") - projectName: string, } ) @versioned(Versions) namespace Azure.AI.Unified { @doc("Azure AI API versions") enum Versions { - @doc("Azure AI API version 2024-07-01-preview.") - @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) - @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @doc("Azure AI API version 2025-05-01-preview.") @useDependency(Azure.Core.Versions.v1_0_Preview_2) - `2024-07-01-preview`, + `2025-05-01-preview`, } } \ No newline at end of file From 1eeebba6d57a0f94c4176fb45e91c89d07aa7a4e Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Mon, 3 Mar 2025 14:58:30 -0500 Subject: [PATCH 030/143] fix some more comments --- .../ai/Azure.AI.Unified/connections/routes.tsp | 4 ++-- specification/ai/Azure.AI.Unified/models/models.tsp | 5 ++++- specification/ai/Azure.AI.Unified/models/routes.tsp | 10 +++++----- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/connections/routes.tsp b/specification/ai/Azure.AI.Unified/connections/routes.tsp index 151ed3448ea3..80951fe2bc6a 100644 --- a/specification/ai/Azure.AI.Unified/connections/routes.tsp +++ b/specification/ai/Azure.AI.Unified/connections/routes.tsp @@ -52,10 +52,10 @@ interface Connections { { @doc("Specific type of connection to return in list") @query("$connectionType") - connectionType: string, + connectionType?: string, ...StandardListQueryParameters; }, PagedConnection >; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/models/models.tsp b/specification/ai/Azure.AI.Unified/models/models.tsp index 0ea159380118..16067e253c1b 100644 --- a/specification/ai/Azure.AI.Unified/models/models.tsp +++ b/specification/ai/Azure.AI.Unified/models/models.tsp @@ -46,6 +46,10 @@ model Model { @visibility("read") sku: Sku; + @doc("Name of the connection the model comes from") + @visibility("read") + connectionName?: string; + @doc("System data of the resource") @visibility("read") systemData: SystemData; @@ -70,4 +74,3 @@ model Sku { @doc("Sku tier") tier: string; } - diff --git a/specification/ai/Azure.AI.Unified/models/routes.tsp b/specification/ai/Azure.AI.Unified/models/routes.tsp index 79ed79654ab8..24c432d36177 100644 --- a/specification/ai/Azure.AI.Unified/models/routes.tsp +++ b/specification/ai/Azure.AI.Unified/models/routes.tsp @@ -40,15 +40,15 @@ interface Models { { @doc("Model publisher to filter models by") @query("$modelPublisher") - modelPublisher: string, + modelPublisher?: string, @doc("Model name (the publisher specific name) to filter models by") @query("$modelName") - modelName: string, + modelName?: string, - @doc("Flag to include models from connections in response. Accepted values are 'true' and 'false'") - @query("$includeConnectionModels") - includeConnectionModels: string, + @doc("Flag to include models from connections in response.") + @query("$includeConnectedModels") + includeConnectionModels?: boolean, ...StandardListQueryParameters; }, From 82ca70a2443e49955b2072b15fd59a0aba97b397 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Mon, 3 Mar 2025 15:41:03 -0500 Subject: [PATCH 031/143] fix up pending upload request names --- .../ai/Azure.AI.Unified/common/models.tsp | 49 +++---------------- .../Azure.AI.Unified/credentials/models.tsp | 7 +-- .../ai/Azure.AI.Unified/datasets/models.tsp | 6 --- 3 files changed, 12 insertions(+), 50 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/common/models.tsp b/specification/ai/Azure.AI.Unified/common/models.tsp index 48b358f42f70..0d8feec09a6a 100644 --- a/specification/ai/Azure.AI.Unified/common/models.tsp +++ b/specification/ai/Azure.AI.Unified/common/models.tsp @@ -2,6 +2,7 @@ import "@typespec/rest"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; import "@azure-tools/typespec-azure-resource-manager"; +import "../credentials/models.tsp"; using TypeSpec.Http; using TypeSpec.Versioning; @@ -251,27 +252,6 @@ model AssetBase { systemData?: SystemData; } -#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" -@doc("AssetContainer definition") -model AssetContainer { - @doc("The next auto incremental version") - @visibility("read") - nextVersion?: string; - - @doc("Key is label name, value is version.") - @visibility("read, update") - labels: Record; - - @doc("A unique identifier for the asset, assetId probably?") - @visibility("read") - id?: string; - - @doc("The name of the resource") - @visibility("read") - name?: string; -} - - #suppress "@azure-tools/typespec-providerhub/no-inline-model" "Need to create reponses correctly" alias ResourceCreatedResponse = TypeSpec.Http.Response<201> & T; @@ -318,43 +298,30 @@ alias OkResponse = TypeSpec.Http.Response<2 SAS, } - model PendingUploadRequestDto { + model PendingUploadRequest { /// If PendingUploadId is not provided, a random guid will be used. pendingUploadId?: string; /// TemporaryBlobReference is the only supported type. - pendingUploadType: PendingUploadType = PendingUploadType.TemporaryBlobReference; + pendingUploadType: PendingUploadType.TemporaryBlobReference; } - model PendingUploadResponseDto { + model PendingUploadResponse { /// Container-level read, write, list SAS. - blobReferenceForConsumption: BlobReferenceForConsumptionDto; + blobReferenceForConsumption: BlobReferenceForConsumption; /// ID for this upload request. pendingUploadId: string; /// TemporaryBlobReference is the only supported type. - pendingUploadType: PendingUploadType = PendingUploadType.TemporaryBlobReference; - } - - /// Use a discriminated union to represent the abstract credential DTO. - /// The “credentialType” property acts as the discriminator. - @discriminator("credentialType") - union PendingUploadCredentialDto = SASCredentialDto; - - model SASCredentialDto { - /// The credential type is always SAS. - credentialType: PendingUploadCredentialType = PendingUploadCredentialType.SAS; - /// Full SAS Uri, including the storage, container/blob path and SAS token. - /// (SwaggerSecret attribute from C# can be noted here as a comment or using a custom decorator if needed.) - sasUri: Uri; + pendingUploadType: PendingUploadType.TemporaryBlobReference; } - model BlobReferenceForConsumptionDto { + model BlobReferenceForConsumption { /// Blob URI path for client to upload data. /// Example: https://blob.windows.core.net/Container/Path blobUri: Uri; /// ARM ID of the storage account to use. storageAccountArmId: string; /// Credential info to access the storage account. - credential: PendingUploadCredentialDto; + credential: SasCredential; } @doc(""" diff --git a/specification/ai/Azure.AI.Unified/credentials/models.tsp b/specification/ai/Azure.AI.Unified/credentials/models.tsp index 7058d779a22f..27429d7f53e2 100644 --- a/specification/ai/Azure.AI.Unified/credentials/models.tsp +++ b/specification/ai/Azure.AI.Unified/credentials/models.tsp @@ -24,10 +24,8 @@ union CredentialType { @doc("Base Credential definition") @discriminator("type") model BaseCredential { - @doc("Credential name") + @doc("Type of credential. Possible values are: AAD, SAS, ApiKey") @visibility("read") - name: string; - type: CredentialType; } @@ -37,12 +35,14 @@ model ApiKeyCredential extends BaseCredential { @visibility("read") apiKey: string; + @visibility("read") type: CredentialType.ApiKey; } @doc("AAD Credential definition") model AadCredential extends BaseCredential { // No properties need to be stored for this case + @visibility("read") type: CredentialType.AAD; } @@ -52,5 +52,6 @@ model SasCredential extends BaseCredential { @visibility("read") sasToken: string; + @visibility("read") type: CredentialType.SAS; } diff --git a/specification/ai/Azure.AI.Unified/datasets/models.tsp b/specification/ai/Azure.AI.Unified/datasets/models.tsp index 2e6c257597f8..33b6bb182e65 100644 --- a/specification/ai/Azure.AI.Unified/datasets/models.tsp +++ b/specification/ai/Azure.AI.Unified/datasets/models.tsp @@ -16,12 +16,6 @@ using Azure.Core.Traits; namespace Azure.AI.Unified; -#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" -@doc("DataContainer Definition") -model DatasetContainer extends AssetContainer { - -} - @doc("Enum to determine the type of data.") union DatasetType { string, From 6547b93a277592b13e19b6677a719f6870a83700 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Mon, 3 Mar 2025 15:41:49 -0500 Subject: [PATCH 032/143] fix dataset route for pending upload --- specification/ai/Azure.AI.Unified/datasets/routes.tsp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/datasets/routes.tsp b/specification/ai/Azure.AI.Unified/datasets/routes.tsp index 21135ef2ef67..b09e5bfe8984 100644 --- a/specification/ai/Azure.AI.Unified/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Unified/datasets/routes.tsp @@ -131,6 +131,6 @@ interface Datasets { @doc("Pensing upload request.") @body - pendingUploadRequest: PendingUploadRequestDto - ): PendingUploadResponseDto; + pendingUploadRequest: PendingUploadRequest + ): PendingUploadResponse; } From 0d1be7afd27b64fdadab24b0b3911cd5fb6d0a61 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Mon, 3 Mar 2025 16:52:09 -0500 Subject: [PATCH 033/143] attempt to move to azure core operations for connection only --- .../Azure.AI.Unified/connections/routes.tsp | 62 +++++++------------ 1 file changed, 22 insertions(+), 40 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/connections/routes.tsp b/specification/ai/Azure.AI.Unified/connections/routes.tsp index 80951fe2bc6a..1ec082e29cab 100644 --- a/specification/ai/Azure.AI.Unified/connections/routes.tsp +++ b/specification/ai/Azure.AI.Unified/connections/routes.tsp @@ -13,49 +13,31 @@ using Azure.Core.Foundations; namespace Azure.AI.Unified; +alias ServiceTraits = SupportsClientRequestId & + SupportsRepeatableRequests & + SupportsConditionalRequests; + +alias ConnectionOperations = Azure.Core.ResourceOperations + +@route("/connections") interface Connections { - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" @doc("Get a connection by name.") - @route("/connections/{name}") - @get - get is Azure.Core.Foundations.Operation< - { - @doc("Name of the connection.") - @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") - @maxLength(254) - @path - name: string; - }, - Connection - >; + get is ConnectionOperations.ResourceRead; - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" @doc("Get connection with secrets by name.") - @route("/connections/{name}:getWithCredentials") - @post - getWithCredentials is Azure.Core.Foundations.Operation< - { - @doc("Name of the connection.") - @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") - @maxLength(254) - @path - name: string; - }, - Connection - >; + getWithCredentials is ConnectionOperations.ResourceAction + + + @doc("List all connections in the project") + list is ConnectionOperations.ResourceList< + Connection, + ListQueryParametersTrait< + { + @doc("Specific type of connection to return in list") + @query("$connectionCategory") + connectionCategory?: string, - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("List all connections in the project.") - @route("/connections") - @get - list is Azure.Core.Foundations.Operation< - { - @doc("Specific type of connection to return in list") - @query("$connectionType") - connectionType?: string, - - ...StandardListQueryParameters; - }, - PagedConnection + ...StandardListQueryParameters; + } + >; >; -} From 71c492dfc76c9661ff69e1e814d0690da3bd8642 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Mon, 3 Mar 2025 16:58:43 -0500 Subject: [PATCH 034/143] fix connections based on errors --- specification/ai/Azure.AI.Unified/connections/models.tsp | 2 ++ specification/ai/Azure.AI.Unified/connections/routes.tsp | 7 +++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/connections/models.tsp b/specification/ai/Azure.AI.Unified/connections/models.tsp index f704c45de3b6..7b56cd748f5e 100644 --- a/specification/ai/Azure.AI.Unified/connections/models.tsp +++ b/specification/ai/Azure.AI.Unified/connections/models.tsp @@ -16,6 +16,7 @@ using Azure.Core.Traits; namespace Azure.AI.Unified; @doc("Response from the listSecrets operation") +@resource("connections") model Connection { @doc("Fully qualified resource identifier") @visibility("read") @@ -23,6 +24,7 @@ model Connection { @doc("The name of the resource") @visibility("read") + @key("connectionName") name: string; @doc("Credential used to connect to the external resource.") diff --git a/specification/ai/Azure.AI.Unified/connections/routes.tsp b/specification/ai/Azure.AI.Unified/connections/routes.tsp index 1ec082e29cab..39d04db366f6 100644 --- a/specification/ai/Azure.AI.Unified/connections/routes.tsp +++ b/specification/ai/Azure.AI.Unified/connections/routes.tsp @@ -17,7 +17,7 @@ alias ServiceTraits = SupportsClientRequestId & SupportsRepeatableRequests & SupportsConditionalRequests; -alias ConnectionOperations = Azure.Core.ResourceOperations +alias ConnectionOperations = Azure.Core.ResourceOperations; @route("/connections") interface Connections { @@ -25,8 +25,7 @@ interface Connections { get is ConnectionOperations.ResourceRead; @doc("Get connection with secrets by name.") - getWithCredentials is ConnectionOperations.ResourceAction - + getWithCredentials is ConnectionOperations.ResourceAction; @doc("List all connections in the project") list is ConnectionOperations.ResourceList< @@ -39,5 +38,5 @@ interface Connections { ...StandardListQueryParameters; } - >; + >, >; From 39e24ae63d23e6925a750e9ae443d1d045973d2c Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Mon, 3 Mar 2025 17:07:14 -0500 Subject: [PATCH 035/143] attempt to fix credentials --- specification/ai/Azure.AI.Unified/connections/routes.tsp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/connections/routes.tsp b/specification/ai/Azure.AI.Unified/connections/routes.tsp index 39d04db366f6..0628d1705d1e 100644 --- a/specification/ai/Azure.AI.Unified/connections/routes.tsp +++ b/specification/ai/Azure.AI.Unified/connections/routes.tsp @@ -25,18 +25,17 @@ interface Connections { get is ConnectionOperations.ResourceRead; @doc("Get connection with secrets by name.") - getWithCredentials is ConnectionOperations.ResourceAction; + getWithCredentials is ConnectionOperations.ResourceAction; @doc("List all connections in the project") list is ConnectionOperations.ResourceList< Connection, - ListQueryParametersTrait< - { + ListQueryParametersTrait<{ @doc("Specific type of connection to return in list") @query("$connectionCategory") connectionCategory?: string, ...StandardListQueryParameters; - } - >, + }> >; +} From 6140053551afdd284c4d4f1bc4c6c04a40d713c8 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Mon, 3 Mar 2025 18:15:02 -0500 Subject: [PATCH 036/143] fix connections list with secrets route --- specification/ai/Azure.AI.Unified/connections/routes.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/ai/Azure.AI.Unified/connections/routes.tsp b/specification/ai/Azure.AI.Unified/connections/routes.tsp index 0628d1705d1e..9ab46c332c1d 100644 --- a/specification/ai/Azure.AI.Unified/connections/routes.tsp +++ b/specification/ai/Azure.AI.Unified/connections/routes.tsp @@ -25,7 +25,7 @@ interface Connections { get is ConnectionOperations.ResourceRead; @doc("Get connection with secrets by name.") - getWithCredentials is ConnectionOperations.ResourceAction; + getWithCredentials is ConnectionOperations.ResourceAction; @doc("List all connections in the project") list is ConnectionOperations.ResourceList< From b42737cb785088b18ca94923c12f5c7c1ed700fd Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Mon, 3 Mar 2025 18:15:58 -0500 Subject: [PATCH 037/143] remove @route decorator --- specification/ai/Azure.AI.Unified/connections/routes.tsp | 1 - 1 file changed, 1 deletion(-) diff --git a/specification/ai/Azure.AI.Unified/connections/routes.tsp b/specification/ai/Azure.AI.Unified/connections/routes.tsp index 9ab46c332c1d..67d842ffa0a9 100644 --- a/specification/ai/Azure.AI.Unified/connections/routes.tsp +++ b/specification/ai/Azure.AI.Unified/connections/routes.tsp @@ -19,7 +19,6 @@ alias ServiceTraits = SupportsClientRequestId & alias ConnectionOperations = Azure.Core.ResourceOperations; -@route("/connections") interface Connections { @doc("Get a connection by name.") get is ConnectionOperations.ResourceRead; From 07026b86588586ebfb110fb0f1ebbacad0a1d756 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Mon, 3 Mar 2025 18:22:28 -0500 Subject: [PATCH 038/143] make models into a resource --- .../ai/Azure.AI.Unified/models/models.tsp | 5 +- .../ai/Azure.AI.Unified/models/routes.tsp | 58 ++++++++----------- 2 files changed, 28 insertions(+), 35 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/models/models.tsp b/specification/ai/Azure.AI.Unified/models/models.tsp index 16067e253c1b..aa7811b5709b 100644 --- a/specification/ai/Azure.AI.Unified/models/models.tsp +++ b/specification/ai/Azure.AI.Unified/models/models.tsp @@ -15,12 +15,13 @@ using Azure.Core.Traits; namespace Azure.AI.Unified; -#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" @doc("Model Deployment Definition") +@resource("models") model Model { @doc("Name of the deployment for the model") @visibility("read") - name: string; + @key("deploymentName") + deploymentName: string; @doc("Publisher-specific name of the model") @visibility("read") diff --git a/specification/ai/Azure.AI.Unified/models/routes.tsp b/specification/ai/Azure.AI.Unified/models/routes.tsp index 24c432d36177..10537c06b3c9 100644 --- a/specification/ai/Azure.AI.Unified/models/routes.tsp +++ b/specification/ai/Azure.AI.Unified/models/routes.tsp @@ -16,43 +16,35 @@ using Azure.Core.Foundations; namespace Azure.AI.Unified; -interface Models { - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("Get a deployed model.") - @route("/models/{name}") - @get - get is Azure.Core.Foundations.Operation< - { - @doc("Name of the model container.") - @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") - @maxLength(254) - @path - name: string; - }, - Model - >; +alias ServiceTraits = SupportsClientRequestId & + SupportsRepeatableRequests & + SupportsConditionalRequests; - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("List all deployed models in the project.") - @route("/models") - @get - list is Azure.Core.Foundations.Operation< - { - @doc("Model publisher to filter models by") - @query("$modelPublisher") - modelPublisher?: string, +alias ModelOperations = Azure.Core.ResourceOperations; - @doc("Model name (the publisher specific name) to filter models by") - @query("$modelName") - modelName?: string, +interface Models { - @doc("Flag to include models from connections in response.") - @query("$includeConnectedModels") - includeConnectionModels?: boolean, + @doc("Get a deployed model.") + get is ModelOperations.ResourceRead - ...StandardListQueryParameters; - }, - Model + @doc("List all deployed models in the project") + list is ModelOperations.ResourceList< + Model, + ListQueryParametersTrait<{ + @doc("Model publisher to filter models by") + @query("$modelPublisher") + modelPublisher?: string, + + @doc("Model name (the publisher specific name) to filter models by") + @query("$modelName") + modelName?: string, + + @doc("Flag to include models from connections in response.") + @query("$includeConnectedModels") + includeConnectionModels?: boolean, + + ...StandardListQueryParameters; + }>, >; @doc(""" From c7ab298973e773548520b3fa882baa1e89ff5f65 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Mon, 3 Mar 2025 18:25:08 -0500 Subject: [PATCH 039/143] remove connection paged response --- .../ai/Azure.AI.Unified/connections/models.tsp | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/connections/models.tsp b/specification/ai/Azure.AI.Unified/connections/models.tsp index 7b56cd748f5e..2246737f6f1a 100644 --- a/specification/ai/Azure.AI.Unified/connections/models.tsp +++ b/specification/ai/Azure.AI.Unified/connections/models.tsp @@ -40,19 +40,6 @@ model Connection { target: string; } -@doc("Paged collection of ModelVersion items.") -@pagedResult -model PagedConnection { - @doc("The list of connections.") - @extension("x-ms-identifiers", []) - @items - value: Connection[]; - - @doc("The link to the next page of items") - @nextLink - nextLink?: ResourceLocation; -} - // https://learn.microsoft.com/rest/api/azureml/workspace-connections/list-secrets?view=rest-azureml-2024-04-01&tabs=HTTP#ConnectionType @doc("The Type (or category) of the connection") union ConnectionCategory { From b717a1f6477df57a9ba81c971b68af36bd572619 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Mon, 3 Mar 2025 18:38:49 -0500 Subject: [PATCH 040/143] fix up some issues --- specification/ai/Azure.AI.Unified/connections/routes.tsp | 4 ++-- specification/ai/Azure.AI.Unified/models/routes.tsp | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/connections/routes.tsp b/specification/ai/Azure.AI.Unified/connections/routes.tsp index 67d842ffa0a9..d91e3b5aa796 100644 --- a/specification/ai/Azure.AI.Unified/connections/routes.tsp +++ b/specification/ai/Azure.AI.Unified/connections/routes.tsp @@ -13,11 +13,11 @@ using Azure.Core.Foundations; namespace Azure.AI.Unified; -alias ServiceTraits = SupportsClientRequestId & +alias ConnectionServiceTraits = SupportsClientRequestId & SupportsRepeatableRequests & SupportsConditionalRequests; -alias ConnectionOperations = Azure.Core.ResourceOperations; +alias ConnectionOperations = Azure.Core.ResourceOperations; interface Connections { @doc("Get a connection by name.") diff --git a/specification/ai/Azure.AI.Unified/models/routes.tsp b/specification/ai/Azure.AI.Unified/models/routes.tsp index 10537c06b3c9..358dfcf64b44 100644 --- a/specification/ai/Azure.AI.Unified/models/routes.tsp +++ b/specification/ai/Azure.AI.Unified/models/routes.tsp @@ -16,16 +16,16 @@ using Azure.Core.Foundations; namespace Azure.AI.Unified; -alias ServiceTraits = SupportsClientRequestId & +alias ModelServiceTraits = SupportsClientRequestId & SupportsRepeatableRequests & SupportsConditionalRequests; -alias ModelOperations = Azure.Core.ResourceOperations; +alias ModelOperations = Azure.Core.ResourceOperations; interface Models { @doc("Get a deployed model.") - get is ModelOperations.ResourceRead + get is ModelOperations.ResourceRead; @doc("List all deployed models in the project") list is ModelOperations.ResourceList< From 23361ff323a9c7c7c7dd8386059a6ef78ed74c24 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Wed, 5 Mar 2025 17:48:10 -0500 Subject: [PATCH 041/143] update index with latest spec --- .../ai/Azure.AI.Unified/indexes/models.tsp | 76 +++++++++---------- .../ai/Azure.AI.Unified/indexes/routes.tsp | 35 ++++++++- 2 files changed, 67 insertions(+), 44 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/indexes/models.tsp b/specification/ai/Azure.AI.Unified/indexes/models.tsp index 28f44c38b5d2..a87360dbab33 100644 --- a/specification/ai/Azure.AI.Unified/indexes/models.tsp +++ b/specification/ai/Azure.AI.Unified/indexes/models.tsp @@ -14,39 +14,11 @@ using Azure.Core.Traits; namespace Azure.AI.Unified; -@doc("AssetVersion Definition") -model AssetVersion { - @doc("Fully qualified resource Id: azureml://workspace/{workspaceName}/indexes/{name}/versions/{version} of the index.") - @visibility("read") - id: string; - - @doc("Update stage to 'Archive' to archive the asset. Default is Development, which means the asset is under development.") - stage?: string = "Development"; - - @doc("Description information of the asset.") - description?: string; - - @doc("Metadata containing createdBy and modifiedBy information.") - @visibility("read") - systemData?: SystemData; - - @doc("Asset's tags. Unlike properties, tags are fully mutable.") - tags?: Record; - - @doc("Asset's properties. Unlike tags, properties are add-only. Once added, a property cannot be removed.") - properties?: Record; -} - @doc("Index resource Definition") -model Index is AssetVersion { - @doc("Index configuration") - indexConfiguration: IndexConfiguration; - - @doc("Embedding configuration") - embeddingConfiguration: EmbeddingConfiguration; - +@discriminator("indexType") +model Index extends AssetBase { @doc("Type of index") - indexType: IndexType + indexType: IndexType; } @doc("Paged collection of IndexVersion items.") @@ -62,23 +34,43 @@ model PagedIndex { nextLink?: ResourceLocation; } +@doc("Azure AI Search Index Definition") +model AzureAISearchIndex extends AssetBase { + @doc("Type of index") + indexType: IndexType.azureSearch; -@doc("Index configuration class") -model IndexConfiguration { - @doc("Connection id of indexing service") + @doc("Connection id to Azure AI Search") connectionId: string; - @doc("Name of database") + @doc("Name of index in Azure AI Search resource to attach") + indexName: string; +} + +@doc("Managed Azure AI Search Index Definition") +model ManagedAzureAISearchIndex extends AssetBase { + @doc("Type of index") + indexType: IndexType.managedAzureSearch; + + @doc("Vector store id of managed index") + vectorStoreId: string; +} + +@doc("CosmosDB Vector Store Index Definition") +model ManagedAzureAISearchIndex extends AssetBase { + @doc("Type of index") + indexType: IndexType.cosmosDB; + + @doc("Connection id to CosmosDB") + connectionId: string; + + @doc("Name of the CosmosDB Database") databaseName: string; - @doc("Name of container") + @doc("Name of CosmosDB Container") containerName: string; - @doc("Name of index") - indexName: string; - - @doc("Vector store id") - vectorStoreId: string; + @doc("Embedding model configuration") + embeddingConfiguration: EmbeddingConfiguration; } @doc("Embedding configuration class") @@ -100,7 +92,7 @@ union IndexType { azureSearch: "AzureSearch", @doc("CosmosDB") - cosmosDB: "CosmosDB", + cosmosDB: "CosmosDBNoSqlVectorStore", @doc("Managed Azure Search") managedAzureSearch: "ManagedAzureSearch", diff --git a/specification/ai/Azure.AI.Unified/indexes/routes.tsp b/specification/ai/Azure.AI.Unified/indexes/routes.tsp index 6a781fb9686d..2db3ec62b91e 100644 --- a/specification/ai/Azure.AI.Unified/indexes/routes.tsp +++ b/specification/ai/Azure.AI.Unified/indexes/routes.tsp @@ -14,6 +14,21 @@ using Azure.Core.Foundations; namespace Azure.AI.Unified; interface Indexes { + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("List latest version of each dataset in a project.") + @route("/indexes") + @get + listLatestIndexes( + @doc("Continuation token for pagination. This is the nextLink from the previous response.") + @query("$continuationToken") + $continuationToken?: string, + + @doc("View type for including/excluding (for example) archived entities.") + @query("listViewType") + listViewType?: ListViewType, + ): PagedDatasetVersion; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Waiting for bug fix: https://github.com/Azure/typespec-azure-pr/issues/3739." @doc("Get a specific version of an Index.") @route("/indexes/{name}/versions/{version}") @@ -60,7 +75,7 @@ interface Indexes { @doc("List the versions of an Index given the name.") @route("/indexes/{name}/versions") @get - list is Azure.Core.Foundations.Operation< + listIndexVersions is Azure.Core.Foundations.Operation< { @doc("Name of the index.") @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") @@ -88,4 +103,20 @@ interface Indexes { }, PagedIndex >; -} \ No newline at end of file + + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("Delete version.") + @route("/indexes/{name}/versions/{version}") + @delete + deleteVersion( + @doc("Container name.") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$") + @path + name: string, + + @doc("Version identifier.") + @path + version: string, + ): void; +} From 459530a82e8ed5b447d0a78de0e8d55610842c3b Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Wed, 5 Mar 2025 17:59:00 -0500 Subject: [PATCH 042/143] fix duped names --- specification/ai/Azure.AI.Unified/indexes/models.tsp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/indexes/models.tsp b/specification/ai/Azure.AI.Unified/indexes/models.tsp index a87360dbab33..1811a2204738 100644 --- a/specification/ai/Azure.AI.Unified/indexes/models.tsp +++ b/specification/ai/Azure.AI.Unified/indexes/models.tsp @@ -16,7 +16,7 @@ namespace Azure.AI.Unified; @doc("Index resource Definition") @discriminator("indexType") -model Index extends AssetBase { +model IndexVersion extends AssetBase { @doc("Type of index") indexType: IndexType; } @@ -35,7 +35,7 @@ model PagedIndex { } @doc("Azure AI Search Index Definition") -model AzureAISearchIndex extends AssetBase { +model AzureAISearchIndex extends IndexVersion { @doc("Type of index") indexType: IndexType.azureSearch; @@ -47,7 +47,7 @@ model AzureAISearchIndex extends AssetBase { } @doc("Managed Azure AI Search Index Definition") -model ManagedAzureAISearchIndex extends AssetBase { +model ManagedAzureAISearchIndex extends IndexVersion { @doc("Type of index") indexType: IndexType.managedAzureSearch; @@ -56,7 +56,7 @@ model ManagedAzureAISearchIndex extends AssetBase { } @doc("CosmosDB Vector Store Index Definition") -model ManagedAzureAISearchIndex extends AssetBase { +model CosmosDBIndex extends AssetBase { @doc("Type of index") indexType: IndexType.cosmosDB; From cf4b9b85134165e843149333d72b98d53e1054be Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Wed, 5 Mar 2025 18:04:42 -0500 Subject: [PATCH 043/143] fix thing --- specification/ai/Azure.AI.Unified/indexes/models.tsp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/indexes/models.tsp b/specification/ai/Azure.AI.Unified/indexes/models.tsp index 1811a2204738..d14fb058cfb3 100644 --- a/specification/ai/Azure.AI.Unified/indexes/models.tsp +++ b/specification/ai/Azure.AI.Unified/indexes/models.tsp @@ -16,12 +16,12 @@ namespace Azure.AI.Unified; @doc("Index resource Definition") @discriminator("indexType") -model IndexVersion extends AssetBase { +model Index extends AssetBase { @doc("Type of index") indexType: IndexType; } -@doc("Paged collection of IndexVersion items.") +@doc("Paged collection of Index items.") @pagedResult model PagedIndex { @doc("The list of Indexes.") @@ -35,7 +35,7 @@ model PagedIndex { } @doc("Azure AI Search Index Definition") -model AzureAISearchIndex extends IndexVersion { +model AzureAISearchIndex extends Index { @doc("Type of index") indexType: IndexType.azureSearch; @@ -47,7 +47,7 @@ model AzureAISearchIndex extends IndexVersion { } @doc("Managed Azure AI Search Index Definition") -model ManagedAzureAISearchIndex extends IndexVersion { +model ManagedAzureAISearchIndex extends Index { @doc("Type of index") indexType: IndexType.managedAzureSearch; From 6a6c0619787e4fc3287aac08e6521ef09be4a256 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Wed, 5 Mar 2025 19:12:23 -0500 Subject: [PATCH 044/143] connection id is optional for embedding --- specification/ai/Azure.AI.Unified/indexes/models.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/ai/Azure.AI.Unified/indexes/models.tsp b/specification/ai/Azure.AI.Unified/indexes/models.tsp index d14fb058cfb3..d1d586d1ab9d 100644 --- a/specification/ai/Azure.AI.Unified/indexes/models.tsp +++ b/specification/ai/Azure.AI.Unified/indexes/models.tsp @@ -76,7 +76,7 @@ model CosmosDBIndex extends AssetBase { @doc("Embedding configuration class") model EmbeddingConfiguration { @doc("Connection id to embedding model") - connectionId: string; + connectionId?: string; @doc("Deployment name of embedding model") deploymentName: string; From ef6206df47cef033537e7a2b2e00f2f1cd24004b Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Thu, 6 Mar 2025 11:08:01 -0500 Subject: [PATCH 045/143] change index create to POST, add cosmosdb as connection type --- .../ai/Azure.AI.Unified/connections/models.tsp | 3 +++ .../ai/Azure.AI.Unified/connections/routes.tsp | 2 +- specification/ai/Azure.AI.Unified/indexes/routes.tsp | 10 +++------- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/connections/models.tsp b/specification/ai/Azure.AI.Unified/connections/models.tsp index 2246737f6f1a..ba5646a72956 100644 --- a/specification/ai/Azure.AI.Unified/connections/models.tsp +++ b/specification/ai/Azure.AI.Unified/connections/models.tsp @@ -54,6 +54,9 @@ union ConnectionCategory { @doc("Azure AI Search") AzureAISearch: "CognitiveSearch", + @doc("CosmosDB"): + CosmosDB: "CosmosDB", + @doc("Generic connection that uses API Key authentication") APIKey: "ApiKey", } diff --git a/specification/ai/Azure.AI.Unified/connections/routes.tsp b/specification/ai/Azure.AI.Unified/connections/routes.tsp index d91e3b5aa796..f507ef0ce27d 100644 --- a/specification/ai/Azure.AI.Unified/connections/routes.tsp +++ b/specification/ai/Azure.AI.Unified/connections/routes.tsp @@ -32,7 +32,7 @@ interface Connections { ListQueryParametersTrait<{ @doc("Specific type of connection to return in list") @query("$connectionCategory") - connectionCategory?: string, + connectionCategory?: ConnectionCategory, ...StandardListQueryParameters; }> diff --git a/specification/ai/Azure.AI.Unified/indexes/routes.tsp b/specification/ai/Azure.AI.Unified/indexes/routes.tsp index 2db3ec62b91e..f768d9f26eee 100644 --- a/specification/ai/Azure.AI.Unified/indexes/routes.tsp +++ b/specification/ai/Azure.AI.Unified/indexes/routes.tsp @@ -50,9 +50,9 @@ interface Indexes { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Waiting for bug fix: https://github.com/Azure/typespec-azure-pr/issues/3739." @doc("Creates or updates a IndexVersion.") - @route("/indexes/{name}/versions/{version}") - @put - createOrUpdate is Azure.Core.Foundations.Operation< + @route("/indexes/{name}:create") + @post + createIndex is Azure.Core.Foundations.Operation< { @doc("Name of the index.") @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") @@ -60,10 +60,6 @@ interface Indexes { @path name: string; - @doc("Version of the index.") - @path - version: string; - @doc("Properties of an Index Version.") @bodyRoot body: Index; From cf6afcbc904ff9c32a925c22d55577f095263a41 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Thu, 6 Mar 2025 12:01:57 -0500 Subject: [PATCH 046/143] fix tsp error --- specification/ai/Azure.AI.Unified/connections/models.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/ai/Azure.AI.Unified/connections/models.tsp b/specification/ai/Azure.AI.Unified/connections/models.tsp index ba5646a72956..ca3674216d57 100644 --- a/specification/ai/Azure.AI.Unified/connections/models.tsp +++ b/specification/ai/Azure.AI.Unified/connections/models.tsp @@ -54,7 +54,7 @@ union ConnectionCategory { @doc("Azure AI Search") AzureAISearch: "CognitiveSearch", - @doc("CosmosDB"): + @doc("CosmosDB") CosmosDB: "CosmosDB", @doc("Generic connection that uses API Key authentication") From 9c7951a015d48a2ccddad5ab6611f471b04b5242 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Mon, 10 Mar 2025 22:23:38 -0700 Subject: [PATCH 047/143] First --- .../Azure.AI.Unified/agents/common/models.tsp | 2 +- .../Azure.AI.Unified/agents/files/models.tsp | 2 +- .../Azure.AI.Unified/agents/files/routes.tsp | 2 +- .../ai/Azure.AI.Unified/agents/main.tsp | 2 +- .../agents/messages/routes.tsp | 2 +- .../ai/Azure.AI.Unified/agents/models.tsp | 2 +- .../ai/Azure.AI.Unified/agents/routes.tsp | 2 +- .../agents/run_steps/models.tsp | 2 +- .../agents/run_steps/routes.tsp | 2 +- .../Azure.AI.Unified/agents/runs/models.tsp | 2 +- .../Azure.AI.Unified/agents/runs/routes.tsp | 2 +- .../agents/streaming/events.tsp | 2 +- .../agents/threads/models.tsp | 2 +- .../agents/threads/routes.tsp | 2 +- .../Azure.AI.Unified/agents/tools/models.tsp | 2 +- .../agents/tools/tool_resources.tsp | 2 +- .../agents/vector_stores/common/main.tsp | 2 +- .../vector_stores/file_batches/models.tsp | 2 +- .../vector_stores/file_batches/routes.tsp | 2 +- .../agents/vector_stores/files/models.tsp | 2 +- .../agents/vector_stores/files/routes.tsp | 2 +- .../agents/vector_stores/main.tsp | 2 +- .../agents/vector_stores/models.tsp | 2 +- .../agents/vector_stores/routes.tsp | 2 +- specification/ai/Azure.AI.Unified/client.tsp | 4 +- .../ai/Azure.AI.Unified/common/models.tsp | 133 +++++++++--------- .../Azure.AI.Unified/connections/routes.tsp | 16 ++- .../ai/Azure.AI.Unified/datasets/models.tsp | 1 - .../ai/Azure.AI.Unified/datasets/routes.tsp | 2 +- .../ai/Azure.AI.Unified/indexes/models.tsp | 2 +- specification/ai/Azure.AI.Unified/main.tsp | 2 +- .../models/chat_completions.tsp | 2 +- .../ai/Azure.AI.Unified/models/embeddings.tsp | 2 +- .../ai/Azure.AI.Unified/models/models.tsp | 1 - .../ai/Azure.AI.Unified/models/routes.tsp | 45 +++--- .../ai/Azure.AI.Unified/tspconfig.yaml | 28 +++- 36 files changed, 156 insertions(+), 130 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/agents/common/models.tsp b/specification/ai/Azure.AI.Unified/agents/common/models.tsp index c3c9aea4c698..2edfd150ca14 100644 --- a/specification/ai/Azure.AI.Unified/agents/common/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/common/models.tsp @@ -173,4 +173,4 @@ model ResponseFormatJsonSchema { /** The JSON schema object, describing the response format. */ schema: unknown; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/files/models.tsp b/specification/ai/Azure.AI.Unified/agents/files/models.tsp index 5d96c272c21a..db9f82ffd124 100644 --- a/specification/ai/Azure.AI.Unified/agents/files/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/files/models.tsp @@ -118,4 +118,4 @@ model FileDeletionStatus { @doc("The object type, which is always 'file'.") object: "file"; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/files/routes.tsp b/specification/ai/Azure.AI.Unified/agents/files/routes.tsp index c690bb48b8c6..1ec65732cee1 100644 --- a/specification/ai/Azure.AI.Unified/agents/files/routes.tsp +++ b/specification/ai/Azure.AI.Unified/agents/files/routes.tsp @@ -119,4 +119,4 @@ op getFileContent is Azure.Core.Foundations.Operation< fileId: string; }, bytes ->; \ No newline at end of file +>; diff --git a/specification/ai/Azure.AI.Unified/agents/main.tsp b/specification/ai/Azure.AI.Unified/agents/main.tsp index ab251fd3b5d9..3b662be82ec5 100644 --- a/specification/ai/Azure.AI.Unified/agents/main.tsp +++ b/specification/ai/Azure.AI.Unified/agents/main.tsp @@ -1,2 +1,2 @@ import "./models.tsp"; -import "./routes.tsp"; \ No newline at end of file +import "./routes.tsp"; diff --git a/specification/ai/Azure.AI.Unified/agents/messages/routes.tsp b/specification/ai/Azure.AI.Unified/agents/messages/routes.tsp index 39d81cdfba74..c17c4c833bd5 100644 --- a/specification/ai/Azure.AI.Unified/agents/messages/routes.tsp +++ b/specification/ai/Azure.AI.Unified/agents/messages/routes.tsp @@ -116,4 +116,4 @@ op updateMessage is Azure.Core.Foundations.Operation< ...OptionalNullableMetadata; }, ThreadMessage ->; \ No newline at end of file +>; diff --git a/specification/ai/Azure.AI.Unified/agents/models.tsp b/specification/ai/Azure.AI.Unified/agents/models.tsp index a0b3fbdc9254..9989f3982a26 100644 --- a/specification/ai/Azure.AI.Unified/agents/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/models.tsp @@ -201,4 +201,4 @@ model AgentDeletionStatus { @doc("The object type, which is always 'assistant.deleted'.") object: "assistant.deleted"; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/routes.tsp b/specification/ai/Azure.AI.Unified/agents/routes.tsp index b0dd99fb2c86..52e7eb551296 100644 --- a/specification/ai/Azure.AI.Unified/agents/routes.tsp +++ b/specification/ai/Azure.AI.Unified/agents/routes.tsp @@ -108,4 +108,4 @@ op deleteAgent is Azure.Core.Foundations.Operation< assistantId: string; }, AgentDeletionStatus ->; \ No newline at end of file +>; diff --git a/specification/ai/Azure.AI.Unified/agents/run_steps/models.tsp b/specification/ai/Azure.AI.Unified/agents/run_steps/models.tsp index 3c547e6c23d9..05d5a1b920c3 100644 --- a/specification/ai/Azure.AI.Unified/agents/run_steps/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/run_steps/models.tsp @@ -348,4 +348,4 @@ union RunAdditionalFieldList { /** File search result content. */ FileSearchContents: "step_details.tool_calls[*].file_search.results[*].content", -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/run_steps/routes.tsp b/specification/ai/Azure.AI.Unified/agents/run_steps/routes.tsp index 743e355a7a0c..b9d57a3308b2 100644 --- a/specification/ai/Azure.AI.Unified/agents/run_steps/routes.tsp +++ b/specification/ai/Azure.AI.Unified/agents/run_steps/routes.tsp @@ -82,4 +82,4 @@ op listRunSteps is Azure.Core.Foundations.Operation< ...OpenAIListRequestOptions; }, OpenAIPageableListOf ->; \ No newline at end of file +>; diff --git a/specification/ai/Azure.AI.Unified/agents/runs/models.tsp b/specification/ai/Azure.AI.Unified/agents/runs/models.tsp index 5e11df419c11..76a42774636d 100644 --- a/specification/ai/Azure.AI.Unified/agents/runs/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/runs/models.tsp @@ -479,4 +479,4 @@ union TruncationStrategy { /** The thread will truncate to the `lastMessages` count of recent messages. */ lastMessages: "last_messages", -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/runs/routes.tsp b/specification/ai/Azure.AI.Unified/agents/runs/routes.tsp index 0ec24a265087..a2e9f80695aa 100644 --- a/specification/ai/Azure.AI.Unified/agents/runs/routes.tsp +++ b/specification/ai/Azure.AI.Unified/agents/runs/routes.tsp @@ -202,4 +202,4 @@ op createThreadAndRun is Azure.Core.Foundations.Operation< ...CreateAndRunThreadOptions; }, ThreadRun ->; \ No newline at end of file +>; diff --git a/specification/ai/Azure.AI.Unified/agents/streaming/events.tsp b/specification/ai/Azure.AI.Unified/agents/streaming/events.tsp index cf460b631d00..832477649fdb 100644 --- a/specification/ai/Azure.AI.Unified/agents/streaming/events.tsp +++ b/specification/ai/Azure.AI.Unified/agents/streaming/events.tsp @@ -136,4 +136,4 @@ union DoneEvent { /** Event sent when the stream is done. */ Done: "done", -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/threads/models.tsp b/specification/ai/Azure.AI.Unified/agents/threads/models.tsp index f2d1b9217683..066f01f831dd 100644 --- a/specification/ai/Azure.AI.Unified/agents/threads/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/threads/models.tsp @@ -75,4 +75,4 @@ model ThreadDeletionStatus { @doc("The object type, which is always 'thread.deleted'.") object: "thread.deleted"; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/threads/routes.tsp b/specification/ai/Azure.AI.Unified/agents/threads/routes.tsp index bdf3e2a23244..edaa0fae93df 100644 --- a/specification/ai/Azure.AI.Unified/agents/threads/routes.tsp +++ b/specification/ai/Azure.AI.Unified/agents/threads/routes.tsp @@ -92,4 +92,4 @@ op deleteThread is Azure.Core.Foundations.Operation< threadId: string; }, ThreadDeletionStatus ->; \ No newline at end of file +>; diff --git a/specification/ai/Azure.AI.Unified/agents/tools/models.tsp b/specification/ai/Azure.AI.Unified/agents/tools/models.tsp index 7e1a2a129c40..fd839e35a592 100644 --- a/specification/ai/Azure.AI.Unified/agents/tools/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/tools/models.tsp @@ -593,4 +593,4 @@ model AzureFunctionStorageQueue { @doc("The name of an Azure function storage queue.") @encodedName("application/json", "queue_name") queueName: string; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/tools/tool_resources.tsp b/specification/ai/Azure.AI.Unified/agents/tools/tool_resources.tsp index 482af7b79ee5..66ab55adaf0a 100644 --- a/specification/ai/Azure.AI.Unified/agents/tools/tool_resources.tsp +++ b/specification/ai/Azure.AI.Unified/agents/tools/tool_resources.tsp @@ -217,4 +217,4 @@ model UpdateFileSearchToolResourceOptions { @maxItems(1) @encodedName("application/json", "vector_store_ids") vectorStoreIds?: string[]; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/common/main.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/common/main.tsp index 9d5abbffb2ed..ed9713a2d910 100644 --- a/specification/ai/Azure.AI.Unified/agents/vector_stores/common/main.tsp +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/common/main.tsp @@ -140,4 +140,4 @@ model VectorStoreConfigurations { /** Configurations */ @encodedName("application/json", "configuration") storeConfiguration: VectorStoreConfiguration; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/models.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/models.tsp index cda03742378f..ce64405248f1 100644 --- a/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/models.tsp @@ -42,4 +42,4 @@ model VectorStoreFileBatch { /** Files count grouped by status processed or being processed by this vector store. */ @encodedName("application/json", "file_counts") fileCounts: VectorStoreFileCount; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/routes.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/routes.tsp index 2fc183c36bfb..19246a6a3b34 100644 --- a/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/routes.tsp +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/routes.tsp @@ -119,4 +119,4 @@ op listVectorStoreFileBatchFiles is Azure.Core.Foundations.Operation< ...OpenAIListRequestOptions; }, OpenAIPageableListOf ->; \ No newline at end of file +>; diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/files/models.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/files/models.tsp index e743316572a1..f7455045d144 100644 --- a/specification/ai/Azure.AI.Unified/agents/vector_stores/files/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/files/models.tsp @@ -103,4 +103,4 @@ model VectorStoreFileDeletionStatus { /** The object type, which is always 'vector_store.deleted'. */ object: "vector_store.file.deleted"; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/files/routes.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/files/routes.tsp index 28f9540129b7..2270e7c4179d 100644 --- a/specification/ai/Azure.AI.Unified/agents/vector_stores/files/routes.tsp +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/files/routes.tsp @@ -111,4 +111,4 @@ op deleteVectorStoreFile is Azure.Core.Foundations.Operation< fileId: string; }, VectorStoreFileDeletionStatus ->; \ No newline at end of file +>; diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/main.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/main.tsp index 1c683b0cf5a0..3f4e26565998 100644 --- a/specification/ai/Azure.AI.Unified/agents/vector_stores/main.tsp +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/main.tsp @@ -3,4 +3,4 @@ import "./routes.tsp"; import "./common/main.tsp"; import "./files/main.tsp"; -import "./file_batches/main.tsp"; \ No newline at end of file +import "./file_batches/main.tsp"; diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/models.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/models.tsp index 5864c32a7ffa..70f85557d83d 100644 --- a/specification/ai/Azure.AI.Unified/agents/vector_stores/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/models.tsp @@ -158,4 +158,4 @@ model VectorStoreDeletionStatus { /** The object type, which is always 'vector_store.deleted'. */ object: "vector_store.deleted"; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/routes.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/routes.tsp index 2967d9cf1a68..37939ca26688 100644 --- a/specification/ai/Azure.AI.Unified/agents/vector_stores/routes.tsp +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/routes.tsp @@ -102,4 +102,4 @@ op deleteVectorStore is Azure.Core.Foundations.Operation< vectorStoreId: string; }, VectorStoreDeletionStatus ->; \ No newline at end of file +>; diff --git a/specification/ai/Azure.AI.Unified/client.tsp b/specification/ai/Azure.AI.Unified/client.tsp index 086e21510069..1428265619ad 100644 --- a/specification/ai/Azure.AI.Unified/client.tsp +++ b/specification/ai/Azure.AI.Unified/client.tsp @@ -1,4 +1,6 @@ import "@azure-tools/typespec-client-generator-core"; import "./main.tsp"; -using Azure.ClientGenerator.Core; \ No newline at end of file +using Azure.ClientGenerator.Core; + +@@clientName(Azure.AI.Projects, "AIProjectClient"); diff --git a/specification/ai/Azure.AI.Unified/common/models.tsp b/specification/ai/Azure.AI.Unified/common/models.tsp index 0d8feec09a6a..eb3f6dd09a95 100644 --- a/specification/ai/Azure.AI.Unified/common/models.tsp +++ b/specification/ai/Azure.AI.Unified/common/models.tsp @@ -224,7 +224,7 @@ model OutputPathAssetReference extends AssetReferenceBase { #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" @doc("Base definition for an asset.") -model AssetBase { +model AssetBase { @doc("Asset stage") @visibility("read", "create", "update") stage?: string; @@ -260,69 +260,74 @@ alias ResourceCreatedResponse = TypeSpec.Ht alias OkResponse = TypeSpec.Http.Response<200> & T; - alias AdditionalInferenceRequestHeaders = { - @doc(""" - Controls what happens if extra parameters, undefined by the REST API, - are passed in the JSON request payload. - This sets the HTTP request header `extra-parameters`. - """) - @header("extra-parameters") - extra_params?: ExtraParameters; - }; - - @doc("Controls what happens if extra parameters, undefined by the REST API, are passed in the JSON request payload.") - union ExtraParameters { - string, - - @doc("The service will error if it detected extra parameters in the request payload. This is the service default.") - error: "error", - - @doc("The service will ignore (drop) extra parameters in the request payload. It will only pass the known parameters to the back-end AI model.") - drop: "drop", - - @doc("The service will pass extra parameters to the back-end AI model.") - pass_through: "pass-through", - } - - // Pending upload spec - - // Define a URI alias for clarity. - alias Uri = string; - - enum PendingUploadType { - None, - TemporaryBlobReference, - } - - enum PendingUploadCredentialType { - SAS, - } - - model PendingUploadRequest { - /// If PendingUploadId is not provided, a random guid will be used. - pendingUploadId?: string; - /// TemporaryBlobReference is the only supported type. - pendingUploadType: PendingUploadType.TemporaryBlobReference; - } - - model PendingUploadResponse { - /// Container-level read, write, list SAS. - blobReferenceForConsumption: BlobReferenceForConsumption; - /// ID for this upload request. - pendingUploadId: string; - /// TemporaryBlobReference is the only supported type. - pendingUploadType: PendingUploadType.TemporaryBlobReference; - } - - model BlobReferenceForConsumption { - /// Blob URI path for client to upload data. - /// Example: https://blob.windows.core.net/Container/Path - blobUri: Uri; - /// ARM ID of the storage account to use. - storageAccountArmId: string; - /// Credential info to access the storage account. - credential: SasCredential; - } +alias AdditionalInferenceRequestHeaders = { + @doc(""" + Controls what happens if extra parameters, undefined by the REST API, + are passed in the JSON request payload. + This sets the HTTP request header `extra-parameters`. + """) + @header("extra-parameters") + extra_params?: ExtraParameters; +}; + +@doc("Controls what happens if extra parameters, undefined by the REST API, are passed in the JSON request payload.") +union ExtraParameters { + string, + + @doc("The service will error if it detected extra parameters in the request payload. This is the service default.") + error: "error", + + @doc("The service will ignore (drop) extra parameters in the request payload. It will only pass the known parameters to the back-end AI model.") + drop: "drop", + + @doc("The service will pass extra parameters to the back-end AI model.") + pass_through: "pass-through", +} + +// Pending upload spec + +// Define a URI alias for clarity. +alias Uri = string; + +enum PendingUploadType { + None, + TemporaryBlobReference, +} + +enum PendingUploadCredentialType { + SAS, +} + +model PendingUploadRequest { + /// If PendingUploadId is not provided, a random guid will be used. + pendingUploadId?: string; + + /// TemporaryBlobReference is the only supported type. + pendingUploadType: PendingUploadType.TemporaryBlobReference; +} + +model PendingUploadResponse { + /// Container-level read, write, list SAS. + blobReferenceForConsumption: BlobReferenceForConsumption; + + /// ID for this upload request. + pendingUploadId: string; + + /// TemporaryBlobReference is the only supported type. + pendingUploadType: PendingUploadType.TemporaryBlobReference; +} + +model BlobReferenceForConsumption { + /// Blob URI path for client to upload data. + /// Example: https://blob.windows.core.net/Container/Path + blobUri: Uri; + + /// ARM ID of the storage account to use. + storageAccountArmId: string; + + /// Credential info to access the storage account. + credential: SasCredential; +} @doc(""" The definition of a caller-specified function that chat completions may invoke in response to matching user input. diff --git a/specification/ai/Azure.AI.Unified/connections/routes.tsp b/specification/ai/Azure.AI.Unified/connections/routes.tsp index f507ef0ce27d..e2cd14716029 100644 --- a/specification/ai/Azure.AI.Unified/connections/routes.tsp +++ b/specification/ai/Azure.AI.Unified/connections/routes.tsp @@ -24,17 +24,21 @@ interface Connections { get is ConnectionOperations.ResourceRead; @doc("Get connection with secrets by name.") - getWithCredentials is ConnectionOperations.ResourceAction; + getWithCredentials is ConnectionOperations.ResourceAction< + Connection, + {}, + Connection + >; @doc("List all connections in the project") list is ConnectionOperations.ResourceList< Connection, ListQueryParametersTrait<{ - @doc("Specific type of connection to return in list") - @query("$connectionCategory") - connectionCategory?: ConnectionCategory, + @doc("Specific type of connection to return in list") + @query("$connectionCategory") + connectionCategory?: ConnectionCategory; - ...StandardListQueryParameters; - }> + ...StandardListQueryParameters; + }> >; } diff --git a/specification/ai/Azure.AI.Unified/datasets/models.tsp b/specification/ai/Azure.AI.Unified/datasets/models.tsp index 33b6bb182e65..a4a0e59f2d7b 100644 --- a/specification/ai/Azure.AI.Unified/datasets/models.tsp +++ b/specification/ai/Azure.AI.Unified/datasets/models.tsp @@ -27,7 +27,6 @@ union DatasetType { uri_folder: "uri_folder", } - #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" @doc("DatasetVersion Definition") @discriminator("datasetType") diff --git a/specification/ai/Azure.AI.Unified/datasets/routes.tsp b/specification/ai/Azure.AI.Unified/datasets/routes.tsp index b09e5bfe8984..9d12ed5ea8f4 100644 --- a/specification/ai/Azure.AI.Unified/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Unified/datasets/routes.tsp @@ -131,6 +131,6 @@ interface Datasets { @doc("Pensing upload request.") @body - pendingUploadRequest: PendingUploadRequest + pendingUploadRequest: PendingUploadRequest, ): PendingUploadResponse; } diff --git a/specification/ai/Azure.AI.Unified/indexes/models.tsp b/specification/ai/Azure.AI.Unified/indexes/models.tsp index d1d586d1ab9d..f34ec3193a6e 100644 --- a/specification/ai/Azure.AI.Unified/indexes/models.tsp +++ b/specification/ai/Azure.AI.Unified/indexes/models.tsp @@ -79,7 +79,7 @@ model EmbeddingConfiguration { connectionId?: string; @doc("Deployment name of embedding model") - deploymentName: string; + deploymentName: string; @doc("Embedding field") embeddingField: string; diff --git a/specification/ai/Azure.AI.Unified/main.tsp b/specification/ai/Azure.AI.Unified/main.tsp index 579b4c6a5aff..8ac49da5b9f6 100644 --- a/specification/ai/Azure.AI.Unified/main.tsp +++ b/specification/ai/Azure.AI.Unified/main.tsp @@ -62,4 +62,4 @@ namespace Azure.AI.Unified { @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2025-05-01-preview`, } -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/models/chat_completions.tsp b/specification/ai/Azure.AI.Unified/models/chat_completions.tsp index 35af197d375a..fedcd35ed80d 100644 --- a/specification/ai/Azure.AI.Unified/models/chat_completions.tsp +++ b/specification/ai/Azure.AI.Unified/models/chat_completions.tsp @@ -723,4 +723,4 @@ model ChatCompletionsAudio { @doc("The transcript of the audio file.") transcript: string; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/models/embeddings.tsp b/specification/ai/Azure.AI.Unified/models/embeddings.tsp index 6b707f8ac954..98febf6f01d2 100644 --- a/specification/ai/Azure.AI.Unified/models/embeddings.tsp +++ b/specification/ai/Azure.AI.Unified/models/embeddings.tsp @@ -136,4 +136,4 @@ model EmbeddingsOptions { `model`?: string; ...Record; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/models/models.tsp b/specification/ai/Azure.AI.Unified/models/models.tsp index aa7811b5709b..b88387bba976 100644 --- a/specification/ai/Azure.AI.Unified/models/models.tsp +++ b/specification/ai/Azure.AI.Unified/models/models.tsp @@ -56,7 +56,6 @@ model Model { systemData: SystemData; } - #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" @doc("Sku information") model Sku { diff --git a/specification/ai/Azure.AI.Unified/models/routes.tsp b/specification/ai/Azure.AI.Unified/models/routes.tsp index 358dfcf64b44..894f5ae469e4 100644 --- a/specification/ai/Azure.AI.Unified/models/routes.tsp +++ b/specification/ai/Azure.AI.Unified/models/routes.tsp @@ -23,7 +23,6 @@ alias ModelServiceTraits = SupportsClientRequestId & alias ModelOperations = Azure.Core.ResourceOperations; interface Models { - @doc("Get a deployed model.") get is ModelOperations.ResourceRead; @@ -31,31 +30,31 @@ interface Models { list is ModelOperations.ResourceList< Model, ListQueryParametersTrait<{ - @doc("Model publisher to filter models by") - @query("$modelPublisher") - modelPublisher?: string, - - @doc("Model name (the publisher specific name) to filter models by") - @query("$modelName") - modelName?: string, - - @doc("Flag to include models from connections in response.") - @query("$includeConnectedModels") - includeConnectionModels?: boolean, - - ...StandardListQueryParameters; - }>, + @doc("Model publisher to filter models by") + @query("$modelPublisher") + modelPublisher?: string; + + @doc("Model name (the publisher specific name) to filter models by") + @query("$modelName") + modelName?: string; + + @doc("Flag to include models from connections in response.") + @query("$includeConnectedModels") + includeConnectionModels?: boolean; + + ...StandardListQueryParameters; + }> >; @doc(""" - Gets chat completions for the provided chat messages. - Completions support a wide variety of tasks and generate text that continues from or "completes" - provided prompt data. The method makes a REST API call to the `/chat/completions` route - on the given endpoint. - """) + Gets chat completions for the provided chat messages. + Completions support a wide variety of tasks and generate text that continues from or "completes" + provided prompt data. The method makes a REST API call to the `/chat/completions` route + on the given endpoint. + """) @actionSeparator("/") @route("models/chat/completions") - op getChatCompletions is Azure.Core.RpcOperation< + getChatCompletions is Azure.Core.RpcOperation< { @doc("The parameters of the chat completions request.") @body @@ -72,7 +71,7 @@ interface Models { """) @actionSeparator("/") @route("models/embeddings") - op getEmbeddings is Azure.Core.RpcOperation< + getEmbeddings is Azure.Core.RpcOperation< { @doc("The parameters of the embeddings request.") @body @@ -89,7 +88,7 @@ interface Models { """) @actionSeparator("/") @route("models/images/embeddings") - op getImageEmbeddings is Azure.Core.RpcOperation< + getImageEmbeddings is Azure.Core.RpcOperation< { @doc("The parameters of the image embeddings request.") @body diff --git a/specification/ai/Azure.AI.Unified/tspconfig.yaml b/specification/ai/Azure.AI.Unified/tspconfig.yaml index 0093d99fc3d8..7a99ba0f3c1e 100644 --- a/specification/ai/Azure.AI.Unified/tspconfig.yaml +++ b/specification/ai/Azure.AI.Unified/tspconfig.yaml @@ -8,14 +8,32 @@ options: emitter-output-dir: "{project-root}/.." azure-resource-provider-folder: "data-plane" emit-lro-options: "none" - output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/azure-ai-unified.json" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/azure-ai-projects-1dp.json" "@azure-tools/typespec-python": package-mode: "dataplane" - package-dir: "azure-ai-unified-autogen" + package-dir: "azure-ai-projects-1dp" package-name: "{package-dir}" flavor: azure - generate-test: true - generate-sample: true + generate-test: false + generate-sample: false + "@azure-tools/typespec-csharp": + package-mode: "dataplane" + package-dir: "Azure.AI.Projects.1DP" + namespace: "Azure.AI.Projects.1DP" + package-name: "{package-dir}" + model-namespace: false + flavor: azure + generate-test: false + generate-sample: false + "@azure-tools/typespec-ts": + package-dir: "ai-projects-1dp" + generateTest: true + generateMetadata: false + packageDetails: + name: "@azure/ai-projects-1dp" + flavor: azure linter: extends: - - "@azure-tools/typespec-azure-rulesets/data-plane" \ No newline at end of file + - "@azure-tools/typespec-azure-rulesets/data-plane" + disable: + "@azure-tools/typespec-azure-core/casing-style": "Since we have many names in the form XxxxAIXxxx" From 8c827c00d9538230a196c45deae143017cbf8388 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Tue, 11 Mar 2025 09:35:50 -0700 Subject: [PATCH 048/143] Run `npx tsp format **\*.tsp` (#33117) --- .../Azure.AI.Unified/agents/common/models.tsp | 2 +- .../Azure.AI.Unified/agents/files/models.tsp | 2 +- .../Azure.AI.Unified/agents/files/routes.tsp | 2 +- .../ai/Azure.AI.Unified/agents/main.tsp | 2 +- .../agents/messages/routes.tsp | 2 +- .../ai/Azure.AI.Unified/agents/models.tsp | 2 +- .../ai/Azure.AI.Unified/agents/routes.tsp | 2 +- .../agents/run_steps/models.tsp | 2 +- .../agents/run_steps/routes.tsp | 2 +- .../Azure.AI.Unified/agents/runs/models.tsp | 2 +- .../Azure.AI.Unified/agents/runs/routes.tsp | 2 +- .../agents/streaming/events.tsp | 2 +- .../agents/threads/models.tsp | 2 +- .../agents/threads/routes.tsp | 2 +- .../Azure.AI.Unified/agents/tools/models.tsp | 2 +- .../agents/tools/tool_resources.tsp | 2 +- .../agents/vector_stores/common/main.tsp | 2 +- .../vector_stores/file_batches/models.tsp | 2 +- .../vector_stores/file_batches/routes.tsp | 2 +- .../agents/vector_stores/files/models.tsp | 2 +- .../agents/vector_stores/files/routes.tsp | 2 +- .../agents/vector_stores/main.tsp | 2 +- .../agents/vector_stores/models.tsp | 2 +- .../agents/vector_stores/routes.tsp | 2 +- specification/ai/Azure.AI.Unified/client.tsp | 2 +- .../ai/Azure.AI.Unified/common/models.tsp | 133 +++++++++--------- .../Azure.AI.Unified/connections/routes.tsp | 16 ++- .../ai/Azure.AI.Unified/datasets/models.tsp | 1 - .../ai/Azure.AI.Unified/datasets/routes.tsp | 2 +- .../ai/Azure.AI.Unified/indexes/models.tsp | 2 +- specification/ai/Azure.AI.Unified/main.tsp | 2 +- .../models/chat_completions.tsp | 2 +- .../ai/Azure.AI.Unified/models/embeddings.tsp | 2 +- .../ai/Azure.AI.Unified/models/models.tsp | 1 - .../ai/Azure.AI.Unified/models/routes.tsp | 45 +++--- 35 files changed, 131 insertions(+), 125 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/agents/common/models.tsp b/specification/ai/Azure.AI.Unified/agents/common/models.tsp index c3c9aea4c698..2edfd150ca14 100644 --- a/specification/ai/Azure.AI.Unified/agents/common/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/common/models.tsp @@ -173,4 +173,4 @@ model ResponseFormatJsonSchema { /** The JSON schema object, describing the response format. */ schema: unknown; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/files/models.tsp b/specification/ai/Azure.AI.Unified/agents/files/models.tsp index 5d96c272c21a..db9f82ffd124 100644 --- a/specification/ai/Azure.AI.Unified/agents/files/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/files/models.tsp @@ -118,4 +118,4 @@ model FileDeletionStatus { @doc("The object type, which is always 'file'.") object: "file"; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/files/routes.tsp b/specification/ai/Azure.AI.Unified/agents/files/routes.tsp index c690bb48b8c6..1ec65732cee1 100644 --- a/specification/ai/Azure.AI.Unified/agents/files/routes.tsp +++ b/specification/ai/Azure.AI.Unified/agents/files/routes.tsp @@ -119,4 +119,4 @@ op getFileContent is Azure.Core.Foundations.Operation< fileId: string; }, bytes ->; \ No newline at end of file +>; diff --git a/specification/ai/Azure.AI.Unified/agents/main.tsp b/specification/ai/Azure.AI.Unified/agents/main.tsp index ab251fd3b5d9..3b662be82ec5 100644 --- a/specification/ai/Azure.AI.Unified/agents/main.tsp +++ b/specification/ai/Azure.AI.Unified/agents/main.tsp @@ -1,2 +1,2 @@ import "./models.tsp"; -import "./routes.tsp"; \ No newline at end of file +import "./routes.tsp"; diff --git a/specification/ai/Azure.AI.Unified/agents/messages/routes.tsp b/specification/ai/Azure.AI.Unified/agents/messages/routes.tsp index 39d81cdfba74..c17c4c833bd5 100644 --- a/specification/ai/Azure.AI.Unified/agents/messages/routes.tsp +++ b/specification/ai/Azure.AI.Unified/agents/messages/routes.tsp @@ -116,4 +116,4 @@ op updateMessage is Azure.Core.Foundations.Operation< ...OptionalNullableMetadata; }, ThreadMessage ->; \ No newline at end of file +>; diff --git a/specification/ai/Azure.AI.Unified/agents/models.tsp b/specification/ai/Azure.AI.Unified/agents/models.tsp index a0b3fbdc9254..9989f3982a26 100644 --- a/specification/ai/Azure.AI.Unified/agents/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/models.tsp @@ -201,4 +201,4 @@ model AgentDeletionStatus { @doc("The object type, which is always 'assistant.deleted'.") object: "assistant.deleted"; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/routes.tsp b/specification/ai/Azure.AI.Unified/agents/routes.tsp index b0dd99fb2c86..52e7eb551296 100644 --- a/specification/ai/Azure.AI.Unified/agents/routes.tsp +++ b/specification/ai/Azure.AI.Unified/agents/routes.tsp @@ -108,4 +108,4 @@ op deleteAgent is Azure.Core.Foundations.Operation< assistantId: string; }, AgentDeletionStatus ->; \ No newline at end of file +>; diff --git a/specification/ai/Azure.AI.Unified/agents/run_steps/models.tsp b/specification/ai/Azure.AI.Unified/agents/run_steps/models.tsp index 3c547e6c23d9..05d5a1b920c3 100644 --- a/specification/ai/Azure.AI.Unified/agents/run_steps/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/run_steps/models.tsp @@ -348,4 +348,4 @@ union RunAdditionalFieldList { /** File search result content. */ FileSearchContents: "step_details.tool_calls[*].file_search.results[*].content", -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/run_steps/routes.tsp b/specification/ai/Azure.AI.Unified/agents/run_steps/routes.tsp index 743e355a7a0c..b9d57a3308b2 100644 --- a/specification/ai/Azure.AI.Unified/agents/run_steps/routes.tsp +++ b/specification/ai/Azure.AI.Unified/agents/run_steps/routes.tsp @@ -82,4 +82,4 @@ op listRunSteps is Azure.Core.Foundations.Operation< ...OpenAIListRequestOptions; }, OpenAIPageableListOf ->; \ No newline at end of file +>; diff --git a/specification/ai/Azure.AI.Unified/agents/runs/models.tsp b/specification/ai/Azure.AI.Unified/agents/runs/models.tsp index 5e11df419c11..76a42774636d 100644 --- a/specification/ai/Azure.AI.Unified/agents/runs/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/runs/models.tsp @@ -479,4 +479,4 @@ union TruncationStrategy { /** The thread will truncate to the `lastMessages` count of recent messages. */ lastMessages: "last_messages", -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/runs/routes.tsp b/specification/ai/Azure.AI.Unified/agents/runs/routes.tsp index 0ec24a265087..a2e9f80695aa 100644 --- a/specification/ai/Azure.AI.Unified/agents/runs/routes.tsp +++ b/specification/ai/Azure.AI.Unified/agents/runs/routes.tsp @@ -202,4 +202,4 @@ op createThreadAndRun is Azure.Core.Foundations.Operation< ...CreateAndRunThreadOptions; }, ThreadRun ->; \ No newline at end of file +>; diff --git a/specification/ai/Azure.AI.Unified/agents/streaming/events.tsp b/specification/ai/Azure.AI.Unified/agents/streaming/events.tsp index cf460b631d00..832477649fdb 100644 --- a/specification/ai/Azure.AI.Unified/agents/streaming/events.tsp +++ b/specification/ai/Azure.AI.Unified/agents/streaming/events.tsp @@ -136,4 +136,4 @@ union DoneEvent { /** Event sent when the stream is done. */ Done: "done", -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/threads/models.tsp b/specification/ai/Azure.AI.Unified/agents/threads/models.tsp index f2d1b9217683..066f01f831dd 100644 --- a/specification/ai/Azure.AI.Unified/agents/threads/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/threads/models.tsp @@ -75,4 +75,4 @@ model ThreadDeletionStatus { @doc("The object type, which is always 'thread.deleted'.") object: "thread.deleted"; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/threads/routes.tsp b/specification/ai/Azure.AI.Unified/agents/threads/routes.tsp index bdf3e2a23244..edaa0fae93df 100644 --- a/specification/ai/Azure.AI.Unified/agents/threads/routes.tsp +++ b/specification/ai/Azure.AI.Unified/agents/threads/routes.tsp @@ -92,4 +92,4 @@ op deleteThread is Azure.Core.Foundations.Operation< threadId: string; }, ThreadDeletionStatus ->; \ No newline at end of file +>; diff --git a/specification/ai/Azure.AI.Unified/agents/tools/models.tsp b/specification/ai/Azure.AI.Unified/agents/tools/models.tsp index 7e1a2a129c40..fd839e35a592 100644 --- a/specification/ai/Azure.AI.Unified/agents/tools/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/tools/models.tsp @@ -593,4 +593,4 @@ model AzureFunctionStorageQueue { @doc("The name of an Azure function storage queue.") @encodedName("application/json", "queue_name") queueName: string; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/tools/tool_resources.tsp b/specification/ai/Azure.AI.Unified/agents/tools/tool_resources.tsp index 482af7b79ee5..66ab55adaf0a 100644 --- a/specification/ai/Azure.AI.Unified/agents/tools/tool_resources.tsp +++ b/specification/ai/Azure.AI.Unified/agents/tools/tool_resources.tsp @@ -217,4 +217,4 @@ model UpdateFileSearchToolResourceOptions { @maxItems(1) @encodedName("application/json", "vector_store_ids") vectorStoreIds?: string[]; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/common/main.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/common/main.tsp index 9d5abbffb2ed..ed9713a2d910 100644 --- a/specification/ai/Azure.AI.Unified/agents/vector_stores/common/main.tsp +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/common/main.tsp @@ -140,4 +140,4 @@ model VectorStoreConfigurations { /** Configurations */ @encodedName("application/json", "configuration") storeConfiguration: VectorStoreConfiguration; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/models.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/models.tsp index cda03742378f..ce64405248f1 100644 --- a/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/models.tsp @@ -42,4 +42,4 @@ model VectorStoreFileBatch { /** Files count grouped by status processed or being processed by this vector store. */ @encodedName("application/json", "file_counts") fileCounts: VectorStoreFileCount; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/routes.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/routes.tsp index 2fc183c36bfb..19246a6a3b34 100644 --- a/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/routes.tsp +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/routes.tsp @@ -119,4 +119,4 @@ op listVectorStoreFileBatchFiles is Azure.Core.Foundations.Operation< ...OpenAIListRequestOptions; }, OpenAIPageableListOf ->; \ No newline at end of file +>; diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/files/models.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/files/models.tsp index e743316572a1..f7455045d144 100644 --- a/specification/ai/Azure.AI.Unified/agents/vector_stores/files/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/files/models.tsp @@ -103,4 +103,4 @@ model VectorStoreFileDeletionStatus { /** The object type, which is always 'vector_store.deleted'. */ object: "vector_store.file.deleted"; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/files/routes.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/files/routes.tsp index 28f9540129b7..2270e7c4179d 100644 --- a/specification/ai/Azure.AI.Unified/agents/vector_stores/files/routes.tsp +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/files/routes.tsp @@ -111,4 +111,4 @@ op deleteVectorStoreFile is Azure.Core.Foundations.Operation< fileId: string; }, VectorStoreFileDeletionStatus ->; \ No newline at end of file +>; diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/main.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/main.tsp index 1c683b0cf5a0..3f4e26565998 100644 --- a/specification/ai/Azure.AI.Unified/agents/vector_stores/main.tsp +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/main.tsp @@ -3,4 +3,4 @@ import "./routes.tsp"; import "./common/main.tsp"; import "./files/main.tsp"; -import "./file_batches/main.tsp"; \ No newline at end of file +import "./file_batches/main.tsp"; diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/models.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/models.tsp index 5864c32a7ffa..70f85557d83d 100644 --- a/specification/ai/Azure.AI.Unified/agents/vector_stores/models.tsp +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/models.tsp @@ -158,4 +158,4 @@ model VectorStoreDeletionStatus { /** The object type, which is always 'vector_store.deleted'. */ object: "vector_store.deleted"; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/routes.tsp b/specification/ai/Azure.AI.Unified/agents/vector_stores/routes.tsp index 2967d9cf1a68..37939ca26688 100644 --- a/specification/ai/Azure.AI.Unified/agents/vector_stores/routes.tsp +++ b/specification/ai/Azure.AI.Unified/agents/vector_stores/routes.tsp @@ -102,4 +102,4 @@ op deleteVectorStore is Azure.Core.Foundations.Operation< vectorStoreId: string; }, VectorStoreDeletionStatus ->; \ No newline at end of file +>; diff --git a/specification/ai/Azure.AI.Unified/client.tsp b/specification/ai/Azure.AI.Unified/client.tsp index 086e21510069..5d3f3613c428 100644 --- a/specification/ai/Azure.AI.Unified/client.tsp +++ b/specification/ai/Azure.AI.Unified/client.tsp @@ -1,4 +1,4 @@ import "@azure-tools/typespec-client-generator-core"; import "./main.tsp"; -using Azure.ClientGenerator.Core; \ No newline at end of file +using Azure.ClientGenerator.Core; diff --git a/specification/ai/Azure.AI.Unified/common/models.tsp b/specification/ai/Azure.AI.Unified/common/models.tsp index 0d8feec09a6a..eb3f6dd09a95 100644 --- a/specification/ai/Azure.AI.Unified/common/models.tsp +++ b/specification/ai/Azure.AI.Unified/common/models.tsp @@ -224,7 +224,7 @@ model OutputPathAssetReference extends AssetReferenceBase { #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" @doc("Base definition for an asset.") -model AssetBase { +model AssetBase { @doc("Asset stage") @visibility("read", "create", "update") stage?: string; @@ -260,69 +260,74 @@ alias ResourceCreatedResponse = TypeSpec.Ht alias OkResponse = TypeSpec.Http.Response<200> & T; - alias AdditionalInferenceRequestHeaders = { - @doc(""" - Controls what happens if extra parameters, undefined by the REST API, - are passed in the JSON request payload. - This sets the HTTP request header `extra-parameters`. - """) - @header("extra-parameters") - extra_params?: ExtraParameters; - }; - - @doc("Controls what happens if extra parameters, undefined by the REST API, are passed in the JSON request payload.") - union ExtraParameters { - string, - - @doc("The service will error if it detected extra parameters in the request payload. This is the service default.") - error: "error", - - @doc("The service will ignore (drop) extra parameters in the request payload. It will only pass the known parameters to the back-end AI model.") - drop: "drop", - - @doc("The service will pass extra parameters to the back-end AI model.") - pass_through: "pass-through", - } - - // Pending upload spec - - // Define a URI alias for clarity. - alias Uri = string; - - enum PendingUploadType { - None, - TemporaryBlobReference, - } - - enum PendingUploadCredentialType { - SAS, - } - - model PendingUploadRequest { - /// If PendingUploadId is not provided, a random guid will be used. - pendingUploadId?: string; - /// TemporaryBlobReference is the only supported type. - pendingUploadType: PendingUploadType.TemporaryBlobReference; - } - - model PendingUploadResponse { - /// Container-level read, write, list SAS. - blobReferenceForConsumption: BlobReferenceForConsumption; - /// ID for this upload request. - pendingUploadId: string; - /// TemporaryBlobReference is the only supported type. - pendingUploadType: PendingUploadType.TemporaryBlobReference; - } - - model BlobReferenceForConsumption { - /// Blob URI path for client to upload data. - /// Example: https://blob.windows.core.net/Container/Path - blobUri: Uri; - /// ARM ID of the storage account to use. - storageAccountArmId: string; - /// Credential info to access the storage account. - credential: SasCredential; - } +alias AdditionalInferenceRequestHeaders = { + @doc(""" + Controls what happens if extra parameters, undefined by the REST API, + are passed in the JSON request payload. + This sets the HTTP request header `extra-parameters`. + """) + @header("extra-parameters") + extra_params?: ExtraParameters; +}; + +@doc("Controls what happens if extra parameters, undefined by the REST API, are passed in the JSON request payload.") +union ExtraParameters { + string, + + @doc("The service will error if it detected extra parameters in the request payload. This is the service default.") + error: "error", + + @doc("The service will ignore (drop) extra parameters in the request payload. It will only pass the known parameters to the back-end AI model.") + drop: "drop", + + @doc("The service will pass extra parameters to the back-end AI model.") + pass_through: "pass-through", +} + +// Pending upload spec + +// Define a URI alias for clarity. +alias Uri = string; + +enum PendingUploadType { + None, + TemporaryBlobReference, +} + +enum PendingUploadCredentialType { + SAS, +} + +model PendingUploadRequest { + /// If PendingUploadId is not provided, a random guid will be used. + pendingUploadId?: string; + + /// TemporaryBlobReference is the only supported type. + pendingUploadType: PendingUploadType.TemporaryBlobReference; +} + +model PendingUploadResponse { + /// Container-level read, write, list SAS. + blobReferenceForConsumption: BlobReferenceForConsumption; + + /// ID for this upload request. + pendingUploadId: string; + + /// TemporaryBlobReference is the only supported type. + pendingUploadType: PendingUploadType.TemporaryBlobReference; +} + +model BlobReferenceForConsumption { + /// Blob URI path for client to upload data. + /// Example: https://blob.windows.core.net/Container/Path + blobUri: Uri; + + /// ARM ID of the storage account to use. + storageAccountArmId: string; + + /// Credential info to access the storage account. + credential: SasCredential; +} @doc(""" The definition of a caller-specified function that chat completions may invoke in response to matching user input. diff --git a/specification/ai/Azure.AI.Unified/connections/routes.tsp b/specification/ai/Azure.AI.Unified/connections/routes.tsp index f507ef0ce27d..e2cd14716029 100644 --- a/specification/ai/Azure.AI.Unified/connections/routes.tsp +++ b/specification/ai/Azure.AI.Unified/connections/routes.tsp @@ -24,17 +24,21 @@ interface Connections { get is ConnectionOperations.ResourceRead; @doc("Get connection with secrets by name.") - getWithCredentials is ConnectionOperations.ResourceAction; + getWithCredentials is ConnectionOperations.ResourceAction< + Connection, + {}, + Connection + >; @doc("List all connections in the project") list is ConnectionOperations.ResourceList< Connection, ListQueryParametersTrait<{ - @doc("Specific type of connection to return in list") - @query("$connectionCategory") - connectionCategory?: ConnectionCategory, + @doc("Specific type of connection to return in list") + @query("$connectionCategory") + connectionCategory?: ConnectionCategory; - ...StandardListQueryParameters; - }> + ...StandardListQueryParameters; + }> >; } diff --git a/specification/ai/Azure.AI.Unified/datasets/models.tsp b/specification/ai/Azure.AI.Unified/datasets/models.tsp index 33b6bb182e65..a4a0e59f2d7b 100644 --- a/specification/ai/Azure.AI.Unified/datasets/models.tsp +++ b/specification/ai/Azure.AI.Unified/datasets/models.tsp @@ -27,7 +27,6 @@ union DatasetType { uri_folder: "uri_folder", } - #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" @doc("DatasetVersion Definition") @discriminator("datasetType") diff --git a/specification/ai/Azure.AI.Unified/datasets/routes.tsp b/specification/ai/Azure.AI.Unified/datasets/routes.tsp index b09e5bfe8984..9d12ed5ea8f4 100644 --- a/specification/ai/Azure.AI.Unified/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Unified/datasets/routes.tsp @@ -131,6 +131,6 @@ interface Datasets { @doc("Pensing upload request.") @body - pendingUploadRequest: PendingUploadRequest + pendingUploadRequest: PendingUploadRequest, ): PendingUploadResponse; } diff --git a/specification/ai/Azure.AI.Unified/indexes/models.tsp b/specification/ai/Azure.AI.Unified/indexes/models.tsp index d1d586d1ab9d..f34ec3193a6e 100644 --- a/specification/ai/Azure.AI.Unified/indexes/models.tsp +++ b/specification/ai/Azure.AI.Unified/indexes/models.tsp @@ -79,7 +79,7 @@ model EmbeddingConfiguration { connectionId?: string; @doc("Deployment name of embedding model") - deploymentName: string; + deploymentName: string; @doc("Embedding field") embeddingField: string; diff --git a/specification/ai/Azure.AI.Unified/main.tsp b/specification/ai/Azure.AI.Unified/main.tsp index 579b4c6a5aff..8ac49da5b9f6 100644 --- a/specification/ai/Azure.AI.Unified/main.tsp +++ b/specification/ai/Azure.AI.Unified/main.tsp @@ -62,4 +62,4 @@ namespace Azure.AI.Unified { @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2025-05-01-preview`, } -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/models/chat_completions.tsp b/specification/ai/Azure.AI.Unified/models/chat_completions.tsp index 35af197d375a..fedcd35ed80d 100644 --- a/specification/ai/Azure.AI.Unified/models/chat_completions.tsp +++ b/specification/ai/Azure.AI.Unified/models/chat_completions.tsp @@ -723,4 +723,4 @@ model ChatCompletionsAudio { @doc("The transcript of the audio file.") transcript: string; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/models/embeddings.tsp b/specification/ai/Azure.AI.Unified/models/embeddings.tsp index 6b707f8ac954..98febf6f01d2 100644 --- a/specification/ai/Azure.AI.Unified/models/embeddings.tsp +++ b/specification/ai/Azure.AI.Unified/models/embeddings.tsp @@ -136,4 +136,4 @@ model EmbeddingsOptions { `model`?: string; ...Record; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Unified/models/models.tsp b/specification/ai/Azure.AI.Unified/models/models.tsp index aa7811b5709b..b88387bba976 100644 --- a/specification/ai/Azure.AI.Unified/models/models.tsp +++ b/specification/ai/Azure.AI.Unified/models/models.tsp @@ -56,7 +56,6 @@ model Model { systemData: SystemData; } - #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" @doc("Sku information") model Sku { diff --git a/specification/ai/Azure.AI.Unified/models/routes.tsp b/specification/ai/Azure.AI.Unified/models/routes.tsp index 358dfcf64b44..894f5ae469e4 100644 --- a/specification/ai/Azure.AI.Unified/models/routes.tsp +++ b/specification/ai/Azure.AI.Unified/models/routes.tsp @@ -23,7 +23,6 @@ alias ModelServiceTraits = SupportsClientRequestId & alias ModelOperations = Azure.Core.ResourceOperations; interface Models { - @doc("Get a deployed model.") get is ModelOperations.ResourceRead; @@ -31,31 +30,31 @@ interface Models { list is ModelOperations.ResourceList< Model, ListQueryParametersTrait<{ - @doc("Model publisher to filter models by") - @query("$modelPublisher") - modelPublisher?: string, - - @doc("Model name (the publisher specific name) to filter models by") - @query("$modelName") - modelName?: string, - - @doc("Flag to include models from connections in response.") - @query("$includeConnectedModels") - includeConnectionModels?: boolean, - - ...StandardListQueryParameters; - }>, + @doc("Model publisher to filter models by") + @query("$modelPublisher") + modelPublisher?: string; + + @doc("Model name (the publisher specific name) to filter models by") + @query("$modelName") + modelName?: string; + + @doc("Flag to include models from connections in response.") + @query("$includeConnectedModels") + includeConnectionModels?: boolean; + + ...StandardListQueryParameters; + }> >; @doc(""" - Gets chat completions for the provided chat messages. - Completions support a wide variety of tasks and generate text that continues from or "completes" - provided prompt data. The method makes a REST API call to the `/chat/completions` route - on the given endpoint. - """) + Gets chat completions for the provided chat messages. + Completions support a wide variety of tasks and generate text that continues from or "completes" + provided prompt data. The method makes a REST API call to the `/chat/completions` route + on the given endpoint. + """) @actionSeparator("/") @route("models/chat/completions") - op getChatCompletions is Azure.Core.RpcOperation< + getChatCompletions is Azure.Core.RpcOperation< { @doc("The parameters of the chat completions request.") @body @@ -72,7 +71,7 @@ interface Models { """) @actionSeparator("/") @route("models/embeddings") - op getEmbeddings is Azure.Core.RpcOperation< + getEmbeddings is Azure.Core.RpcOperation< { @doc("The parameters of the embeddings request.") @body @@ -89,7 +88,7 @@ interface Models { """) @actionSeparator("/") @route("models/images/embeddings") - op getImageEmbeddings is Azure.Core.RpcOperation< + getImageEmbeddings is Azure.Core.RpcOperation< { @doc("The parameters of the image embeddings request.") @body From 6da4036ab66147dc9bf2e957f0a489630a84d584 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Tue, 11 Mar 2025 15:48:36 -0400 Subject: [PATCH 049/143] separate deployments from models --- .../{models => deployments}/models.tsp | 4 +- .../Azure.AI.Unified/deployments/routes.tsp | 45 +++++++++++++++++++ specification/ai/Azure.AI.Unified/main.tsp | 1 + .../ai/Azure.AI.Unified/models/routes.tsp | 29 ------------ 4 files changed, 48 insertions(+), 31 deletions(-) rename specification/ai/Azure.AI.Unified/{models => deployments}/models.tsp (97%) create mode 100644 specification/ai/Azure.AI.Unified/deployments/routes.tsp diff --git a/specification/ai/Azure.AI.Unified/models/models.tsp b/specification/ai/Azure.AI.Unified/deployments/models.tsp similarity index 97% rename from specification/ai/Azure.AI.Unified/models/models.tsp rename to specification/ai/Azure.AI.Unified/deployments/models.tsp index b88387bba976..59064cf8e626 100644 --- a/specification/ai/Azure.AI.Unified/models/models.tsp +++ b/specification/ai/Azure.AI.Unified/deployments/models.tsp @@ -16,8 +16,8 @@ using Azure.Core.Traits; namespace Azure.AI.Unified; @doc("Model Deployment Definition") -@resource("models") -model Model { +@resource("deployments") +model Deployment { @doc("Name of the deployment for the model") @visibility("read") @key("deploymentName") diff --git a/specification/ai/Azure.AI.Unified/deployments/routes.tsp b/specification/ai/Azure.AI.Unified/deployments/routes.tsp new file mode 100644 index 000000000000..06e54bb1942b --- /dev/null +++ b/specification/ai/Azure.AI.Unified/deployments/routes.tsp @@ -0,0 +1,45 @@ +import "@typespec/rest"; +import "@azure-tools/typespec-autorest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "./models.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.Core.Traits; +using Azure.Core.Foundations; + +namespace Azure.AI.Unified; + +alias DeploymentServiceTraits = SupportsClientRequestId & + SupportsRepeatableRequests & + SupportsConditionalRequests; + +alias DeploymentOperations = Azure.Core.ResourceOperations; + +interface Deployments { + @doc("Get a deployed model.") + get is DeploymentOperations.ResourceRead; + + @doc("List all deployed models in the project") + list is DeploymentOperations.ResourceList< + Deployment, + ListQueryParametersTrait<{ + @doc("Model publisher to filter models by") + @query("$modelPublisher") + modelPublisher?: string; + + @doc("Model name (the publisher specific name) to filter models by") + @query("$modelName") + modelName?: string; + + @doc("Flag to include models from connections in response.") + @query("$includeConnectedModels") + includeConnectionModels?: boolean; + + ...StandardListQueryParameters; + }> + >; +} diff --git a/specification/ai/Azure.AI.Unified/main.tsp b/specification/ai/Azure.AI.Unified/main.tsp index 8ac49da5b9f6..d82b53d7fec7 100644 --- a/specification/ai/Azure.AI.Unified/main.tsp +++ b/specification/ai/Azure.AI.Unified/main.tsp @@ -18,6 +18,7 @@ import "./evaluations/routes.tsp"; import "./datasets/routes.tsp"; import "./models/routes.tsp"; import "./indexes/routes.tsp"; +import "./deployments/routes.tsp"; using TypeSpec.Http; using TypeSpec.Rest; diff --git a/specification/ai/Azure.AI.Unified/models/routes.tsp b/specification/ai/Azure.AI.Unified/models/routes.tsp index 894f5ae469e4..f6d7e459d566 100644 --- a/specification/ai/Azure.AI.Unified/models/routes.tsp +++ b/specification/ai/Azure.AI.Unified/models/routes.tsp @@ -16,36 +16,7 @@ using Azure.Core.Foundations; namespace Azure.AI.Unified; -alias ModelServiceTraits = SupportsClientRequestId & - SupportsRepeatableRequests & - SupportsConditionalRequests; - -alias ModelOperations = Azure.Core.ResourceOperations; - interface Models { - @doc("Get a deployed model.") - get is ModelOperations.ResourceRead; - - @doc("List all deployed models in the project") - list is ModelOperations.ResourceList< - Model, - ListQueryParametersTrait<{ - @doc("Model publisher to filter models by") - @query("$modelPublisher") - modelPublisher?: string; - - @doc("Model name (the publisher specific name) to filter models by") - @query("$modelName") - modelName?: string; - - @doc("Flag to include models from connections in response.") - @query("$includeConnectedModels") - includeConnectionModels?: boolean; - - ...StandardListQueryParameters; - }> - >; - @doc(""" Gets chat completions for the provided chat messages. Completions support a wide variety of tasks and generate text that continues from or "completes" From b0c8c8fa49319809aa7b68b21febf257dec163a6 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Tue, 11 Mar 2025 16:20:37 -0400 Subject: [PATCH 050/143] make asset base an alias --- .../ai/Azure.AI.Unified/common/models.tsp | 4 +--- .../ai/Azure.AI.Unified/datasets/models.tsp | 22 +++---------------- .../ai/Azure.AI.Unified/indexes/models.tsp | 6 +++-- 3 files changed, 8 insertions(+), 24 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/common/models.tsp b/specification/ai/Azure.AI.Unified/common/models.tsp index eb3f6dd09a95..e46e1f6a7d8d 100644 --- a/specification/ai/Azure.AI.Unified/common/models.tsp +++ b/specification/ai/Azure.AI.Unified/common/models.tsp @@ -222,9 +222,7 @@ model OutputPathAssetReference extends AssetReferenceBase { referenceType: "OutputPath"; } -#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" -@doc("Base definition for an asset.") -model AssetBase { +alias AssetBase = { @doc("Asset stage") @visibility("read", "create", "update") stage?: string; diff --git a/specification/ai/Azure.AI.Unified/datasets/models.tsp b/specification/ai/Azure.AI.Unified/datasets/models.tsp index a4a0e59f2d7b..d67d16017012 100644 --- a/specification/ai/Azure.AI.Unified/datasets/models.tsp +++ b/specification/ai/Azure.AI.Unified/datasets/models.tsp @@ -22,15 +22,11 @@ union DatasetType { @doc("URI file.") uri_file: "uri_file", - - @doc("URI folder.") - uri_folder: "uri_folder", } #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" @doc("DatasetVersion Definition") -@discriminator("datasetType") -model DatasetVersion extends AssetBase { +model DatasetVersion { @doc("[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330") @visibility("read", "create") @minLength(1) @@ -39,6 +35,8 @@ model DatasetVersion extends AssetBase { @doc("Data type") datasetType: DatasetType; + + ...AssetBase } @doc("PagedDataVersionBase Definition") @@ -53,17 +51,3 @@ model PagedDatasetVersion { @nextLink nextLink?: string; } - -#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" -@doc("UriFileDatasetVersion Definition") -model UriFileDatasetVersion extends DatasetVersion { - @doc("[Required] Specifies the type of data.") - datasetType: DatasetType.uri_file; -} - -#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" -@doc("UriFolderDatasetVersion Definition") -model UriFolderDatasetVersion extends DatasetVersion { - @doc("[Required] Specifies the type of data.") - datasetType: DatasetType.uri_folder; -} diff --git a/specification/ai/Azure.AI.Unified/indexes/models.tsp b/specification/ai/Azure.AI.Unified/indexes/models.tsp index f34ec3193a6e..0a60e58f747c 100644 --- a/specification/ai/Azure.AI.Unified/indexes/models.tsp +++ b/specification/ai/Azure.AI.Unified/indexes/models.tsp @@ -16,9 +16,11 @@ namespace Azure.AI.Unified; @doc("Index resource Definition") @discriminator("indexType") -model Index extends AssetBase { +model Index { @doc("Type of index") indexType: IndexType; + + ...AssetBase } @doc("Paged collection of Index items.") @@ -56,7 +58,7 @@ model ManagedAzureAISearchIndex extends Index { } @doc("CosmosDB Vector Store Index Definition") -model CosmosDBIndex extends AssetBase { +model CosmosDBIndex extends Index { @doc("Type of index") indexType: IndexType.cosmosDB; From 620252dc4507655f3458865ae40f723c020e7f7e Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Tue, 11 Mar 2025 16:50:08 -0400 Subject: [PATCH 051/143] fix up some errors in tsp --- specification/ai/Azure.AI.Unified/common/models.tsp | 2 +- specification/ai/Azure.AI.Unified/deployments/routes.tsp | 2 +- specification/ai/Azure.AI.Unified/models/routes.tsp | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/common/models.tsp b/specification/ai/Azure.AI.Unified/common/models.tsp index e46e1f6a7d8d..ad2be37fd717 100644 --- a/specification/ai/Azure.AI.Unified/common/models.tsp +++ b/specification/ai/Azure.AI.Unified/common/models.tsp @@ -248,7 +248,7 @@ alias AssetBase = { @doc("System data of the resource") @visibility("read") systemData?: SystemData; -} +}; #suppress "@azure-tools/typespec-providerhub/no-inline-model" "Need to create reponses correctly" alias ResourceCreatedResponse = TypeSpec.Http.Response<201> & diff --git a/specification/ai/Azure.AI.Unified/deployments/routes.tsp b/specification/ai/Azure.AI.Unified/deployments/routes.tsp index 06e54bb1942b..13356cb566a8 100644 --- a/specification/ai/Azure.AI.Unified/deployments/routes.tsp +++ b/specification/ai/Azure.AI.Unified/deployments/routes.tsp @@ -21,7 +21,7 @@ alias DeploymentOperations = Azure.Core.ResourceOperations; + get is DeploymentOperations.ResourceRead; @doc("List all deployed models in the project") list is DeploymentOperations.ResourceList< diff --git a/specification/ai/Azure.AI.Unified/models/routes.tsp b/specification/ai/Azure.AI.Unified/models/routes.tsp index f6d7e459d566..903c142907a4 100644 --- a/specification/ai/Azure.AI.Unified/models/routes.tsp +++ b/specification/ai/Azure.AI.Unified/models/routes.tsp @@ -2,7 +2,6 @@ import "@typespec/rest"; import "@azure-tools/typespec-autorest"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; -import "./models.tsp"; import "./chat_completions.tsp"; import "./embeddings.tsp"; import "./image_embeddings.tsp"; From e02c662754f93eee48620b29d5254d577dd0aa1f Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Tue, 11 Mar 2025 14:59:39 -0700 Subject: [PATCH 052/143] Run `npx tsp format **\*.tsp` again --- specification/ai/Azure.AI.Unified/datasets/models.tsp | 2 +- specification/ai/Azure.AI.Unified/indexes/models.tsp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/datasets/models.tsp b/specification/ai/Azure.AI.Unified/datasets/models.tsp index d67d16017012..6f733e8d6b77 100644 --- a/specification/ai/Azure.AI.Unified/datasets/models.tsp +++ b/specification/ai/Azure.AI.Unified/datasets/models.tsp @@ -36,7 +36,7 @@ model DatasetVersion { @doc("Data type") datasetType: DatasetType; - ...AssetBase + ...AssetBase; } @doc("PagedDataVersionBase Definition") diff --git a/specification/ai/Azure.AI.Unified/indexes/models.tsp b/specification/ai/Azure.AI.Unified/indexes/models.tsp index 0a60e58f747c..659d9d23200f 100644 --- a/specification/ai/Azure.AI.Unified/indexes/models.tsp +++ b/specification/ai/Azure.AI.Unified/indexes/models.tsp @@ -20,7 +20,7 @@ model Index { @doc("Type of index") indexType: IndexType; - ...AssetBase + ...AssetBase; } @doc("Paged collection of Index items.") From 1470b01694554598a7e0f237e2a0352f1e12287f Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Tue, 11 Mar 2025 15:23:00 -0700 Subject: [PATCH 053/143] Revert change to client.tsp that got in prematurely. I'll send a PR for all client/namespaces changes for review. --- specification/ai/Azure.AI.Unified/client.tsp | 2 -- 1 file changed, 2 deletions(-) diff --git a/specification/ai/Azure.AI.Unified/client.tsp b/specification/ai/Azure.AI.Unified/client.tsp index 1428265619ad..5d3f3613c428 100644 --- a/specification/ai/Azure.AI.Unified/client.tsp +++ b/specification/ai/Azure.AI.Unified/client.tsp @@ -2,5 +2,3 @@ import "@azure-tools/typespec-client-generator-core"; import "./main.tsp"; using Azure.ClientGenerator.Core; - -@@clientName(Azure.AI.Projects, "AIProjectClient"); From c156acc9d5d1ccda8381f8f75a900ebc5ebccb90 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Wed, 12 Mar 2025 08:27:17 -0700 Subject: [PATCH 054/143] Fix all compilation errors (#33143) * Suppress some linter errors. We do the same in the Inference SDK TypeSpec * Use Union with string instead of Enum * Per Johan, okay to suppress this: PUT operations that return 200 should start with 'replace' or 'createOrReplace' * Add missing doc strings --- .../ai/Azure.AI.Unified/common/models.tsp | 44 +- .../ai/Azure.AI.Unified/tspconfig.yaml | 3 + .../azure-ai-projects-1dp.json | 12068 ++++++++++++++++ 3 files changed, 12099 insertions(+), 16 deletions(-) create mode 100644 specification/ai/data-plane/Azure.AI.Unified/preview/2025-05-01-preview/azure-ai-projects-1dp.json diff --git a/specification/ai/Azure.AI.Unified/common/models.tsp b/specification/ai/Azure.AI.Unified/common/models.tsp index ad2be37fd717..9f1f085f3389 100644 --- a/specification/ai/Azure.AI.Unified/common/models.tsp +++ b/specification/ai/Azure.AI.Unified/common/models.tsp @@ -287,43 +287,55 @@ union ExtraParameters { // Define a URI alias for clarity. alias Uri = string; -enum PendingUploadType { - None, - TemporaryBlobReference, +@doc("The type of pending upload.") +union PendingUploadType { + string, + + @doc("No pending upload.") + none: "None", + + @doc("Temporary Blob Reference is the only supported type.") + temporaryBlobReference: "TemporaryBlobReference", } -enum PendingUploadCredentialType { - SAS, +@doc("The type of credential used to access the storage account.") +union PendingUploadCredentialType { + string, + + @doc("SAS credential type.") + sas: "SAS", } +@doc("Represents a request for a pending upload.") model PendingUploadRequest { - /// If PendingUploadId is not provided, a random guid will be used. + @doc("If PendingUploadId is not provided, a random GUID will be used.") pendingUploadId?: string; - /// TemporaryBlobReference is the only supported type. - pendingUploadType: PendingUploadType.TemporaryBlobReference; + @doc("TemporaryBlobReference is the only supported type.") + pendingUploadType: PendingUploadType.temporaryBlobReference; } +@doc("Represents the response for a pending upload request") model PendingUploadResponse { - /// Container-level read, write, list SAS. + @doc("Container-level read, write, list SAS.") blobReferenceForConsumption: BlobReferenceForConsumption; - /// ID for this upload request. + @doc("ID for this upload request.") pendingUploadId: string; - /// TemporaryBlobReference is the only supported type. - pendingUploadType: PendingUploadType.TemporaryBlobReference; + @doc("TemporaryBlobReference is the only supported type") + pendingUploadType: PendingUploadType.temporaryBlobReference; } +@doc("Represents a reference to a blob for consumption") model BlobReferenceForConsumption { - /// Blob URI path for client to upload data. - /// Example: https://blob.windows.core.net/Container/Path + @doc("Blob URI path for client to upload data. Example: https://blob.windows.core.net/Container/Path") blobUri: Uri; - /// ARM ID of the storage account to use. + @doc("ARM ID of the storage account to use.") storageAccountArmId: string; - /// Credential info to access the storage account. + @doc("Credential info to access the storage account.") credential: SasCredential; } diff --git a/specification/ai/Azure.AI.Unified/tspconfig.yaml b/specification/ai/Azure.AI.Unified/tspconfig.yaml index 7a99ba0f3c1e..7a9b7a1a5ecd 100644 --- a/specification/ai/Azure.AI.Unified/tspconfig.yaml +++ b/specification/ai/Azure.AI.Unified/tspconfig.yaml @@ -37,3 +37,6 @@ linter: - "@azure-tools/typespec-azure-rulesets/data-plane" disable: "@azure-tools/typespec-azure-core/casing-style": "Since we have many names in the form XxxxAIXxxx" + "@azure-tools/typespec-azure-core/no-string-discriminator": "Use an extensible union instead of a plain string" + "@azure-tools/typespec-azure-core/bad-record-type": "We do want to use Record, and not Record. But this needs further investigation" + "@azure-tools/typespec-azure-core/use-standard-names": "PUT operations that return 200 should start with 'replace' or 'createOrReplace'" diff --git a/specification/ai/data-plane/Azure.AI.Unified/preview/2025-05-01-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Unified/preview/2025-05-01-preview/azure-ai-projects-1dp.json new file mode 100644 index 000000000000..e240a1cdb21c --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Unified/preview/2025-05-01-preview/azure-ai-projects-1dp.json @@ -0,0 +1,12068 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure AI", + "version": "2025-05-01-preview", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "x-ms-parameterized-host": { + "hostTemplate": "{endpoint}", + "useSchemePrefix": false, + "parameters": [ + { + "name": "endpoint", + "in": "path", + "description": "Project endpoint in the form of: https://.services.ai.azure.com/projects/", + "required": true, + "type": "string", + "format": "uri", + "x-ms-skip-url-encoding": true + } + ] + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "OAuth2Auth": [ + "https://cognitiveservices.azure.com/.default" + ] + } + ], + "securityDefinitions": { + "OAuth2Auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", + "scopes": { + "https://cognitiveservices.azure.com/.default": "" + } + } + }, + "tags": [], + "paths": { + "/assistants": { + "get": { + "operationId": "Agents_ListAgents", + "description": "Gets a list of agents that were previously created.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "limit", + "in": "query", + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", + "required": false, + "type": "integer", + "format": "int32", + "default": 20 + }, + { + "name": "order", + "in": "query", + "description": "Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.", + "required": false, + "type": "string", + "default": "desc", + "enum": [ + "asc", + "desc" + ], + "x-ms-enum": { + "name": "ListSortOrder", + "modelAsString": true, + "values": [ + { + "name": "ascending", + "value": "asc", + "description": "Specifies an ascending sort order." + }, + { + "name": "descending", + "value": "desc", + "description": "Specifies a descending sort order." + } + ] + } + }, + { + "name": "after", + "in": "query", + "description": "A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.", + "required": false, + "type": "string" + }, + { + "name": "before", + "in": "query", + "description": "A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The requested list of agents.", + "schema": { + "type": "object", + "description": "The response data for a requested list of items.", + "properties": { + "object": { + "type": "string", + "description": "The object type, which is always list.", + "enum": [ + "list" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "data": { + "type": "array", + "description": "The requested list of items.", + "items": { + "$ref": "#/definitions/Agents.Agent" + } + }, + "first_id": { + "type": "string", + "description": "The first ID represented in this list.", + "x-ms-client-name": "firstId" + }, + "last_id": { + "type": "string", + "description": "The last ID represented in this list.", + "x-ms-client-name": "lastId" + }, + "has_more": { + "type": "boolean", + "description": "A value indicating whether there are additional values available not captured in this list.", + "x-ms-client-name": "hasMore" + } + }, + "required": [ + "object", + "data", + "first_id", + "last_id", + "has_more" + ] + } + }, + "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." + } + } + } + } + }, + "post": { + "operationId": "Agents_CreateAgent", + "description": "Creates a new agent.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Agents.CreateAgentOptions" + } + } + ], + "responses": { + "200": { + "description": "The new agent instance.", + "schema": { + "$ref": "#/definitions/Agents.Agent" + } + }, + "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." + } + } + } + } + } + }, + "/assistants/{assistantId}": { + "get": { + "operationId": "Agents_GetAgent", + "description": "Retrieves an existing agent.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "assistantId", + "in": "path", + "description": "Identifier of the agent.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The requested agent instance.", + "schema": { + "$ref": "#/definitions/Agents.Agent" + } + }, + "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." + } + } + } + } + }, + "post": { + "operationId": "Agents_UpdateAgent", + "description": "Modifies an existing agent.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Agents.UpdateAgentOptions.assistantId" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Agents.UpdateAgentOptions" + } + } + ], + "responses": { + "200": { + "description": "The updated agent instance.", + "schema": { + "$ref": "#/definitions/Agents.Agent" + } + }, + "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." + } + } + } + } + }, + "delete": { + "operationId": "Agents_DeleteAgent", + "description": "Deletes an agent.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "assistantId", + "in": "path", + "description": "Identifier of the agent.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Status information about the requested deletion operation.", + "schema": { + "$ref": "#/definitions/Agents.AgentDeletionStatus" + } + }, + "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." + } + } + } + } + } + }, + "/connections": { + "get": { + "operationId": "Connections_List", + "description": "List all connections in the project", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "$connectionCategory", + "in": "query", + "description": "Specific type of connection to return in list", + "required": false, + "type": "string", + "enum": [ + "AzureOpenAI", + "AzureBlob", + "CognitiveSearch", + "CosmosDB", + "ApiKey" + ], + "x-ms-enum": { + "name": "ConnectionCategory", + "modelAsString": true, + "values": [ + { + "name": "AzureOpenAI", + "value": "AzureOpenAI", + "description": "Azure OpenAI Service" + }, + { + "name": "AzureBlobStorage", + "value": "AzureBlob", + "description": "Azure Blob Storage" + }, + { + "name": "AzureAISearch", + "value": "CognitiveSearch", + "description": "Azure AI Search" + }, + { + "name": "CosmosDB", + "value": "CosmosDB", + "description": "CosmosDB" + }, + { + "name": "APIKey", + "value": "ApiKey", + "description": "Generic connection that uses API Key authentication" + } + ] + }, + "x-ms-client-name": "connectionCategory" + }, + { + "$ref": "#/parameters/Azure.Core.TopQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.SkipQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedConnection" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/connections/{connectionName}": { + "get": { + "operationId": "Connections_Get", + "description": "Get a connection by name.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "connectionName", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Connection" + }, + "headers": { + "ETag": { + "type": "string", + "description": "The entity tag for the response." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/connections/{connectionName}:getWithCredentials": { + "post": { + "operationId": "Connections_GetWithCredentials", + "description": "Get connection with secrets by name.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "connectionName", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Connection" + }, + "headers": { + "Repeatability-Result": { + "type": "string", + "description": "Indicates whether the repeatable request was accepted or rejected.", + "enum": [ + "accepted", + "rejected" + ], + "x-ms-enum": { + "name": "RepeatabilityResult", + "modelAsString": false, + "values": [ + { + "name": "accepted", + "value": "accepted", + "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." + }, + { + "name": "rejected", + "value": "rejected", + "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/datasets": { + "get": { + "operationId": "Datasets_ListLatestDatasets", + "description": "List latest version of each dataset in a project.", + "parameters": [ + { + "name": "$continuationToken", + "in": "query", + "description": "Continuation token for pagination. This is the nextLink from the previous response.", + "required": false, + "type": "string" + }, + { + "name": "listViewType", + "in": "query", + "description": "View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedDatasetVersion" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/datasets/{name}/versions": { + "get": { + "operationId": "Datasets_ListDatasetVersions", + "description": "List dataset versions of a specific dataset", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Container name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$" + }, + { + "name": "$orderBy", + "in": "query", + "description": "Please choose OrderBy value from ['createdtime', 'modifiedtime']", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$skip", + "in": "query", + "description": "Continuation token for pagination.", + "required": false, + "type": "string" + }, + { + "name": "$tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", + "required": false, + "type": "string" + }, + { + "name": "listViewType", + "in": "query", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedDatasetVersion" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/datasets/{name}/versions/{version}": { + "get": { + "operationId": "Datasets_GetVersion", + "description": "Get dataset version.", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Container name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$" + }, + { + "name": "version", + "in": "path", + "description": "Version identifier.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + } + } + }, + "put": { + "operationId": "Datasets_CreateOrUpdate", + "description": "Create or update version.", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Container name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$" + }, + { + "name": "version", + "in": "path", + "description": "Version identifier.", + "required": true, + "type": "string" + }, + { + "name": "datasetVersion", + "in": "body", + "description": "Version entity to create or update.", + "required": true, + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + } + } + }, + "delete": { + "operationId": "Datasets_DeleteVersion", + "description": "Delete version.", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Container name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$" + }, + { + "name": "version", + "in": "path", + "description": "Version identifier.", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " + } + } + } + }, + "/datasets/{name}/versions/{version}/startPendingUpload": { + "post": { + "operationId": "Datasets_CreateOrGetStartPendingUpload", + "description": "Start pending upload.", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Container name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$" + }, + { + "name": "version", + "in": "path", + "description": "Version identifier.", + "required": true, + "type": "string" + }, + { + "name": "pendingUploadRequest", + "in": "body", + "description": "Pensing upload request.", + "required": true, + "schema": { + "$ref": "#/definitions/PendingUploadRequest" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PendingUploadResponse" + } + } + } + } + }, + "/deployments": { + "get": { + "operationId": "Deployments_List", + "description": "List all deployed models in the project", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "$modelPublisher", + "in": "query", + "description": "Model publisher to filter models by", + "required": false, + "type": "string", + "x-ms-client-name": "modelPublisher" + }, + { + "name": "$modelName", + "in": "query", + "description": "Model name (the publisher specific name) to filter models by", + "required": false, + "type": "string", + "x-ms-client-name": "modelName" + }, + { + "name": "$includeConnectedModels", + "in": "query", + "description": "Flag to include models from connections in response.", + "required": false, + "type": "boolean", + "x-ms-client-name": "includeConnectionModels" + }, + { + "$ref": "#/parameters/Azure.Core.TopQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.SkipQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedDeployment" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deployments/{deploymentName}": { + "get": { + "operationId": "Deployments_Get", + "description": "Get a deployed model.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "Name of the deployment for the model", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Deployment" + }, + "headers": { + "ETag": { + "type": "string", + "description": "The entity tag for the response." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/evaluations": { + "get": { + "operationId": "Evaluations_List", + "description": "List evaluations", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.TopQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.SkipQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedEvaluation" + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/evaluations/{id}": { + "get": { + "operationId": "Evaluations_Get", + "description": "Get an evaluation.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "id", + "in": "path", + "description": "Identifier of the evaluation.", + "required": true, + "type": "string", + "maxLength": 254, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_]*$" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Evaluation" + } + }, + "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." + } + } + } + } + } + }, + "/evaluations:create": { + "post": { + "operationId": "Evaluations_Create", + "description": "Creates an evaluation.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "body", + "in": "body", + "description": "Properties of Evaluation.", + "required": true, + "schema": { + "$ref": "#/definitions/Evaluation" + } + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/Evaluation" + } + }, + "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." + } + } + } + } + } + }, + "/files": { + "get": { + "operationId": "Agents_ListFiles", + "description": "Gets a list of previously uploaded files.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "purpose", + "in": "query", + "description": "The purpose of the file.", + "required": false, + "type": "string", + "enum": [ + "fine-tune", + "fine-tune-results", + "assistants", + "assistants_output", + "batch", + "batch_output", + "vision" + ], + "x-ms-enum": { + "name": "FilePurpose", + "modelAsString": true, + "values": [ + { + "name": "fineTune", + "value": "fine-tune", + "description": "Indicates a file is used for fine tuning input." + }, + { + "name": "fineTuneResults", + "value": "fine-tune-results", + "description": "Indicates a file is used for fine tuning results." + }, + { + "name": "agents", + "value": "assistants", + "description": "Indicates a file is used as input to agents." + }, + { + "name": "agentsOutput", + "value": "assistants_output", + "description": "Indicates a file is used as output by agents." + }, + { + "name": "batch", + "value": "batch", + "description": "Indicates a file is used as input to ." + }, + { + "name": "batchOutput", + "value": "batch_output", + "description": "Indicates a file is used as output by a vector store batch operation." + }, + { + "name": "vision", + "value": "vision", + "description": "Indicates a file is used as input to a vision operation." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The requested list of files.", + "schema": { + "$ref": "#/definitions/Agents.FileListResponse" + } + }, + "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." + } + } + } + } + }, + "post": { + "operationId": "Agents_UploadFile", + "description": "Uploads a file for use by other operations.", + "consumes": [ + "multipart/form-data" + ], + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "file", + "in": "formData", + "description": "The file data, in bytes.", + "required": true, + "type": "file" + }, + { + "name": "purpose", + "in": "formData", + "description": "The intended purpose of the uploaded file. Use `assistants` for Agents and Message files, `vision` for Agents image file inputs, `batch` for Batch API, and `fine-tune` for Fine-tuning.", + "required": true, + "type": "string", + "enum": [ + "fine-tune", + "fine-tune-results", + "assistants", + "assistants_output", + "batch", + "batch_output", + "vision" + ], + "x-ms-enum": { + "name": "FilePurpose", + "modelAsString": true, + "values": [ + { + "name": "fineTune", + "value": "fine-tune", + "description": "Indicates a file is used for fine tuning input." + }, + { + "name": "fineTuneResults", + "value": "fine-tune-results", + "description": "Indicates a file is used for fine tuning results." + }, + { + "name": "agents", + "value": "assistants", + "description": "Indicates a file is used as input to agents." + }, + { + "name": "agentsOutput", + "value": "assistants_output", + "description": "Indicates a file is used as output by agents." + }, + { + "name": "batch", + "value": "batch", + "description": "Indicates a file is used as input to ." + }, + { + "name": "batchOutput", + "value": "batch_output", + "description": "Indicates a file is used as output by a vector store batch operation." + }, + { + "name": "vision", + "value": "vision", + "description": "Indicates a file is used as input to a vision operation." + } + ] + } + }, + { + "name": "filename", + "in": "formData", + "description": "The name of the file.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "A representation of the uploaded file.", + "schema": { + "$ref": "#/definitions/Agents.OpenAIFile" + } + }, + "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." + } + } + } + } + } + }, + "/files/{fileId}": { + "get": { + "operationId": "Agents_GetFile", + "description": "Returns information about a specific file. Does not retrieve file content.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "fileId", + "in": "path", + "description": "The ID of the file to retrieve.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Agents.OpenAIFile" + } + }, + "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." + } + } + } + } + }, + "delete": { + "operationId": "Agents_DeleteFile", + "description": "Delete a previously uploaded file.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "fileId", + "in": "path", + "description": "The ID of the file to delete.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Agents.FileDeletionStatus" + } + }, + "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." + } + } + } + } + } + }, + "/files/{fileId}/content": { + "get": { + "operationId": "Agents_GetFileContent", + "description": "Retrieves the raw content of a specific file.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "fileId", + "in": "path", + "description": "The ID of the file to retrieve.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "type": "string", + "format": "byte" + } + }, + "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." + } + } + } + } + } + }, + "/indexes": { + "get": { + "operationId": "Indexes_ListLatestIndexes", + "description": "List latest version of each dataset in a project.", + "parameters": [ + { + "name": "$continuationToken", + "in": "query", + "description": "Continuation token for pagination. This is the nextLink from the previous response.", + "required": false, + "type": "string" + }, + { + "name": "listViewType", + "in": "query", + "description": "View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedDatasetVersion" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/indexes/{name}:create": { + "post": { + "operationId": "Indexes_CreateIndex", + "description": "Creates or updates a IndexVersion.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "Name of the index.", + "required": true, + "type": "string", + "maxLength": 254, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_]*$" + }, + { + "name": "body", + "in": "body", + "description": "Properties of an Index Version.", + "required": true, + "schema": { + "$ref": "#/definitions/Index" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "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." + } + } + } + } + } + }, + "/indexes/{name}/versions": { + "get": { + "operationId": "Indexes_ListIndexVersions", + "description": "List the versions of an Index given the name.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "Name of the index.", + "required": true, + "type": "string", + "maxLength": 254, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_]*$" + }, + { + "name": "listViewType", + "in": "query", + "description": "View type for including/excluding (for example) archived entities.", + "required": true, + "type": "string", + "default": "ActiveOnly" + }, + { + "name": "orderBy", + "in": "query", + "description": "Ordering of list: Please choose orderby value from ['createdAt', 'lastModifiedAt'].", + "required": false, + "type": "string" + }, + { + "name": "orderby", + "in": "query", + "description": "Ordering of list: Please choose orderby value from ['createdAt', 'lastModifiedAt'].", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2.", + "required": false, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.TopQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.SkipQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedIndex" + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/indexes/{name}/versions/{version}": { + "get": { + "operationId": "Indexes_Get", + "description": "Get a specific version of an Index.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "Name of the index.", + "required": true, + "type": "string", + "maxLength": 254, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_]*$" + }, + { + "name": "version", + "in": "path", + "description": "Version of the index.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "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." + } + } + } + } + }, + "delete": { + "operationId": "Indexes_DeleteVersion", + "description": "Delete version.", + "parameters": [ + { + "name": "name", + "in": "path", + "description": "Container name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$" + }, + { + "name": "version", + "in": "path", + "description": "Version identifier.", + "required": true, + "type": "string" + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " + } + } + } + }, + "/models/chat/completions": { + "post": { + "operationId": "Models_GetChatCompletions", + "description": "Gets chat completions for the provided chat messages.\nCompletions support a wide variety of tasks and generate text that continues from or \"completes\"\nprovided prompt data. The method makes a REST API call to the `/chat/completions` route\non the given endpoint.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "extra-parameters", + "in": "header", + "description": "Controls what happens if extra parameters, undefined by the REST API,\nare passed in the JSON request payload.\nThis sets the HTTP request header `extra-parameters`.", + "required": false, + "type": "string", + "enum": [ + "error", + "drop", + "pass-through" + ], + "x-ms-enum": { + "name": "ExtraParameters", + "modelAsString": true, + "values": [ + { + "name": "error", + "value": "error", + "description": "The service will error if it detected extra parameters in the request payload. This is the service default." + }, + { + "name": "drop", + "value": "drop", + "description": "The service will ignore (drop) extra parameters in the request payload. It will only pass the known parameters to the back-end AI model." + }, + { + "name": "pass_through", + "value": "pass-through", + "description": "The service will pass extra parameters to the back-end AI model." + } + ] + }, + "x-ms-client-name": "extra_params" + }, + { + "name": "body", + "in": "body", + "description": "The parameters of the chat completions request.", + "required": true, + "schema": { + "$ref": "#/definitions/ChatCompletionsOptions" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ChatCompletions" + } + }, + "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." + } + } + } + } + } + }, + "/models/embeddings": { + "post": { + "operationId": "Models_GetEmbeddings", + "description": "Return the embedding vectors for given text prompts.\nThe method makes a REST API call to the `/embeddings` route on the given endpoint.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "extra-parameters", + "in": "header", + "description": "Controls what happens if extra parameters, undefined by the REST API,\nare passed in the JSON request payload.\nThis sets the HTTP request header `extra-parameters`.", + "required": false, + "type": "string", + "enum": [ + "error", + "drop", + "pass-through" + ], + "x-ms-enum": { + "name": "ExtraParameters", + "modelAsString": true, + "values": [ + { + "name": "error", + "value": "error", + "description": "The service will error if it detected extra parameters in the request payload. This is the service default." + }, + { + "name": "drop", + "value": "drop", + "description": "The service will ignore (drop) extra parameters in the request payload. It will only pass the known parameters to the back-end AI model." + }, + { + "name": "pass_through", + "value": "pass-through", + "description": "The service will pass extra parameters to the back-end AI model." + } + ] + }, + "x-ms-client-name": "extra_params" + }, + { + "name": "body", + "in": "body", + "description": "The parameters of the embeddings request.", + "required": true, + "schema": { + "$ref": "#/definitions/EmbeddingsOptions" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/EmbeddingsResult" + } + }, + "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." + } + } + } + } + } + }, + "/models/images/embeddings": { + "post": { + "operationId": "Models_GetImageEmbeddings", + "description": "Return the embedding vectors for given images.\nThe method makes a REST API call to the `/images/embeddings` route on the given endpoint.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "extra-parameters", + "in": "header", + "description": "Controls what happens if extra parameters, undefined by the REST API,\nare passed in the JSON request payload.\nThis sets the HTTP request header `extra-parameters`.", + "required": false, + "type": "string", + "enum": [ + "error", + "drop", + "pass-through" + ], + "x-ms-enum": { + "name": "ExtraParameters", + "modelAsString": true, + "values": [ + { + "name": "error", + "value": "error", + "description": "The service will error if it detected extra parameters in the request payload. This is the service default." + }, + { + "name": "drop", + "value": "drop", + "description": "The service will ignore (drop) extra parameters in the request payload. It will only pass the known parameters to the back-end AI model." + }, + { + "name": "pass_through", + "value": "pass-through", + "description": "The service will pass extra parameters to the back-end AI model." + } + ] + }, + "x-ms-client-name": "extra_params" + }, + { + "name": "body", + "in": "body", + "description": "The parameters of the image embeddings request.", + "required": true, + "schema": { + "$ref": "#/definitions/ImageEmbeddingsOptions" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/EmbeddingsResult" + } + }, + "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." + } + } + } + } + } + }, + "/threads": { + "post": { + "operationId": "Agents_CreateThread", + "description": "Creates a new thread. Threads contain messages and can be run by agents.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Agents.AgentThreadCreationOptions" + } + } + ], + "responses": { + "200": { + "description": "Information about the newly created thread.", + "schema": { + "$ref": "#/definitions/Agents.AgentThread" + } + }, + "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." + } + } + } + } + } + }, + "/threads/{threadId}": { + "get": { + "operationId": "Agents_GetThread", + "description": "Gets information about an existing thread.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "threadId", + "in": "path", + "description": "Identifier of the thread.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Information about the requested thread.", + "schema": { + "$ref": "#/definitions/Agents.AgentThread" + } + }, + "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." + } + } + } + } + }, + "post": { + "operationId": "Agents_UpdateThread", + "description": "Modifies an existing thread.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Agents.UpdateAgentThreadOptions.threadId" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Agents.UpdateAgentThreadOptions" + } + } + ], + "responses": { + "200": { + "description": "Information about the modified thread.", + "schema": { + "$ref": "#/definitions/Agents.AgentThread" + } + }, + "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." + } + } + } + } + }, + "delete": { + "operationId": "Agents_DeleteThread", + "description": "Deletes an existing thread.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "threadId", + "in": "path", + "description": "Identifier of the thread.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Status information about the requested thread deletion operation.", + "schema": { + "$ref": "#/definitions/Agents.ThreadDeletionStatus" + } + }, + "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." + } + } + } + } + } + }, + "/threads/{threadId}/messages": { + "get": { + "operationId": "Agents_ListMessages", + "description": "Gets a list of messages that exist on a thread.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "threadId", + "in": "path", + "description": "Identifier of the thread.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "query", + "description": "Filter messages by the run ID that generated them.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", + "required": false, + "type": "integer", + "format": "int32", + "default": 20 + }, + { + "name": "order", + "in": "query", + "description": "Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.", + "required": false, + "type": "string", + "default": "desc", + "enum": [ + "asc", + "desc" + ], + "x-ms-enum": { + "name": "ListSortOrder", + "modelAsString": true, + "values": [ + { + "name": "ascending", + "value": "asc", + "description": "Specifies an ascending sort order." + }, + { + "name": "descending", + "value": "desc", + "description": "Specifies a descending sort order." + } + ] + } + }, + { + "name": "after", + "in": "query", + "description": "A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.", + "required": false, + "type": "string" + }, + { + "name": "before", + "in": "query", + "description": "A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The requested list of messages.", + "schema": { + "type": "object", + "description": "The response data for a requested list of items.", + "properties": { + "object": { + "type": "string", + "description": "The object type, which is always list.", + "enum": [ + "list" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "data": { + "type": "array", + "description": "The requested list of items.", + "items": { + "$ref": "#/definitions/Agents.ThreadMessage" + } + }, + "first_id": { + "type": "string", + "description": "The first ID represented in this list.", + "x-ms-client-name": "firstId" + }, + "last_id": { + "type": "string", + "description": "The last ID represented in this list.", + "x-ms-client-name": "lastId" + }, + "has_more": { + "type": "boolean", + "description": "A value indicating whether there are additional values available not captured in this list.", + "x-ms-client-name": "hasMore" + } + }, + "required": [ + "object", + "data", + "first_id", + "last_id", + "has_more" + ] + } + }, + "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." + } + } + } + } + }, + "post": { + "operationId": "Agents_CreateMessage", + "description": "Creates a new message on a specified thread.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "threadId", + "in": "path", + "description": "Identifier of the thread.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Agents.ThreadMessageOptions" + } + } + ], + "responses": { + "200": { + "description": "A representation of the new message.", + "schema": { + "$ref": "#/definitions/Agents.ThreadMessage" + } + }, + "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." + } + } + } + } + } + }, + "/threads/{threadId}/messages/{messageId}": { + "get": { + "operationId": "Agents_GetMessage", + "description": "Gets an existing message from an existing thread.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "threadId", + "in": "path", + "description": "Identifier of the thread.", + "required": true, + "type": "string" + }, + { + "name": "messageId", + "in": "path", + "description": "Identifier of the message.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "A representation of the requested message.", + "schema": { + "$ref": "#/definitions/Agents.ThreadMessage" + } + }, + "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." + } + } + } + } + }, + "post": { + "operationId": "Agents_UpdateMessage", + "description": "Modifies an existing message on an existing thread.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "threadId", + "in": "path", + "description": "Identifier of the thread.", + "required": true, + "type": "string" + }, + { + "name": "messageId", + "in": "path", + "description": "Identifier of the message.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "metadata": { + "type": "object", + "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + } + } + } + } + ], + "responses": { + "200": { + "description": "A representation of the modified message.", + "schema": { + "$ref": "#/definitions/Agents.ThreadMessage" + } + }, + "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." + } + } + } + } + } + }, + "/threads/{threadId}/runs": { + "get": { + "operationId": "Agents_ListRuns", + "description": "Gets a list of runs for a specified thread.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "threadId", + "in": "path", + "description": "Identifier of the thread.", + "required": true, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", + "required": false, + "type": "integer", + "format": "int32", + "default": 20 + }, + { + "name": "order", + "in": "query", + "description": "Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.", + "required": false, + "type": "string", + "default": "desc", + "enum": [ + "asc", + "desc" + ], + "x-ms-enum": { + "name": "ListSortOrder", + "modelAsString": true, + "values": [ + { + "name": "ascending", + "value": "asc", + "description": "Specifies an ascending sort order." + }, + { + "name": "descending", + "value": "desc", + "description": "Specifies a descending sort order." + } + ] + } + }, + { + "name": "after", + "in": "query", + "description": "A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.", + "required": false, + "type": "string" + }, + { + "name": "before", + "in": "query", + "description": "A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The requested list of thread runs.", + "schema": { + "type": "object", + "description": "The response data for a requested list of items.", + "properties": { + "object": { + "type": "string", + "description": "The object type, which is always list.", + "enum": [ + "list" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "data": { + "type": "array", + "description": "The requested list of items.", + "items": { + "$ref": "#/definitions/Agents.ThreadRun" + } + }, + "first_id": { + "type": "string", + "description": "The first ID represented in this list.", + "x-ms-client-name": "firstId" + }, + "last_id": { + "type": "string", + "description": "The last ID represented in this list.", + "x-ms-client-name": "lastId" + }, + "has_more": { + "type": "boolean", + "description": "A value indicating whether there are additional values available not captured in this list.", + "x-ms-client-name": "hasMore" + } + }, + "required": [ + "object", + "data", + "first_id", + "last_id", + "has_more" + ] + } + }, + "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." + } + } + } + } + }, + "post": { + "operationId": "Agents_CreateRun", + "description": "Creates a new run for an agent thread.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "threadId", + "in": "path", + "description": "Identifier of the thread.", + "required": true, + "type": "string" + }, + { + "name": "include[]", + "in": "query", + "description": "A list of additional fields to include in the response.\nCurrently the only supported value is `step_details.tool_calls[*].file_search.results[*].content` to fetch the file search result content.", + "required": false, + "type": "array", + "items": { + "type": "string", + "enum": [ + "step_details.tool_calls[*].file_search.results[*].content" + ], + "x-ms-enum": { + "name": "RunAdditionalFieldList", + "modelAsString": true, + "values": [ + { + "name": "FileSearchContents", + "value": "step_details.tool_calls[*].file_search.results[*].content", + "description": "File search result content." + } + ] + } + }, + "collectionFormat": "csv", + "x-ms-client-name": "include" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Agents.CreateRunOptions" + } + } + ], + "responses": { + "200": { + "description": "Information about the new thread run.", + "schema": { + "$ref": "#/definitions/Agents.ThreadRun" + } + }, + "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." + } + } + } + } + } + }, + "/threads/{threadId}/runs/{runId}": { + "get": { + "operationId": "Agents_GetRun", + "description": "Gets an existing run from an existing thread.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "threadId", + "in": "path", + "description": "Identifier of the thread.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "Identifier of the run.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The requested information about the specified thread run.", + "schema": { + "$ref": "#/definitions/Agents.ThreadRun" + } + }, + "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." + } + } + } + } + }, + "post": { + "operationId": "Agents_UpdateRun", + "description": "Modifies an existing thread run.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "threadId", + "in": "path", + "description": "Identifier of the thread.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "Identifier of the run.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "metadata": { + "type": "object", + "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + } + } + } + } + ], + "responses": { + "200": { + "description": "Information about the modified run.", + "schema": { + "$ref": "#/definitions/Agents.ThreadRun" + } + }, + "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." + } + } + } + } + } + }, + "/threads/{threadId}/runs/{runId}/cancel": { + "post": { + "operationId": "Agents_CancelRun", + "description": "Cancels a run of an in progress thread.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "threadId", + "in": "path", + "description": "Identifier of the thread.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "Identifier of the run.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Updated information about the cancelled run.", + "schema": { + "$ref": "#/definitions/Agents.ThreadRun" + } + }, + "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." + } + } + } + } + } + }, + "/threads/{threadId}/runs/{runId}/steps": { + "get": { + "operationId": "Agents_ListRunSteps", + "description": "Gets a list of run steps from a thread run.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "threadId", + "in": "path", + "description": "Identifier of the thread.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "Identifier of the run.", + "required": true, + "type": "string" + }, + { + "name": "include[]", + "in": "query", + "description": "A list of additional fields to include in the response.\nCurrently the only supported value is `step_details.tool_calls[*].file_search.results[*].content` to fetch the file search result content.", + "required": false, + "type": "array", + "items": { + "type": "string", + "enum": [ + "step_details.tool_calls[*].file_search.results[*].content" + ], + "x-ms-enum": { + "name": "RunAdditionalFieldList", + "modelAsString": true, + "values": [ + { + "name": "FileSearchContents", + "value": "step_details.tool_calls[*].file_search.results[*].content", + "description": "File search result content." + } + ] + } + }, + "collectionFormat": "csv", + "x-ms-client-name": "include" + }, + { + "name": "limit", + "in": "query", + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", + "required": false, + "type": "integer", + "format": "int32", + "default": 20 + }, + { + "name": "order", + "in": "query", + "description": "Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.", + "required": false, + "type": "string", + "default": "desc", + "enum": [ + "asc", + "desc" + ], + "x-ms-enum": { + "name": "ListSortOrder", + "modelAsString": true, + "values": [ + { + "name": "ascending", + "value": "asc", + "description": "Specifies an ascending sort order." + }, + { + "name": "descending", + "value": "desc", + "description": "Specifies a descending sort order." + } + ] + } + }, + { + "name": "after", + "in": "query", + "description": "A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.", + "required": false, + "type": "string" + }, + { + "name": "before", + "in": "query", + "description": "A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The requested list of run steps.", + "schema": { + "type": "object", + "description": "The response data for a requested list of items.", + "properties": { + "object": { + "type": "string", + "description": "The object type, which is always list.", + "enum": [ + "list" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "data": { + "type": "array", + "description": "The requested list of items.", + "items": { + "$ref": "#/definitions/Agents.RunStep" + } + }, + "first_id": { + "type": "string", + "description": "The first ID represented in this list.", + "x-ms-client-name": "firstId" + }, + "last_id": { + "type": "string", + "description": "The last ID represented in this list.", + "x-ms-client-name": "lastId" + }, + "has_more": { + "type": "boolean", + "description": "A value indicating whether there are additional values available not captured in this list.", + "x-ms-client-name": "hasMore" + } + }, + "required": [ + "object", + "data", + "first_id", + "last_id", + "has_more" + ] + } + }, + "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." + } + } + } + } + } + }, + "/threads/{threadId}/runs/{runId}/steps/{stepId}": { + "get": { + "operationId": "Agents_GetRunStep", + "description": "Gets a single run step from a thread run.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "threadId", + "in": "path", + "description": "Identifier of the thread.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "Identifier of the run.", + "required": true, + "type": "string" + }, + { + "name": "stepId", + "in": "path", + "description": "Identifier of the run step.", + "required": true, + "type": "string" + }, + { + "name": "include[]", + "in": "query", + "description": "A list of additional fields to include in the response.\nCurrently the only supported value is `step_details.tool_calls[*].file_search.results[*].content` to fetch the file search result content.", + "required": false, + "type": "array", + "items": { + "type": "string", + "enum": [ + "step_details.tool_calls[*].file_search.results[*].content" + ], + "x-ms-enum": { + "name": "RunAdditionalFieldList", + "modelAsString": true, + "values": [ + { + "name": "FileSearchContents", + "value": "step_details.tool_calls[*].file_search.results[*].content", + "description": "File search result content." + } + ] + } + }, + "collectionFormat": "csv", + "x-ms-client-name": "include" + } + ], + "responses": { + "200": { + "description": "Information about the requested run step.", + "schema": { + "$ref": "#/definitions/Agents.RunStep" + } + }, + "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." + } + } + } + } + } + }, + "/threads/{threadId}/runs/{runId}/submit_tool_outputs": { + "post": { + "operationId": "Agents_SubmitToolOutputsToRun", + "description": "Submits outputs from tools as requested by tool calls in a run. Runs that need submitted tool outputs will have a status of 'requires_action' with a required_action.type of 'submit_tool_outputs'.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "threadId", + "in": "path", + "description": "Identifier of the thread.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "Identifier of the run.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "tool_outputs": { + "type": "array", + "description": "A list of tools for which the outputs are being submitted", + "items": { + "$ref": "#/definitions/Agents.ToolOutput" + }, + "x-ms-client-name": "toolOutputs", + "x-ms-identifiers": [] + }, + "stream": { + "type": "boolean", + "description": "If true, returns a stream of events that happen during the Run as server-sent events, terminating when the run enters a terminal state.", + "x-nullable": true + } + }, + "required": [ + "tool_outputs" + ] + } + } + ], + "responses": { + "200": { + "description": "Updated information about the run.", + "schema": { + "$ref": "#/definitions/Agents.ThreadRun" + } + }, + "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." + } + } + } + } + } + }, + "/threads/runs": { + "post": { + "operationId": "Agents_CreateThreadAndRun", + "description": "Creates a new agent thread and immediately starts a run using that new thread.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Agents.CreateAndRunThreadOptions" + } + } + ], + "responses": { + "200": { + "description": "Information about the newly created thread.", + "schema": { + "$ref": "#/definitions/Agents.ThreadRun" + } + }, + "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." + } + } + } + } + } + }, + "/vector_stores": { + "get": { + "operationId": "Agents_ListVectorStores", + "description": "Returns a list of vector stores.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "limit", + "in": "query", + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", + "required": false, + "type": "integer", + "format": "int32", + "default": 20 + }, + { + "name": "order", + "in": "query", + "description": "Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.", + "required": false, + "type": "string", + "default": "desc", + "enum": [ + "asc", + "desc" + ], + "x-ms-enum": { + "name": "ListSortOrder", + "modelAsString": true, + "values": [ + { + "name": "ascending", + "value": "asc", + "description": "Specifies an ascending sort order." + }, + { + "name": "descending", + "value": "desc", + "description": "Specifies a descending sort order." + } + ] + } + }, + { + "name": "after", + "in": "query", + "description": "A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.", + "required": false, + "type": "string" + }, + { + "name": "before", + "in": "query", + "description": "A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "type": "object", + "description": "The response data for a requested list of items.", + "properties": { + "object": { + "type": "string", + "description": "The object type, which is always list.", + "enum": [ + "list" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "data": { + "type": "array", + "description": "The requested list of items.", + "items": { + "$ref": "#/definitions/Agents.VectorStore" + } + }, + "first_id": { + "type": "string", + "description": "The first ID represented in this list.", + "x-ms-client-name": "firstId" + }, + "last_id": { + "type": "string", + "description": "The last ID represented in this list.", + "x-ms-client-name": "lastId" + }, + "has_more": { + "type": "boolean", + "description": "A value indicating whether there are additional values available not captured in this list.", + "x-ms-client-name": "hasMore" + } + }, + "required": [ + "object", + "data", + "first_id", + "last_id", + "has_more" + ] + } + }, + "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." + } + } + } + } + }, + "post": { + "operationId": "Agents_CreateVectorStore", + "description": "Creates a vector store.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Agents.VectorStoreOptions" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Agents.VectorStore" + } + }, + "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." + } + } + } + } + } + }, + "/vector_stores/{vectorStoreId}": { + "get": { + "operationId": "Agents_GetVectorStore", + "description": "Returns the vector store object matching the specified ID.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "vectorStoreId", + "in": "path", + "description": "Identifier of the vector store.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Agents.VectorStore" + } + }, + "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." + } + } + } + } + }, + "post": { + "operationId": "Agents_ModifyVectorStore", + "description": "The ID of the vector store to modify.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "vectorStoreId", + "in": "path", + "description": "Identifier of the vector store.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Agents.VectorStoreUpdateOptions" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Agents.VectorStore" + } + }, + "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." + } + } + } + } + }, + "delete": { + "operationId": "Agents_DeleteVectorStore", + "description": "Deletes the vector store object matching the specified ID.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "vectorStoreId", + "in": "path", + "description": "Identifier of the vector store.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Agents.VectorStoreDeletionStatus" + } + }, + "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." + } + } + } + } + } + }, + "/vector_stores/{vectorStoreId}/file_batches": { + "post": { + "operationId": "Agents_CreateVectorStoreFileBatch", + "description": "Create a vector store file batch.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "vectorStoreId", + "in": "path", + "description": "Identifier of the vector store.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "file_ids": { + "type": "array", + "description": "List of file identifiers.", + "minItems": 1, + "maxItems": 500, + "items": { + "type": "string" + }, + "x-ms-client-name": "fileIds" + }, + "data_sources": { + "type": "array", + "description": "List of Azure assets.", + "minItems": 1, + "maxItems": 500, + "items": { + "$ref": "#/definitions/Agents.VectorStoreDataSource" + }, + "x-ms-client-name": "dataSources", + "x-ms-identifiers": [] + }, + "chunking_strategy": { + "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyRequest", + "description": "The chunking strategy used to chunk the file(s). If not set, will use the auto strategy.", + "x-ms-client-name": "chunkingStrategy" + } + } + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Agents.VectorStoreFileBatch" + } + }, + "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." + } + } + } + } + } + }, + "/vector_stores/{vectorStoreId}/file_batches/{batchId}": { + "get": { + "operationId": "Agents_GetVectorStoreFileBatch", + "description": "Retrieve a vector store file batch.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "vectorStoreId", + "in": "path", + "description": "Identifier of the vector store.", + "required": true, + "type": "string" + }, + { + "name": "batchId", + "in": "path", + "description": "Identifier of the file batch.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Agents.VectorStoreFileBatch" + } + }, + "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." + } + } + } + } + } + }, + "/vector_stores/{vectorStoreId}/file_batches/{batchId}/cancel": { + "post": { + "operationId": "Agents_CancelVectorStoreFileBatch", + "description": "Cancel a vector store file batch. This attempts to cancel the processing of files in this batch as soon as possible.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "vectorStoreId", + "in": "path", + "description": "Identifier of the vector store.", + "required": true, + "type": "string" + }, + { + "name": "batchId", + "in": "path", + "description": "Identifier of the file batch.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Agents.VectorStoreFileBatch" + } + }, + "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." + } + } + } + } + } + }, + "/vector_stores/{vectorStoreId}/file_batches/{batchId}/files": { + "get": { + "operationId": "Agents_ListVectorStoreFileBatchFiles", + "description": "Returns a list of vector store files in a batch.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "vectorStoreId", + "in": "path", + "description": "Identifier of the vector store.", + "required": true, + "type": "string" + }, + { + "name": "batchId", + "in": "path", + "description": "Identifier of the file batch.", + "required": true, + "type": "string" + }, + { + "name": "filter", + "in": "query", + "description": "Filter by file status.", + "required": false, + "type": "string", + "enum": [ + "in_progress", + "completed", + "failed", + "cancelled" + ], + "x-ms-enum": { + "name": "VectorStoreFileStatusFilter", + "modelAsString": true, + "values": [ + { + "name": "inProgress", + "value": "in_progress", + "description": "Retrieve only files that are currently being processed" + }, + { + "name": "completed", + "value": "completed", + "description": "Retrieve only files that have been successfully processed" + }, + { + "name": "failed", + "value": "failed", + "description": "Retrieve only files that have failed to process" + }, + { + "name": "cancelled", + "value": "cancelled", + "description": "Retrieve only files that were cancelled" + } + ] + } + }, + { + "name": "limit", + "in": "query", + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", + "required": false, + "type": "integer", + "format": "int32", + "default": 20 + }, + { + "name": "order", + "in": "query", + "description": "Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.", + "required": false, + "type": "string", + "default": "desc", + "enum": [ + "asc", + "desc" + ], + "x-ms-enum": { + "name": "ListSortOrder", + "modelAsString": true, + "values": [ + { + "name": "ascending", + "value": "asc", + "description": "Specifies an ascending sort order." + }, + { + "name": "descending", + "value": "desc", + "description": "Specifies a descending sort order." + } + ] + } + }, + { + "name": "after", + "in": "query", + "description": "A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.", + "required": false, + "type": "string" + }, + { + "name": "before", + "in": "query", + "description": "A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "type": "object", + "description": "The response data for a requested list of items.", + "properties": { + "object": { + "type": "string", + "description": "The object type, which is always list.", + "enum": [ + "list" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "data": { + "type": "array", + "description": "The requested list of items.", + "items": { + "$ref": "#/definitions/Agents.VectorStoreFile" + } + }, + "first_id": { + "type": "string", + "description": "The first ID represented in this list.", + "x-ms-client-name": "firstId" + }, + "last_id": { + "type": "string", + "description": "The last ID represented in this list.", + "x-ms-client-name": "lastId" + }, + "has_more": { + "type": "boolean", + "description": "A value indicating whether there are additional values available not captured in this list.", + "x-ms-client-name": "hasMore" + } + }, + "required": [ + "object", + "data", + "first_id", + "last_id", + "has_more" + ] + } + }, + "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." + } + } + } + } + } + }, + "/vector_stores/{vectorStoreId}/files": { + "get": { + "operationId": "Agents_ListVectorStoreFiles", + "description": "Returns a list of vector store files.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "vectorStoreId", + "in": "path", + "description": "Identifier of the vector store.", + "required": true, + "type": "string" + }, + { + "name": "filter", + "in": "query", + "description": "Filter by file status.", + "required": false, + "type": "string", + "enum": [ + "in_progress", + "completed", + "failed", + "cancelled" + ], + "x-ms-enum": { + "name": "VectorStoreFileStatusFilter", + "modelAsString": true, + "values": [ + { + "name": "inProgress", + "value": "in_progress", + "description": "Retrieve only files that are currently being processed" + }, + { + "name": "completed", + "value": "completed", + "description": "Retrieve only files that have been successfully processed" + }, + { + "name": "failed", + "value": "failed", + "description": "Retrieve only files that have failed to process" + }, + { + "name": "cancelled", + "value": "cancelled", + "description": "Retrieve only files that were cancelled" + } + ] + } + }, + { + "name": "limit", + "in": "query", + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", + "required": false, + "type": "integer", + "format": "int32", + "default": 20 + }, + { + "name": "order", + "in": "query", + "description": "Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.", + "required": false, + "type": "string", + "default": "desc", + "enum": [ + "asc", + "desc" + ], + "x-ms-enum": { + "name": "ListSortOrder", + "modelAsString": true, + "values": [ + { + "name": "ascending", + "value": "asc", + "description": "Specifies an ascending sort order." + }, + { + "name": "descending", + "value": "desc", + "description": "Specifies a descending sort order." + } + ] + } + }, + { + "name": "after", + "in": "query", + "description": "A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.", + "required": false, + "type": "string" + }, + { + "name": "before", + "in": "query", + "description": "A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "type": "object", + "description": "The response data for a requested list of items.", + "properties": { + "object": { + "type": "string", + "description": "The object type, which is always list.", + "enum": [ + "list" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "data": { + "type": "array", + "description": "The requested list of items.", + "items": { + "$ref": "#/definitions/Agents.VectorStoreFile" + } + }, + "first_id": { + "type": "string", + "description": "The first ID represented in this list.", + "x-ms-client-name": "firstId" + }, + "last_id": { + "type": "string", + "description": "The last ID represented in this list.", + "x-ms-client-name": "lastId" + }, + "has_more": { + "type": "boolean", + "description": "A value indicating whether there are additional values available not captured in this list.", + "x-ms-client-name": "hasMore" + } + }, + "required": [ + "object", + "data", + "first_id", + "last_id", + "has_more" + ] + } + }, + "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." + } + } + } + } + }, + "post": { + "operationId": "Agents_CreateVectorStoreFile", + "description": "Create a vector store file by attaching a file to a vector store.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "vectorStoreId", + "in": "path", + "description": "Identifier of the vector store.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "file_id": { + "type": "string", + "description": "Identifier of the file.", + "x-ms-client-name": "fileId" + }, + "data_source": { + "$ref": "#/definitions/Agents.VectorStoreDataSource", + "description": "Azure asset ID.", + "x-ms-client-name": "dataSource" + }, + "chunking_strategy": { + "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyRequest", + "description": "The chunking strategy used to chunk the file(s). If not set, will use the auto strategy.", + "x-ms-client-name": "chunkingStrategy" + } + } + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Agents.VectorStoreFile" + } + }, + "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." + } + } + } + } + } + }, + "/vector_stores/{vectorStoreId}/files/{fileId}": { + "get": { + "operationId": "Agents_GetVectorStoreFile", + "description": "Retrieves a vector store file.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "vectorStoreId", + "in": "path", + "description": "Identifier of the vector store.", + "required": true, + "type": "string" + }, + { + "name": "fileId", + "in": "path", + "description": "Identifier of the file.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Agents.VectorStoreFile" + } + }, + "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." + } + } + } + } + }, + "delete": { + "operationId": "Agents_DeleteVectorStoreFile", + "description": "Delete a vector store file. This will remove the file from the vector store but the file itself will not be deleted.\nTo delete the file, use the delete file endpoint.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "vectorStoreId", + "in": "path", + "description": "Identifier of the vector store.", + "required": true, + "type": "string" + }, + { + "name": "fileId", + "in": "path", + "description": "Identifier of the file.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Agents.VectorStoreFileDeletionStatus" + } + }, + "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." + } + } + } + } + } + } + }, + "definitions": { + "AadCredential": { + "type": "object", + "description": "AAD Credential definition", + "allOf": [ + { + "$ref": "#/definitions/BaseCredential" + } + ], + "x-ms-discriminator-value": "AAD" + }, + "Agents.Agent": { + "type": "object", + "description": "Represents an agent that can call the model and use tools.", + "properties": { + "id": { + "type": "string", + "description": "The identifier, which can be referenced in API endpoints." + }, + "object": { + "type": "string", + "description": "The object type, which is always assistant.", + "enum": [ + "assistant" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp, in seconds, representing when this object was created.", + "x-ms-client-name": "createdAt" + }, + "name": { + "type": "string", + "description": "The name of the agent.", + "x-nullable": true + }, + "description": { + "type": "string", + "description": "The description of the agent.", + "x-nullable": true + }, + "model": { + "type": "string", + "description": "The ID of the model to use." + }, + "instructions": { + "type": "string", + "description": "The system instructions for the agent to use.", + "x-nullable": true + }, + "tools": { + "type": "array", + "description": "The collection of tools enabled for the agent.", + "default": [], + "items": { + "$ref": "#/definitions/Agents.ToolDefinition" + }, + "x-ms-identifiers": [] + }, + "tool_resources": { + "type": "object", + "description": "A set of resources that are used by the agent's tools. The resources are specific to the type of tool. For example, the `code_interpreter`\ntool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs.", + "x-nullable": true, + "allOf": [ + { + "$ref": "#/definitions/Agents.ToolResources" + } + ], + "x-ms-client-name": "toolResources" + }, + "temperature": { + "type": "number", + "format": "float", + "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.", + "default": 1, + "x-nullable": true + }, + "top_p": { + "type": "number", + "format": "float", + "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\n\nWe generally recommend altering this or temperature but not both.", + "default": 1, + "x-nullable": true, + "x-ms-client-name": "topP" + }, + "response_format": { + "$ref": "#/definitions/Agents.AgentsApiResponseFormatOption", + "description": "The response format of the tool calls used by this agent.", + "x-nullable": true, + "x-ms-client-name": "responseFormat" + }, + "metadata": { + "type": "object", + "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "object", + "created_at", + "name", + "description", + "model", + "instructions", + "tools", + "tool_resources", + "temperature", + "top_p", + "metadata" + ] + }, + "Agents.AgentDeletionStatus": { + "type": "object", + "description": "The status of an agent deletion operation.", + "properties": { + "id": { + "type": "string", + "description": "The ID of the resource specified for deletion." + }, + "deleted": { + "type": "boolean", + "description": "A value indicating whether deletion was successful." + }, + "object": { + "type": "string", + "description": "The object type, which is always 'assistant.deleted'.", + "enum": [ + "assistant.deleted" + ], + "x-ms-enum": { + "modelAsString": false + } + } + }, + "required": [ + "id", + "deleted", + "object" + ] + }, + "Agents.AgentStreamEvent": { + "type": "string", + "description": "Each event in a server-sent events stream has an `event` and `data` property:\n\n```\nevent: thread.created\ndata: {\"id\": \"thread_123\", \"object\": \"thread\", ...}\n```\n\nWe emit events whenever a new object is created, transitions to a new state, or is being\nstreamed in parts (deltas). For example, we emit `thread.run.created` when a new run\nis created, `thread.run.completed` when a run completes, and so on. When an Agent chooses\nto create a message during a run, we emit a `thread.message.created event`, a\n`thread.message.in_progress` event, many `thread.message.delta` events, and finally a\n`thread.message.completed` event.\n\nWe may add additional events over time, so we recommend handling unknown events gracefully\nin your code.", + "enum": [ + "thread.created", + "thread.run.created", + "thread.run.queued", + "thread.run.in_progress", + "thread.run.requires_action", + "thread.run.completed", + "thread.run.incomplete", + "thread.run.failed", + "thread.run.cancelling", + "thread.run.cancelled", + "thread.run.expired", + "thread.run.step.created", + "thread.run.step.in_progress", + "thread.run.step.delta", + "thread.run.step.completed", + "thread.run.step.failed", + "thread.run.step.cancelled", + "thread.run.step.expired", + "thread.message.created", + "thread.message.in_progress", + "thread.message.delta", + "thread.message.completed", + "thread.message.incomplete", + "error", + "done" + ], + "x-ms-enum": { + "name": "AgentStreamEvent", + "modelAsString": true, + "values": [ + { + "name": "ThreadCreated", + "value": "thread.created", + "description": "Event sent when a new thread is created. The data of this event is of type AgentThread" + }, + { + "name": "ThreadRunCreated", + "value": "thread.run.created", + "description": "Event sent when a new run is created. The data of this event is of type ThreadRun" + }, + { + "name": "ThreadRunQueued", + "value": "thread.run.queued", + "description": "Event sent when a run moves to `queued` status. The data of this event is of type ThreadRun" + }, + { + "name": "ThreadRunInProgress", + "value": "thread.run.in_progress", + "description": "Event sent when a run moves to `in_progress` status. The data of this event is of type ThreadRun" + }, + { + "name": "ThreadRunRequiresAction", + "value": "thread.run.requires_action", + "description": "Event sent when a run moves to `requires_action` status. The data of this event is of type ThreadRun" + }, + { + "name": "ThreadRunCompleted", + "value": "thread.run.completed", + "description": "Event sent when a run is completed. The data of this event is of type ThreadRun" + }, + { + "name": "ThreadRunIncomplete", + "value": "thread.run.incomplete", + "description": "Event sent when a run ends incomplete. The data of this event is of type ThreadRun" + }, + { + "name": "ThreadRunFailed", + "value": "thread.run.failed", + "description": "Event sent when a run fails. The data of this event is of type ThreadRun" + }, + { + "name": "ThreadRunCancelling", + "value": "thread.run.cancelling", + "description": "Event sent when a run moves to `cancelling` status. The data of this event is of type ThreadRun" + }, + { + "name": "ThreadRunCancelled", + "value": "thread.run.cancelled", + "description": "Event sent when a run is cancelled. The data of this event is of type ThreadRun" + }, + { + "name": "ThreadRunExpired", + "value": "thread.run.expired", + "description": "Event sent when a run is expired. The data of this event is of type ThreadRun" + }, + { + "name": "ThreadRunStepCreated", + "value": "thread.run.step.created", + "description": "Event sent when a new thread run step is created. The data of this event is of type RunStep" + }, + { + "name": "ThreadRunStepInProgress", + "value": "thread.run.step.in_progress", + "description": "Event sent when a run step moves to `in_progress` status. The data of this event is of type RunStep" + }, + { + "name": "ThreadRunStepDelta", + "value": "thread.run.step.delta", + "description": "Event sent when a run step is being streamed. The data of this event is of type RunStepDeltaChunk" + }, + { + "name": "ThreadRunStepCompleted", + "value": "thread.run.step.completed", + "description": "Event sent when a run step is completed. The data of this event is of type RunStep" + }, + { + "name": "ThreadRunStepFailed", + "value": "thread.run.step.failed", + "description": "Event sent when a run step fails. The data of this event is of type RunStep" + }, + { + "name": "ThreadRunStepCancelled", + "value": "thread.run.step.cancelled", + "description": "Event sent when a run step is cancelled. The data of this event is of type RunStep" + }, + { + "name": "ThreadRunStepExpired", + "value": "thread.run.step.expired", + "description": "Event sent when a run step is expired. The data of this event is of type RunStep" + }, + { + "name": "ThreadMessageCreated", + "value": "thread.message.created", + "description": "Event sent when a new message is created. The data of this event is of type ThreadMessage" + }, + { + "name": "ThreadMessageInProgress", + "value": "thread.message.in_progress", + "description": "Event sent when a message moves to `in_progress` status. The data of this event is of type ThreadMessage" + }, + { + "name": "ThreadMessageDelta", + "value": "thread.message.delta", + "description": "Event sent when a message is being streamed. The data of this event is of type MessageDeltaChunk" + }, + { + "name": "ThreadMessageCompleted", + "value": "thread.message.completed", + "description": "Event sent when a message is completed. The data of this event is of type ThreadMessage" + }, + { + "name": "ThreadMessageIncomplete", + "value": "thread.message.incomplete", + "description": "Event sent before a message is completed. The data of this event is of type ThreadMessage" + }, + { + "name": "Error", + "value": "error", + "description": "Event sent when an error occurs, such as an internal server error or a timeout." + }, + { + "name": "Done", + "value": "done", + "description": "Event sent when the stream is done." + } + ] + } + }, + "Agents.AgentThread": { + "type": "object", + "description": "Information about a single thread associated with an agent.", + "properties": { + "id": { + "type": "string", + "description": "The identifier, which can be referenced in API endpoints." + }, + "object": { + "type": "string", + "description": "The object type, which is always 'thread'.", + "enum": [ + "thread" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp, in seconds, representing when this object was created.", + "x-ms-client-name": "createdAt" + }, + "tool_resources": { + "type": "object", + "description": "A set of resources that are made available to the agent's tools in this thread. The resources are specific to the type\nof tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list\nof vector store IDs.", + "x-nullable": true, + "allOf": [ + { + "$ref": "#/definitions/Agents.ToolResources" + } + ], + "x-ms-client-name": "toolResources" + }, + "metadata": { + "type": "object", + "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "object", + "created_at", + "tool_resources", + "metadata" + ] + }, + "Agents.AgentThreadCreationOptions": { + "type": "object", + "description": "The details used to create a new agent thread.", + "properties": { + "messages": { + "type": "array", + "description": "The initial messages to associate with the new thread.", + "items": { + "$ref": "#/definitions/Agents.ThreadMessageOptions" + }, + "x-ms-identifiers": [] + }, + "tool_resources": { + "type": "object", + "description": "A set of resources that are made available to the agent's tools in this thread. The resources are specific to the\ntype of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires\na list of vector store IDs.", + "x-nullable": true, + "allOf": [ + { + "$ref": "#/definitions/Agents.ToolResources" + } + ], + "x-ms-client-name": "toolResources" + }, + "metadata": { + "type": "object", + "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + } + } + }, + "Agents.AgentsApiResponseFormat": { + "type": "object", + "description": "An object describing the expected output of the model. If `json_object` only `function` type `tools` are allowed to be passed to the Run.\nIf `text` the model can return text or any value needed.", + "properties": { + "type": { + "type": "string", + "description": "Must be one of `text` or `json_object`.", + "default": "text", + "enum": [ + "text", + "json_object" + ], + "x-ms-enum": { + "name": "ResponseFormat", + "modelAsString": true, + "values": [ + { + "name": "text", + "value": "text", + "description": "`text` format should be used for requests involving any sort of ToolCall." + }, + { + "name": "jsonObject", + "value": "json_object", + "description": "Using `json_object` format will limit the usage of ToolCall to only functions." + } + ] + } + } + } + }, + "Agents.AgentsApiResponseFormatMode": { + "type": "string", + "description": "Represents the mode in which the model will handle the return format of a tool call.", + "enum": [ + "auto", + "none" + ], + "x-ms-enum": { + "name": "AgentsApiResponseFormatMode", + "modelAsString": true, + "values": [ + { + "name": "auto", + "value": "auto", + "description": "Default value. Let the model handle the return format." + }, + { + "name": "none", + "value": "none", + "description": "Setting the value to `none`, will result in a 400 Bad request." + } + ] + } + }, + "Agents.AgentsApiResponseFormatOption": {}, + "Agents.AgentsApiToolChoiceOption": {}, + "Agents.AgentsApiToolChoiceOptionMode": { + "type": "string", + "description": "Specifies how the tool choice will be used", + "enum": [ + "none", + "auto" + ], + "x-ms-enum": { + "name": "AgentsApiToolChoiceOptionMode", + "modelAsString": true, + "values": [ + { + "name": "none", + "value": "none", + "description": "The model will not call a function and instead generates a message." + }, + { + "name": "auto", + "value": "auto", + "description": "The model can pick between generating a message or calling a function." + } + ] + } + }, + "Agents.AgentsNamedToolChoice": { + "type": "object", + "description": "Specifies a tool the model should use. Use to force the model to call a specific tool.", + "properties": { + "type": { + "$ref": "#/definitions/Agents.AgentsNamedToolChoiceType", + "description": "the type of tool. If type is `function`, the function name must be set." + }, + "function": { + "$ref": "#/definitions/Agents.FunctionName", + "description": "The name of the function to call" + } + }, + "required": [ + "type" + ] + }, + "Agents.AgentsNamedToolChoiceType": { + "type": "string", + "description": "Available tool types for agents named tools.", + "enum": [ + "function", + "code_interpreter", + "file_search", + "bing_grounding", + "fabric_aiskill", + "sharepoint_grounding", + "azure_ai_search" + ], + "x-ms-enum": { + "name": "AgentsNamedToolChoiceType", + "modelAsString": true, + "values": [ + { + "name": "function", + "value": "function", + "description": "Tool type `function`" + }, + { + "name": "codeInterpreter", + "value": "code_interpreter", + "description": "Tool type `code_interpreter`" + }, + { + "name": "fileSearch", + "value": "file_search", + "description": "Tool type `file_search`" + }, + { + "name": "bingGrounding", + "value": "bing_grounding", + "description": "Tool type `bing_grounding`" + }, + { + "name": "microsoftFabric", + "value": "fabric_aiskill", + "description": "Tool type `fabric_aiskill`" + }, + { + "name": "sharepoint", + "value": "sharepoint_grounding", + "description": "Tool type `sharepoint_grounding`" + }, + { + "name": "azureAISearch", + "value": "azure_ai_search", + "description": "Tool type `azure_ai_search`" + } + ] + } + }, + "Agents.AzureAISearchResource": { + "type": "object", + "description": "A set of index resources used by the `azure_ai_search` tool.", + "properties": { + "indexes": { + "type": "array", + "description": "The indices attached to this agent. There can be a maximum of 1 index\nresource attached to the agent.", + "maxItems": 1, + "items": { + "$ref": "#/definitions/Agents.IndexResource" + }, + "x-ms-client-name": "indexList", + "x-ms-identifiers": [] + } + } + }, + "Agents.AzureAISearchToolDefinition": { + "type": "object", + "description": "The input definition information for an Azure AI search tool as used to configure an agent.", + "allOf": [ + { + "$ref": "#/definitions/Agents.ToolDefinition" + } + ], + "x-ms-discriminator-value": "azure_ai_search" + }, + "Agents.AzureFunctionBinding": { + "type": "object", + "description": "The structure for keeping storage queue name and URI.", + "properties": { + "type": { + "type": "string", + "description": "The type of binding, which is always 'storage_queue'.", + "enum": [ + "storage_queue" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "storage_queue": { + "$ref": "#/definitions/Agents.AzureFunctionStorageQueue", + "description": "Storage queue.", + "x-ms-client-name": "storageQueue" + } + }, + "required": [ + "type", + "storage_queue" + ] + }, + "Agents.AzureFunctionDefinition": { + "type": "object", + "description": "The definition of Azure function.", + "properties": { + "function": { + "$ref": "#/definitions/FunctionDefinition", + "description": "The definition of azure function and its parameters." + }, + "input_binding": { + "$ref": "#/definitions/Agents.AzureFunctionBinding", + "description": "Input storage queue. The queue storage trigger runs a function as messages are added to it.", + "x-ms-client-name": "inputBinding" + }, + "output_binding": { + "$ref": "#/definitions/Agents.AzureFunctionBinding", + "description": "Output storage queue. The function writes output to this queue when the input items are processed.", + "x-ms-client-name": "outputBinding" + } + }, + "required": [ + "function", + "input_binding", + "output_binding" + ] + }, + "Agents.AzureFunctionStorageQueue": { + "type": "object", + "description": "The structure for keeping storage queue name and URI.", + "properties": { + "queue_service_endpoint": { + "type": "string", + "description": "URI to the Azure Storage Queue service allowing you to manipulate a queue.", + "x-ms-client-name": "storageServiceEndpoint" + }, + "queue_name": { + "type": "string", + "description": "The name of an Azure function storage queue.", + "x-ms-client-name": "queueName" + } + }, + "required": [ + "queue_service_endpoint", + "queue_name" + ] + }, + "Agents.AzureFunctionToolDefinition": { + "type": "object", + "description": "The input definition information for a azure function tool as used to configure an agent.", + "properties": { + "azure_function": { + "$ref": "#/definitions/Agents.AzureFunctionDefinition", + "description": "The definition of the concrete function that the function tool should call.", + "x-ms-client-name": "azureFunction" + } + }, + "required": [ + "azure_function" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.ToolDefinition" + } + ], + "x-ms-discriminator-value": "azure_function" + }, + "Agents.BingGroundingToolDefinition": { + "type": "object", + "description": "The input definition information for a bing grounding search tool as used to configure an agent.", + "properties": { + "bing_grounding": { + "$ref": "#/definitions/Agents.ToolConnectionList", + "description": "The list of connections used by the bing grounding tool." + } + }, + "required": [ + "bing_grounding" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.ToolDefinition" + } + ], + "x-ms-discriminator-value": "bing_grounding" + }, + "Agents.CodeInterpreterToolDefinition": { + "type": "object", + "description": "The input definition information for a code interpreter tool as used to configure an agent.", + "allOf": [ + { + "$ref": "#/definitions/Agents.ToolDefinition" + } + ], + "x-ms-discriminator-value": "code_interpreter" + }, + "Agents.CodeInterpreterToolResource": { + "type": "object", + "description": "A set of resources that are used by the `code_interpreter` tool.", + "properties": { + "file_ids": { + "type": "array", + "description": "A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files\nassociated with the tool.", + "default": [], + "maxItems": 20, + "items": { + "type": "string" + }, + "x-ms-client-name": "fileIds" + }, + "data_sources": { + "type": "array", + "description": "The data sources to be used. This option is mutually exclusive with the `fileIds` property.", + "maxItems": 20, + "items": { + "$ref": "#/definitions/Agents.VectorStoreDataSource" + }, + "x-ms-client-name": "dataSources", + "x-ms-identifiers": [] + } + } + }, + "Agents.CreateAgentOptions": { + "type": "object", + "description": "The request details to use when creating a new agent.", + "properties": { + "model": { + "type": "string", + "description": "The ID of the model to use." + }, + "name": { + "type": "string", + "description": "The name of the new agent.", + "x-nullable": true + }, + "description": { + "type": "string", + "description": "The description of the new agent.", + "x-nullable": true + }, + "instructions": { + "type": "string", + "description": "The system instructions for the new agent to use.", + "x-nullable": true + }, + "tools": { + "type": "array", + "description": "The collection of tools to enable for the new agent.", + "default": [], + "items": { + "$ref": "#/definitions/Agents.ToolDefinition" + }, + "x-ms-identifiers": [] + }, + "tool_resources": { + "type": "object", + "description": "A set of resources that are used by the agent's tools. The resources are specific to the type of tool. For example, the `code_interpreter`\ntool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs.", + "x-nullable": true, + "allOf": [ + { + "$ref": "#/definitions/Agents.ToolResources" + } + ], + "x-ms-client-name": "toolResources" + }, + "temperature": { + "type": "number", + "format": "float", + "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.", + "default": 1, + "x-nullable": true + }, + "top_p": { + "type": "number", + "format": "float", + "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\n\nWe generally recommend altering this or temperature but not both.", + "default": 1, + "x-nullable": true, + "x-ms-client-name": "topP" + }, + "response_format": { + "$ref": "#/definitions/Agents.AgentsApiResponseFormatOption", + "description": "The response format of the tool calls used by this agent.", + "x-nullable": true, + "x-ms-client-name": "responseFormat" + }, + "metadata": { + "type": "object", + "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "model" + ] + }, + "Agents.CreateAndRunThreadOptions": { + "type": "object", + "description": "The details used when creating and immediately running a new agent thread.", + "properties": { + "assistant_id": { + "type": "string", + "description": "The ID of the agent for which the thread should be created.", + "x-ms-client-name": "assistantId" + }, + "thread": { + "$ref": "#/definitions/Agents.AgentThreadCreationOptions", + "description": "The details used to create the new thread. If no thread is provided, an empty one will be created." + }, + "model": { + "type": "string", + "description": "The overridden model that the agent should use to run the thread.", + "x-nullable": true + }, + "instructions": { + "type": "string", + "description": "The overridden system instructions the agent should use to run the thread.", + "x-nullable": true + }, + "tools": { + "type": "array", + "description": "The overridden list of enabled tools the agent should use to run the thread.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/Agents.ToolDefinition" + }, + "x-ms-identifiers": [] + }, + "tool_resources": { + "type": "object", + "description": "Override the tools the agent can use for this run. This is useful for modifying the behavior on a per-run basis", + "x-nullable": true, + "allOf": [ + { + "$ref": "#/definitions/Agents.UpdateToolResourcesOptions" + } + ], + "x-ms-client-name": "toolResources" + }, + "stream": { + "type": "boolean", + "description": "If `true`, returns a stream of events that happen during the Run as server-sent events,\nterminating when the Run enters a terminal state with a `data: [DONE]` message." + }, + "temperature": { + "type": "number", + "format": "float", + "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output\nmore random, while lower values like 0.2 will make it more focused and deterministic.", + "default": 1, + "x-nullable": true + }, + "top_p": { + "type": "number", + "format": "float", + "description": "An alternative to sampling with temperature, called nucleus sampling, where the model\nconsiders the results of the tokens with top_p probability mass. So 0.1 means only the tokens\ncomprising the top 10% probability mass are considered.\n\nWe generally recommend altering this or temperature but not both.", + "default": 1, + "x-nullable": true, + "x-ms-client-name": "topP" + }, + "max_prompt_tokens": { + "type": "integer", + "format": "int32", + "description": "The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only\nthe number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified,\nthe run will end with status `incomplete`. See `incomplete_details` for more info.", + "x-nullable": true, + "x-ms-client-name": "maxPromptTokens" + }, + "max_completion_tokens": { + "type": "integer", + "format": "int32", + "description": "The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort to use only\nthe number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of completion tokens\nspecified, the run will end with status `incomplete`. See `incomplete_details` for more info.", + "x-nullable": true, + "x-ms-client-name": "maxCompletionTokens" + }, + "truncation_strategy": { + "type": "object", + "description": "The strategy to use for dropping messages as the context windows moves forward.", + "x-nullable": true, + "allOf": [ + { + "$ref": "#/definitions/Agents.TruncationObject" + } + ], + "x-ms-client-name": "truncationStrategy" + }, + "tool_choice": { + "$ref": "#/definitions/Agents.AgentsApiToolChoiceOption", + "description": "Controls whether or not and which tool is called by the model.", + "x-nullable": true, + "x-ms-client-name": "toolChoice" + }, + "response_format": { + "$ref": "#/definitions/Agents.AgentsApiResponseFormatOption", + "description": "Specifies the format that the model must output.", + "x-nullable": true, + "x-ms-client-name": "responseFormat" + }, + "parallel_tool_calls": { + "type": "boolean", + "description": "If `true` functions will run in parallel during tool use.", + "x-ms-client-name": "parallelToolCalls" + }, + "metadata": { + "type": "object", + "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "assistant_id" + ] + }, + "Agents.CreateCodeInterpreterToolResourceOptions": { + "type": "object", + "description": "A set of resources that will be used by the `code_interpreter` tool. Request object.", + "properties": { + "file_ids": { + "type": "array", + "description": "A list of file IDs made available to the `code_interpreter` tool.", + "default": [], + "maxItems": 20, + "items": { + "type": "string" + }, + "x-ms-client-name": "fileIds" + } + } + }, + "Agents.CreateFileSearchToolResourceOptions": {}, + "Agents.CreateFileSearchToolResourceVectorStoreOptions": { + "type": "object", + "description": "File IDs associated to the vector store to be passed to the helper.", + "properties": { + "file_ids": { + "type": "array", + "description": "A list of file IDs to add to the vector store. There can be a maximum of 10000 files in a vector store.", + "maxItems": 10000, + "items": { + "type": "string" + }, + "x-ms-client-name": "fileIds" + }, + "chunking_strategy": { + "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyRequest", + "description": "The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy.", + "x-ms-client-name": "chunkingStrategy" + }, + "metadata": { + "type": "object", + "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "file_ids", + "chunking_strategy" + ] + }, + "Agents.CreateRunOptions": { + "type": "object", + "description": "The details used when creating a new run of an agent thread.", + "properties": { + "assistant_id": { + "type": "string", + "description": "The ID of the agent that should run the thread.", + "x-ms-client-name": "assistantId" + }, + "model": { + "type": "string", + "description": "The overridden model name that the agent should use to run the thread.", + "x-nullable": true + }, + "instructions": { + "type": "string", + "description": "The overridden system instructions that the agent should use to run the thread.", + "x-nullable": true + }, + "additional_instructions": { + "type": "string", + "description": "Additional instructions to append at the end of the instructions for the run. This is useful for modifying the behavior\non a per-run basis without overriding other instructions.", + "x-nullable": true, + "x-ms-client-name": "additionalInstructions" + }, + "additional_messages": { + "type": "array", + "description": "Adds additional messages to the thread before creating the run.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/Agents.ThreadMessageOptions" + }, + "x-ms-client-name": "additionalMessages", + "x-ms-identifiers": [] + }, + "tools": { + "type": "array", + "description": "The overridden list of enabled tools that the agent should use to run the thread.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/Agents.ToolDefinition" + }, + "x-ms-identifiers": [] + }, + "stream": { + "type": "boolean", + "description": "If `true`, returns a stream of events that happen during the Run as server-sent events,\nterminating when the Run enters a terminal state with a `data: [DONE]` message." + }, + "temperature": { + "type": "number", + "format": "float", + "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output\nmore random, while lower values like 0.2 will make it more focused and deterministic.", + "default": 1, + "x-nullable": true + }, + "top_p": { + "type": "number", + "format": "float", + "description": "An alternative to sampling with temperature, called nucleus sampling, where the model\nconsiders the results of the tokens with top_p probability mass. So 0.1 means only the tokens\ncomprising the top 10% probability mass are considered.\n\nWe generally recommend altering this or temperature but not both.", + "default": 1, + "x-nullable": true, + "x-ms-client-name": "topP" + }, + "max_prompt_tokens": { + "type": "integer", + "format": "int32", + "description": "The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only\nthe number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified,\nthe run will end with status `incomplete`. See `incomplete_details` for more info.", + "x-nullable": true, + "x-ms-client-name": "maxPromptTokens" + }, + "max_completion_tokens": { + "type": "integer", + "format": "int32", + "description": "The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort\nto use only the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of\ncompletion tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info.", + "x-nullable": true, + "x-ms-client-name": "maxCompletionTokens" + }, + "truncation_strategy": { + "type": "object", + "description": "The strategy to use for dropping messages as the context windows moves forward.", + "x-nullable": true, + "allOf": [ + { + "$ref": "#/definitions/Agents.TruncationObject" + } + ], + "x-ms-client-name": "truncationStrategy" + }, + "tool_choice": { + "$ref": "#/definitions/Agents.AgentsApiToolChoiceOption", + "description": "Controls whether or not and which tool is called by the model.", + "x-nullable": true, + "x-ms-client-name": "toolChoice" + }, + "response_format": { + "$ref": "#/definitions/Agents.AgentsApiResponseFormatOption", + "description": "Specifies the format that the model must output.", + "x-nullable": true, + "x-ms-client-name": "responseFormat" + }, + "parallel_tool_calls": { + "type": "boolean", + "description": "If `true` functions will run in parallel during tool use.", + "x-ms-client-name": "parallelToolCalls" + }, + "metadata": { + "type": "object", + "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "assistant_id" + ] + }, + "Agents.CreateToolResourcesOptions": { + "type": "object", + "description": "Request object. A set of resources that are used by the agent's tools. The resources are specific to the\ntype of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search`\ntool requires a list of vector store IDs.", + "properties": { + "code_interpreter": { + "$ref": "#/definitions/Agents.CreateCodeInterpreterToolResourceOptions", + "description": "A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files\nassociated with the tool.", + "x-ms-client-name": "codeInterpreter" + }, + "file_search": { + "$ref": "#/definitions/Agents.CreateFileSearchToolResourceOptions", + "description": "A list of vector stores or their IDs made available to the `file_search` tool.", + "x-ms-client-name": "fileSearch" + }, + "azure_ai_search": { + "$ref": "#/definitions/Agents.AzureAISearchResource", + "description": "Resources to be used by the `azure_ai_search` tool consisting of index IDs and names.", + "x-ms-client-name": "azureAISearch" + } + } + }, + "Agents.DoneEvent": { + "type": "string", + "description": "Terminal event indicating the successful end of a stream.", + "enum": [ + "done" + ], + "x-ms-enum": { + "name": "DoneEvent", + "modelAsString": true, + "values": [ + { + "name": "Done", + "value": "done", + "description": "Event sent when the stream is done." + } + ] + } + }, + "Agents.ErrorEvent": { + "type": "string", + "description": "Terminal event indicating a server side error while streaming.", + "enum": [ + "error" + ], + "x-ms-enum": { + "name": "ErrorEvent", + "modelAsString": true, + "values": [ + { + "name": "Error", + "value": "error", + "description": "Event sent when an error occurs, such as an internal server error or a timeout." + } + ] + } + }, + "Agents.FileDeletionStatus": { + "type": "object", + "description": "A status response from a file deletion operation.", + "properties": { + "id": { + "type": "string", + "description": "The ID of the resource specified for deletion." + }, + "deleted": { + "type": "boolean", + "description": "A value indicating whether deletion was successful." + }, + "object": { + "type": "string", + "description": "The object type, which is always 'file'.", + "enum": [ + "file" + ], + "x-ms-enum": { + "modelAsString": false + } + } + }, + "required": [ + "id", + "deleted", + "object" + ] + }, + "Agents.FileListResponse": { + "type": "object", + "description": "The response data from a file list operation.", + "properties": { + "object": { + "type": "string", + "description": "The object type, which is always 'list'.", + "enum": [ + "list" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "data": { + "type": "array", + "description": "The files returned for the request.", + "items": { + "$ref": "#/definitions/Agents.OpenAIFile" + } + } + }, + "required": [ + "object", + "data" + ] + }, + "Agents.FilePurpose": { + "type": "string", + "description": "The possible values denoting the intended usage of a file.", + "enum": [ + "fine-tune", + "fine-tune-results", + "assistants", + "assistants_output", + "batch", + "batch_output", + "vision" + ], + "x-ms-enum": { + "name": "FilePurpose", + "modelAsString": true, + "values": [ + { + "name": "fineTune", + "value": "fine-tune", + "description": "Indicates a file is used for fine tuning input." + }, + { + "name": "fineTuneResults", + "value": "fine-tune-results", + "description": "Indicates a file is used for fine tuning results." + }, + { + "name": "agents", + "value": "assistants", + "description": "Indicates a file is used as input to agents." + }, + { + "name": "agentsOutput", + "value": "assistants_output", + "description": "Indicates a file is used as output by agents." + }, + { + "name": "batch", + "value": "batch", + "description": "Indicates a file is used as input to ." + }, + { + "name": "batchOutput", + "value": "batch_output", + "description": "Indicates a file is used as output by a vector store batch operation." + }, + { + "name": "vision", + "value": "vision", + "description": "Indicates a file is used as input to a vision operation." + } + ] + } + }, + "Agents.FileSearchRankingOptions": { + "type": "object", + "description": "Ranking options for file search.", + "properties": { + "ranker": { + "type": "string", + "description": "File search ranker." + }, + "score_threshold": { + "type": "number", + "format": "float", + "description": "Ranker search threshold.", + "x-ms-client-name": "scoreThreshold" + } + }, + "required": [ + "ranker", + "score_threshold" + ] + }, + "Agents.FileSearchToolCallContent": { + "type": "object", + "description": "The file search result content object.", + "properties": { + "type": { + "type": "string", + "description": "The type of the content.", + "enum": [ + "text" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "text": { + "type": "string", + "description": "The text content of the file." + } + }, + "required": [ + "type", + "text" + ] + }, + "Agents.FileSearchToolDefinition": { + "type": "object", + "description": "The input definition information for a file search tool as used to configure an agent.", + "properties": { + "file_search": { + "$ref": "#/definitions/Agents.FileSearchToolDefinitionDetails", + "description": "Options overrides for the file search tool.", + "x-ms-client-name": "fileSearch" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Agents.ToolDefinition" + } + ], + "x-ms-discriminator-value": "file_search" + }, + "Agents.FileSearchToolDefinitionDetails": { + "type": "object", + "description": "Options overrides for the file search tool.", + "properties": { + "max_num_results": { + "type": "integer", + "format": "int32", + "description": "The maximum number of results the file search tool should output. The default is 20 for gpt-4* models and 5 for gpt-3.5-turbo. This number should be between 1 and 50 inclusive.\n\nNote that the file search tool may output fewer than `max_num_results` results. See the file search tool documentation for more information.", + "minimum": 1, + "maximum": 50, + "x-ms-client-name": "maxNumResults" + }, + "ranking_options": { + "$ref": "#/definitions/Agents.FileSearchRankingOptions", + "description": "Ranking options for file search.", + "x-ms-client-name": "rankingOptions" + } + } + }, + "Agents.FileSearchToolResource": { + "type": "object", + "description": "A set of resources that are used by the `file_search` tool.", + "properties": { + "vector_store_ids": { + "type": "array", + "description": "The ID of the vector store attached to this agent. There can be a maximum of 1 vector\nstore attached to the agent.", + "maxItems": 1, + "items": { + "type": "string" + }, + "x-ms-client-name": "vectorStoreIds" + }, + "vector_stores": { + "type": "array", + "description": "The list of vector store configuration objects from Azure.\nThis list is limited to one element.\nThe only element of this list contains the list of azure asset IDs used by the search tool.", + "maxItems": 1, + "items": { + "$ref": "#/definitions/Agents.VectorStoreConfigurations" + }, + "x-ms-client-name": "vectorStores", + "x-ms-identifiers": [] + } + } + }, + "Agents.FileState": { + "type": "string", + "description": "The state of the file.", + "enum": [ + "uploaded", + "pending", + "running", + "processed", + "error", + "deleting", + "deleted" + ], + "x-ms-enum": { + "name": "FileState", + "modelAsString": true, + "values": [ + { + "name": "uploaded", + "value": "uploaded", + "description": "The file has been uploaded but it's not yet processed. This state is not returned by Azure OpenAI and exposed only for\ncompatibility. It can be categorized as an inactive state." + }, + { + "name": "pending", + "value": "pending", + "description": "The operation was created and is not queued to be processed in the future. It can be categorized as an inactive state." + }, + { + "name": "running", + "value": "running", + "description": "The operation has started to be processed. It can be categorized as an active state." + }, + { + "name": "processed", + "value": "processed", + "description": "The operation has successfully processed and is ready for consumption. It can be categorized as a terminal state." + }, + { + "name": "error", + "value": "error", + "description": "The operation has completed processing with a failure and cannot be further consumed. It can be categorized as a terminal state." + }, + { + "name": "deleting", + "value": "deleting", + "description": "The entity is in the process to be deleted. This state is not returned by Azure OpenAI and exposed only for compatibility.\nIt can be categorized as an active state." + }, + { + "name": "deleted", + "value": "deleted", + "description": "The entity has been deleted but may still be referenced by other entities predating the deletion. It can be categorized as a\nterminal state." + } + ] + } + }, + "Agents.FunctionName": { + "type": "object", + "description": "The function name that will be used, if using the `function` tool", + "properties": { + "name": { + "type": "string", + "description": "The name of the function to call" + } + }, + "required": [ + "name" + ] + }, + "Agents.FunctionToolDefinition": { + "type": "object", + "description": "The input definition information for a function tool as used to configure an agent.", + "properties": { + "function": { + "$ref": "#/definitions/FunctionDefinition", + "description": "The definition of the concrete function that the function tool should call." + } + }, + "required": [ + "function" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.ToolDefinition" + } + ], + "x-ms-discriminator-value": "function" + }, + "Agents.IncompleteDetailsReason": { + "type": "string", + "description": "The reason why the run is incomplete. This will point to which specific token limit was reached over the course of the run.", + "enum": [ + "max_completion_tokens", + "max_prompt_tokens" + ], + "x-ms-enum": { + "name": "IncompleteDetailsReason", + "modelAsString": true, + "values": [ + { + "name": "maxCompletionTokens", + "value": "max_completion_tokens", + "description": "Maximum completion tokens exceeded" + }, + { + "name": "maxPromptTokens", + "value": "max_prompt_tokens", + "description": "Maximum prompt tokens exceeded" + } + ] + } + }, + "Agents.IncompleteRunDetails": { + "type": "object", + "description": "Details on why the run is incomplete. Will be `null` if the run is not incomplete.", + "properties": { + "reason": { + "$ref": "#/definitions/Agents.IncompleteDetailsReason", + "description": "The reason why the run is incomplete. This indicates which specific token limit was reached during the run." + } + }, + "required": [ + "reason" + ] + }, + "Agents.IndexResource": { + "type": "object", + "description": "A Index resource.", + "properties": { + "index_connection_id": { + "type": "string", + "description": "An index connection id in an IndexResource attached to this agent.", + "x-ms-client-name": "indexConnectionId" + }, + "index_name": { + "type": "string", + "description": "The name of an index in an IndexResource attached to this agent.", + "x-ms-client-name": "indexName" + } + }, + "required": [ + "index_connection_id", + "index_name" + ] + }, + "Agents.ListSortOrder": { + "type": "string", + "description": "The available sorting options when requesting a list of response objects.", + "enum": [ + "asc", + "desc" + ], + "x-ms-enum": { + "name": "ListSortOrder", + "modelAsString": true, + "values": [ + { + "name": "ascending", + "value": "asc", + "description": "Specifies an ascending sort order." + }, + { + "name": "descending", + "value": "desc", + "description": "Specifies a descending sort order." + } + ] + } + }, + "Agents.MessageAttachment": { + "type": "object", + "description": "This describes to which tools a file has been attached.", + "properties": { + "file_id": { + "type": "string", + "description": "The ID of the file to attach to the message.", + "x-ms-client-name": "fileId" + }, + "data_source": { + "$ref": "#/definitions/Agents.VectorStoreDataSource", + "description": "Azure asset ID.", + "x-ms-client-name": "dataSource" + }, + "tools": { + "type": "array", + "description": "The tools to add to this file.", + "items": { + "$ref": "#/definitions/Agents.MessageAttachmentToolDefinition" + } + } + }, + "required": [ + "tools" + ] + }, + "Agents.MessageAttachmentToolDefinition": { + "x-nullable": false + }, + "Agents.MessageContent": { + "type": "object", + "description": "An abstract representation of a single item of thread message content.", + "properties": { + "type": { + "type": "string", + "description": "The object type." + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, + "Agents.MessageDelta": { + "type": "object", + "description": "Represents the typed 'delta' payload within a streaming message delta chunk.", + "properties": { + "role": { + "$ref": "#/definitions/Agents.MessageRole", + "description": "The entity that produced the message." + }, + "content": { + "type": "array", + "description": "The content of the message as an array of text and/or images.", + "items": { + "$ref": "#/definitions/Agents.MessageDeltaContent" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "role", + "content" + ] + }, + "Agents.MessageDeltaChunk": { + "type": "object", + "description": "Represents a message delta i.e. any changed fields on a message during streaming.", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the message, which can be referenced in API endpoints." + }, + "object": { + "type": "string", + "description": "The object type, which is always `thread.message.delta`.", + "enum": [ + "thread.message.delta" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "delta": { + "$ref": "#/definitions/Agents.MessageDelta", + "description": "The delta containing the fields that have changed on the Message." + } + }, + "required": [ + "id", + "object", + "delta" + ] + }, + "Agents.MessageDeltaContent": { + "type": "object", + "description": "The abstract base representation of a partial streamed message content payload.", + "properties": { + "index": { + "type": "integer", + "format": "int32", + "description": "The index of the content part of the message." + }, + "type": { + "type": "string", + "description": "The type of content for this content part." + } + }, + "discriminator": "type", + "required": [ + "index", + "type" + ] + }, + "Agents.MessageDeltaImageFileContent": { + "type": "object", + "description": "Represents a streamed image file content part within a streaming message delta chunk.", + "properties": { + "image_file": { + "$ref": "#/definitions/Agents.MessageDeltaImageFileContentObject", + "description": "The image_file data.", + "x-ms-client-name": "imageFile" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Agents.MessageDeltaContent" + } + ], + "x-ms-discriminator-value": "image_file" + }, + "Agents.MessageDeltaImageFileContentObject": { + "type": "object", + "description": "Represents the 'image_file' payload within streaming image file content.", + "properties": { + "file_id": { + "type": "string", + "description": "The file ID of the image in the message content.", + "x-ms-client-name": "fileId" + } + } + }, + "Agents.MessageDeltaTextAnnotation": { + "type": "object", + "description": "The abstract base representation of a streamed text content part's text annotation.", + "properties": { + "index": { + "type": "integer", + "format": "int32", + "description": "The index of the annotation within a text content part." + }, + "type": { + "type": "string", + "description": "The type of the text content annotation." + } + }, + "discriminator": "type", + "required": [ + "index", + "type" + ] + }, + "Agents.MessageDeltaTextContent": { + "type": "object", + "description": "Represents a streamed text content part within a streaming message delta chunk.", + "properties": { + "text": { + "$ref": "#/definitions/Agents.MessageDeltaTextContentObject", + "description": "The text content details." + } + }, + "allOf": [ + { + "$ref": "#/definitions/Agents.MessageDeltaContent" + } + ], + "x-ms-discriminator-value": "text" + }, + "Agents.MessageDeltaTextContentObject": { + "type": "object", + "description": "Represents the data of a streamed text content part within a streaming message delta chunk.", + "properties": { + "value": { + "type": "string", + "description": "The data that makes up the text." + }, + "annotations": { + "type": "array", + "description": "Annotations for the text.", + "items": { + "$ref": "#/definitions/Agents.MessageDeltaTextAnnotation" + }, + "x-ms-identifiers": [] + } + } + }, + "Agents.MessageDeltaTextFileCitationAnnotation": { + "type": "object", + "description": "Represents a streamed file citation applied to a streaming text content part.", + "properties": { + "file_citation": { + "$ref": "#/definitions/Agents.MessageDeltaTextFileCitationAnnotationObject", + "description": "The file citation information.", + "x-ms-client-name": "fileCitation" + }, + "text": { + "type": "string", + "description": "The text in the message content that needs to be replaced" + }, + "start_index": { + "type": "integer", + "format": "int32", + "description": "The start index of this annotation in the content text.", + "x-ms-client-name": "startIndex" + }, + "end_index": { + "type": "integer", + "format": "int32", + "description": "The end index of this annotation in the content text.", + "x-ms-client-name": "endIndex" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Agents.MessageDeltaTextAnnotation" + } + ], + "x-ms-discriminator-value": "file_citation" + }, + "Agents.MessageDeltaTextFileCitationAnnotationObject": { + "type": "object", + "description": "Represents the data of a streamed file citation as applied to a streaming text content part.", + "properties": { + "file_id": { + "type": "string", + "description": "The ID of the specific file the citation is from.", + "x-ms-client-name": "fileId" + }, + "quote": { + "type": "string", + "description": "The specific quote in the cited file." + } + } + }, + "Agents.MessageDeltaTextFilePathAnnotation": { + "type": "object", + "description": "Represents a streamed file path annotation applied to a streaming text content part.", + "properties": { + "file_path": { + "$ref": "#/definitions/Agents.MessageDeltaTextFilePathAnnotationObject", + "description": "The file path information.", + "x-ms-client-name": "filePath" + }, + "start_index": { + "type": "integer", + "format": "int32", + "description": "The start index of this annotation in the content text.", + "x-ms-client-name": "startIndex" + }, + "end_index": { + "type": "integer", + "format": "int32", + "description": "The end index of this annotation in the content text.", + "x-ms-client-name": "endIndex" + }, + "text": { + "type": "string", + "description": "The text in the message content that needs to be replaced" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Agents.MessageDeltaTextAnnotation" + } + ], + "x-ms-discriminator-value": "file_path" + }, + "Agents.MessageDeltaTextFilePathAnnotationObject": { + "type": "object", + "description": "Represents the data of a streamed file path annotation as applied to a streaming text content part.", + "properties": { + "file_id": { + "type": "string", + "description": "The file ID for the annotation.", + "x-ms-client-name": "fileId" + } + } + }, + "Agents.MessageDeltaTextUrlCitationDetails": { + "type": "object", + "description": "A representation of the URL used for the text citation.", + "properties": { + "url": { + "type": "string", + "description": "The URL where the citation is from." + }, + "title": { + "type": "string", + "description": "The title of the URL." + } + } + }, + "Agents.MessageImageFileContent": { + "type": "object", + "description": "A representation of image file content in a thread message.", + "properties": { + "image_file": { + "$ref": "#/definitions/Agents.MessageImageFileDetails", + "description": "The image file for this thread message content item.", + "x-ms-client-name": "imageFile" + } + }, + "required": [ + "image_file" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.MessageContent" + } + ], + "x-ms-discriminator-value": "image_file" + }, + "Agents.MessageImageFileDetails": { + "type": "object", + "description": "An image reference, as represented in thread message content.", + "properties": { + "file_id": { + "type": "string", + "description": "The ID for the file associated with this image.", + "x-ms-client-name": "fileId" + } + }, + "required": [ + "file_id" + ] + }, + "Agents.MessageIncompleteDetails": { + "type": "object", + "description": "Information providing additional detail about a message entering an incomplete status.", + "properties": { + "reason": { + "$ref": "#/definitions/Agents.MessageIncompleteDetailsReason", + "description": "The provided reason describing why the message was marked as incomplete." + } + }, + "required": [ + "reason" + ] + }, + "Agents.MessageIncompleteDetailsReason": { + "type": "string", + "description": "A set of reasons describing why a message is marked as incomplete.", + "enum": [ + "content_filter", + "max_tokens", + "run_cancelled", + "run_failed", + "run_expired" + ], + "x-ms-enum": { + "name": "MessageIncompleteDetailsReason", + "modelAsString": true, + "values": [ + { + "name": "contentFilter", + "value": "content_filter", + "description": "The run generating the message was terminated due to content filter flagging." + }, + { + "name": "maxTokens", + "value": "max_tokens", + "description": "The run generating the message exhausted available tokens before completion." + }, + { + "name": "runCancelled", + "value": "run_cancelled", + "description": "The run generating the message was cancelled before completion." + }, + { + "name": "runFailed", + "value": "run_failed", + "description": "The run generating the message failed." + }, + { + "name": "runExpired", + "value": "run_expired", + "description": "The run generating the message expired." + } + ] + } + }, + "Agents.MessageRole": { + "type": "string", + "description": "The possible values for roles attributed to messages in a thread.", + "enum": [ + "user", + "assistant" + ], + "x-ms-enum": { + "name": "MessageRole", + "modelAsString": true, + "values": [ + { + "name": "user", + "value": "user", + "description": "The role representing the end-user." + }, + { + "name": "agent", + "value": "assistant", + "description": "The role representing the agent." + } + ] + } + }, + "Agents.MessageStatus": { + "type": "string", + "description": "The possible execution status values for a thread message.", + "enum": [ + "in_progress", + "incomplete", + "completed" + ], + "x-ms-enum": { + "name": "MessageStatus", + "modelAsString": true, + "values": [ + { + "name": "inProgress", + "value": "in_progress", + "description": "A run is currently creating this message." + }, + { + "name": "incomplete", + "value": "incomplete", + "description": "This message is incomplete. See incomplete_details for more information." + }, + { + "name": "completed", + "value": "completed", + "description": "This message was successfully completed by a run." + } + ] + } + }, + "Agents.MessageStreamEvent": { + "type": "string", + "description": "Message operation related streaming events", + "enum": [ + "thread.message.created", + "thread.message.in_progress", + "thread.message.delta", + "thread.message.completed", + "thread.message.incomplete" + ], + "x-ms-enum": { + "name": "MessageStreamEvent", + "modelAsString": true, + "values": [ + { + "name": "ThreadMessageCreated", + "value": "thread.message.created", + "description": "Event sent when a new message is created. The data of this event is of type ThreadMessage" + }, + { + "name": "ThreadMessageInProgress", + "value": "thread.message.in_progress", + "description": "Event sent when a message moves to `in_progress` status. The data of this event is of type ThreadMessage" + }, + { + "name": "ThreadMessageDelta", + "value": "thread.message.delta", + "description": "Event sent when a message is being streamed. The data of this event is of type MessageDeltaChunk" + }, + { + "name": "ThreadMessageCompleted", + "value": "thread.message.completed", + "description": "Event sent when a message is completed. The data of this event is of type ThreadMessage" + }, + { + "name": "ThreadMessageIncomplete", + "value": "thread.message.incomplete", + "description": "Event sent before a message is completed. The data of this event is of type ThreadMessage" + } + ] + } + }, + "Agents.MessageTextAnnotation": { + "type": "object", + "description": "An abstract representation of an annotation to text thread message content.", + "properties": { + "type": { + "type": "string", + "description": "The object type." + }, + "text": { + "type": "string", + "description": "The textual content associated with this text annotation item." + } + }, + "discriminator": "type", + "required": [ + "type", + "text" + ] + }, + "Agents.MessageTextContent": { + "type": "object", + "description": "A representation of a textual item of thread message content.", + "properties": { + "text": { + "$ref": "#/definitions/Agents.MessageTextDetails", + "description": "The text and associated annotations for this thread message content item." + } + }, + "required": [ + "text" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.MessageContent" + } + ], + "x-ms-discriminator-value": "text" + }, + "Agents.MessageTextDetails": { + "type": "object", + "description": "The text and associated annotations for a single item of agent thread message content.", + "properties": { + "value": { + "type": "string", + "description": "The text data." + }, + "annotations": { + "type": "array", + "description": "A list of annotations associated with this text.", + "items": { + "$ref": "#/definitions/Agents.MessageTextAnnotation" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "value", + "annotations" + ] + }, + "Agents.MessageTextFileCitationAnnotation": { + "type": "object", + "description": "A citation within the message that points to a specific quote from a specific File associated with the agent or the message. Generated when the agent uses the 'file_search' tool to search files.", + "properties": { + "file_citation": { + "$ref": "#/definitions/Agents.MessageTextFileCitationDetails", + "description": "A citation within the message that points to a specific quote from a specific file.\nGenerated when the agent uses the \"file_search\" tool to search files.", + "x-ms-client-name": "fileCitation" + }, + "start_index": { + "type": "integer", + "format": "int32", + "description": "The first text index associated with this text annotation.", + "x-ms-client-name": "startIndex" + }, + "end_index": { + "type": "integer", + "format": "int32", + "description": "The last text index associated with this text annotation.", + "x-ms-client-name": "endIndex" + } + }, + "required": [ + "file_citation" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.MessageTextAnnotation" + } + ], + "x-ms-discriminator-value": "file_citation" + }, + "Agents.MessageTextFileCitationDetails": { + "type": "object", + "description": "A representation of a file-based text citation, as used in a file-based annotation of text thread message content.", + "properties": { + "file_id": { + "type": "string", + "description": "The ID of the file associated with this citation.", + "x-ms-client-name": "fileId" + }, + "quote": { + "type": "string", + "description": "The specific quote cited in the associated file." + } + }, + "required": [ + "file_id", + "quote" + ] + }, + "Agents.MessageTextFilePathAnnotation": { + "type": "object", + "description": "A citation within the message that points to a file located at a specific path.", + "properties": { + "file_path": { + "$ref": "#/definitions/Agents.MessageTextFilePathDetails", + "description": "A URL for the file that's generated when the agent used the code_interpreter tool to generate a file.", + "x-ms-client-name": "filePath" + }, + "start_index": { + "type": "integer", + "format": "int32", + "description": "The first text index associated with this text annotation.", + "x-ms-client-name": "startIndex" + }, + "end_index": { + "type": "integer", + "format": "int32", + "description": "The last text index associated with this text annotation.", + "x-ms-client-name": "endIndex" + } + }, + "required": [ + "file_path" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.MessageTextAnnotation" + } + ], + "x-ms-discriminator-value": "file_path" + }, + "Agents.MessageTextFilePathDetails": { + "type": "object", + "description": "An encapsulation of an image file ID, as used by message image content.", + "properties": { + "file_id": { + "type": "string", + "description": "The ID of the specific file that the citation is from.", + "x-ms-client-name": "fileId" + } + }, + "required": [ + "file_id" + ] + }, + "Agents.MicrosoftFabricToolDefinition": { + "type": "object", + "description": "The input definition information for a Microsoft Fabric tool as used to configure an agent.", + "properties": { + "fabric_aiskill": { + "$ref": "#/definitions/Agents.ToolConnectionList", + "description": "The list of connections used by the Microsoft Fabric tool." + } + }, + "required": [ + "fabric_aiskill" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.ToolDefinition" + } + ], + "x-ms-discriminator-value": "fabric_aiskill" + }, + "Agents.OpenAIFile": { + "type": "object", + "description": "Represents an agent that can call the model and use tools.", + "properties": { + "object": { + "type": "string", + "description": "The object type, which is always 'file'.", + "enum": [ + "file" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "id": { + "type": "string", + "description": "The identifier, which can be referenced in API endpoints." + }, + "bytes": { + "type": "integer", + "format": "int32", + "description": "The size of the file, in bytes." + }, + "filename": { + "type": "string", + "description": "The name of the file." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp, in seconds, representing when this object was created.", + "x-ms-client-name": "createdAt" + }, + "purpose": { + "$ref": "#/definitions/Agents.FilePurpose", + "description": "The intended purpose of a file." + }, + "status": { + "$ref": "#/definitions/Agents.FileState", + "description": "The state of the file. This field is available in Azure OpenAI only." + }, + "status_details": { + "type": "string", + "description": "The error message with details in case processing of this file failed. This field is available in Azure OpenAI only.", + "x-ms-client-name": "statusDetails" + } + }, + "required": [ + "object", + "id", + "bytes", + "filename", + "created_at", + "purpose" + ] + }, + "Agents.OpenApiAnonymousAuthDetails": { + "type": "object", + "description": "Security details for OpenApi anonymous authentication", + "allOf": [ + { + "$ref": "#/definitions/Agents.OpenApiAuthDetails" + } + ], + "x-ms-discriminator-value": "anonymous" + }, + "Agents.OpenApiAuthDetails": { + "type": "object", + "description": "authentication details for OpenApiFunctionDefinition", + "properties": { + "type": { + "$ref": "#/definitions/Agents.OpenApiAuthType", + "description": "The type of authentication, must be anonymous/connection/managed_identity" + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, + "Agents.OpenApiAuthType": { + "type": "string", + "description": " Authentication type for OpenApi endpoint. Allowed types are:\n - Anonymous (no authentication required)\n - Connection (requires connection_id to endpoint, as setup in AI Foundry)\n - Managed_Identity (requires audience for identity based auth)", + "enum": [ + "anonymous", + "connection", + "managed_identity" + ], + "x-ms-enum": { + "name": "OpenApiAuthType", + "modelAsString": true, + "values": [ + { + "name": "anonymous", + "value": "anonymous" + }, + { + "name": "connection", + "value": "connection" + }, + { + "name": "managedIdentity", + "value": "managed_identity" + } + ] + } + }, + "Agents.OpenApiConnectionAuthDetails": { + "type": "object", + "description": "Security details for OpenApi connection authentication", + "properties": { + "security_scheme": { + "$ref": "#/definitions/Agents.OpenApiConnectionSecurityScheme", + "description": "Connection auth security details" + } + }, + "required": [ + "security_scheme" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.OpenApiAuthDetails" + } + ], + "x-ms-discriminator-value": "connection" + }, + "Agents.OpenApiConnectionSecurityScheme": { + "type": "object", + "description": "Security scheme for OpenApi managed_identity authentication", + "properties": { + "connection_id": { + "type": "string", + "description": "Connection id for Connection auth type" + } + }, + "required": [ + "connection_id" + ] + }, + "Agents.OpenApiFunctionDefinition": { + "type": "object", + "description": "The input definition information for an openapi function.", + "properties": { + "name": { + "type": "string", + "description": "The name of the function to be called." + }, + "description": { + "type": "string", + "description": "A description of what the function does, used by the model to choose when and how to call the function." + }, + "spec": { + "description": "The openapi function shape, described as a JSON Schema object." + }, + "auth": { + "$ref": "#/definitions/Agents.OpenApiAuthDetails", + "description": "Open API authentication details" + } + }, + "required": [ + "name", + "spec", + "auth" + ] + }, + "Agents.OpenApiManagedAuthDetails": { + "type": "object", + "description": "Security details for OpenApi managed_identity authentication", + "properties": { + "security_scheme": { + "$ref": "#/definitions/Agents.OpenApiManagedSecurityScheme", + "description": "Connection auth security details" + } + }, + "required": [ + "security_scheme" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.OpenApiAuthDetails" + } + ], + "x-ms-discriminator-value": "managed_identity" + }, + "Agents.OpenApiManagedSecurityScheme": { + "type": "object", + "description": "Security scheme for OpenApi managed_identity authentication", + "properties": { + "audience": { + "type": "string", + "description": "Authentication scope for managed_identity auth type" + } + }, + "required": [ + "audience" + ] + }, + "Agents.OpenApiToolDefinition": { + "type": "object", + "description": "The input definition information for an OpenAPI tool as used to configure an agent.", + "properties": { + "openapi": { + "$ref": "#/definitions/Agents.OpenApiFunctionDefinition", + "description": "The openapi function definition." + } + }, + "required": [ + "openapi" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.ToolDefinition" + } + ], + "x-ms-discriminator-value": "openapi" + }, + "Agents.RequiredAction": { + "type": "object", + "description": "An abstract representation of a required action for an agent thread run to continue.", + "properties": { + "type": { + "type": "string", + "description": "The object type." + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, + "Agents.RequiredFunctionToolCall": { + "type": "object", + "description": "A representation of a requested call to a function tool, needed by the model to continue evaluation of a run.", + "properties": { + "function": { + "$ref": "#/definitions/Agents.RequiredFunctionToolCallDetails", + "description": "Detailed information about the function to be executed by the tool that includes name and arguments." + } + }, + "required": [ + "function" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.RequiredToolCall" + } + ], + "x-ms-discriminator-value": "function" + }, + "Agents.RequiredFunctionToolCallDetails": { + "type": "object", + "description": "The detailed information for a function invocation, as provided by a required action invoking a function tool, that includes the name of and arguments to the function.", + "properties": { + "name": { + "type": "string", + "description": "The name of the function." + }, + "arguments": { + "type": "string", + "description": "The arguments to use when invoking the named function, as provided by the model. Arguments are presented as a JSON document that should be validated and parsed for evaluation." + } + }, + "required": [ + "name", + "arguments" + ] + }, + "Agents.RequiredToolCall": { + "type": "object", + "description": "An abstract representation of a tool invocation needed by the model to continue a run.", + "properties": { + "type": { + "type": "string", + "description": "The object type for the required tool call." + }, + "id": { + "type": "string", + "description": "The ID of the tool call. This ID must be referenced when submitting tool outputs." + } + }, + "discriminator": "type", + "required": [ + "type", + "id" + ] + }, + "Agents.ResponseFormat": { + "type": "string", + "description": "Possible API response formats.", + "enum": [ + "text", + "json_object" + ], + "x-ms-enum": { + "name": "ResponseFormat", + "modelAsString": true, + "values": [ + { + "name": "text", + "value": "text", + "description": "`text` format should be used for requests involving any sort of ToolCall." + }, + { + "name": "jsonObject", + "value": "json_object", + "description": "Using `json_object` format will limit the usage of ToolCall to only functions." + } + ] + } + }, + "Agents.ResponseFormatJsonSchema": { + "type": "object", + "description": "A description of what the response format is for, used by the model to determine how to respond in the format.", + "properties": { + "description": { + "type": "string", + "description": "A description of what the response format is for, used by the model to determine how to respond in the format." + }, + "name": { + "type": "string", + "description": "The name of a schema." + }, + "schema": { + "description": "The JSON schema object, describing the response format." + } + }, + "required": [ + "name", + "schema" + ] + }, + "Agents.ResponseFormatJsonSchemaType": { + "type": "object", + "description": "The type of response format being defined: `json_schema`", + "properties": { + "type": { + "type": "string", + "description": "Type", + "enum": [ + "json_schema" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "json_schema": { + "$ref": "#/definitions/Agents.ResponseFormatJsonSchema", + "description": "The JSON schema, describing response format.", + "x-ms-client-name": "jsonSchema" + } + }, + "required": [ + "type", + "json_schema" + ] + }, + "Agents.RunAdditionalFieldList": { + "type": "string", + "description": "A list of additional fields to include in the response.", + "enum": [ + "step_details.tool_calls[*].file_search.results[*].content" + ], + "x-ms-enum": { + "name": "RunAdditionalFieldList", + "modelAsString": true, + "values": [ + { + "name": "FileSearchContents", + "value": "step_details.tool_calls[*].file_search.results[*].content", + "description": "File search result content." + } + ] + } + }, + "Agents.RunCompletionUsage": { + "type": "object", + "description": "Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.).", + "properties": { + "completion_tokens": { + "type": "integer", + "format": "int64", + "description": "Number of completion tokens used over the course of the run.", + "x-ms-client-name": "completionTokens" + }, + "prompt_tokens": { + "type": "integer", + "format": "int64", + "description": "Number of prompt tokens used over the course of the run.", + "x-ms-client-name": "promptTokens" + }, + "total_tokens": { + "type": "integer", + "format": "int64", + "description": "Total number of tokens used (prompt + completion).", + "x-ms-client-name": "totalTokens" + } + }, + "required": [ + "completion_tokens", + "prompt_tokens", + "total_tokens" + ] + }, + "Agents.RunError": { + "type": "object", + "description": "The details of an error as encountered by an agent thread run.", + "properties": { + "code": { + "type": "string", + "description": "The status for the error." + }, + "message": { + "type": "string", + "description": "The human-readable text associated with the error." + } + }, + "required": [ + "code", + "message" + ] + }, + "Agents.RunStatus": { + "type": "string", + "description": "Possible values for the status of an agent thread run.", + "enum": [ + "queued", + "in_progress", + "requires_action", + "cancelling", + "cancelled", + "failed", + "completed", + "expired" + ], + "x-ms-enum": { + "name": "RunStatus", + "modelAsString": true, + "values": [ + { + "name": "queued", + "value": "queued", + "description": "Represents a run that is queued to start." + }, + { + "name": "inProgress", + "value": "in_progress", + "description": "Represents a run that is in progress." + }, + { + "name": "requiresAction", + "value": "requires_action", + "description": "Represents a run that needs another operation, such as tool output submission, to continue." + }, + { + "name": "cancelling", + "value": "cancelling", + "description": "Represents a run that is in the process of cancellation." + }, + { + "name": "cancelled", + "value": "cancelled", + "description": "Represents a run that has been cancelled." + }, + { + "name": "failed", + "value": "failed", + "description": "Represents a run that failed." + }, + { + "name": "completed", + "value": "completed", + "description": "Represents a run that successfully completed." + }, + { + "name": "expired", + "value": "expired", + "description": "Represents a run that expired before it could otherwise finish." + } + ] + } + }, + "Agents.RunStep": { + "type": "object", + "description": "Detailed information about a single step of an agent thread run.", + "properties": { + "id": { + "type": "string", + "description": "The identifier, which can be referenced in API endpoints." + }, + "object": { + "type": "string", + "description": "The object type, which is always 'thread.run.step'.", + "enum": [ + "thread.run.step" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "type": { + "$ref": "#/definitions/Agents.RunStepType", + "description": "The type of run step, which can be either message_creation or tool_calls." + }, + "assistant_id": { + "type": "string", + "description": "The ID of the agent associated with the run step.", + "x-ms-client-name": "assistantId" + }, + "thread_id": { + "type": "string", + "description": "The ID of the thread that was run.", + "x-ms-client-name": "threadId" + }, + "run_id": { + "type": "string", + "description": "The ID of the run that this run step is a part of.", + "x-ms-client-name": "runId" + }, + "status": { + "$ref": "#/definitions/Agents.RunStepStatus", + "description": "The status of this run step." + }, + "step_details": { + "$ref": "#/definitions/Agents.RunStepDetails", + "description": "The details for this run step.", + "x-ms-client-name": "stepDetails" + }, + "last_error": { + "type": "object", + "description": "If applicable, information about the last error encountered by this run step.", + "x-nullable": true, + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepError" + } + ], + "x-ms-client-name": "lastError" + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp, in seconds, representing when this object was created.", + "x-ms-client-name": "createdAt" + }, + "expired_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp, in seconds, representing when this item expired.", + "x-nullable": true, + "x-ms-client-name": "expiredAt" + }, + "completed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp, in seconds, representing when this completed.", + "x-nullable": true, + "x-ms-client-name": "completedAt" + }, + "cancelled_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp, in seconds, representing when this was cancelled.", + "x-nullable": true, + "x-ms-client-name": "cancelledAt" + }, + "failed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp, in seconds, representing when this failed.", + "x-nullable": true, + "x-ms-client-name": "failedAt" + }, + "usage": { + "type": "object", + "description": "Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`.", + "x-nullable": true, + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepCompletionUsage" + } + ] + }, + "metadata": { + "type": "object", + "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "object", + "type", + "assistant_id", + "thread_id", + "run_id", + "status", + "step_details", + "last_error", + "created_at", + "expired_at", + "completed_at", + "cancelled_at", + "failed_at", + "metadata" + ] + }, + "Agents.RunStepAzureAISearchToolCall": { + "type": "object", + "description": "A record of a call to an Azure AI Search tool, issued by the model in evaluation of a defined tool, that represents\nexecuted Azure AI search.", + "properties": { + "azure_ai_search": { + "type": "object", + "description": "Reserved for future use.", + "additionalProperties": { + "type": "string" + }, + "x-ms-client-name": "azureAISearch" + } + }, + "required": [ + "azure_ai_search" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepToolCall" + } + ], + "x-ms-discriminator-value": "azure_ai_search" + }, + "Agents.RunStepBingGroundingToolCall": { + "type": "object", + "description": "A record of a call to a bing grounding tool, issued by the model in evaluation of a defined tool, that represents\nexecuted search with bing grounding.", + "properties": { + "bing_grounding": { + "type": "object", + "description": "Reserved for future use.", + "additionalProperties": { + "type": "string" + }, + "x-ms-client-name": "bingGrounding" + } + }, + "required": [ + "bing_grounding" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepToolCall" + } + ], + "x-ms-discriminator-value": "bing_grounding" + }, + "Agents.RunStepCodeInterpreterImageOutput": { + "type": "object", + "description": "A representation of an image output emitted by a code interpreter tool in response to a tool call by the model.", + "properties": { + "image": { + "$ref": "#/definitions/Agents.RunStepCodeInterpreterImageReference", + "description": "Referential information for the image associated with this output." + } + }, + "required": [ + "image" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepCodeInterpreterToolCallOutput" + } + ], + "x-ms-discriminator-value": "image" + }, + "Agents.RunStepCodeInterpreterImageReference": { + "type": "object", + "description": "An image reference emitted by a code interpreter tool in response to a tool call by the model.", + "properties": { + "file_id": { + "type": "string", + "description": "The ID of the file associated with this image.", + "x-ms-client-name": "fileId" + } + }, + "required": [ + "file_id" + ] + }, + "Agents.RunStepCodeInterpreterLogOutput": { + "type": "object", + "description": "A representation of a log output emitted by a code interpreter tool in response to a tool call by the model.", + "properties": { + "logs": { + "type": "string", + "description": "The serialized log output emitted by the code interpreter." + } + }, + "required": [ + "logs" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepCodeInterpreterToolCallOutput" + } + ], + "x-ms-discriminator-value": "logs" + }, + "Agents.RunStepCodeInterpreterToolCall": { + "type": "object", + "description": "A record of a call to a code interpreter tool, issued by the model in evaluation of a defined tool, that\nrepresents inputs and outputs consumed and emitted by the code interpreter.", + "properties": { + "code_interpreter": { + "$ref": "#/definitions/Agents.RunStepCodeInterpreterToolCallDetails", + "description": "The details of the tool call to the code interpreter tool.", + "x-ms-client-name": "codeInterpreter" + } + }, + "required": [ + "code_interpreter" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepToolCall" + } + ], + "x-ms-discriminator-value": "code_interpreter" + }, + "Agents.RunStepCodeInterpreterToolCallDetails": { + "type": "object", + "description": "The detailed information about a code interpreter invocation by the model.", + "properties": { + "input": { + "type": "string", + "description": "The input provided by the model to the code interpreter tool." + }, + "outputs": { + "type": "array", + "description": "The outputs produced by the code interpreter tool back to the model in response to the tool call.", + "items": { + "$ref": "#/definitions/Agents.RunStepCodeInterpreterToolCallOutput" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "input", + "outputs" + ] + }, + "Agents.RunStepCodeInterpreterToolCallOutput": { + "type": "object", + "description": "An abstract representation of an emitted output from a code interpreter tool.", + "properties": { + "type": { + "type": "string", + "description": "The object type." + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, + "Agents.RunStepCompletionUsage": { + "type": "object", + "description": "Usage statistics related to the run step.", + "properties": { + "completion_tokens": { + "type": "integer", + "format": "int64", + "description": "Number of completion tokens used over the course of the run step.", + "x-ms-client-name": "completionTokens" + }, + "prompt_tokens": { + "type": "integer", + "format": "int64", + "description": "Number of prompt tokens used over the course of the run step.", + "x-ms-client-name": "promptTokens" + }, + "total_tokens": { + "type": "integer", + "format": "int64", + "description": "Total number of tokens used (prompt + completion).", + "x-ms-client-name": "totalTokens" + } + }, + "required": [ + "completion_tokens", + "prompt_tokens", + "total_tokens" + ] + }, + "Agents.RunStepDelta": { + "type": "object", + "description": "Represents the delta payload in a streaming run step delta chunk.", + "properties": { + "step_details": { + "$ref": "#/definitions/Agents.RunStepDeltaDetail", + "description": "The details of the run step.", + "x-ms-client-name": "stepDetails" + } + } + }, + "Agents.RunStepDeltaChunk": { + "type": "object", + "description": "Represents a run step delta i.e. any changed fields on a run step during streaming.", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the run step, which can be referenced in API endpoints." + }, + "object": { + "type": "string", + "description": "The object type, which is always `thread.run.step.delta`.", + "enum": [ + "thread.run.step.delta" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "delta": { + "$ref": "#/definitions/Agents.RunStepDelta", + "description": "The delta containing the fields that have changed on the run step." + } + }, + "required": [ + "id", + "object", + "delta" + ] + }, + "Agents.RunStepDeltaCodeInterpreterDetailItemObject": { + "type": "object", + "description": "Represents the Code Interpreter tool call data in a streaming run step's tool calls.", + "properties": { + "input": { + "type": "string", + "description": "The input into the Code Interpreter tool call." + }, + "outputs": { + "type": "array", + "description": "The outputs from the Code Interpreter tool call. Code Interpreter can output one or more\nitems, including text (`logs`) or images (`image`). Each of these are represented by a\ndifferent object type.", + "items": { + "$ref": "#/definitions/Agents.RunStepDeltaCodeInterpreterOutput" + }, + "x-ms-identifiers": [] + } + } + }, + "Agents.RunStepDeltaCodeInterpreterImageOutput": { + "type": "object", + "description": "Represents an image output as produced the Code interpreter tool and as represented in a streaming run step's delta tool calls collection.", + "properties": { + "image": { + "$ref": "#/definitions/Agents.RunStepDeltaCodeInterpreterImageOutputObject", + "description": "The image data for the Code Interpreter tool call output." + } + }, + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepDeltaCodeInterpreterOutput" + } + ], + "x-ms-discriminator-value": "image" + }, + "Agents.RunStepDeltaCodeInterpreterImageOutputObject": { + "type": "object", + "description": "Represents the data for a streaming run step's Code Interpreter tool call image output.", + "properties": { + "file_id": { + "type": "string", + "description": "The file ID for the image.", + "x-ms-client-name": "fileId" + } + } + }, + "Agents.RunStepDeltaCodeInterpreterLogOutput": { + "type": "object", + "description": "Represents a log output as produced by the Code Interpreter tool and as represented in a streaming run step's delta tool calls collection.", + "properties": { + "logs": { + "type": "string", + "description": "The text output from the Code Interpreter tool call." + } + }, + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepDeltaCodeInterpreterOutput" + } + ], + "x-ms-discriminator-value": "logs" + }, + "Agents.RunStepDeltaCodeInterpreterOutput": { + "type": "object", + "description": "The abstract base representation of a streaming run step tool call's Code Interpreter tool output.", + "properties": { + "index": { + "type": "integer", + "format": "int32", + "description": "The index of the output in the streaming run step tool call's Code Interpreter outputs array." + }, + "type": { + "type": "string", + "description": "The type of the streaming run step tool call's Code Interpreter output." + } + }, + "discriminator": "type", + "required": [ + "index", + "type" + ] + }, + "Agents.RunStepDeltaCodeInterpreterToolCall": { + "type": "object", + "description": "Represents a Code Interpreter tool call within a streaming run step's tool call details.", + "properties": { + "code_interpreter": { + "$ref": "#/definitions/Agents.RunStepDeltaCodeInterpreterDetailItemObject", + "description": "The Code Interpreter data for the tool call.", + "x-ms-client-name": "codeInterpreter" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepDeltaToolCall" + } + ], + "x-ms-discriminator-value": "code_interpreter" + }, + "Agents.RunStepDeltaDetail": { + "type": "object", + "description": "Represents a single run step detail item in a streaming run step's delta payload.", + "properties": { + "type": { + "type": "string", + "description": "The object type for the run step detail object." + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, + "Agents.RunStepDeltaFileSearchToolCall": { + "type": "object", + "description": "Represents a file search tool call within a streaming run step's tool call details.", + "properties": { + "file_search": { + "type": "object", + "description": "Reserved for future use.", + "additionalProperties": { + "type": "string" + }, + "x-ms-client-name": "fileSearch" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepDeltaToolCall" + } + ], + "x-ms-discriminator-value": "file_search" + }, + "Agents.RunStepDeltaFunction": { + "type": "object", + "description": "Represents the function data in a streaming run step delta's function tool call.", + "properties": { + "name": { + "type": "string", + "description": "The name of the function." + }, + "arguments": { + "type": "string", + "description": "The arguments passed to the function as input." + }, + "output": { + "type": "string", + "description": "The output of the function, null if outputs have not yet been submitted.", + "x-nullable": true + } + } + }, + "Agents.RunStepDeltaFunctionToolCall": { + "type": "object", + "description": "Represents a function tool call within a streaming run step's tool call details.", + "properties": { + "function": { + "$ref": "#/definitions/Agents.RunStepDeltaFunction", + "description": "The function data for the tool call." + } + }, + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepDeltaToolCall" + } + ], + "x-ms-discriminator-value": "function" + }, + "Agents.RunStepDeltaMessageCreation": { + "type": "object", + "description": "Represents a message creation within a streaming run step delta.", + "properties": { + "message_creation": { + "$ref": "#/definitions/Agents.RunStepDeltaMessageCreationObject", + "description": "The message creation data.", + "x-ms-client-name": "messageCreation" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepDeltaDetail" + } + ], + "x-ms-discriminator-value": "message_creation" + }, + "Agents.RunStepDeltaMessageCreationObject": { + "type": "object", + "description": "Represents the data within a streaming run step message creation response object.", + "properties": { + "message_id": { + "type": "string", + "description": "The ID of the newly-created message.", + "x-ms-client-name": "messageId" + } + } + }, + "Agents.RunStepDeltaToolCall": { + "type": "object", + "description": "The abstract base representation of a single tool call within a streaming run step's delta tool call details.", + "properties": { + "index": { + "type": "integer", + "format": "int32", + "description": "The index of the tool call detail in the run step's tool_calls array." + }, + "id": { + "type": "string", + "description": "The ID of the tool call, used when submitting outputs to the run." + }, + "type": { + "type": "string", + "description": "The type of the tool call detail item in a streaming run step's details." + } + }, + "discriminator": "type", + "required": [ + "index", + "id", + "type" + ] + }, + "Agents.RunStepDeltaToolCallObject": { + "type": "object", + "description": "Represents an invocation of tool calls as part of a streaming run step.", + "properties": { + "tool_calls": { + "type": "array", + "description": "The collection of tool calls for the tool call detail item.", + "items": { + "$ref": "#/definitions/Agents.RunStepDeltaToolCall" + }, + "x-ms-client-name": "toolCalls" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepDeltaDetail" + } + ], + "x-ms-discriminator-value": "tool_calls" + }, + "Agents.RunStepDetails": { + "type": "object", + "description": "An abstract representation of the details for a run step.", + "properties": { + "type": { + "$ref": "#/definitions/Agents.RunStepType", + "description": "The object type." + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, + "Agents.RunStepError": { + "type": "object", + "description": "The error information associated with a failed run step.", + "properties": { + "code": { + "$ref": "#/definitions/Agents.RunStepErrorCode", + "description": "The error code for this error." + }, + "message": { + "type": "string", + "description": "The human-readable text associated with this error." + } + }, + "required": [ + "code", + "message" + ] + }, + "Agents.RunStepErrorCode": { + "type": "string", + "description": "Possible error code values attributable to a failed run step.", + "enum": [ + "server_error", + "rate_limit_exceeded" + ], + "x-ms-enum": { + "name": "RunStepErrorCode", + "modelAsString": true, + "values": [ + { + "name": "serverError", + "value": "server_error", + "description": "Represents a server error." + }, + { + "name": "rateLimitExceeded", + "value": "rate_limit_exceeded", + "description": "Represents an error indicating configured rate limits were exceeded." + } + ] + } + }, + "Agents.RunStepFileSearchToolCall": { + "type": "object", + "description": "A record of a call to a file search tool, issued by the model in evaluation of a defined tool, that represents\nexecuted file search.", + "properties": { + "id": { + "type": "string", + "description": "The ID of the tool call. This ID must be referenced when you submit tool outputs." + }, + "file_search": { + "$ref": "#/definitions/Agents.RunStepFileSearchToolCallResults", + "description": "For now, this is always going to be an empty object.", + "x-ms-client-name": "fileSearch" + } + }, + "required": [ + "id", + "file_search" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepToolCall" + } + ], + "x-ms-discriminator-value": "file_search" + }, + "Agents.RunStepFileSearchToolCallResult": { + "type": "object", + "description": " File search tool call result.", + "properties": { + "file_id": { + "type": "string", + "description": "The ID of the file that result was found in.", + "x-ms-client-name": "fileId" + }, + "file_name": { + "type": "string", + "description": "The name of the file that result was found in.", + "x-ms-client-name": "fileName" + }, + "score": { + "type": "number", + "format": "float", + "description": "The score of the result. All values must be a floating point number between 0 and 1.", + "minimum": 0, + "maximum": 1 + }, + "content": { + "type": "array", + "description": "The content of the result that was found. The content is only included if requested via the include query parameter.", + "items": { + "$ref": "#/definitions/Agents.FileSearchToolCallContent" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "file_id", + "file_name", + "score" + ] + }, + "Agents.RunStepFileSearchToolCallResults": { + "type": "object", + "description": "The results of the file search.", + "properties": { + "ranking_options": { + "$ref": "#/definitions/Agents.FileSearchRankingOptions", + "description": "Ranking options for file search.", + "x-ms-client-name": "rankingOptions" + }, + "results": { + "type": "array", + "description": "The array of a file search results", + "items": { + "$ref": "#/definitions/Agents.RunStepFileSearchToolCallResult" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "results" + ] + }, + "Agents.RunStepFunctionToolCall": { + "type": "object", + "description": "A record of a call to a function tool, issued by the model in evaluation of a defined tool, that represents the inputs\nand output consumed and emitted by the specified function.", + "properties": { + "function": { + "$ref": "#/definitions/Agents.RunStepFunctionToolCallDetails", + "description": "The detailed information about the function called by the model." + } + }, + "required": [ + "function" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepToolCall" + } + ], + "x-ms-discriminator-value": "function" + }, + "Agents.RunStepFunctionToolCallDetails": { + "type": "object", + "description": "The detailed information about the function called by the model.", + "properties": { + "name": { + "type": "string", + "description": "The name of the function." + }, + "arguments": { + "type": "string", + "description": "The arguments that the model requires are provided to the named function." + }, + "output": { + "type": "string", + "description": "The output of the function, only populated for function calls that have already have had their outputs submitted.", + "x-nullable": true + } + }, + "required": [ + "name", + "arguments", + "output" + ] + }, + "Agents.RunStepMessageCreationDetails": { + "type": "object", + "description": "The detailed information associated with a message creation run step.", + "properties": { + "message_creation": { + "$ref": "#/definitions/Agents.RunStepMessageCreationReference", + "description": "Information about the message creation associated with this run step.", + "x-ms-client-name": "messageCreation" + } + }, + "required": [ + "message_creation" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepDetails" + } + ], + "x-ms-discriminator-value": "message_creation" + }, + "Agents.RunStepMessageCreationReference": { + "type": "object", + "description": "The details of a message created as a part of a run step.", + "properties": { + "message_id": { + "type": "string", + "description": "The ID of the message created by this run step.", + "x-ms-client-name": "messageId" + } + }, + "required": [ + "message_id" + ] + }, + "Agents.RunStepMicrosoftFabricToolCall": { + "type": "object", + "description": "A record of a call to a Microsoft Fabric tool, issued by the model in evaluation of a defined tool, that represents\nexecuted Microsoft Fabric operations.", + "properties": { + "fabric_aiskill": { + "type": "object", + "description": "Reserved for future use.", + "additionalProperties": { + "type": "string" + }, + "x-ms-client-name": "microsoftFabric" + } + }, + "required": [ + "fabric_aiskill" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepToolCall" + } + ], + "x-ms-discriminator-value": "fabric_aiskill" + }, + "Agents.RunStepSharepointToolCall": { + "type": "object", + "description": "A record of a call to a SharePoint tool, issued by the model in evaluation of a defined tool, that represents\nexecuted SharePoint actions.", + "properties": { + "sharepoint_grounding": { + "type": "object", + "description": "Reserved for future use.", + "additionalProperties": { + "type": "string" + }, + "x-ms-client-name": "sharePoint" + } + }, + "required": [ + "sharepoint_grounding" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepToolCall" + } + ], + "x-ms-discriminator-value": "sharepoint_grounding" + }, + "Agents.RunStepStatus": { + "type": "string", + "description": "Possible values for the status of a run step.", + "enum": [ + "in_progress", + "cancelled", + "failed", + "completed", + "expired" + ], + "x-ms-enum": { + "name": "RunStepStatus", + "modelAsString": true, + "values": [ + { + "name": "inProgress", + "value": "in_progress", + "description": "Represents a run step still in progress." + }, + { + "name": "cancelled", + "value": "cancelled", + "description": "Represents a run step that was cancelled." + }, + { + "name": "failed", + "value": "failed", + "description": "Represents a run step that failed." + }, + { + "name": "completed", + "value": "completed", + "description": "Represents a run step that successfully completed." + }, + { + "name": "expired", + "value": "expired", + "description": "Represents a run step that expired before otherwise finishing." + } + ] + } + }, + "Agents.RunStepStreamEvent": { + "type": "string", + "description": "Run step operation related streaming events", + "enum": [ + "thread.run.step.created", + "thread.run.step.in_progress", + "thread.run.step.delta", + "thread.run.step.completed", + "thread.run.step.failed", + "thread.run.step.cancelled", + "thread.run.step.expired" + ], + "x-ms-enum": { + "name": "RunStepStreamEvent", + "modelAsString": true, + "values": [ + { + "name": "ThreadRunStepCreated", + "value": "thread.run.step.created", + "description": "Event sent when a new thread run step is created. The data of this event is of type RunStep" + }, + { + "name": "ThreadRunStepInProgress", + "value": "thread.run.step.in_progress", + "description": "Event sent when a run step moves to `in_progress` status. The data of this event is of type RunStep" + }, + { + "name": "ThreadRunStepDelta", + "value": "thread.run.step.delta", + "description": "Event sent when a run step is being streamed. The data of this event is of type RunStepDeltaChunk" + }, + { + "name": "ThreadRunStepCompleted", + "value": "thread.run.step.completed", + "description": "Event sent when a run step is completed. The data of this event is of type RunStep" + }, + { + "name": "ThreadRunStepFailed", + "value": "thread.run.step.failed", + "description": "Event sent when a run step fails. The data of this event is of type RunStep" + }, + { + "name": "ThreadRunStepCancelled", + "value": "thread.run.step.cancelled", + "description": "Event sent when a run step is cancelled. The data of this event is of type RunStep" + }, + { + "name": "ThreadRunStepExpired", + "value": "thread.run.step.expired", + "description": "Event sent when a run step is expired. The data of this event is of type RunStep" + } + ] + } + }, + "Agents.RunStepToolCall": { + "type": "object", + "description": "An abstract representation of a detailed tool call as recorded within a run step for an existing run.", + "properties": { + "type": { + "type": "string", + "description": "The object type." + }, + "id": { + "type": "string", + "description": "The ID of the tool call. This ID must be referenced when you submit tool outputs." + } + }, + "discriminator": "type", + "required": [ + "type", + "id" + ] + }, + "Agents.RunStepToolCallDetails": { + "type": "object", + "description": "The detailed information associated with a run step calling tools.", + "properties": { + "tool_calls": { + "type": "array", + "description": "A list of tool call details for this run step.", + "items": { + "$ref": "#/definitions/Agents.RunStepToolCall" + }, + "x-ms-client-name": "toolCalls" + } + }, + "required": [ + "tool_calls" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.RunStepDetails" + } + ], + "x-ms-discriminator-value": "tool_calls" + }, + "Agents.RunStepType": { + "type": "string", + "description": "The possible types of run steps.", + "enum": [ + "message_creation", + "tool_calls" + ], + "x-ms-enum": { + "name": "RunStepType", + "modelAsString": true, + "values": [ + { + "name": "messageCreation", + "value": "message_creation", + "description": "Represents a run step to create a message." + }, + { + "name": "toolCalls", + "value": "tool_calls", + "description": "Represents a run step that calls tools." + } + ] + } + }, + "Agents.RunStreamEvent": { + "type": "string", + "description": "Run operation related streaming events", + "enum": [ + "thread.run.created", + "thread.run.queued", + "thread.run.in_progress", + "thread.run.requires_action", + "thread.run.completed", + "thread.run.incomplete", + "thread.run.failed", + "thread.run.cancelling", + "thread.run.cancelled", + "thread.run.expired" + ], + "x-ms-enum": { + "name": "RunStreamEvent", + "modelAsString": true, + "values": [ + { + "name": "ThreadRunCreated", + "value": "thread.run.created", + "description": "Event sent when a new run is created. The data of this event is of type ThreadRun" + }, + { + "name": "ThreadRunQueued", + "value": "thread.run.queued", + "description": "Event sent when a run moves to `queued` status. The data of this event is of type ThreadRun" + }, + { + "name": "ThreadRunInProgress", + "value": "thread.run.in_progress", + "description": "Event sent when a run moves to `in_progress` status. The data of this event is of type ThreadRun" + }, + { + "name": "ThreadRunRequiresAction", + "value": "thread.run.requires_action", + "description": "Event sent when a run moves to `requires_action` status. The data of this event is of type ThreadRun" + }, + { + "name": "ThreadRunCompleted", + "value": "thread.run.completed", + "description": "Event sent when a run is completed. The data of this event is of type ThreadRun" + }, + { + "name": "ThreadRunIncomplete", + "value": "thread.run.incomplete", + "description": "Event sent when a run ends incomplete. The data of this event is of type ThreadRun" + }, + { + "name": "ThreadRunFailed", + "value": "thread.run.failed", + "description": "Event sent when a run fails. The data of this event is of type ThreadRun" + }, + { + "name": "ThreadRunCancelling", + "value": "thread.run.cancelling", + "description": "Event sent when a run moves to `cancelling` status. The data of this event is of type ThreadRun" + }, + { + "name": "ThreadRunCancelled", + "value": "thread.run.cancelled", + "description": "Event sent when a run is cancelled. The data of this event is of type ThreadRun" + }, + { + "name": "ThreadRunExpired", + "value": "thread.run.expired", + "description": "Event sent when a run is expired. The data of this event is of type ThreadRun" + } + ] + } + }, + "Agents.SharepointToolDefinition": { + "type": "object", + "description": "The input definition information for a sharepoint tool as used to configure an agent.", + "properties": { + "sharepoint_grounding": { + "$ref": "#/definitions/Agents.ToolConnectionList", + "description": "The list of connections used by the SharePoint tool." + } + }, + "required": [ + "sharepoint_grounding" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.ToolDefinition" + } + ], + "x-ms-discriminator-value": "sharepoint_grounding" + }, + "Agents.SubmitToolOutputsAction": { + "type": "object", + "description": "The details for required tool calls that must be submitted for an agent thread run to continue.", + "properties": { + "submit_tool_outputs": { + "$ref": "#/definitions/Agents.SubmitToolOutputsDetails", + "description": "The details describing tools that should be called to submit tool outputs.", + "x-ms-client-name": "submitToolOutputs" + } + }, + "required": [ + "submit_tool_outputs" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.RequiredAction" + } + ], + "x-ms-discriminator-value": "submit_tool_outputs" + }, + "Agents.SubmitToolOutputsDetails": { + "type": "object", + "description": "The details describing tools that should be called to submit tool outputs.", + "properties": { + "tool_calls": { + "type": "array", + "description": "The list of tool calls that must be resolved for the agent thread run to continue.", + "items": { + "$ref": "#/definitions/Agents.RequiredToolCall" + }, + "x-ms-client-name": "toolCalls" + } + }, + "required": [ + "tool_calls" + ] + }, + "Agents.ThreadDeletionStatus": { + "type": "object", + "description": "The status of a thread deletion operation.", + "properties": { + "id": { + "type": "string", + "description": "The ID of the resource specified for deletion." + }, + "deleted": { + "type": "boolean", + "description": "A value indicating whether deletion was successful." + }, + "object": { + "type": "string", + "description": "The object type, which is always 'thread.deleted'.", + "enum": [ + "thread.deleted" + ], + "x-ms-enum": { + "modelAsString": false + } + } + }, + "required": [ + "id", + "deleted", + "object" + ] + }, + "Agents.ThreadMessage": { + "type": "object", + "description": "A single, existing message within an agent thread.", + "properties": { + "id": { + "type": "string", + "description": "The identifier, which can be referenced in API endpoints." + }, + "object": { + "type": "string", + "description": "The object type, which is always 'thread.message'.", + "enum": [ + "thread.message" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp, in seconds, representing when this object was created.", + "x-ms-client-name": "createdAt" + }, + "thread_id": { + "type": "string", + "description": "The ID of the thread that this message belongs to.", + "x-ms-client-name": "threadId" + }, + "status": { + "$ref": "#/definitions/Agents.MessageStatus", + "description": "The status of the message." + }, + "incomplete_details": { + "type": "object", + "description": "On an incomplete message, details about why the message is incomplete.", + "x-nullable": true, + "allOf": [ + { + "$ref": "#/definitions/Agents.MessageIncompleteDetails" + } + ], + "x-ms-client-name": "incompleteDetails" + }, + "completed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the message was completed.", + "x-nullable": true, + "x-ms-client-name": "completedAt" + }, + "incomplete_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the message was marked as incomplete.", + "x-nullable": true, + "x-ms-client-name": "incompleteAt" + }, + "role": { + "$ref": "#/definitions/Agents.MessageRole", + "description": "The role associated with the agent thread message." + }, + "content": { + "type": "array", + "description": "The list of content items associated with the agent thread message.", + "items": { + "$ref": "#/definitions/Agents.MessageContent" + }, + "x-ms-identifiers": [] + }, + "assistant_id": { + "type": "string", + "description": "If applicable, the ID of the agent that authored this message.", + "x-nullable": true, + "x-ms-client-name": "assistantId" + }, + "run_id": { + "type": "string", + "description": "If applicable, the ID of the run associated with the authoring of this message.", + "x-nullable": true, + "x-ms-client-name": "runId" + }, + "attachments": { + "type": "array", + "description": "A list of files attached to the message, and the tools they were added to.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/Agents.MessageAttachment" + }, + "x-ms-identifiers": [] + }, + "metadata": { + "type": "object", + "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "object", + "created_at", + "thread_id", + "status", + "incomplete_details", + "completed_at", + "incomplete_at", + "role", + "content", + "assistant_id", + "run_id", + "attachments", + "metadata" + ] + }, + "Agents.ThreadMessageOptions": { + "type": "object", + "description": "A single message within an agent thread, as provided during that thread's creation for its initial state.", + "properties": { + "role": { + "$ref": "#/definitions/Agents.MessageRole", + "description": "The role of the entity that is creating the message. Allowed values include:\n- `user`: Indicates the message is sent by an actual user and should be used in most\ncases to represent user-generated messages.\n- `assistant`: Indicates the message is generated by the agent. Use this value to insert\nmessages from the agent into the\nconversation." + }, + "content": { + "type": "string", + "description": "The textual content of the initial message. Currently, robust input including images and annotated text may only be provided via\na separate call to the create message API." + }, + "attachments": { + "type": "array", + "description": "A list of files attached to the message, and the tools they should be added to.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/Agents.MessageAttachment" + }, + "x-ms-identifiers": [] + }, + "metadata": { + "type": "object", + "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "role", + "content" + ] + }, + "Agents.ThreadRun": { + "type": "object", + "description": "Data representing a single evaluation run of an agent thread.", + "properties": { + "id": { + "type": "string", + "description": "The identifier, which can be referenced in API endpoints." + }, + "object": { + "type": "string", + "description": "The object type, which is always 'thread.run'.", + "enum": [ + "thread.run" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "thread_id": { + "type": "string", + "description": "The ID of the thread associated with this run.", + "x-ms-client-name": "threadId" + }, + "assistant_id": { + "type": "string", + "description": "The ID of the agent associated with the thread this run was performed against.", + "x-ms-client-name": "assistantId" + }, + "status": { + "$ref": "#/definitions/Agents.RunStatus", + "description": "The status of the agent thread run." + }, + "required_action": { + "type": "object", + "description": "The details of the action required for the agent thread run to continue.", + "x-nullable": true, + "allOf": [ + { + "$ref": "#/definitions/Agents.RequiredAction" + } + ], + "x-ms-client-name": "requiredAction" + }, + "last_error": { + "type": "object", + "description": "The last error, if any, encountered by this agent thread run.", + "x-nullable": true, + "allOf": [ + { + "$ref": "#/definitions/Agents.RunError" + } + ], + "x-ms-client-name": "lastError" + }, + "model": { + "type": "string", + "description": "The ID of the model to use." + }, + "instructions": { + "type": "string", + "description": "The overridden system instructions used for this agent thread run." + }, + "tools": { + "type": "array", + "description": "The overridden enabled tools used for this agent thread run.", + "default": [], + "items": { + "$ref": "#/definitions/Agents.ToolDefinition" + }, + "x-ms-identifiers": [] + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp, in seconds, representing when this object was created.", + "x-ms-client-name": "createdAt" + }, + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp, in seconds, representing when this item expires.", + "x-nullable": true, + "x-ms-client-name": "expiresAt" + }, + "started_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp, in seconds, representing when this item was started.", + "x-nullable": true, + "x-ms-client-name": "startedAt" + }, + "completed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp, in seconds, representing when this completed.", + "x-nullable": true, + "x-ms-client-name": "completedAt" + }, + "cancelled_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp, in seconds, representing when this was cancelled.", + "x-nullable": true, + "x-ms-client-name": "cancelledAt" + }, + "failed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp, in seconds, representing when this failed.", + "x-nullable": true, + "x-ms-client-name": "failedAt" + }, + "incomplete_details": { + "type": "object", + "description": "Details on why the run is incomplete. Will be `null` if the run is not incomplete.", + "x-nullable": true, + "allOf": [ + { + "$ref": "#/definitions/Agents.IncompleteRunDetails" + } + ], + "x-ms-client-name": "incompleteDetails" + }, + "usage": { + "type": "object", + "description": "Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.).", + "x-nullable": true, + "allOf": [ + { + "$ref": "#/definitions/Agents.RunCompletionUsage" + } + ] + }, + "temperature": { + "type": "number", + "format": "float", + "description": "The sampling temperature used for this run. If not set, defaults to 1.", + "x-nullable": true + }, + "top_p": { + "type": "number", + "format": "float", + "description": "The nucleus sampling value used for this run. If not set, defaults to 1.", + "x-nullable": true, + "x-ms-client-name": "topP" + }, + "max_prompt_tokens": { + "type": "integer", + "format": "int32", + "description": "The maximum number of prompt tokens specified to have been used over the course of the run.", + "x-nullable": true, + "x-ms-client-name": "maxPromptTokens" + }, + "max_completion_tokens": { + "type": "integer", + "format": "int32", + "description": "The maximum number of completion tokens specified to have been used over the course of the run.", + "x-nullable": true, + "x-ms-client-name": "maxCompletionTokens" + }, + "truncation_strategy": { + "type": "object", + "description": "The strategy to use for dropping messages as the context windows moves forward.", + "x-nullable": true, + "allOf": [ + { + "$ref": "#/definitions/Agents.TruncationObject" + } + ], + "x-ms-client-name": "truncationStrategy" + }, + "tool_choice": { + "$ref": "#/definitions/Agents.AgentsApiToolChoiceOption", + "description": "Controls whether or not and which tool is called by the model.", + "x-nullable": true, + "x-ms-client-name": "toolChoice" + }, + "response_format": { + "$ref": "#/definitions/Agents.AgentsApiResponseFormatOption", + "description": "The response format of the tool calls used in this run.", + "x-nullable": true, + "x-ms-client-name": "responseFormat" + }, + "metadata": { + "type": "object", + "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "tool_resources": { + "type": "object", + "description": "Override the tools the agent can use for this run. This is useful for modifying the behavior on a per-run basis", + "x-nullable": true, + "allOf": [ + { + "$ref": "#/definitions/Agents.UpdateToolResourcesOptions" + } + ], + "x-ms-client-name": "toolResources" + }, + "parallel_tool_calls": { + "type": "boolean", + "description": "Determines if tools can be executed in parallel within the run.", + "x-ms-client-name": "parallelToolCalls" + } + }, + "required": [ + "id", + "object", + "thread_id", + "assistant_id", + "status", + "last_error", + "model", + "instructions", + "tools", + "created_at", + "expires_at", + "started_at", + "completed_at", + "cancelled_at", + "failed_at", + "incomplete_details", + "usage", + "max_prompt_tokens", + "max_completion_tokens", + "truncation_strategy", + "tool_choice", + "response_format", + "metadata", + "parallel_tool_calls" + ] + }, + "Agents.ThreadStreamEvent": { + "type": "string", + "description": "Thread operation related streaming events", + "enum": [ + "thread.created" + ], + "x-ms-enum": { + "name": "ThreadStreamEvent", + "modelAsString": true, + "values": [ + { + "name": "ThreadCreated", + "value": "thread.created", + "description": "Event sent when a new thread is created. The data of this event is of type AgentThread" + } + ] + } + }, + "Agents.ToolConnection": { + "type": "object", + "description": "A connection resource.", + "properties": { + "connection_id": { + "type": "string", + "description": "A connection in a ToolConnectionList attached to this tool.", + "x-ms-client-name": "connectionId" + } + }, + "required": [ + "connection_id" + ] + }, + "Agents.ToolConnectionList": { + "type": "object", + "description": "A set of connection resources currently used by either the `bing_grounding`, `fabric_aiskill`, or `sharepoint_grounding` tools.", + "properties": { + "connections": { + "type": "array", + "description": "The connections attached to this tool. There can be a maximum of 1 connection\nresource attached to the tool.", + "maxItems": 1, + "items": { + "$ref": "#/definitions/Agents.ToolConnection" + }, + "x-ms-client-name": "connectionList", + "x-ms-identifiers": [] + } + } + }, + "Agents.ToolDefinition": { + "type": "object", + "description": "An abstract representation of an input tool definition that an agent can use.", + "properties": { + "type": { + "type": "string", + "description": "The object type." + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, + "Agents.ToolOutput": { + "type": "object", + "description": "The data provided during a tool outputs submission to resolve pending tool calls and allow the model to continue.", + "properties": { + "tool_call_id": { + "type": "string", + "description": "The ID of the tool call being resolved, as provided in the tool calls of a required action from a run.", + "x-ms-client-name": "toolCallId" + }, + "output": { + "type": "string", + "description": "The output from the tool to be submitted." + } + } + }, + "Agents.ToolResources": { + "type": "object", + "description": "A set of resources that are used by the agent's tools. The resources are specific to the type of\ntool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search`\ntool requires a list of vector store IDs.", + "properties": { + "code_interpreter": { + "$ref": "#/definitions/Agents.CodeInterpreterToolResource", + "description": "Resources to be used by the `code_interpreter` tool consisting of file IDs.", + "x-ms-client-name": "codeInterpreter" + }, + "file_search": { + "$ref": "#/definitions/Agents.FileSearchToolResource", + "description": "Resources to be used by the `file_search` tool consisting of vector store IDs.", + "x-ms-client-name": "fileSearch" + }, + "azure_ai_search": { + "$ref": "#/definitions/Agents.AzureAISearchResource", + "description": "Resources to be used by the `azure_ai_search` tool consisting of index IDs and names.", + "x-ms-client-name": "azureAISearch" + } + } + }, + "Agents.TruncationObject": { + "type": "object", + "description": "Controls for how a thread will be truncated prior to the run. Use this to control the initial\ncontext window of the run.", + "properties": { + "type": { + "type": "string", + "description": "The truncation strategy to use for the thread. The default is `auto`. If set to `last_messages`, the thread will\nbe truncated to the `lastMessages` count most recent messages in the thread. When set to `auto`, messages in the middle of the thread\nwill be dropped to fit the context length of the model, `max_prompt_tokens`.", + "default": "auto", + "enum": [ + "auto", + "last_messages" + ], + "x-ms-enum": { + "name": "TruncationStrategy", + "modelAsString": true, + "values": [ + { + "name": "auto", + "value": "auto", + "description": "Default value. Messages in the middle of the thread will be dropped to fit the context length of the model." + }, + { + "name": "lastMessages", + "value": "last_messages", + "description": "The thread will truncate to the `lastMessages` count of recent messages." + } + ] + } + }, + "last_messages": { + "type": "integer", + "format": "int32", + "description": "The number of most recent messages from the thread when constructing the context for the run.", + "x-nullable": true, + "x-ms-client-name": "lastMessages" + } + }, + "required": [ + "type" + ] + }, + "Agents.TruncationStrategy": { + "type": "string", + "description": "Possible truncation strategies for the thread.", + "enum": [ + "auto", + "last_messages" + ], + "x-ms-enum": { + "name": "TruncationStrategy", + "modelAsString": true, + "values": [ + { + "name": "auto", + "value": "auto", + "description": "Default value. Messages in the middle of the thread will be dropped to fit the context length of the model." + }, + { + "name": "lastMessages", + "value": "last_messages", + "description": "The thread will truncate to the `lastMessages` count of recent messages." + } + ] + } + }, + "Agents.UpdateAgentOptions": { + "type": "object", + "description": "The request details to use when modifying an existing agent.", + "properties": { + "model": { + "type": "string", + "description": "The ID of the model to use." + }, + "name": { + "type": "string", + "description": "The modified name for the agent to use.", + "x-nullable": true + }, + "description": { + "type": "string", + "description": "The modified description for the agent to use.", + "x-nullable": true + }, + "instructions": { + "type": "string", + "description": "The modified system instructions for the new agent to use.", + "x-nullable": true + }, + "tools": { + "type": "array", + "description": "The modified collection of tools to enable for the agent.", + "default": [], + "items": { + "$ref": "#/definitions/Agents.ToolDefinition" + }, + "x-ms-identifiers": [] + }, + "tool_resources": { + "$ref": "#/definitions/Agents.ToolResources", + "description": "A set of resources that are used by the agent's tools. The resources are specific to the type of tool. For example,\nthe `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs.", + "x-ms-client-name": "toolResources" + }, + "temperature": { + "type": "number", + "format": "float", + "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.", + "default": 1, + "x-nullable": true + }, + "top_p": { + "type": "number", + "format": "float", + "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\n\nWe generally recommend altering this or temperature but not both.", + "default": 1, + "x-nullable": true, + "x-ms-client-name": "topP" + }, + "response_format": { + "$ref": "#/definitions/Agents.AgentsApiResponseFormatOption", + "description": "The response format of the tool calls used by this agent.", + "x-nullable": true, + "x-ms-client-name": "responseFormat" + }, + "metadata": { + "type": "object", + "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + } + } + }, + "Agents.UpdateAgentThreadOptions": { + "type": "object", + "description": "The details used to update an existing agent thread", + "properties": { + "tool_resources": { + "type": "object", + "description": "A set of resources that are made available to the agent's tools in this thread. The resources are specific to the\ntype of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires\na list of vector store IDs", + "x-nullable": true, + "allOf": [ + { + "$ref": "#/definitions/Agents.ToolResources" + } + ], + "x-ms-client-name": "toolResources" + }, + "metadata": { + "type": "object", + "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + } + } + }, + "Agents.UpdateCodeInterpreterToolResourceOptions": { + "type": "object", + "description": "Request object to update `code_interpreted` tool resources.", + "properties": { + "file_ids": { + "type": "array", + "description": "A list of file IDs to override the current list of the agent.", + "maxItems": 20, + "items": { + "type": "string" + }, + "x-ms-client-name": "fileIds" + } + } + }, + "Agents.UpdateFileSearchToolResourceOptions": { + "type": "object", + "description": "Request object to update `file_search` tool resources.", + "properties": { + "vector_store_ids": { + "type": "array", + "description": "A list of vector store IDs to override the current list of the agent.", + "maxItems": 1, + "items": { + "type": "string" + }, + "x-ms-client-name": "vectorStoreIds" + } + } + }, + "Agents.UpdateToolResourcesOptions": { + "type": "object", + "description": "Request object. A set of resources that are used by the agent's tools. The resources are specific to the type of tool.\nFor example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of\nvector store IDs.", + "properties": { + "code_interpreter": { + "$ref": "#/definitions/Agents.UpdateCodeInterpreterToolResourceOptions", + "description": "Overrides the list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files\nassociated with the tool.", + "x-ms-client-name": "codeInterpreter" + }, + "file_search": { + "$ref": "#/definitions/Agents.UpdateFileSearchToolResourceOptions", + "description": "Overrides the vector store attached to this agent. There can be a maximum of 1 vector store attached to the agent.", + "x-ms-client-name": "fileSearch" + }, + "azure_ai_search": { + "$ref": "#/definitions/Agents.AzureAISearchResource", + "description": "Overrides the resources to be used by the `azure_ai_search` tool consisting of index IDs and names.", + "x-ms-client-name": "azureAISearch" + } + } + }, + "Agents.VectorStore": { + "type": "object", + "description": "A vector store is a collection of processed files can be used by the `file_search` tool.", + "properties": { + "id": { + "type": "string", + "description": "The identifier, which can be referenced in API endpoints." + }, + "object": { + "type": "string", + "description": "The object type, which is always `vector_store`", + "enum": [ + "vector_store" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the vector store was created.", + "x-ms-client-name": "createdAt" + }, + "name": { + "type": "string", + "description": "The name of the vector store." + }, + "usage_bytes": { + "type": "integer", + "format": "int32", + "description": "The total number of bytes used by the files in the vector store.", + "x-ms-client-name": "usageBytes" + }, + "file_counts": { + "$ref": "#/definitions/Agents.VectorStoreFileCount", + "description": "Files count grouped by status processed or being processed by this vector store.", + "x-ms-client-name": "fileCounts" + }, + "status": { + "$ref": "#/definitions/Agents.VectorStoreStatus", + "description": "The status of the vector store, which can be either `expired`, `in_progress`, or `completed`. A status of `completed` indicates that the vector store is ready for use." + }, + "expires_after": { + "$ref": "#/definitions/Agents.VectorStoreExpirationPolicy", + "description": "Details on when this vector store expires", + "x-ms-client-name": "expiresAfter" + }, + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the vector store will expire.", + "x-nullable": true, + "x-ms-client-name": "expiresAt" + }, + "last_active_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the vector store was last active.", + "x-nullable": true, + "x-ms-client-name": "lastActiveAt" + }, + "metadata": { + "type": "object", + "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "object", + "created_at", + "name", + "usage_bytes", + "file_counts", + "status", + "last_active_at", + "metadata" + ] + }, + "Agents.VectorStoreAutoChunkingStrategyRequest": { + "type": "object", + "description": "The default strategy. This strategy currently uses a max_chunk_size_tokens of 800 and chunk_overlap_tokens of 400.", + "allOf": [ + { + "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyRequest" + } + ], + "x-ms-discriminator-value": "auto" + }, + "Agents.VectorStoreAutoChunkingStrategyResponse": { + "type": "object", + "description": "This is returned when the chunking strategy is unknown. Typically, this is because the file was indexed before the chunking_strategy concept was introduced in the API.", + "allOf": [ + { + "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyResponse" + } + ], + "x-ms-discriminator-value": "other" + }, + "Agents.VectorStoreChunkingStrategyRequest": { + "type": "object", + "description": "An abstract representation of a vector store chunking strategy configuration.", + "properties": { + "type": { + "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyRequestType", + "description": "The object type." + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, + "Agents.VectorStoreChunkingStrategyRequestType": { + "type": "string", + "description": "Type of chunking strategy", + "enum": [ + "auto", + "static" + ], + "x-ms-enum": { + "name": "VectorStoreChunkingStrategyRequestType", + "modelAsString": true, + "values": [ + { + "name": "auto", + "value": "auto" + }, + { + "name": "static", + "value": "static" + } + ] + } + }, + "Agents.VectorStoreChunkingStrategyResponse": { + "type": "object", + "description": "An abstract representation of a vector store chunking strategy configuration.", + "properties": { + "type": { + "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyResponseType", + "description": "The object type." + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, + "Agents.VectorStoreChunkingStrategyResponseType": { + "type": "string", + "description": "Type of chunking strategy", + "enum": [ + "other", + "static" + ], + "x-ms-enum": { + "name": "VectorStoreChunkingStrategyResponseType", + "modelAsString": true, + "values": [ + { + "name": "other", + "value": "other" + }, + { + "name": "static", + "value": "static" + } + ] + } + }, + "Agents.VectorStoreConfiguration": { + "type": "object", + "description": "Vector storage configuration is the list of data sources, used when multiple\nfiles can be used for the enterprise file search.", + "properties": { + "data_sources": { + "type": "array", + "description": "Data sources", + "items": { + "$ref": "#/definitions/Agents.VectorStoreDataSource" + }, + "x-ms-client-name": "dataSources", + "x-ms-identifiers": [] + } + }, + "required": [ + "data_sources" + ] + }, + "Agents.VectorStoreConfigurations": { + "type": "object", + "description": "The structure, containing the list of vector storage configurations i.e. the list of azure asset IDs.", + "properties": { + "name": { + "type": "string", + "description": "Name", + "x-ms-client-name": "storeName" + }, + "configuration": { + "$ref": "#/definitions/Agents.VectorStoreConfiguration", + "description": "Configurations", + "x-ms-client-name": "storeConfiguration" + } + }, + "required": [ + "name", + "configuration" + ] + }, + "Agents.VectorStoreDataSource": { + "type": "object", + "description": "The structure, containing Azure asset URI path and the asset type of the file used as a data source\nfor the enterprise file search.", + "properties": { + "uri": { + "type": "string", + "description": "Asset URI.", + "x-ms-client-name": "assetIdentifier" + }, + "type": { + "$ref": "#/definitions/Agents.VectorStoreDataSourceAssetType", + "description": "The asset type", + "x-ms-client-name": "assetType" + } + }, + "required": [ + "uri", + "type" + ] + }, + "Agents.VectorStoreDataSourceAssetType": { + "type": "string", + "description": "Type of vector storage asset. Asset type may be a uri_asset, in this case it should contain asset URI ID,\nin the case of id_asset it should contain the data ID.", + "enum": [ + "uri_asset", + "id_asset" + ], + "x-ms-enum": { + "name": "VectorStoreDataSourceAssetType", + "modelAsString": true, + "values": [ + { + "name": "uri_asset", + "value": "uri_asset", + "description": "Azure URI" + }, + { + "name": "id_asset", + "value": "id_asset", + "description": "The data ID" + } + ] + } + }, + "Agents.VectorStoreDeletionStatus": { + "type": "object", + "description": "Response object for deleting a vector store.", + "properties": { + "id": { + "type": "string", + "description": "The ID of the resource specified for deletion." + }, + "deleted": { + "type": "boolean", + "description": "A value indicating whether deletion was successful." + }, + "object": { + "type": "string", + "description": "The object type, which is always 'vector_store.deleted'.", + "enum": [ + "vector_store.deleted" + ], + "x-ms-enum": { + "modelAsString": false + } + } + }, + "required": [ + "id", + "deleted", + "object" + ] + }, + "Agents.VectorStoreExpirationPolicy": { + "type": "object", + "description": "The expiration policy for a vector store.", + "properties": { + "anchor": { + "$ref": "#/definitions/Agents.VectorStoreExpirationPolicyAnchor", + "description": "Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`." + }, + "days": { + "type": "integer", + "format": "int32", + "description": "The anchor timestamp after which the expiration policy applies.", + "minimum": 1, + "maximum": 365 + } + }, + "required": [ + "anchor", + "days" + ] + }, + "Agents.VectorStoreExpirationPolicyAnchor": { + "type": "string", + "description": "Describes the relationship between the days and the expiration of this vector store", + "enum": [ + "last_active_at" + ], + "x-ms-enum": { + "name": "VectorStoreExpirationPolicyAnchor", + "modelAsString": true, + "values": [ + { + "name": "lastActiveAt", + "value": "last_active_at", + "description": "The expiration policy is based on the last time the vector store was active." + } + ] + } + }, + "Agents.VectorStoreFile": { + "type": "object", + "description": "Description of a file attached to a vector store.", + "properties": { + "id": { + "type": "string", + "description": "The identifier, which can be referenced in API endpoints." + }, + "object": { + "type": "string", + "description": "The object type, which is always `vector_store.file`.", + "enum": [ + "vector_store.file" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "usage_bytes": { + "type": "integer", + "format": "int32", + "description": "The total vector store usage in bytes. Note that this may be different from the original file\nsize.", + "x-ms-client-name": "usageBytes" + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the vector store file was created.", + "x-ms-client-name": "createdAt" + }, + "vector_store_id": { + "type": "string", + "description": "The ID of the vector store that the file is attached to.", + "x-ms-client-name": "vectorStoreId" + }, + "status": { + "$ref": "#/definitions/Agents.VectorStoreFileStatus", + "description": "The status of the vector store file, which can be either `in_progress`, `completed`, `cancelled`, or `failed`. The status `completed` indicates that the vector store file is ready for use." + }, + "last_error": { + "type": "object", + "description": "The last error associated with this vector store file. Will be `null` if there are no errors.", + "x-nullable": true, + "allOf": [ + { + "$ref": "#/definitions/Agents.VectorStoreFileError" + } + ], + "x-ms-client-name": "lastError" + }, + "chunking_strategy": { + "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyResponse", + "description": "The strategy used to chunk the file.", + "x-ms-client-name": "chunkingStrategy" + } + }, + "required": [ + "id", + "object", + "usage_bytes", + "created_at", + "vector_store_id", + "status", + "last_error", + "chunking_strategy" + ] + }, + "Agents.VectorStoreFileBatch": { + "type": "object", + "description": "A batch of files attached to a vector store.", + "properties": { + "id": { + "type": "string", + "description": "The identifier, which can be referenced in API endpoints." + }, + "object": { + "type": "string", + "description": "The object type, which is always `vector_store.file_batch`.", + "enum": [ + "vector_store.files_batch" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the vector store files batch was created.", + "x-ms-client-name": "createdAt" + }, + "vector_store_id": { + "type": "string", + "description": "The ID of the vector store that the file is attached to.", + "x-ms-client-name": "vectorStoreId" + }, + "status": { + "$ref": "#/definitions/Agents.VectorStoreFileBatchStatus", + "description": "The status of the vector store files batch, which can be either `in_progress`, `completed`, `cancelled` or `failed`." + }, + "file_counts": { + "$ref": "#/definitions/Agents.VectorStoreFileCount", + "description": "Files count grouped by status processed or being processed by this vector store.", + "x-ms-client-name": "fileCounts" + } + }, + "required": [ + "id", + "object", + "created_at", + "vector_store_id", + "status", + "file_counts" + ] + }, + "Agents.VectorStoreFileBatchStatus": { + "type": "string", + "description": "The status of the vector store file batch.", + "enum": [ + "in_progress", + "completed", + "cancelled", + "failed" + ], + "x-ms-enum": { + "name": "VectorStoreFileBatchStatus", + "modelAsString": true, + "values": [ + { + "name": "inProgress", + "value": "in_progress", + "description": "The vector store is still processing this file batch." + }, + { + "name": "completed", + "value": "completed", + "description": "the vector store file batch is ready for use." + }, + { + "name": "cancelled", + "value": "cancelled", + "description": "The vector store file batch was cancelled." + }, + { + "name": "failed", + "value": "failed", + "description": "The vector store file batch failed to process." + } + ] + } + }, + "Agents.VectorStoreFileCount": { + "type": "object", + "description": "Counts of files processed or being processed by this vector store grouped by status.", + "properties": { + "in_progress": { + "type": "integer", + "format": "int32", + "description": "The number of files that are currently being processed.", + "x-ms-client-name": "inProgress" + }, + "completed": { + "type": "integer", + "format": "int32", + "description": "The number of files that have been successfully processed." + }, + "failed": { + "type": "integer", + "format": "int32", + "description": "The number of files that have failed to process." + }, + "cancelled": { + "type": "integer", + "format": "int32", + "description": "The number of files that were cancelled." + }, + "total": { + "type": "integer", + "format": "int32", + "description": "The total number of files." + } + }, + "required": [ + "in_progress", + "completed", + "failed", + "cancelled", + "total" + ] + }, + "Agents.VectorStoreFileDeletionStatus": { + "type": "object", + "description": "Response object for deleting a vector store file relationship.", + "properties": { + "id": { + "type": "string", + "description": "The ID of the resource specified for deletion." + }, + "deleted": { + "type": "boolean", + "description": "A value indicating whether deletion was successful." + }, + "object": { + "type": "string", + "description": "The object type, which is always 'vector_store.deleted'.", + "enum": [ + "vector_store.file.deleted" + ], + "x-ms-enum": { + "modelAsString": false + } + } + }, + "required": [ + "id", + "deleted", + "object" + ] + }, + "Agents.VectorStoreFileError": { + "type": "object", + "description": "Details on the error that may have occurred while processing a file for this vector store", + "properties": { + "code": { + "$ref": "#/definitions/Agents.VectorStoreFileErrorCode", + "description": "One of `server_error` or `rate_limit_exceeded`." + }, + "message": { + "type": "string", + "description": "A human-readable description of the error." + } + }, + "required": [ + "code", + "message" + ] + }, + "Agents.VectorStoreFileErrorCode": { + "type": "string", + "description": "Error code variants for vector store file processing", + "enum": [ + "server_error", + "invalid_file", + "unsupported_file" + ], + "x-ms-enum": { + "name": "VectorStoreFileErrorCode", + "modelAsString": true, + "values": [ + { + "name": "serverError", + "value": "server_error", + "description": "An server error occurred." + }, + { + "name": "invalidFile", + "value": "invalid_file", + "description": "The file is not valid." + }, + { + "name": "unsupportedFile", + "value": "unsupported_file", + "description": "The file is of unsupported type." + } + ] + } + }, + "Agents.VectorStoreFileStatus": { + "type": "string", + "description": "Vector store file status", + "enum": [ + "in_progress", + "completed", + "failed", + "cancelled" + ], + "x-ms-enum": { + "name": "VectorStoreFileStatus", + "modelAsString": true, + "values": [ + { + "name": "inProgress", + "value": "in_progress", + "description": "The file is currently being processed." + }, + { + "name": "completed", + "value": "completed", + "description": "The file has been successfully processed." + }, + { + "name": "failed", + "value": "failed", + "description": "The file has failed to process." + }, + { + "name": "cancelled", + "value": "cancelled", + "description": "The file was cancelled." + } + ] + } + }, + "Agents.VectorStoreFileStatusFilter": { + "type": "string", + "description": "Query parameter filter for vector store file retrieval endpoint", + "enum": [ + "in_progress", + "completed", + "failed", + "cancelled" + ], + "x-ms-enum": { + "name": "VectorStoreFileStatusFilter", + "modelAsString": true, + "values": [ + { + "name": "inProgress", + "value": "in_progress", + "description": "Retrieve only files that are currently being processed" + }, + { + "name": "completed", + "value": "completed", + "description": "Retrieve only files that have been successfully processed" + }, + { + "name": "failed", + "value": "failed", + "description": "Retrieve only files that have failed to process" + }, + { + "name": "cancelled", + "value": "cancelled", + "description": "Retrieve only files that were cancelled" + } + ] + } + }, + "Agents.VectorStoreOptions": { + "type": "object", + "description": "Request object for creating a vector store.", + "properties": { + "file_ids": { + "type": "array", + "description": "A list of file IDs that the vector store should use. Useful for tools like `file_search` that can access files.", + "maxItems": 500, + "items": { + "type": "string" + }, + "x-ms-client-name": "fileIds" + }, + "name": { + "type": "string", + "description": "The name of the vector store." + }, + "configuration": { + "$ref": "#/definitions/Agents.VectorStoreConfiguration", + "description": "The vector store configuration, used when vector store is created from Azure asset URIs.", + "x-ms-client-name": "storeConfiguration" + }, + "expires_after": { + "$ref": "#/definitions/Agents.VectorStoreExpirationPolicy", + "description": "Details on when this vector store expires", + "x-ms-client-name": "expiresAfter" + }, + "chunking_strategy": { + "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyRequest", + "description": "The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. Only applicable if file_ids is non-empty.", + "x-ms-client-name": "chunkingStrategy" + }, + "metadata": { + "type": "object", + "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + } + } + }, + "Agents.VectorStoreStaticChunkingStrategyOptions": { + "type": "object", + "description": "Options to configure a vector store static chunking strategy.", + "properties": { + "max_chunk_size_tokens": { + "type": "integer", + "format": "int32", + "description": "The maximum number of tokens in each chunk. The default value is 800. The minimum value is 100 and the maximum value is 4096.", + "minimum": 100, + "maximum": 4096, + "x-ms-client-name": "maxChunkSizeTokens" + }, + "chunk_overlap_tokens": { + "type": "integer", + "format": "int32", + "description": "The number of tokens that overlap between chunks. The default value is 400.\nNote that the overlap must not exceed half of max_chunk_size_tokens.", + "x-ms-client-name": "chunkOverlapTokens" + } + }, + "required": [ + "max_chunk_size_tokens", + "chunk_overlap_tokens" + ] + }, + "Agents.VectorStoreStaticChunkingStrategyRequest": { + "type": "object", + "description": "A statically configured chunking strategy.", + "properties": { + "static": { + "$ref": "#/definitions/Agents.VectorStoreStaticChunkingStrategyOptions", + "description": "The options for the static chunking strategy." + } + }, + "required": [ + "static" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyRequest" + } + ], + "x-ms-discriminator-value": "static" + }, + "Agents.VectorStoreStaticChunkingStrategyResponse": { + "type": "object", + "description": "A statically configured chunking strategy.", + "properties": { + "static": { + "$ref": "#/definitions/Agents.VectorStoreStaticChunkingStrategyOptions", + "description": "The options for the static chunking strategy." + } + }, + "required": [ + "static" + ], + "allOf": [ + { + "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyResponse" + } + ], + "x-ms-discriminator-value": "static" + }, + "Agents.VectorStoreStatus": { + "type": "string", + "description": "Vector store possible status", + "enum": [ + "expired", + "in_progress", + "completed" + ], + "x-ms-enum": { + "name": "VectorStoreStatus", + "modelAsString": true, + "values": [ + { + "name": "expired", + "value": "expired", + "description": "expired status indicates that this vector store has expired and is no longer available for use." + }, + { + "name": "inProgress", + "value": "in_progress", + "description": "in_progress status indicates that this vector store is still processing files." + }, + { + "name": "completed", + "value": "completed", + "description": "completed status indicates that this vector store is ready for use." + } + ] + } + }, + "Agents.VectorStoreUpdateOptions": { + "type": "object", + "description": "Request object for updating a vector store.", + "properties": { + "name": { + "type": "string", + "description": "The name of the vector store.", + "x-nullable": true + }, + "expires_after": { + "type": "object", + "description": "Details on when this vector store expires", + "x-nullable": true, + "allOf": [ + { + "$ref": "#/definitions/Agents.VectorStoreExpirationPolicy" + } + ], + "x-ms-client-name": "expiresAfter" + }, + "metadata": { + "type": "object", + "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + } + } + }, + "ApiKeyCredential": { + "type": "object", + "description": "ApiKey Credential definition", + "properties": { + "apiKey": { + "type": "string", + "description": "API Key", + "readOnly": true + } + }, + "required": [ + "apiKey" + ], + "allOf": [ + { + "$ref": "#/definitions/BaseCredential" + } + ], + "x-ms-discriminator-value": "ApiKey" + }, + "ApiResponseFormat": { + "type": "string", + "description": "Possible API response formats.", + "enum": [ + "text", + "json_object" + ], + "x-ms-enum": { + "name": "ApiResponseFormat", + "modelAsString": true, + "values": [ + { + "name": "text", + "value": "text", + "description": "`text` format should be used for requests involving any sort of ToolCall." + }, + { + "name": "jsonObject", + "value": "json_object", + "description": "Using `json_object` format will limit the usage of ToolCall to only functions." + } + ] + } + }, + "AssetReferenceBase": { + "type": "object", + "description": "Base definition for asset references.", + "properties": { + "referenceType": { + "$ref": "#/definitions/ReferenceType", + "description": "Asset reference type." + } + }, + "discriminator": "referenceType", + "required": [ + "referenceType" + ] + }, + "AssistantsApiResponseFormat": { + "type": "object", + "description": "An object describing the expected output of the model. If `json_object` only `function` type `tools` are allowed to be passed to the Run. If `text` the model can return text or any value needed.", + "properties": { + "type": { + "type": "string", + "description": "Must be one of `text` or `json_object`.", + "default": "text", + "enum": [ + "text", + "json_object" + ], + "x-ms-enum": { + "name": "ApiResponseFormat", + "modelAsString": true, + "values": [ + { + "name": "text", + "value": "text", + "description": "`text` format should be used for requests involving any sort of ToolCall." + }, + { + "name": "jsonObject", + "value": "json_object", + "description": "Using `json_object` format will limit the usage of ToolCall to only functions." + } + ] + } + } + } + }, + "AssistantsApiResponseFormatMode": { + "type": "string", + "description": "Represents the mode in which the model will handle the return format of a tool call.", + "enum": [ + "auto", + "none" + ], + "x-ms-enum": { + "name": "AssistantsApiResponseFormatMode", + "modelAsString": true, + "values": [ + { + "name": "auto", + "value": "auto", + "description": "Default value. Let the model handle the return format." + }, + { + "name": "none", + "value": "none", + "description": "Setting the value to `none`, will result in a 400 Bad request." + } + ] + } + }, + "AssistantsApiResponseFormatOption": {}, + "AudioContentFormat": { + "type": "string", + "description": "A representation of the possible audio formats for audio.", + "enum": [ + "wav", + "mp3" + ], + "x-ms-enum": { + "name": "AudioContentFormat", + "modelAsString": true, + "values": [ + { + "name": "wav", + "value": "wav", + "description": "Specifies audio in WAV format." + }, + { + "name": "mp3", + "value": "mp3", + "description": "Specifies audio in MP3 format." + } + ] + } + }, + "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" + }, + "x-ms-identifiers": [] + }, + "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 Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", + "properties": { + "code": { + "type": "string", + "description": "One of a server-defined set of error codes." + }, + "innererror": { + "$ref": "#/definitions/Azure.Core.Foundations.InnerError", + "description": "Inner error." + } + } + }, + "AzureAISearchIndex": { + "type": "object", + "description": "Azure AI Search Index Definition", + "properties": { + "connectionId": { + "type": "string", + "description": "Connection id to Azure AI Search" + }, + "indexName": { + "type": "string", + "description": "Name of index in Azure AI Search resource to attach" + } + }, + "required": [ + "connectionId", + "indexName" + ], + "allOf": [ + { + "$ref": "#/definitions/Index" + } + ], + "x-ms-discriminator-value": "AzureSearch" + }, + "BaseCredential": { + "type": "object", + "description": "Base Credential definition", + "properties": { + "type": { + "$ref": "#/definitions/CredentialType", + "description": "Type of credential. Possible values are: AAD, SAS, ApiKey", + "readOnly": true + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, + "BlobReferenceForConsumption": { + "type": "object", + "description": "Represents a reference to a blob for consumption", + "properties": { + "blobUri": { + "type": "string", + "description": "Blob URI path for client to upload data. Example: https://blob.windows.core.net/Container/Path" + }, + "storageAccountArmId": { + "type": "string", + "description": "ARM ID of the storage account to use." + }, + "credential": { + "$ref": "#/definitions/SasCredential", + "description": "Credential info to access the storage account." + } + }, + "required": [ + "blobUri", + "storageAccountArmId", + "credential" + ] + }, + "ChatChoice": { + "type": "object", + "description": "The representation of a single prompt completion as part of an overall chat completions request.\nGenerally, `n` choices are generated per provided prompt with a default value of 1.\nToken limits and other settings may limit the number of choices generated.", + "properties": { + "index": { + "type": "integer", + "format": "int32", + "description": "The ordered index associated with this chat completions choice." + }, + "finish_reason": { + "$ref": "#/definitions/CompletionsFinishReason", + "description": "The reason that this chat completions choice completed its generated.", + "x-nullable": true + }, + "message": { + "$ref": "#/definitions/ChatResponseMessage", + "description": "The chat message for a given chat completions prompt." + } + }, + "required": [ + "index", + "finish_reason", + "message" + ] + }, + "ChatCompletions": { + "type": "object", + "description": "Representation of the response data from a chat completions request.\nCompletions support a wide variety of tasks and generate text that continues from or \"completes\"\nprovided prompt data.", + "properties": { + "id": { + "type": "string", + "description": "A unique identifier associated with this chat completions response." + }, + "object": { + "type": "string", + "description": "The response object type, which is always `chat.completion`.", + "enum": [ + "chat.completion" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "created": { + "type": "integer", + "format": "unixtime", + "description": "The first timestamp associated with generation activity for this completions response,\nrepresented as seconds since the beginning of the Unix epoch of 00:00 on 1 Jan 1970." + }, + "model": { + "type": "string", + "description": "The model used for the chat completion." + }, + "choices": { + "type": "array", + "description": "The collection of completions choices associated with this completions response.\nGenerally, `n` choices are generated per provided prompt with a default value of 1.\nToken limits and other settings may limit the number of choices generated.", + "minItems": 1, + "items": { + "$ref": "#/definitions/ChatChoice" + }, + "x-ms-identifiers": [] + }, + "usage": { + "$ref": "#/definitions/CompletionsUsage", + "description": " Usage information for tokens processed and generated as part of this completions operation." + } + }, + "required": [ + "id", + "object", + "created", + "model", + "choices", + "usage" + ] + }, + "ChatCompletionsAudio": { + "type": "object", + "description": "A representation of the audio generated by the model.", + "properties": { + "id": { + "type": "string", + "description": " Unique identifier for the audio response. This value can be used in chat history messages instead of passing \n the full audio object." + }, + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) at which the audio piece expires and can't be any longer referenced by its ID in \nmulti-turn conversations.", + "x-ms-client-name": "expiresAt" + }, + "data": { + "type": "string", + "description": "Base64 encoded audio data" + }, + "format": { + "$ref": "#/definitions/AudioContentFormat", + "description": "The format of the audio content. If format is not provided, it will match the format used in the\ninput audio request." + }, + "transcript": { + "type": "string", + "description": "The transcript of the audio file." + } + }, + "required": [ + "id", + "expires_at", + "data", + "transcript" + ] + }, + "ChatCompletionsModality": { + "type": "string", + "description": "The modalities that the model is allowed to use for the chat completions response.", + "enum": [ + "text", + "audio" + ], + "x-ms-enum": { + "name": "ChatCompletionsModality", + "modelAsString": true, + "values": [ + { + "name": "text", + "value": "text", + "description": "The model is only allowed to generate text." + }, + { + "name": "audio", + "value": "audio", + "description": "The model is allowed to generate audio." + } + ] + } + }, + "ChatCompletionsNamedToolChoice": { + "type": "object", + "description": "A tool selection of a specific, named function tool that will limit chat completions to using the named function.", + "properties": { + "type": { + "type": "string", + "description": "The type of the tool. Currently, only `function` is supported.", + "enum": [ + "function" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "function": { + "$ref": "#/definitions/ChatCompletionsNamedToolChoiceFunction", + "description": "The function that should be called." + } + }, + "required": [ + "type", + "function" + ] + }, + "ChatCompletionsNamedToolChoiceFunction": { + "type": "object", + "description": "A tool selection of a specific, named function tool that will limit chat completions to using the named function.", + "properties": { + "name": { + "type": "string", + "description": "The name of the function that should be called." + } + }, + "required": [ + "name" + ] + }, + "ChatCompletionsOptions": { + "type": "object", + "description": "The configuration information for a chat completions request.\nCompletions support a wide variety of tasks and generate text that continues from or \"completes\"\nprovided prompt data.", + "properties": { + "messages": { + "type": "array", + "description": "The collection of context messages associated with this chat completions request.\nTypical usage begins with a chat message for the System role that provides instructions for\nthe behavior of the assistant, followed by alternating messages between the User and\nAssistant roles.", + "minItems": 1, + "items": { + "$ref": "#/definitions/ChatRequestMessage" + }, + "x-ms-identifiers": [] + }, + "frequency_penalty": { + "type": "number", + "format": "float", + "description": "A value that influences the probability of generated tokens appearing based on their cumulative\nfrequency in generated text.\nPositive values will make tokens less likely to appear as their frequency increases and\ndecrease the likelihood of the model repeating the same statements verbatim.\nSupported range is [-2, 2].", + "default": 0, + "minimum": -2, + "maximum": 2 + }, + "stream": { + "type": "boolean", + "description": "A value indicating whether chat completions should be streamed for this request." + }, + "presence_penalty": { + "type": "number", + "format": "float", + "description": "A value that influences the probability of generated tokens appearing based on their existing\npresence in generated text.\nPositive values will make tokens less likely to appear when they already exist and increase the\nmodel's likelihood to output new topics.\nSupported range is [-2, 2].", + "default": 0, + "minimum": -2, + "maximum": 2 + }, + "temperature": { + "type": "number", + "format": "float", + "description": "The sampling temperature to use that controls the apparent creativity of generated completions.\nHigher values will make output more random while lower values will make results more focused\nand deterministic.\nIt is not recommended to modify temperature and top_p for the same completions request as the\ninteraction of these two settings is difficult to predict.\nSupported range is [0, 1].", + "default": 0.7, + "minimum": 0, + "maximum": 1 + }, + "top_p": { + "type": "number", + "format": "float", + "description": "An alternative to sampling with temperature called nucleus sampling. This value causes the\nmodel to consider the results of tokens with the provided probability mass. As an example, a\nvalue of 0.15 will cause only the tokens comprising the top 15% of probability mass to be\nconsidered.\nIt is not recommended to modify temperature and top_p for the same completions request as the\ninteraction of these two settings is difficult to predict.\nSupported range is [0, 1].", + "default": 1, + "minimum": 0, + "maximum": 1 + }, + "max_tokens": { + "type": "integer", + "format": "int32", + "description": "The maximum number of tokens to generate.", + "minimum": 0 + }, + "response_format": { + "$ref": "#/definitions/ChatCompletionsResponseFormat", + "description": "An object specifying the format that the model must output.\n\nSetting to `{ \"type\": \"json_schema\", \"json_schema\": {...} }` enables Structured Outputs which ensures the model will match your supplied JSON schema.\n\nSetting to `{ \"type\": \"json_object\" }` enables JSON mode, which ensures the message the model generates is valid JSON.\n\n**Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly \"stuck\" request. Also note that the message content may be partially cut off if `finish_reason=\"length\"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length." + }, + "stop": { + "type": "array", + "description": "A collection of textual sequences that will end completions generation.", + "minItems": 1, + "items": { + "type": "string" + } + }, + "tools": { + "type": "array", + "description": "A list of tools the model may request to call. Currently, only functions are supported as a tool. The model\nmay response with a function call request and provide the input arguments in JSON format for that function.", + "minItems": 1, + "items": { + "$ref": "#/definitions/ChatCompletionsToolDefinition" + }, + "x-ms-identifiers": [] + }, + "tool_choice": { + "description": "If specified, the model will configure which of the provided tools it can use for the chat completions response.", + "x-ms-client-name": "toolChoice" + }, + "seed": { + "type": "integer", + "format": "int64", + "description": "If specified, the system will make a best effort to sample deterministically such that repeated requests with the\nsame seed and parameters should return the same result. Determinism is not guaranteed." + }, + "model": { + "type": "string", + "description": "ID of the specific AI model to use, if more than one model is available on the endpoint." + }, + "modalities": { + "type": "array", + "description": "The modalities that the model is allowed to use for the chat completions response. The default modality\nis `text`. Indicating an unsupported modality combination results in an 422 error.", + "items": { + "$ref": "#/definitions/ChatCompletionsModality" + } + } + }, + "required": [ + "messages" + ], + "additionalProperties": {} + }, + "ChatCompletionsResponseFormat": { + "type": "object", + "description": "Represents the format that the model must output. Use this to enable JSON mode instead of the default text mode.\nNote that to enable JSON mode, some AI models may also require you to instruct the model to produce JSON\nvia a system or user message.", + "properties": { + "type": { + "type": "string", + "description": "The response format type to use for chat completions." + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, + "ChatCompletionsResponseFormatJsonObject": { + "type": "object", + "description": "A response format for Chat Completions that restricts responses to emitting valid JSON objects.\nNote that to enable JSON mode, some AI models may also require you to instruct the model to produce JSON\nvia a system or user message.", + "allOf": [ + { + "$ref": "#/definitions/ChatCompletionsResponseFormat" + } + ], + "x-ms-discriminator-value": "json_object" + }, + "ChatCompletionsResponseFormatJsonSchema": { + "type": "object", + "description": "A response format for Chat Completions that restricts responses to emitting valid JSON objects, with a\nJSON schema specified by the caller.", + "properties": { + "json_schema": { + "$ref": "#/definitions/ChatCompletionsResponseFormatJsonSchemaDefinition", + "description": "The definition of the required JSON schema in the response, and associated metadata." + } + }, + "required": [ + "json_schema" + ], + "allOf": [ + { + "$ref": "#/definitions/ChatCompletionsResponseFormat" + } + ], + "x-ms-discriminator-value": "json_schema" + }, + "ChatCompletionsResponseFormatJsonSchemaDefinition": { + "type": "object", + "description": "The definition of the required JSON schema in the response, and associated metadata.", + "properties": { + "name": { + "type": "string", + "description": "The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64." + }, + "schema": { + "type": "object", + "description": "The definition of the JSON schema", + "additionalProperties": {} + }, + "description": { + "type": "string", + "description": "A description of the response format, used by the AI model to determine how to generate responses in this format." + }, + "strict": { + "type": "boolean", + "description": "Whether to enable strict schema adherence when generating the output.\nIf set to true, the model will always follow the exact schema defined in the `schema` field. Only a subset of\nJSON Schema is supported when `strict` is `true`.", + "default": false + } + }, + "required": [ + "name", + "schema" + ] + }, + "ChatCompletionsResponseFormatText": { + "type": "object", + "description": "A response format for Chat Completions that emits text responses. This is the default response format.", + "allOf": [ + { + "$ref": "#/definitions/ChatCompletionsResponseFormat" + } + ], + "x-ms-discriminator-value": "text" + }, + "ChatCompletionsToolCall": { + "type": "object", + "description": "A function tool call requested by the AI model.", + "properties": { + "id": { + "type": "string", + "description": "The ID of the tool call." + }, + "type": { + "type": "string", + "description": "The type of tool call. Currently, only `function` is supported.", + "enum": [ + "function" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "function": { + "$ref": "#/definitions/FunctionCall", + "description": "The details of the function call requested by the AI model." + } + }, + "required": [ + "id", + "type", + "function" + ] + }, + "ChatCompletionsToolChoicePreset": { + "type": "string", + "description": "Represents a generic policy for how a chat completions tool may be selected.", + "enum": [ + "auto", + "none", + "required" + ], + "x-ms-enum": { + "name": "ChatCompletionsToolChoicePreset", + "modelAsString": true, + "values": [ + { + "name": "auto", + "value": "auto", + "description": "Specifies that the model may either use any of the tools provided in this chat completions request or\ninstead return a standard chat completions response as if no tools were provided." + }, + { + "name": "none", + "value": "none", + "description": "Specifies that the model should not respond with a tool call and should instead provide a standard chat\ncompletions response. Response content may still be influenced by the provided tool definitions." + }, + { + "name": "required", + "value": "required", + "description": "Specifies that the model should respond with a call to one or more tools." + } + ] + } + }, + "ChatCompletionsToolDefinition": { + "type": "object", + "description": "The definition of a chat completions tool that can call a function.", + "properties": { + "type": { + "type": "string", + "description": "The type of the tool. Currently, only `function` is supported.", + "enum": [ + "function" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "function": { + "$ref": "#/definitions/FunctionDefinition", + "description": "The function definition details for the function tool." + } + }, + "required": [ + "type", + "function" + ] + }, + "ChatMessageAudioContentItem": { + "type": "object", + "description": "A structured chat content item containing an audio reference.", + "properties": { + "audio_url": { + "$ref": "#/definitions/ChatMessageAudioUrl", + "description": "An internet location, which must be accessible to the model, from which the audio may be retrieved.", + "x-ms-client-name": "audioUrl" + } + }, + "required": [ + "audio_url" + ], + "allOf": [ + { + "$ref": "#/definitions/ChatMessageContentItem" + } + ], + "x-ms-discriminator-value": "audio_url" + }, + "ChatMessageAudioUrl": { + "type": "object", + "description": "An internet location from which the model may retrieve an audio.", + "properties": { + "url": { + "type": "string", + "description": "The URL of the audio." + } + }, + "required": [ + "url" + ] + }, + "ChatMessageContentItem": { + "type": "object", + "description": "An abstract representation of a structured content item within a chat message.", + "properties": { + "type": { + "type": "string", + "description": "The discriminated object type." + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, + "ChatMessageImageContentItem": { + "type": "object", + "description": "A structured chat content item containing an image reference.", + "properties": { + "image_url": { + "$ref": "#/definitions/ChatMessageImageUrl", + "description": "An internet location, which must be accessible to the model,from which the image may be retrieved.", + "x-ms-client-name": "imageUrl" + } + }, + "required": [ + "image_url" + ], + "allOf": [ + { + "$ref": "#/definitions/ChatMessageContentItem" + } + ], + "x-ms-discriminator-value": "image_url" + }, + "ChatMessageImageDetailLevel": { + "type": "string", + "description": "A representation of the possible image detail levels for image-based chat completions message content.", + "enum": [ + "auto", + "low", + "high" + ], + "x-ms-enum": { + "name": "ChatMessageImageDetailLevel", + "modelAsString": true, + "values": [ + { + "name": "auto", + "value": "auto", + "description": "Specifies that the model should determine which detail level to apply using heuristics like image size." + }, + { + "name": "low", + "value": "low", + "description": "Specifies that image evaluation should be constrained to the 'low-res' model that may be faster and consume fewer\ntokens but may also be less accurate for highly detailed images." + }, + { + "name": "high", + "value": "high", + "description": "Specifies that image evaluation should enable the 'high-res' model that may be more accurate for highly detailed\nimages but may also be slower and consume more tokens." + } + ] + } + }, + "ChatMessageImageUrl": { + "type": "object", + "description": "An internet location from which the model may retrieve an image.", + "properties": { + "url": { + "type": "string", + "description": "The URL of the image." + }, + "detail": { + "$ref": "#/definitions/ChatMessageImageDetailLevel", + "description": "The evaluation quality setting to use, which controls relative prioritization of speed, token consumption, and\naccuracy." + } + }, + "required": [ + "url" + ] + }, + "ChatMessageInputAudio": { + "type": "object", + "description": "The details of an audio chat message content part.", + "properties": { + "data": { + "type": "string", + "description": "Base64 encoded audio data" + }, + "format": { + "$ref": "#/definitions/AudioContentFormat", + "description": "The audio format of the audio content." + } + }, + "required": [ + "data", + "format" + ] + }, + "ChatMessageInputAudioContentItem": { + "type": "object", + "description": "A structured chat content item containing an audio content.", + "properties": { + "format": { + "$ref": "#/definitions/AudioContentFormat", + "description": "The audio format of the audio reference." + } + }, + "required": [ + "format" + ], + "allOf": [ + { + "$ref": "#/definitions/ChatMessageContentItem" + } + ], + "x-ms-discriminator-value": "input_audio" + }, + "ChatMessageTextContentItem": { + "type": "object", + "description": "A structured chat content item containing plain text.", + "properties": { + "text": { + "type": "string", + "description": "The content of the message." + } + }, + "required": [ + "text" + ], + "allOf": [ + { + "$ref": "#/definitions/ChatMessageContentItem" + } + ], + "x-ms-discriminator-value": "text" + }, + "ChatRequestAssistantMessage": { + "type": "object", + "description": "A request chat message representing response or action from the assistant.", + "properties": { + "content": { + "type": "string", + "description": "The content of the message." + }, + "tool_calls": { + "type": "array", + "description": "The tool calls that must be resolved and have their outputs appended to subsequent input messages for the chat\ncompletions request to resolve as configured.", + "items": { + "$ref": "#/definitions/ChatCompletionsToolCall" + }, + "x-ms-client-name": "toolCalls" + }, + "audio": { + "$ref": "#/definitions/ChatRequestAudioReference", + "description": " The audio generated by a previous response in a multi-turn conversation." + } + }, + "allOf": [ + { + "$ref": "#/definitions/ChatRequestMessage" + } + ], + "x-ms-discriminator-value": "assistant" + }, + "ChatRequestAudioReference": { + "type": "object", + "description": "A reference to an audio response generated by the model.", + "properties": { + "id": { + "type": "string", + "description": " Unique identifier for the audio response. This value corresponds to the id of a previous audio completion." + } + }, + "required": [ + "id" + ] + }, + "ChatRequestMessage": { + "type": "object", + "description": "An abstract representation of a chat message as provided in a request.", + "properties": { + "role": { + "$ref": "#/definitions/ChatRole", + "description": "The chat role associated with this message." + } + }, + "discriminator": "role", + "required": [ + "role" + ] + }, + "ChatRequestSystemMessage": { + "type": "object", + "description": "A request chat message containing system instructions that influence how the model will generate a chat completions\nresponse.", + "properties": { + "content": { + "type": "string", + "description": "The contents of the system message." + } + }, + "required": [ + "content" + ], + "allOf": [ + { + "$ref": "#/definitions/ChatRequestMessage" + } + ], + "x-ms-discriminator-value": "system" + }, + "ChatRequestToolMessage": { + "type": "object", + "description": "A request chat message representing requested output from a configured tool.", + "properties": { + "content": { + "type": "string", + "description": "The content of the message." + }, + "tool_call_id": { + "type": "string", + "description": "The ID of the tool call resolved by the provided content.", + "x-ms-client-name": "toolCallId" + } + }, + "required": [ + "tool_call_id" + ], + "allOf": [ + { + "$ref": "#/definitions/ChatRequestMessage" + } + ], + "x-ms-discriminator-value": "tool" + }, + "ChatRequestUserMessage": { + "type": "object", + "description": "A request chat message representing user input to the assistant.", + "properties": { + "content": { + "description": "The contents of the user message, with available input types varying by selected model." + } + }, + "required": [ + "content" + ], + "allOf": [ + { + "$ref": "#/definitions/ChatRequestMessage" + } + ], + "x-ms-discriminator-value": "user" + }, + "ChatResponseMessage": { + "type": "object", + "description": "A representation of a chat message as received in a response.", + "properties": { + "role": { + "$ref": "#/definitions/ChatRole", + "description": "The chat role associated with the message." + }, + "content": { + "type": "string", + "description": "The content of the message.", + "x-nullable": true + }, + "tool_calls": { + "type": "array", + "description": "The tool calls that must be resolved and have their outputs appended to subsequent input messages for the chat\ncompletions request to resolve as configured.", + "items": { + "$ref": "#/definitions/ChatCompletionsToolCall" + }, + "x-ms-client-name": "toolCalls" + }, + "audio": { + "$ref": "#/definitions/ChatCompletionsAudio", + "description": " The audio generated by the model as a response to the messages if the model is configured to generate audio." + } + }, + "required": [ + "role", + "content" + ] + }, + "ChatRole": { + "type": "string", + "description": "A description of the intended purpose of a message within a chat completions interaction.", + "enum": [ + "system", + "developer", + "user", + "assistant", + "tool" + ], + "x-ms-enum": { + "name": "ChatRole", + "modelAsString": true, + "values": [ + { + "name": "system", + "value": "system", + "description": "The role that instructs or sets the behavior of the assistant." + }, + { + "name": "developer", + "value": "developer", + "description": "The role that provides instructions to the model prioritized ahead of user messages." + }, + { + "name": "user", + "value": "user", + "description": "The role that provides input for chat completions." + }, + { + "name": "assistant", + "value": "assistant", + "description": "The role that provides responses to system-instructed, user-prompted input." + }, + { + "name": "tool", + "value": "tool", + "description": "The role that represents extension tool activity within a chat completions operation." + } + ] + } + }, + "CompletionsFinishReason": { + "type": "string", + "description": "Representation of the manner in which a completions response concluded.", + "enum": [ + "stop", + "length", + "content_filter", + "tool_calls" + ], + "x-ms-enum": { + "name": "CompletionsFinishReason", + "modelAsString": true, + "values": [ + { + "name": "stopped", + "value": "stop", + "description": "Completions ended normally and reached its end of token generation." + }, + { + "name": "tokenLimitReached", + "value": "length", + "description": "Completions exhausted available token limits before generation could complete." + }, + { + "name": "contentFiltered", + "value": "content_filter", + "description": "Completions generated a response that was identified as potentially sensitive per content\nmoderation policies." + }, + { + "name": "toolCalls", + "value": "tool_calls", + "description": "Completion ended with the model calling a provided tool for output." + } + ] + } + }, + "CompletionsUsage": { + "type": "object", + "description": "Representation of the token counts processed for a completions request.\nCounts consider all tokens across prompts, choices, choice alternates, best_of generations, and\nother consumers.", + "properties": { + "completion_tokens": { + "type": "integer", + "format": "int32", + "description": "The number of tokens generated across all completions emissions." + }, + "prompt_tokens": { + "type": "integer", + "format": "int32", + "description": "The number of tokens in the provided prompts for the completions request." + }, + "total_tokens": { + "type": "integer", + "format": "int32", + "description": "The total number of tokens processed for the completions request and response." + }, + "completion_tokens_details": { + "$ref": "#/definitions/CompletionsUsageDetails", + "description": "Breakdown of tokens used in a completion." + }, + "prompt_tokens_details": { + "$ref": "#/definitions/PromptUsageDetails", + "description": "Breakdown of tokens used in the prompt/chat history." + } + }, + "required": [ + "completion_tokens", + "prompt_tokens", + "total_tokens" + ] + }, + "CompletionsUsageDetails": { + "type": "object", + "description": "A breakdown of tokens used in a completion.", + "properties": { + "audio_tokens": { + "type": "integer", + "format": "int32", + "description": "The number of tokens corresponding to audio input." + }, + "total_tokens": { + "type": "integer", + "format": "int32", + "description": "The total number of tokens processed for the completions request and response." + } + }, + "required": [ + "audio_tokens", + "total_tokens" + ] + }, + "Connection": { + "type": "object", + "description": "Response from the listSecrets operation", + "properties": { + "id": { + "type": "string", + "description": "Fully qualified resource identifier", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "credentials": { + "$ref": "#/definitions/BaseCredential", + "description": "Credential used to connect to the external resource.", + "readOnly": true + }, + "category": { + "$ref": "#/definitions/ConnectionCategory", + "description": "Category of the connection", + "readOnly": true + }, + "target": { + "type": "string", + "description": "The connection URL to be used for this service", + "readOnly": true + } + }, + "required": [ + "id", + "name", + "credentials", + "category", + "target" + ] + }, + "ConnectionCategory": { + "type": "string", + "description": "The Type (or category) of the connection", + "enum": [ + "AzureOpenAI", + "AzureBlob", + "CognitiveSearch", + "CosmosDB", + "ApiKey" + ], + "x-ms-enum": { + "name": "ConnectionCategory", + "modelAsString": true, + "values": [ + { + "name": "AzureOpenAI", + "value": "AzureOpenAI", + "description": "Azure OpenAI Service" + }, + { + "name": "AzureBlobStorage", + "value": "AzureBlob", + "description": "Azure Blob Storage" + }, + { + "name": "AzureAISearch", + "value": "CognitiveSearch", + "description": "Azure AI Search" + }, + { + "name": "CosmosDB", + "value": "CosmosDB", + "description": "CosmosDB" + }, + { + "name": "APIKey", + "value": "ApiKey", + "description": "Generic connection that uses API Key authentication" + } + ] + } + }, + "CosmosDBIndex": { + "type": "object", + "description": "CosmosDB Vector Store Index Definition", + "properties": { + "connectionId": { + "type": "string", + "description": "Connection id to CosmosDB" + }, + "databaseName": { + "type": "string", + "description": "Name of the CosmosDB Database" + }, + "containerName": { + "type": "string", + "description": "Name of CosmosDB Container" + }, + "embeddingConfiguration": { + "$ref": "#/definitions/EmbeddingConfiguration", + "description": "Embedding model configuration" + } + }, + "required": [ + "connectionId", + "databaseName", + "containerName", + "embeddingConfiguration" + ], + "allOf": [ + { + "$ref": "#/definitions/Index" + } + ], + "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" + }, + "CredentialType": { + "type": "string", + "description": "The different Credential types", + "enum": [ + "ApiKey", + "AAD", + "SAS" + ], + "x-ms-enum": { + "name": "CredentialType", + "modelAsString": true, + "values": [ + { + "name": "ApiKey", + "value": "ApiKey" + }, + { + "name": "AAD", + "value": "AAD" + }, + { + "name": "SAS", + "value": "SAS" + } + ] + } + }, + "DataPathAssetReference": { + "type": "object", + "description": "Reference to an asset via its path in a datastore.", + "properties": { + "datastoreId": { + "type": "string", + "description": "ARM resource ID of the datastore where the asset is located." + }, + "path": { + "type": "string", + "description": "The path of the file/directory in the datastore." + } + }, + "allOf": [ + { + "$ref": "#/definitions/AssetReferenceBase" + } + ], + "x-ms-discriminator-value": "DataPath" + }, + "Dataset": { + "type": "object", + "description": "Dataset as source for evaluation.", + "properties": { + "id": { + "type": "string", + "description": "Evaluation input data" + } + }, + "required": [ + "id" + ], + "allOf": [ + { + "$ref": "#/definitions/InputData" + } + ], + "x-ms-discriminator-value": "dataset" + }, + "DatasetType": { + "type": "string", + "description": "Enum to determine the type of data.", + "enum": [ + "uri_file" + ], + "x-ms-enum": { + "name": "DatasetType", + "modelAsString": true, + "values": [ + { + "name": "uri_file", + "value": "uri_file", + "description": "URI file." + } + ] + } + }, + "DatasetVersion": { + "type": "object", + "description": "DatasetVersion Definition", + "properties": { + "datasetUri": { + "type": "string", + "description": "[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330", + "minLength": 1, + "pattern": "[a-zA-Z0-9_]", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "datasetType": { + "$ref": "#/definitions/DatasetType", + "description": "Data type" + }, + "stage": { + "type": "string", + "description": "Asset stage", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "id": { + "type": "string", + "description": "A unique identifier for the asset, assetId probably?", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "version": { + "type": "string", + "description": "The version of the resource", + "readOnly": true + }, + "description": { + "type": "string", + "description": "The asset description text." + }, + "tags": { + "type": "object", + "description": "Tag dictionary. Tags can be added, removed, and updated.", + "additionalProperties": { + "type": "string" + } + }, + "systemData": { + "$ref": "#/definitions/SystemData", + "description": "System data of the resource", + "readOnly": true + } + }, + "required": [ + "datasetUri", + "datasetType" + ] + }, + "Deployment": { + "type": "object", + "description": "Model Deployment Definition", + "properties": { + "deploymentName": { + "type": "string", + "description": "Name of the deployment for the model", + "readOnly": true + }, + "modelName": { + "type": "string", + "description": "Publisher-specific name of the model", + "readOnly": true + }, + "modelVersion": { + "type": "string", + "description": "Publisher-specific version of the model", + "readOnly": true + }, + "publisher": { + "type": "string", + "description": "Name of the model publisher", + "readOnly": true + }, + "capabilities": { + "type": "object", + "description": "Capabilities of model", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + }, + "raiPolicyName": { + "type": "string", + "description": "RAI policy enabled for model", + "readOnly": true + }, + "sku": { + "$ref": "#/definitions/Sku", + "description": "Sku of the model deployment", + "readOnly": true + }, + "connectionName": { + "type": "string", + "description": "Name of the connection the model comes from", + "readOnly": true + }, + "systemData": { + "$ref": "#/definitions/SystemData", + "description": "System data of the resource", + "readOnly": true + } + }, + "required": [ + "deploymentName", + "modelName", + "modelVersion", + "publisher", + "capabilities", + "raiPolicyName", + "sku", + "systemData" + ] + }, + "EmbeddingConfiguration": { + "type": "object", + "description": "Embedding configuration class", + "properties": { + "connectionId": { + "type": "string", + "description": "Connection id to embedding model" + }, + "deploymentName": { + "type": "string", + "description": "Deployment name of embedding model" + }, + "embeddingField": { + "type": "string", + "description": "Embedding field" + } + }, + "required": [ + "deploymentName", + "embeddingField" + ] + }, + "EmbeddingEncodingFormat": { + "type": "string", + "description": "Specifies the types of embeddings to generate. Compressed embeddings types like `uint8`, `int8`, `ubinary` and \n`binary`, may reduce storage costs without sacrificing the integrity of the data. Returns a 422 error if the\nmodel doesn't support the value or parameter. Read the model's documentation to know the values supported by\nthe your model.", + "enum": [ + "base64", + "binary", + "float", + "int8", + "ubinary", + "uint8" + ], + "x-ms-enum": { + "name": "EmbeddingEncodingFormat", + "modelAsString": true, + "values": [ + { + "name": "base64", + "value": "base64", + "description": "Get back binary representation of the embeddings encoded as Base64 string. OpenAI Python library retrieves \nembeddings from the API as encoded binary data, rather than using intermediate decimal representations as is \nusually done." + }, + { + "name": "binary", + "value": "binary", + "description": "Get back signed binary embeddings" + }, + { + "name": "float", + "value": "float", + "description": "Get back full precision embeddings" + }, + { + "name": "int8", + "value": "int8", + "description": "Get back signed int8 embeddings" + }, + { + "name": "ubinary", + "value": "ubinary", + "description": "Get back unsigned binary embeddings" + }, + { + "name": "uint8", + "value": "uint8", + "description": "Get back unsigned int8 embeddings" + } + ] + } + }, + "EmbeddingInputType": { + "type": "string", + "description": "Represents the input types used for embedding search.", + "enum": [ + "text", + "query", + "document" + ], + "x-ms-enum": { + "name": "EmbeddingInputType", + "modelAsString": true, + "values": [ + { + "name": "text", + "value": "text", + "description": "Indicates the input is a general text input." + }, + { + "name": "query", + "value": "query", + "description": "Indicates the input represents a search query to find the most relevant documents in your vector database." + }, + { + "name": "document", + "value": "document", + "description": "Indicates the input represents a document that is stored in a vector database." + } + ] + } + }, + "EmbeddingItem": { + "type": "object", + "description": "Representation of a single embeddings relatedness comparison.", + "properties": { + "embedding": { + "type": "array", + "description": "List of embedding values for the input prompt. These represent a measurement of the\nvector-based relatedness of the provided input. Or a base64 encoded string of the embedding vector.", + "items": { + "type": "number", + "format": "float" + } + }, + "index": { + "type": "integer", + "format": "int32", + "description": "Index of the prompt to which the EmbeddingItem corresponds." + }, + "object": { + "type": "string", + "description": "The object type of this embeddings item. Will always be `embedding`.", + "enum": [ + "embedding" + ], + "x-ms-enum": { + "modelAsString": false + } + } + }, + "required": [ + "embedding", + "index", + "object" + ] + }, + "EmbeddingsOptions": { + "type": "object", + "description": "The configuration information for an embeddings request.", + "properties": { + "input": { + "type": "array", + "description": "Input text to embed, encoded as a string or array of tokens.\nTo embed multiple inputs in a single request, pass an array\nof strings or array of token arrays.", + "items": { + "type": "string" + } + }, + "dimensions": { + "type": "integer", + "format": "int32", + "description": "Optional. The number of dimensions the resulting output embeddings should have.\nPassing null causes the model to use its default value.\nReturns a 422 error if the model doesn't support the value or parameter." + }, + "encoding_format": { + "$ref": "#/definitions/EmbeddingEncodingFormat", + "description": "Optional. The desired format for the returned embeddings." + }, + "input_type": { + "$ref": "#/definitions/EmbeddingInputType", + "description": "Optional. The type of the input.\nReturns a 422 error if the model doesn't support the value or parameter." + }, + "model": { + "type": "string", + "description": "ID of the specific AI model to use, if more than one model is available on the endpoint." + } + }, + "required": [ + "input" + ], + "additionalProperties": {} + }, + "EmbeddingsResult": { + "type": "object", + "description": "Representation of the response data from an embeddings request.\nEmbeddings measure the relatedness of text strings and are commonly used for search, clustering,\nrecommendations, and other similar scenarios.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the embeddings result." + }, + "data": { + "type": "array", + "description": "Embedding values for the prompts submitted in the request.", + "items": { + "$ref": "#/definitions/EmbeddingItem" + }, + "x-ms-identifiers": [] + }, + "usage": { + "$ref": "#/definitions/EmbeddingsUsage", + "description": "Usage counts for tokens input using the embeddings API." + }, + "object": { + "type": "string", + "description": "The object type of the embeddings result. Will always be `list`.", + "enum": [ + "list" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "model": { + "type": "string", + "description": "The model ID used to generate this result." + } + }, + "required": [ + "id", + "data", + "usage", + "object", + "model" + ] + }, + "EmbeddingsUsage": { + "type": "object", + "description": "Measurement of the amount of tokens used in this request and response.", + "properties": { + "prompt_tokens": { + "type": "integer", + "format": "int32", + "description": "Number of tokens in the request." + }, + "total_tokens": { + "type": "integer", + "format": "int32", + "description": "Total number of tokens transacted in this request/response. Should equal the\nnumber of tokens in the request." + } + }, + "required": [ + "prompt_tokens", + "total_tokens" + ] + }, + "Evaluation": { + "type": "object", + "description": "Evaluation Definition", + "properties": { + "id": { + "type": "string", + "description": "Identifier of the evaluation." + }, + "data": { + "$ref": "#/definitions/InputData", + "description": "Data for evaluation." + }, + "displayName": { + "type": "string", + "description": "Update stage to 'Archive' to archive the asset. Default is Development, which means the asset is under development." + }, + "description": { + "type": "string", + "description": "Description of the evaluation. It can be used to store additional information about the evaluation and is mutable." + }, + "systemData": { + "$ref": "#/definitions/SystemData", + "description": "Metadata containing createdBy and modifiedBy information.", + "readOnly": true + }, + "status": { + "type": "string", + "description": "Status of the evaluation. It is set by service and is read-only.", + "readOnly": true + }, + "tags": { + "type": "object", + "description": "Evaluation's tags. Unlike properties, tags are fully mutable.", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "type": "object", + "description": "Evaluation's properties. Unlike tags, properties are add-only. Once added, a property cannot be removed.", + "additionalProperties": { + "type": "string" + } + }, + "evaluators": { + "type": "object", + "description": "Evaluators to be used for the evaluation.", + "additionalProperties": { + "$ref": "#/definitions/EvaluatorConfiguration" + } + } + }, + "required": [ + "data", + "evaluators" + ] + }, + "EvaluatorConfiguration": { + "type": "object", + "description": "Evaluator Configuration", + "properties": { + "id": { + "type": "string", + "description": "Identifier of the evaluator." + }, + "initParams": { + "type": "object", + "description": "Initialization parameters of the evaluator.", + "additionalProperties": {} + }, + "dataMapping": { + "type": "object", + "description": "Data parameters of the evaluator.", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id" + ] + }, + "ExtraParameters": { + "type": "string", + "description": "Controls what happens if extra parameters, undefined by the REST API, are passed in the JSON request payload.", + "enum": [ + "error", + "drop", + "pass-through" + ], + "x-ms-enum": { + "name": "ExtraParameters", + "modelAsString": true, + "values": [ + { + "name": "error", + "value": "error", + "description": "The service will error if it detected extra parameters in the request payload. This is the service default." + }, + { + "name": "drop", + "value": "drop", + "description": "The service will ignore (drop) extra parameters in the request payload. It will only pass the known parameters to the back-end AI model." + }, + { + "name": "pass_through", + "value": "pass-through", + "description": "The service will pass extra parameters to the back-end AI model." + } + ] + } + }, + "FunctionCall": { + "type": "object", + "description": "The name and arguments of a function that should be called, as generated by the model.", + "properties": { + "name": { + "type": "string", + "description": "The name of the function to call." + }, + "arguments": { + "type": "string", + "description": "The arguments to call the function with, as generated by the model in JSON format.\nNote that the model does not always generate valid JSON, and may hallucinate parameters\nnot defined by your function schema. Validate the arguments in your code before calling\nyour function." + } + }, + "required": [ + "name", + "arguments" + ] + }, + "FunctionDefinition": { + "type": "object", + "description": "The definition of a caller-specified function that chat completions may invoke in response to matching user input.", + "properties": { + "name": { + "type": "string", + "description": "The name of the function to be called." + }, + "description": { + "type": "string", + "description": "A description of what the function does. The model will use this description when selecting the function and\ninterpreting its parameters." + }, + "parameters": { + "type": "object", + "description": "The parameters the function accepts, described as a JSON Schema object.", + "additionalProperties": {} + } + }, + "required": [ + "name" + ] + }, + "IdAssetReference": { + "type": "object", + "description": "Reference to an asset via its ARM resource ID.", + "properties": { + "assetId": { + "type": "string", + "description": "[Required] ARM resource ID of the asset.", + "minLength": 1, + "pattern": "[a-zA-Z0-9_]" + } + }, + "required": [ + "assetId" + ], + "allOf": [ + { + "$ref": "#/definitions/AssetReferenceBase" + } + ], + "x-ms-discriminator-value": "Id" + }, + "ImageEmbeddingInput": { + "type": "object", + "description": "Represents an image with optional text.", + "properties": { + "image": { + "type": "string", + "description": "The input image encoded in base64 string as a data URL. Example: `data:image/{format};base64,{data}`." + }, + "text": { + "type": "string", + "description": "Optional. The text input to feed into the model (like DINO, CLIP).\nReturns a 422 error if the model doesn't support the value or parameter." + } + }, + "required": [ + "image" + ] + }, + "ImageEmbeddingsOptions": { + "type": "object", + "description": "The configuration information for an image embeddings request.", + "properties": { + "input": { + "type": "array", + "description": "Input image to embed. To embed multiple inputs in a single request, pass an array.\nThe input must not exceed the max input tokens for the model.", + "items": { + "$ref": "#/definitions/ImageEmbeddingInput" + }, + "x-ms-identifiers": [] + }, + "dimensions": { + "type": "integer", + "format": "int32", + "description": "Optional. The number of dimensions the resulting output embeddings should have.\nPassing null causes the model to use its default value.\nReturns a 422 error if the model doesn't support the value or parameter." + }, + "encoding_format": { + "$ref": "#/definitions/EmbeddingEncodingFormat", + "description": "Optional. The number of dimensions the resulting output embeddings should have.\nPassing null causes the model to use its default value.\nReturns a 422 error if the model doesn't support the value or parameter." + }, + "input_type": { + "$ref": "#/definitions/EmbeddingInputType", + "description": "Optional. The type of the input.\nReturns a 422 error if the model doesn't support the value or parameter." + }, + "model": { + "type": "string", + "description": "ID of the specific AI model to use, if more than one model is available on the endpoint." + } + }, + "required": [ + "input" + ], + "additionalProperties": {} + }, + "Index": { + "type": "object", + "description": "Index resource Definition", + "properties": { + "indexType": { + "$ref": "#/definitions/IndexType", + "description": "Type of index" + }, + "stage": { + "type": "string", + "description": "Asset stage", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "id": { + "type": "string", + "description": "A unique identifier for the asset, assetId probably?", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "version": { + "type": "string", + "description": "The version of the resource", + "readOnly": true + }, + "description": { + "type": "string", + "description": "The asset description text." + }, + "tags": { + "type": "object", + "description": "Tag dictionary. Tags can be added, removed, and updated.", + "additionalProperties": { + "type": "string" + } + }, + "systemData": { + "$ref": "#/definitions/SystemData", + "description": "System data of the resource", + "readOnly": true + } + }, + "discriminator": "indexType", + "required": [ + "indexType" + ] + }, + "IndexType": { + "type": "string", + "enum": [ + "AzureSearch", + "CosmosDBNoSqlVectorStore", + "ManagedAzureSearch" + ], + "x-ms-enum": { + "name": "IndexType", + "modelAsString": true, + "values": [ + { + "name": "azureSearch", + "value": "AzureSearch", + "description": "Azure search" + }, + { + "name": "cosmosDB", + "value": "CosmosDBNoSqlVectorStore", + "description": "CosmosDB" + }, + { + "name": "managedAzureSearch", + "value": "ManagedAzureSearch", + "description": "Managed Azure Search" + } + ] + } + }, + "InputData": { + "type": "object", + "description": "Abstract data class.", + "properties": { + "type": { + "type": "string", + "description": "Type of the data" + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, + "ListSortOrder": { + "type": "string", + "description": "The available sorting options when requesting a list of response objects.", + "enum": [ + "asc", + "desc" + ], + "x-ms-enum": { + "name": "ListSortOrder", + "modelAsString": true, + "values": [ + { + "name": "ascending", + "value": "asc", + "description": "Specifies an ascending sort order." + }, + { + "name": "descending", + "value": "desc", + "description": "Specifies a descending sort order." + } + ] + } + }, + "ListViewType": { + "type": "string", + "description": "List View Type Definition", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + }, + "ManagedAzureAISearchIndex": { + "type": "object", + "description": "Managed Azure AI Search Index Definition", + "properties": { + "vectorStoreId": { + "type": "string", + "description": "Vector store id of managed index" + } + }, + "required": [ + "vectorStoreId" + ], + "allOf": [ + { + "$ref": "#/definitions/Index" + } + ], + "x-ms-discriminator-value": "ManagedAzureSearch" + }, + "MessageRole": { + "type": "string", + "description": "The possible values for roles attributed to messages in a thread.", + "enum": [ + "user", + "assistant" + ], + "x-ms-enum": { + "name": "MessageRole", + "modelAsString": true, + "values": [ + { + "name": "user", + "value": "user", + "description": "The role representing the end-user." + }, + { + "name": "assistant", + "value": "assistant", + "description": "The role representing the assistant." + } + ] + } + }, + "OutputPathAssetReference": { + "type": "object", + "description": "Reference to an asset via its path in a job output.", + "properties": { + "jobId": { + "type": "string", + "description": "ARM resource ID of the job." + }, + "path": { + "type": "string", + "description": "The path of the file/directory in the job output." + } + }, + "allOf": [ + { + "$ref": "#/definitions/AssetReferenceBase" + } + ], + "x-ms-discriminator-value": "OutputPath" + }, + "PagedConnection": { + "type": "object", + "description": "Paged collection of Connection items", + "properties": { + "value": { + "type": "array", + "description": "The Connection items on this page", + "items": { + "$ref": "#/definitions/Connection" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PagedDatasetVersion": { + "type": "object", + "description": "PagedDataVersionBase Definition", + "properties": { + "value": { + "type": "array", + "description": "The list of DatasetVersions.", + "items": { + "$ref": "#/definitions/DatasetVersion" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "type": "string", + "description": "The link to the next page of results, if any." + } + }, + "required": [ + "value" + ] + }, + "PagedDeployment": { + "type": "object", + "description": "Paged collection of Deployment items", + "properties": { + "value": { + "type": "array", + "description": "The Deployment items on this page", + "items": { + "$ref": "#/definitions/Deployment" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PagedEvaluation": { + "type": "object", + "description": "Paged evaluation items", + "properties": { + "value": { + "type": "array", + "description": "The list of Evaluations.", + "items": { + "$ref": "#/definitions/Evaluation" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PagedIndex": { + "type": "object", + "description": "Paged collection of Index items.", + "properties": { + "value": { + "type": "array", + "description": "The list of Indexes.", + "items": { + "$ref": "#/definitions/Index" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PendingUploadCredentialType": { + "type": "string", + "description": "The type of credential used to access the storage account.", + "enum": [ + "SAS" + ], + "x-ms-enum": { + "name": "PendingUploadCredentialType", + "modelAsString": true, + "values": [ + { + "name": "sas", + "value": "SAS", + "description": "SAS credential type." + } + ] + } + }, + "PendingUploadRequest": { + "type": "object", + "description": "Represents a request for a pending upload.", + "properties": { + "pendingUploadId": { + "type": "string", + "description": "If PendingUploadId is not provided, a random GUID will be used." + }, + "pendingUploadType": { + "type": "string", + "description": "TemporaryBlobReference is the only supported type.", + "enum": [ + "TemporaryBlobReference" + ], + "x-ms-enum": { + "modelAsString": false + } + } + }, + "required": [ + "pendingUploadType" + ] + }, + "PendingUploadResponse": { + "type": "object", + "description": "Represents the response for a pending upload request", + "properties": { + "blobReferenceForConsumption": { + "$ref": "#/definitions/BlobReferenceForConsumption", + "description": "Container-level read, write, list SAS." + }, + "pendingUploadId": { + "type": "string", + "description": "ID for this upload request." + }, + "pendingUploadType": { + "type": "string", + "description": "TemporaryBlobReference is the only supported type", + "enum": [ + "TemporaryBlobReference" + ], + "x-ms-enum": { + "modelAsString": false + } + } + }, + "required": [ + "blobReferenceForConsumption", + "pendingUploadId", + "pendingUploadType" + ] + }, + "PendingUploadType": { + "type": "string", + "description": "The type of pending upload.", + "enum": [ + "None", + "TemporaryBlobReference" + ], + "x-ms-enum": { + "name": "PendingUploadType", + "modelAsString": true, + "values": [ + { + "name": "none", + "value": "None", + "description": "No pending upload." + }, + { + "name": "temporaryBlobReference", + "value": "TemporaryBlobReference", + "description": "Temporary Blob Reference is the only supported type." + } + ] + } + }, + "PromptUsageDetails": { + "type": "object", + "description": "A breakdown of tokens used in the prompt/chat history.", + "properties": { + "audio_tokens": { + "type": "integer", + "format": "int32", + "description": "The number of tokens corresponding to audio input." + }, + "cached_tokens": { + "type": "integer", + "format": "int32", + "description": "The total number of tokens cached." + } + }, + "required": [ + "audio_tokens", + "cached_tokens" + ] + }, + "ReferenceType": { + "type": "string", + "description": "Enum to determine which reference method to use for an asset.", + "enum": [ + "Id", + "DataPath", + "OutputPath" + ], + "x-ms-enum": { + "name": "ReferenceType", + "modelAsString": true, + "values": [ + { + "name": "Id", + "value": "Id", + "description": "Id" + }, + { + "name": "DataPath", + "value": "DataPath", + "description": "DataPath" + }, + { + "name": "OutputPath", + "value": "OutputPath", + "description": "OutputPath" + } + ] + } + }, + "SasCredential": { + "type": "object", + "description": "SAS Credential definition", + "properties": { + "sasToken": { + "type": "string", + "description": "SAS Token", + "readOnly": true + } + }, + "required": [ + "sasToken" + ], + "allOf": [ + { + "$ref": "#/definitions/BaseCredential" + } + ], + "x-ms-discriminator-value": "SAS" + }, + "Sku": { + "type": "object", + "description": "Sku information", + "properties": { + "capacity": { + "type": "integer", + "format": "int64", + "description": "Sku capacity" + }, + "family": { + "type": "string", + "description": "Sku family" + }, + "name": { + "type": "string", + "description": "Sku name" + }, + "size": { + "type": "string", + "description": "Sku size" + }, + "tier": { + "type": "string", + "description": "Sku tier" + } + }, + "required": [ + "capacity", + "family", + "name", + "size", + "tier" + ] + }, + "StreamingChatChoiceUpdate": { + "type": "object", + "description": "Represents an update to a single prompt completion when the service is streaming updates \nusing Server Sent Events (SSE).\nGenerally, `n` choices are generated per provided prompt with a default value of 1.\nToken limits and other settings may limit the number of choices generated.", + "properties": { + "index": { + "type": "integer", + "format": "int32", + "description": "The ordered index associated with this chat completions choice." + }, + "finish_reason": { + "$ref": "#/definitions/CompletionsFinishReason", + "description": "The reason that this chat completions choice completed its generated.", + "x-nullable": true + }, + "delta": { + "$ref": "#/definitions/StreamingChatResponseMessageUpdate", + "description": "An update to the chat message for a given chat completions prompt." + } + }, + "required": [ + "index", + "finish_reason", + "delta" + ] + }, + "StreamingChatCompletionsUpdate": { + "type": "object", + "description": "Represents a response update to a chat completions request, when the service is streaming updates \nusing Server Sent Events (SSE).\nCompletions support a wide variety of tasks and generate text that continues from or \"completes\"\nprovided prompt data.", + "properties": { + "id": { + "type": "string", + "description": "A unique identifier associated with this chat completions response." + }, + "object": { + "type": "string", + "description": "The response object type, which is always `chat.completion`.", + "enum": [ + "chat.completion" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "created": { + "type": "integer", + "format": "unixtime", + "description": "The first timestamp associated with generation activity for this completions response,\nrepresented as seconds since the beginning of the Unix epoch of 00:00 on 1 Jan 1970." + }, + "model": { + "type": "string", + "description": "The model used for the chat completion." + }, + "choices": { + "type": "array", + "description": "An update to the collection of completion choices associated with this completions response.\nGenerally, `n` choices are generated per provided prompt with a default value of 1.\nToken limits and other settings may limit the number of choices generated.", + "minItems": 1, + "items": { + "$ref": "#/definitions/StreamingChatChoiceUpdate" + }, + "x-ms-identifiers": [] + }, + "usage": { + "$ref": "#/definitions/CompletionsUsage", + "description": "Usage information for tokens processed and generated as part of this completions operation." + } + }, + "required": [ + "id", + "object", + "created", + "model", + "choices" + ] + }, + "StreamingChatResponseMessageUpdate": { + "type": "object", + "description": "A representation of a chat message update as received in a streaming response.", + "properties": { + "role": { + "$ref": "#/definitions/ChatRole", + "description": "The chat role associated with the message. If present, should always be 'assistant'" + }, + "content": { + "type": "string", + "description": "The content of the message." + }, + "tool_calls": { + "type": "array", + "description": "The tool calls that must be resolved and have their outputs appended to subsequent input messages for the chat\ncompletions request to resolve as configured.", + "items": { + "$ref": "#/definitions/StreamingChatResponseToolCallUpdate" + }, + "x-ms-client-name": "toolCalls" + } + } + }, + "StreamingChatResponseToolCallUpdate": { + "type": "object", + "description": "An update to the function tool call information requested by the AI model.", + "properties": { + "id": { + "type": "string", + "description": "The ID of the tool call." + }, + "function": { + "$ref": "#/definitions/FunctionCall", + "description": "Updates to the function call requested by the AI model." + } + }, + "required": [ + "id", + "function" + ] + }, + "SystemData": { + "type": "object", + "description": "Metadata pertaining to creation and last modification of the resource.", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp the resource was created at.", + "readOnly": true + }, + "createdBy": { + "type": "string", + "description": "The identity that created the resource.", + "readOnly": true + }, + "createdByType": { + "type": "string", + "description": "The identity type that created the resource.", + "readOnly": true + }, + "lastModifiedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of resource last modification (UTC)", + "readOnly": true + } + } + } + }, + "parameters": { + "Agents.UpdateAgentOptions.assistantId": { + "name": "assistantId", + "in": "path", + "description": "The ID of the agent to modify.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "Agents.UpdateAgentThreadOptions.threadId": { + "name": "threadId", + "in": "path", + "description": "The ID of the thread to modify.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "Azure.Core.ClientRequestIdHeader": { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "method", + "x-ms-client-name": "clientRequestId" + }, + "Azure.Core.ConditionalRequestHeaders.ifMatch": { + "name": "If-Match", + "in": "header", + "description": "The request should only proceed if an entity matches this string.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "ifMatch" + }, + "Azure.Core.ConditionalRequestHeaders.ifModifiedSince": { + "name": "If-Modified-Since", + "in": "header", + "description": "The request should only proceed if the entity was modified after this time.", + "required": false, + "type": "string", + "format": "date-time", + "x-ms-parameter-location": "method", + "x-ms-client-name": "ifModifiedSince" + }, + "Azure.Core.ConditionalRequestHeaders.ifNoneMatch": { + "name": "If-None-Match", + "in": "header", + "description": "The request should only proceed if no entity matches this string.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "ifNoneMatch" + }, + "Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince": { + "name": "If-Unmodified-Since", + "in": "header", + "description": "The request should only proceed if the entity was not modified after this time.", + "required": false, + "type": "string", + "format": "date-time", + "x-ms-parameter-location": "method", + "x-ms-client-name": "ifUnmodifiedSince" + }, + "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" + }, + "Azure.Core.MaxPageSizeQueryParameter": { + "name": "maxpagesize", + "in": "query", + "description": "The maximum number of result items per page.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-parameter-location": "method" + }, + "Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent": { + "name": "Repeatability-First-Sent", + "in": "header", + "description": "Specifies the date and time at which the request was first created.", + "required": false, + "type": "string", + "format": "date-time", + "x-ms-parameter-location": "method", + "x-ms-client-name": "repeatabilityFirstSent" + }, + "Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId": { + "name": "Repeatability-Request-ID", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "repeatabilityRequestId" + }, + "Azure.Core.SkipQueryParameter": { + "name": "skip", + "in": "query", + "description": "The number of result items to skip.", + "required": false, + "type": "integer", + "format": "int32", + "default": 0, + "x-ms-parameter-location": "method" + }, + "Azure.Core.TopQueryParameter": { + "name": "top", + "in": "query", + "description": "The number of result items to return.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-parameter-location": "method" + } + } +} From 025e61258ad5320f3621249203c8fd846d7906a3 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Wed, 12 Mar 2025 11:38:02 -0400 Subject: [PATCH 055/143] Rename root folder to Azure.AI.Projects --- .../agents/common/models.tsp | 0 .../agents/files/main.tsp | 0 .../agents/files/models.tsp | 0 .../agents/files/routes.tsp | 0 .../agents/main.tsp | 0 .../agents/messages/models.tsp | 0 .../agents/messages/routes.tsp | 0 .../agents/models.tsp | 0 .../agents/routes.tsp | 0 .../agents/run_steps/models.tsp | 0 .../agents/run_steps/routes.tsp | 0 .../agents/runs/models.tsp | 0 .../agents/runs/routes.tsp | 0 .../agents/streaming/events.tsp | 0 .../agents/threads/models.tsp | 0 .../agents/threads/routes.tsp | 0 .../agents/tools/models.tsp | 0 .../agents/tools/tool_resources.tsp | 0 .../agents/vector_stores/common/main.tsp | 0 .../vector_stores/file_batches/models.tsp | 0 .../vector_stores/file_batches/routes.tsp | 0 .../agents/vector_stores/files/models.tsp | 0 .../agents/vector_stores/files/routes.tsp | 0 .../agents/vector_stores/main.tsp | 0 .../agents/vector_stores/models.tsp | 0 .../agents/vector_stores/routes.tsp | 0 specification/ai/Azure.AI.Projects/client.tsp | 6 + .../ai/Azure.AI.Projects/common/models.tsp | 346 ++++++++++++++++++ .../connections/models.tsp | 0 .../connections/routes.tsp | 0 .../credentials/models.tsp | 0 .../ai/Azure.AI.Projects/datasets/models.tsp | 53 +++ .../datasets/routes.tsp | 0 .../deployments/models.tsp | 0 .../deployments/routes.tsp | 0 .../evaluations/models.tsp | 0 .../evaluations/routes.tsp | 0 .../ai/Azure.AI.Projects/indexes/models.tsp | 101 +++++ .../indexes/routes.tsp | 0 .../main.tsp | 0 .../models/chat_completions.tsp | 0 .../models/embeddings.tsp | 0 .../models/image_embeddings.tsp | 0 .../models/routes.tsp | 0 .../ai/Azure.AI.Projects/tspconfig.yaml | 39 ++ 45 files changed, 545 insertions(+) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/common/models.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/files/main.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/files/models.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/files/routes.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/main.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/messages/models.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/messages/routes.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/models.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/routes.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/run_steps/models.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/run_steps/routes.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/runs/models.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/runs/routes.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/streaming/events.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/threads/models.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/threads/routes.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/tools/models.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/tools/tool_resources.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/vector_stores/common/main.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/vector_stores/file_batches/models.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/vector_stores/file_batches/routes.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/vector_stores/files/models.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/vector_stores/files/routes.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/vector_stores/main.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/vector_stores/models.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/agents/vector_stores/routes.tsp (100%) create mode 100644 specification/ai/Azure.AI.Projects/client.tsp create mode 100644 specification/ai/Azure.AI.Projects/common/models.tsp rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/connections/models.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/connections/routes.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/credentials/models.tsp (100%) create mode 100644 specification/ai/Azure.AI.Projects/datasets/models.tsp rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/datasets/routes.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/deployments/models.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/deployments/routes.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/evaluations/models.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/evaluations/routes.tsp (100%) create mode 100644 specification/ai/Azure.AI.Projects/indexes/models.tsp rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/indexes/routes.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/main.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/models/chat_completions.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/models/embeddings.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/models/image_embeddings.tsp (100%) rename specification/ai/{Azure.AI.Unified => Azure.AI.Projects}/models/routes.tsp (100%) create mode 100644 specification/ai/Azure.AI.Projects/tspconfig.yaml diff --git a/specification/ai/Azure.AI.Unified/agents/common/models.tsp b/specification/ai/Azure.AI.Projects/agents/common/models.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/common/models.tsp rename to specification/ai/Azure.AI.Projects/agents/common/models.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/files/main.tsp b/specification/ai/Azure.AI.Projects/agents/files/main.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/files/main.tsp rename to specification/ai/Azure.AI.Projects/agents/files/main.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/files/models.tsp b/specification/ai/Azure.AI.Projects/agents/files/models.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/files/models.tsp rename to specification/ai/Azure.AI.Projects/agents/files/models.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/files/routes.tsp b/specification/ai/Azure.AI.Projects/agents/files/routes.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/files/routes.tsp rename to specification/ai/Azure.AI.Projects/agents/files/routes.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/main.tsp b/specification/ai/Azure.AI.Projects/agents/main.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/main.tsp rename to specification/ai/Azure.AI.Projects/agents/main.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/messages/models.tsp b/specification/ai/Azure.AI.Projects/agents/messages/models.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/messages/models.tsp rename to specification/ai/Azure.AI.Projects/agents/messages/models.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/messages/routes.tsp b/specification/ai/Azure.AI.Projects/agents/messages/routes.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/messages/routes.tsp rename to specification/ai/Azure.AI.Projects/agents/messages/routes.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/models.tsp b/specification/ai/Azure.AI.Projects/agents/models.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/models.tsp rename to specification/ai/Azure.AI.Projects/agents/models.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/routes.tsp b/specification/ai/Azure.AI.Projects/agents/routes.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/routes.tsp rename to specification/ai/Azure.AI.Projects/agents/routes.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/run_steps/models.tsp b/specification/ai/Azure.AI.Projects/agents/run_steps/models.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/run_steps/models.tsp rename to specification/ai/Azure.AI.Projects/agents/run_steps/models.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/run_steps/routes.tsp b/specification/ai/Azure.AI.Projects/agents/run_steps/routes.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/run_steps/routes.tsp rename to specification/ai/Azure.AI.Projects/agents/run_steps/routes.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/runs/models.tsp b/specification/ai/Azure.AI.Projects/agents/runs/models.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/runs/models.tsp rename to specification/ai/Azure.AI.Projects/agents/runs/models.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/runs/routes.tsp b/specification/ai/Azure.AI.Projects/agents/runs/routes.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/runs/routes.tsp rename to specification/ai/Azure.AI.Projects/agents/runs/routes.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/streaming/events.tsp b/specification/ai/Azure.AI.Projects/agents/streaming/events.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/streaming/events.tsp rename to specification/ai/Azure.AI.Projects/agents/streaming/events.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/threads/models.tsp b/specification/ai/Azure.AI.Projects/agents/threads/models.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/threads/models.tsp rename to specification/ai/Azure.AI.Projects/agents/threads/models.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/threads/routes.tsp b/specification/ai/Azure.AI.Projects/agents/threads/routes.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/threads/routes.tsp rename to specification/ai/Azure.AI.Projects/agents/threads/routes.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/tools/models.tsp b/specification/ai/Azure.AI.Projects/agents/tools/models.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/tools/models.tsp rename to specification/ai/Azure.AI.Projects/agents/tools/models.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/tools/tool_resources.tsp b/specification/ai/Azure.AI.Projects/agents/tools/tool_resources.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/tools/tool_resources.tsp rename to specification/ai/Azure.AI.Projects/agents/tools/tool_resources.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/common/main.tsp b/specification/ai/Azure.AI.Projects/agents/vector_stores/common/main.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/vector_stores/common/main.tsp rename to specification/ai/Azure.AI.Projects/agents/vector_stores/common/main.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/models.tsp b/specification/ai/Azure.AI.Projects/agents/vector_stores/file_batches/models.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/models.tsp rename to specification/ai/Azure.AI.Projects/agents/vector_stores/file_batches/models.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/routes.tsp b/specification/ai/Azure.AI.Projects/agents/vector_stores/file_batches/routes.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/vector_stores/file_batches/routes.tsp rename to specification/ai/Azure.AI.Projects/agents/vector_stores/file_batches/routes.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/files/models.tsp b/specification/ai/Azure.AI.Projects/agents/vector_stores/files/models.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/vector_stores/files/models.tsp rename to specification/ai/Azure.AI.Projects/agents/vector_stores/files/models.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/files/routes.tsp b/specification/ai/Azure.AI.Projects/agents/vector_stores/files/routes.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/vector_stores/files/routes.tsp rename to specification/ai/Azure.AI.Projects/agents/vector_stores/files/routes.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/main.tsp b/specification/ai/Azure.AI.Projects/agents/vector_stores/main.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/vector_stores/main.tsp rename to specification/ai/Azure.AI.Projects/agents/vector_stores/main.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/models.tsp b/specification/ai/Azure.AI.Projects/agents/vector_stores/models.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/vector_stores/models.tsp rename to specification/ai/Azure.AI.Projects/agents/vector_stores/models.tsp diff --git a/specification/ai/Azure.AI.Unified/agents/vector_stores/routes.tsp b/specification/ai/Azure.AI.Projects/agents/vector_stores/routes.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/agents/vector_stores/routes.tsp rename to specification/ai/Azure.AI.Projects/agents/vector_stores/routes.tsp diff --git a/specification/ai/Azure.AI.Projects/client.tsp b/specification/ai/Azure.AI.Projects/client.tsp new file mode 100644 index 000000000000..1428265619ad --- /dev/null +++ b/specification/ai/Azure.AI.Projects/client.tsp @@ -0,0 +1,6 @@ +import "@azure-tools/typespec-client-generator-core"; +import "./main.tsp"; + +using Azure.ClientGenerator.Core; + +@@clientName(Azure.AI.Projects, "AIProjectClient"); diff --git a/specification/ai/Azure.AI.Projects/common/models.tsp b/specification/ai/Azure.AI.Projects/common/models.tsp new file mode 100644 index 000000000000..ad2be37fd717 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/common/models.tsp @@ -0,0 +1,346 @@ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "../credentials/models.tsp"; + +using TypeSpec.Http; +using TypeSpec.Versioning; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; + +namespace Azure.AI.Unified; + +@doc("The possible values for roles attributed to messages in a thread.") +union MessageRole { + string, + + @doc("The role representing the end-user.") + user: "user", + + @doc("The role representing the assistant.") + assistant: "assistant", +} + +@doc("The available sorting options when requesting a list of response objects.") +union ListSortOrder { + string, + + @doc("Specifies an ascending sort order.") + ascending: "asc", + + @doc("Specifies a descending sort order.") + descending: "desc", +} + +alias OpenAIListRequestOptions = { + @doc("A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.") + @query + limit?: int32 = 20; + + @doc("Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.") + @query + order?: ListSortOrder = ListSortOrder.descending; + + @doc("A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.") + @query + after?: string; + + @doc("A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.") + @query + before?: string; +}; + +#suppress "@azure-tools/typespec-azure-core/casing-style" "OpenAI is a case-sensitive name" +@doc("The response data for a requested list of items.") +model OpenAIPageableListOf { + @doc("The object type, which is always list.") + object: "list"; + + @doc("The requested list of items.") + data: T[]; + + @encodedName("application/json", "first_id") + @doc("The first ID represented in this list.") + firstId: string; + + @encodedName("application/json", "last_id") + @doc("The last ID represented in this list.") + lastId: string; + + @encodedName("application/json", "has_more") + @doc("A value indicating whether there are additional values available not captured in this list.") + hasMore: boolean; +} + +alias DeletionStatus = { + @doc("The ID of the resource specified for deletion.") + id: string; + + @doc("A value indicating whether deletion was successful.") + deleted: boolean; +}; + +alias RequiredNullableMetadata = { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.") + metadata: Record | null; +}; + +alias OptionalNullableMetadata = { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" + @doc("A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.") + metadata?: Record | null; +}; + +#suppress "@azure-tools/typespec-autorest/union-unsupported" "This union is defined according to the OpenAI API" +@doc("Specifies the format that the model must output. Compatible with GPT-4 Turbo and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. Setting to `{ \"type\": \"json_object\" }` enables JSON mode, which guarantees the message the model generates is valid JSON. **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly \"stuck\" request. Also note that the message content may be partially cut off if `finish_reason=\"length\"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length.") +union AssistantsApiResponseFormatOption { + string, + + @doc("The model will handle the return format.") + AssistantsApiResponseFormatMode, + + @doc("Sets the format of the output of the model when a ToolCall is returned.") + AssistantsApiResponseFormat, +} + +@doc("Represents the mode in which the model will handle the return format of a tool call.") +union AssistantsApiResponseFormatMode { + string, + + @doc("Default value. Let the model handle the return format.") + "auto", + + @doc("Setting the value to `none`, will result in a 400 Bad request.") + "none", +} + +@doc("An object describing the expected output of the model. If `json_object` only `function` type `tools` are allowed to be passed to the Run. If `text` the model can return text or any value needed.") +model AssistantsApiResponseFormat { + @doc("Must be one of `text` or `json_object`.") + type?: ApiResponseFormat = ApiResponseFormat.text; +} + +@doc("Possible API response formats.") +union ApiResponseFormat { + string, + + @doc("`text` format should be used for requests involving any sort of ToolCall.") + text: "text", + + @doc("Using `json_object` format will limit the usage of ToolCall to only functions.") + jsonObject: "json_object", +} + +@doc("Metadata pertaining to creation and last modification of the resource.") +model SystemData { + @visibility("read") + @doc("The timestamp the resource was created at.") + createdAt?: utcDateTime; + + @visibility("read") + @doc("The identity that created the resource.") + createdBy?: string; + + @visibility("read") + @doc("The identity type that created the resource.") + createdByType?: string; + + @visibility("read") + @doc("The timestamp of resource last modification (UTC)") + lastModifiedAt?: utcDateTime; +} + +@doc("List View Type Definition") +union ListViewType { + string, + + @doc("List only active items.") + ActiveOnly: "ActiveOnly", + + @doc("List only archived items.") + ArchivedOnly: "ArchivedOnly", + + @doc("List all items.") + All: "All", +} + +@doc("Enum to determine which reference method to use for an asset.") +union ReferenceType { + string, + + @doc("Id") + Id: "Id", + + @doc("DataPath") + DataPath: "DataPath", + + @doc("OutputPath") + OutputPath: "OutputPath", +} + +@doc("Base definition for asset references.") +@discriminator("referenceType") +model AssetReferenceBase { + @doc("Asset reference type.") + referenceType: ReferenceType; +} + +@doc("Reference to an asset via its ARM resource ID.") +model IdAssetReference extends AssetReferenceBase { + @doc("[Required] ARM resource ID of the asset.") + @minLength(1) + @pattern("[a-zA-Z0-9_]") + assetId: string; + + @doc("[Required] Specifies the type of asset reference.") + referenceType: "Id"; +} + +@doc("Reference to an asset via its path in a datastore.") +model DataPathAssetReference extends AssetReferenceBase { + @doc("ARM resource ID of the datastore where the asset is located.") + datastoreId?: string; + + @doc("The path of the file/directory in the datastore.") + path?: string; + + @doc("[Required] Specifies the type of asset reference.") + referenceType: "DataPath"; +} + +@doc("Reference to an asset via its path in a job output.") +model OutputPathAssetReference extends AssetReferenceBase { + @doc("ARM resource ID of the job.") + jobId?: string; + + @doc("The path of the file/directory in the job output.") + path?: string; + + @doc("[Required] Specifies the type of asset reference.") + referenceType: "OutputPath"; +} + +alias AssetBase = { + @doc("Asset stage") + @visibility("read", "create", "update") + stage?: string; + + @doc("A unique identifier for the asset, assetId probably?") + @visibility("read") + id?: string; + + @doc("The name of the resource") + @visibility("read") + name?: string; + + @doc("The version of the resource") + @visibility("read") + version?: string; + + @doc("The asset description text.") + description?: string; + + @doc("Tag dictionary. Tags can be added, removed, and updated.") + tags?: Record; + + @doc("System data of the resource") + @visibility("read") + systemData?: SystemData; +}; + +#suppress "@azure-tools/typespec-providerhub/no-inline-model" "Need to create reponses correctly" +alias ResourceCreatedResponse = TypeSpec.Http.Response<201> & + T; + +#suppress "@azure-tools/typespec-providerhub/no-inline-model" "Need to create reponses correctly" +alias OkResponse = TypeSpec.Http.Response<200> & + T; + +alias AdditionalInferenceRequestHeaders = { + @doc(""" + Controls what happens if extra parameters, undefined by the REST API, + are passed in the JSON request payload. + This sets the HTTP request header `extra-parameters`. + """) + @header("extra-parameters") + extra_params?: ExtraParameters; +}; + +@doc("Controls what happens if extra parameters, undefined by the REST API, are passed in the JSON request payload.") +union ExtraParameters { + string, + + @doc("The service will error if it detected extra parameters in the request payload. This is the service default.") + error: "error", + + @doc("The service will ignore (drop) extra parameters in the request payload. It will only pass the known parameters to the back-end AI model.") + drop: "drop", + + @doc("The service will pass extra parameters to the back-end AI model.") + pass_through: "pass-through", +} + +// Pending upload spec + +// Define a URI alias for clarity. +alias Uri = string; + +enum PendingUploadType { + None, + TemporaryBlobReference, +} + +enum PendingUploadCredentialType { + SAS, +} + +model PendingUploadRequest { + /// If PendingUploadId is not provided, a random guid will be used. + pendingUploadId?: string; + + /// TemporaryBlobReference is the only supported type. + pendingUploadType: PendingUploadType.TemporaryBlobReference; +} + +model PendingUploadResponse { + /// Container-level read, write, list SAS. + blobReferenceForConsumption: BlobReferenceForConsumption; + + /// ID for this upload request. + pendingUploadId: string; + + /// TemporaryBlobReference is the only supported type. + pendingUploadType: PendingUploadType.TemporaryBlobReference; +} + +model BlobReferenceForConsumption { + /// Blob URI path for client to upload data. + /// Example: https://blob.windows.core.net/Container/Path + blobUri: Uri; + + /// ARM ID of the storage account to use. + storageAccountArmId: string; + + /// Credential info to access the storage account. + credential: SasCredential; +} + +@doc(""" + The definition of a caller-specified function that chat completions may invoke in response to matching user input. + """) +model FunctionDefinition { + @doc("The name of the function to be called.") + name: string; + + @doc(""" + A description of what the function does. The model will use this description when selecting the function and + interpreting its parameters. + """) + description?: string; + + #suppress "@azure-tools/typespec-azure-core/no-unknown" "External API shape takes an arbitrary json" + @doc("The parameters the function accepts, described as a JSON Schema object.") + parameters?: Record; +} diff --git a/specification/ai/Azure.AI.Unified/connections/models.tsp b/specification/ai/Azure.AI.Projects/connections/models.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/connections/models.tsp rename to specification/ai/Azure.AI.Projects/connections/models.tsp diff --git a/specification/ai/Azure.AI.Unified/connections/routes.tsp b/specification/ai/Azure.AI.Projects/connections/routes.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/connections/routes.tsp rename to specification/ai/Azure.AI.Projects/connections/routes.tsp diff --git a/specification/ai/Azure.AI.Unified/credentials/models.tsp b/specification/ai/Azure.AI.Projects/credentials/models.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/credentials/models.tsp rename to specification/ai/Azure.AI.Projects/credentials/models.tsp diff --git a/specification/ai/Azure.AI.Projects/datasets/models.tsp b/specification/ai/Azure.AI.Projects/datasets/models.tsp new file mode 100644 index 000000000000..d67d16017012 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/datasets/models.tsp @@ -0,0 +1,53 @@ +import "@typespec/rest"; +import "@azure-tools/typespec-autorest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "../common/models.tsp"; +import "../main.tsp"; +import "@typespec/openapi"; +import "@typespec/versioning"; + +using TypeSpec.OpenAPI; +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.Core.Traits; + +namespace Azure.AI.Unified; + +@doc("Enum to determine the type of data.") +union DatasetType { + string, + + @doc("URI file.") + uri_file: "uri_file", +} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" +@doc("DatasetVersion Definition") +model DatasetVersion { + @doc("[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330") + @visibility("read", "create") + @minLength(1) + @pattern("[a-zA-Z0-9_]") + datasetUri: string; + + @doc("Data type") + datasetType: DatasetType; + + ...AssetBase +} + +@doc("PagedDataVersionBase Definition") +@pagedResult +model PagedDatasetVersion { + @doc("The list of DatasetVersions.") + @extension("x-ms-identifiers", []) + @items + value: DatasetVersion[]; + + @doc("The link to the next page of results, if any.") + @nextLink + nextLink?: string; +} diff --git a/specification/ai/Azure.AI.Unified/datasets/routes.tsp b/specification/ai/Azure.AI.Projects/datasets/routes.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/datasets/routes.tsp rename to specification/ai/Azure.AI.Projects/datasets/routes.tsp diff --git a/specification/ai/Azure.AI.Unified/deployments/models.tsp b/specification/ai/Azure.AI.Projects/deployments/models.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/deployments/models.tsp rename to specification/ai/Azure.AI.Projects/deployments/models.tsp diff --git a/specification/ai/Azure.AI.Unified/deployments/routes.tsp b/specification/ai/Azure.AI.Projects/deployments/routes.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/deployments/routes.tsp rename to specification/ai/Azure.AI.Projects/deployments/routes.tsp diff --git a/specification/ai/Azure.AI.Unified/evaluations/models.tsp b/specification/ai/Azure.AI.Projects/evaluations/models.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/evaluations/models.tsp rename to specification/ai/Azure.AI.Projects/evaluations/models.tsp diff --git a/specification/ai/Azure.AI.Unified/evaluations/routes.tsp b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/evaluations/routes.tsp rename to specification/ai/Azure.AI.Projects/evaluations/routes.tsp diff --git a/specification/ai/Azure.AI.Projects/indexes/models.tsp b/specification/ai/Azure.AI.Projects/indexes/models.tsp new file mode 100644 index 000000000000..0a60e58f747c --- /dev/null +++ b/specification/ai/Azure.AI.Projects/indexes/models.tsp @@ -0,0 +1,101 @@ +import "@typespec/rest"; +import "@azure-tools/typespec-autorest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "../common/models.tsp"; +import "../main.tsp"; + +using TypeSpec.OpenAPI; +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.Core.Traits; + +namespace Azure.AI.Unified; + +@doc("Index resource Definition") +@discriminator("indexType") +model Index { + @doc("Type of index") + indexType: IndexType; + + ...AssetBase +} + +@doc("Paged collection of Index items.") +@pagedResult +model PagedIndex { + @doc("The list of Indexes.") + @extension("x-ms-identifiers", []) + @items + value: Index[]; + + @doc("The link to the next page of items") + @nextLink + nextLink?: ResourceLocation; +} + +@doc("Azure AI Search Index Definition") +model AzureAISearchIndex extends Index { + @doc("Type of index") + indexType: IndexType.azureSearch; + + @doc("Connection id to Azure AI Search") + connectionId: string; + + @doc("Name of index in Azure AI Search resource to attach") + indexName: string; +} + +@doc("Managed Azure AI Search Index Definition") +model ManagedAzureAISearchIndex extends Index { + @doc("Type of index") + indexType: IndexType.managedAzureSearch; + + @doc("Vector store id of managed index") + vectorStoreId: string; +} + +@doc("CosmosDB Vector Store Index Definition") +model CosmosDBIndex extends Index { + @doc("Type of index") + indexType: IndexType.cosmosDB; + + @doc("Connection id to CosmosDB") + connectionId: string; + + @doc("Name of the CosmosDB Database") + databaseName: string; + + @doc("Name of CosmosDB Container") + containerName: string; + + @doc("Embedding model configuration") + embeddingConfiguration: EmbeddingConfiguration; +} + +@doc("Embedding configuration class") +model EmbeddingConfiguration { + @doc("Connection id to embedding model") + connectionId?: string; + + @doc("Deployment name of embedding model") + deploymentName: string; + + @doc("Embedding field") + embeddingField: string; +} + +union IndexType { + string, + + @doc("Azure search") + azureSearch: "AzureSearch", + + @doc("CosmosDB") + cosmosDB: "CosmosDBNoSqlVectorStore", + + @doc("Managed Azure Search") + managedAzureSearch: "ManagedAzureSearch", +} diff --git a/specification/ai/Azure.AI.Unified/indexes/routes.tsp b/specification/ai/Azure.AI.Projects/indexes/routes.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/indexes/routes.tsp rename to specification/ai/Azure.AI.Projects/indexes/routes.tsp diff --git a/specification/ai/Azure.AI.Unified/main.tsp b/specification/ai/Azure.AI.Projects/main.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/main.tsp rename to specification/ai/Azure.AI.Projects/main.tsp diff --git a/specification/ai/Azure.AI.Unified/models/chat_completions.tsp b/specification/ai/Azure.AI.Projects/models/chat_completions.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/models/chat_completions.tsp rename to specification/ai/Azure.AI.Projects/models/chat_completions.tsp diff --git a/specification/ai/Azure.AI.Unified/models/embeddings.tsp b/specification/ai/Azure.AI.Projects/models/embeddings.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/models/embeddings.tsp rename to specification/ai/Azure.AI.Projects/models/embeddings.tsp diff --git a/specification/ai/Azure.AI.Unified/models/image_embeddings.tsp b/specification/ai/Azure.AI.Projects/models/image_embeddings.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/models/image_embeddings.tsp rename to specification/ai/Azure.AI.Projects/models/image_embeddings.tsp diff --git a/specification/ai/Azure.AI.Unified/models/routes.tsp b/specification/ai/Azure.AI.Projects/models/routes.tsp similarity index 100% rename from specification/ai/Azure.AI.Unified/models/routes.tsp rename to specification/ai/Azure.AI.Projects/models/routes.tsp diff --git a/specification/ai/Azure.AI.Projects/tspconfig.yaml b/specification/ai/Azure.AI.Projects/tspconfig.yaml new file mode 100644 index 000000000000..7a99ba0f3c1e --- /dev/null +++ b/specification/ai/Azure.AI.Projects/tspconfig.yaml @@ -0,0 +1,39 @@ +parameters: + "service-dir": + default: "sdk/ai" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + emitter-output-dir: "{project-root}/.." + azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/azure-ai-projects-1dp.json" + "@azure-tools/typespec-python": + package-mode: "dataplane" + package-dir: "azure-ai-projects-1dp" + package-name: "{package-dir}" + flavor: azure + generate-test: false + generate-sample: false + "@azure-tools/typespec-csharp": + package-mode: "dataplane" + package-dir: "Azure.AI.Projects.1DP" + namespace: "Azure.AI.Projects.1DP" + package-name: "{package-dir}" + model-namespace: false + flavor: azure + generate-test: false + generate-sample: false + "@azure-tools/typespec-ts": + package-dir: "ai-projects-1dp" + generateTest: true + generateMetadata: false + packageDetails: + name: "@azure/ai-projects-1dp" + flavor: azure +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/data-plane" + disable: + "@azure-tools/typespec-azure-core/casing-style": "Since we have many names in the form XxxxAIXxxx" From 7f74f9d981cbb0c71b276b22e99bd95ad72c5bab Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Wed, 12 Mar 2025 11:59:01 -0400 Subject: [PATCH 056/143] delete azure.ai.unified dir --- .../ai/Azure.AI.Projects/common/models.tsp | 44 ++- .../ai/Azure.AI.Projects/tspconfig.yaml | 3 + specification/ai/Azure.AI.Unified/client.tsp | 4 - .../ai/Azure.AI.Unified/common/models.tsp | 358 ------------------ .../ai/Azure.AI.Unified/datasets/models.tsp | 53 --- .../ai/Azure.AI.Unified/indexes/models.tsp | 101 ----- .../ai/Azure.AI.Unified/tspconfig.yaml | 42 -- .../azure-ai-projects-1dp.json | 0 8 files changed, 31 insertions(+), 574 deletions(-) delete mode 100644 specification/ai/Azure.AI.Unified/client.tsp delete mode 100644 specification/ai/Azure.AI.Unified/common/models.tsp delete mode 100644 specification/ai/Azure.AI.Unified/datasets/models.tsp delete mode 100644 specification/ai/Azure.AI.Unified/indexes/models.tsp delete mode 100644 specification/ai/Azure.AI.Unified/tspconfig.yaml rename specification/ai/data-plane/{Azure.AI.Unified => Azure.AI.Projects}/preview/2025-05-01-preview/azure-ai-projects-1dp.json (100%) diff --git a/specification/ai/Azure.AI.Projects/common/models.tsp b/specification/ai/Azure.AI.Projects/common/models.tsp index ad2be37fd717..9f1f085f3389 100644 --- a/specification/ai/Azure.AI.Projects/common/models.tsp +++ b/specification/ai/Azure.AI.Projects/common/models.tsp @@ -287,43 +287,55 @@ union ExtraParameters { // Define a URI alias for clarity. alias Uri = string; -enum PendingUploadType { - None, - TemporaryBlobReference, +@doc("The type of pending upload.") +union PendingUploadType { + string, + + @doc("No pending upload.") + none: "None", + + @doc("Temporary Blob Reference is the only supported type.") + temporaryBlobReference: "TemporaryBlobReference", } -enum PendingUploadCredentialType { - SAS, +@doc("The type of credential used to access the storage account.") +union PendingUploadCredentialType { + string, + + @doc("SAS credential type.") + sas: "SAS", } +@doc("Represents a request for a pending upload.") model PendingUploadRequest { - /// If PendingUploadId is not provided, a random guid will be used. + @doc("If PendingUploadId is not provided, a random GUID will be used.") pendingUploadId?: string; - /// TemporaryBlobReference is the only supported type. - pendingUploadType: PendingUploadType.TemporaryBlobReference; + @doc("TemporaryBlobReference is the only supported type.") + pendingUploadType: PendingUploadType.temporaryBlobReference; } +@doc("Represents the response for a pending upload request") model PendingUploadResponse { - /// Container-level read, write, list SAS. + @doc("Container-level read, write, list SAS.") blobReferenceForConsumption: BlobReferenceForConsumption; - /// ID for this upload request. + @doc("ID for this upload request.") pendingUploadId: string; - /// TemporaryBlobReference is the only supported type. - pendingUploadType: PendingUploadType.TemporaryBlobReference; + @doc("TemporaryBlobReference is the only supported type") + pendingUploadType: PendingUploadType.temporaryBlobReference; } +@doc("Represents a reference to a blob for consumption") model BlobReferenceForConsumption { - /// Blob URI path for client to upload data. - /// Example: https://blob.windows.core.net/Container/Path + @doc("Blob URI path for client to upload data. Example: https://blob.windows.core.net/Container/Path") blobUri: Uri; - /// ARM ID of the storage account to use. + @doc("ARM ID of the storage account to use.") storageAccountArmId: string; - /// Credential info to access the storage account. + @doc("Credential info to access the storage account.") credential: SasCredential; } diff --git a/specification/ai/Azure.AI.Projects/tspconfig.yaml b/specification/ai/Azure.AI.Projects/tspconfig.yaml index 7a99ba0f3c1e..7a9b7a1a5ecd 100644 --- a/specification/ai/Azure.AI.Projects/tspconfig.yaml +++ b/specification/ai/Azure.AI.Projects/tspconfig.yaml @@ -37,3 +37,6 @@ linter: - "@azure-tools/typespec-azure-rulesets/data-plane" disable: "@azure-tools/typespec-azure-core/casing-style": "Since we have many names in the form XxxxAIXxxx" + "@azure-tools/typespec-azure-core/no-string-discriminator": "Use an extensible union instead of a plain string" + "@azure-tools/typespec-azure-core/bad-record-type": "We do want to use Record, and not Record. But this needs further investigation" + "@azure-tools/typespec-azure-core/use-standard-names": "PUT operations that return 200 should start with 'replace' or 'createOrReplace'" diff --git a/specification/ai/Azure.AI.Unified/client.tsp b/specification/ai/Azure.AI.Unified/client.tsp deleted file mode 100644 index 5d3f3613c428..000000000000 --- a/specification/ai/Azure.AI.Unified/client.tsp +++ /dev/null @@ -1,4 +0,0 @@ -import "@azure-tools/typespec-client-generator-core"; -import "./main.tsp"; - -using Azure.ClientGenerator.Core; diff --git a/specification/ai/Azure.AI.Unified/common/models.tsp b/specification/ai/Azure.AI.Unified/common/models.tsp deleted file mode 100644 index 9f1f085f3389..000000000000 --- a/specification/ai/Azure.AI.Unified/common/models.tsp +++ /dev/null @@ -1,358 +0,0 @@ -import "@typespec/rest"; -import "@typespec/versioning"; -import "@azure-tools/typespec-azure-core"; -import "@azure-tools/typespec-azure-resource-manager"; -import "../credentials/models.tsp"; - -using TypeSpec.Http; -using TypeSpec.Versioning; -using Azure.ResourceManager; -using Azure.ResourceManager.Foundations; - -namespace Azure.AI.Unified; - -@doc("The possible values for roles attributed to messages in a thread.") -union MessageRole { - string, - - @doc("The role representing the end-user.") - user: "user", - - @doc("The role representing the assistant.") - assistant: "assistant", -} - -@doc("The available sorting options when requesting a list of response objects.") -union ListSortOrder { - string, - - @doc("Specifies an ascending sort order.") - ascending: "asc", - - @doc("Specifies a descending sort order.") - descending: "desc", -} - -alias OpenAIListRequestOptions = { - @doc("A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.") - @query - limit?: int32 = 20; - - @doc("Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.") - @query - order?: ListSortOrder = ListSortOrder.descending; - - @doc("A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.") - @query - after?: string; - - @doc("A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.") - @query - before?: string; -}; - -#suppress "@azure-tools/typespec-azure-core/casing-style" "OpenAI is a case-sensitive name" -@doc("The response data for a requested list of items.") -model OpenAIPageableListOf { - @doc("The object type, which is always list.") - object: "list"; - - @doc("The requested list of items.") - data: T[]; - - @encodedName("application/json", "first_id") - @doc("The first ID represented in this list.") - firstId: string; - - @encodedName("application/json", "last_id") - @doc("The last ID represented in this list.") - lastId: string; - - @encodedName("application/json", "has_more") - @doc("A value indicating whether there are additional values available not captured in this list.") - hasMore: boolean; -} - -alias DeletionStatus = { - @doc("The ID of the resource specified for deletion.") - id: string; - - @doc("A value indicating whether deletion was successful.") - deleted: boolean; -}; - -alias RequiredNullableMetadata = { - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.") - metadata: Record | null; -}; - -alias OptionalNullableMetadata = { - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.") - metadata?: Record | null; -}; - -#suppress "@azure-tools/typespec-autorest/union-unsupported" "This union is defined according to the OpenAI API" -@doc("Specifies the format that the model must output. Compatible with GPT-4 Turbo and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. Setting to `{ \"type\": \"json_object\" }` enables JSON mode, which guarantees the message the model generates is valid JSON. **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly \"stuck\" request. Also note that the message content may be partially cut off if `finish_reason=\"length\"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length.") -union AssistantsApiResponseFormatOption { - string, - - @doc("The model will handle the return format.") - AssistantsApiResponseFormatMode, - - @doc("Sets the format of the output of the model when a ToolCall is returned.") - AssistantsApiResponseFormat, -} - -@doc("Represents the mode in which the model will handle the return format of a tool call.") -union AssistantsApiResponseFormatMode { - string, - - @doc("Default value. Let the model handle the return format.") - "auto", - - @doc("Setting the value to `none`, will result in a 400 Bad request.") - "none", -} - -@doc("An object describing the expected output of the model. If `json_object` only `function` type `tools` are allowed to be passed to the Run. If `text` the model can return text or any value needed.") -model AssistantsApiResponseFormat { - @doc("Must be one of `text` or `json_object`.") - type?: ApiResponseFormat = ApiResponseFormat.text; -} - -@doc("Possible API response formats.") -union ApiResponseFormat { - string, - - @doc("`text` format should be used for requests involving any sort of ToolCall.") - text: "text", - - @doc("Using `json_object` format will limit the usage of ToolCall to only functions.") - jsonObject: "json_object", -} - -@doc("Metadata pertaining to creation and last modification of the resource.") -model SystemData { - @visibility("read") - @doc("The timestamp the resource was created at.") - createdAt?: utcDateTime; - - @visibility("read") - @doc("The identity that created the resource.") - createdBy?: string; - - @visibility("read") - @doc("The identity type that created the resource.") - createdByType?: string; - - @visibility("read") - @doc("The timestamp of resource last modification (UTC)") - lastModifiedAt?: utcDateTime; -} - -@doc("List View Type Definition") -union ListViewType { - string, - - @doc("List only active items.") - ActiveOnly: "ActiveOnly", - - @doc("List only archived items.") - ArchivedOnly: "ArchivedOnly", - - @doc("List all items.") - All: "All", -} - -@doc("Enum to determine which reference method to use for an asset.") -union ReferenceType { - string, - - @doc("Id") - Id: "Id", - - @doc("DataPath") - DataPath: "DataPath", - - @doc("OutputPath") - OutputPath: "OutputPath", -} - -@doc("Base definition for asset references.") -@discriminator("referenceType") -model AssetReferenceBase { - @doc("Asset reference type.") - referenceType: ReferenceType; -} - -@doc("Reference to an asset via its ARM resource ID.") -model IdAssetReference extends AssetReferenceBase { - @doc("[Required] ARM resource ID of the asset.") - @minLength(1) - @pattern("[a-zA-Z0-9_]") - assetId: string; - - @doc("[Required] Specifies the type of asset reference.") - referenceType: "Id"; -} - -@doc("Reference to an asset via its path in a datastore.") -model DataPathAssetReference extends AssetReferenceBase { - @doc("ARM resource ID of the datastore where the asset is located.") - datastoreId?: string; - - @doc("The path of the file/directory in the datastore.") - path?: string; - - @doc("[Required] Specifies the type of asset reference.") - referenceType: "DataPath"; -} - -@doc("Reference to an asset via its path in a job output.") -model OutputPathAssetReference extends AssetReferenceBase { - @doc("ARM resource ID of the job.") - jobId?: string; - - @doc("The path of the file/directory in the job output.") - path?: string; - - @doc("[Required] Specifies the type of asset reference.") - referenceType: "OutputPath"; -} - -alias AssetBase = { - @doc("Asset stage") - @visibility("read", "create", "update") - stage?: string; - - @doc("A unique identifier for the asset, assetId probably?") - @visibility("read") - id?: string; - - @doc("The name of the resource") - @visibility("read") - name?: string; - - @doc("The version of the resource") - @visibility("read") - version?: string; - - @doc("The asset description text.") - description?: string; - - @doc("Tag dictionary. Tags can be added, removed, and updated.") - tags?: Record; - - @doc("System data of the resource") - @visibility("read") - systemData?: SystemData; -}; - -#suppress "@azure-tools/typespec-providerhub/no-inline-model" "Need to create reponses correctly" -alias ResourceCreatedResponse = TypeSpec.Http.Response<201> & - T; - -#suppress "@azure-tools/typespec-providerhub/no-inline-model" "Need to create reponses correctly" -alias OkResponse = TypeSpec.Http.Response<200> & - T; - -alias AdditionalInferenceRequestHeaders = { - @doc(""" - Controls what happens if extra parameters, undefined by the REST API, - are passed in the JSON request payload. - This sets the HTTP request header `extra-parameters`. - """) - @header("extra-parameters") - extra_params?: ExtraParameters; -}; - -@doc("Controls what happens if extra parameters, undefined by the REST API, are passed in the JSON request payload.") -union ExtraParameters { - string, - - @doc("The service will error if it detected extra parameters in the request payload. This is the service default.") - error: "error", - - @doc("The service will ignore (drop) extra parameters in the request payload. It will only pass the known parameters to the back-end AI model.") - drop: "drop", - - @doc("The service will pass extra parameters to the back-end AI model.") - pass_through: "pass-through", -} - -// Pending upload spec - -// Define a URI alias for clarity. -alias Uri = string; - -@doc("The type of pending upload.") -union PendingUploadType { - string, - - @doc("No pending upload.") - none: "None", - - @doc("Temporary Blob Reference is the only supported type.") - temporaryBlobReference: "TemporaryBlobReference", -} - -@doc("The type of credential used to access the storage account.") -union PendingUploadCredentialType { - string, - - @doc("SAS credential type.") - sas: "SAS", -} - -@doc("Represents a request for a pending upload.") -model PendingUploadRequest { - @doc("If PendingUploadId is not provided, a random GUID will be used.") - pendingUploadId?: string; - - @doc("TemporaryBlobReference is the only supported type.") - pendingUploadType: PendingUploadType.temporaryBlobReference; -} - -@doc("Represents the response for a pending upload request") -model PendingUploadResponse { - @doc("Container-level read, write, list SAS.") - blobReferenceForConsumption: BlobReferenceForConsumption; - - @doc("ID for this upload request.") - pendingUploadId: string; - - @doc("TemporaryBlobReference is the only supported type") - pendingUploadType: PendingUploadType.temporaryBlobReference; -} - -@doc("Represents a reference to a blob for consumption") -model BlobReferenceForConsumption { - @doc("Blob URI path for client to upload data. Example: https://blob.windows.core.net/Container/Path") - blobUri: Uri; - - @doc("ARM ID of the storage account to use.") - storageAccountArmId: string; - - @doc("Credential info to access the storage account.") - credential: SasCredential; -} - -@doc(""" - The definition of a caller-specified function that chat completions may invoke in response to matching user input. - """) -model FunctionDefinition { - @doc("The name of the function to be called.") - name: string; - - @doc(""" - A description of what the function does. The model will use this description when selecting the function and - interpreting its parameters. - """) - description?: string; - - #suppress "@azure-tools/typespec-azure-core/no-unknown" "External API shape takes an arbitrary json" - @doc("The parameters the function accepts, described as a JSON Schema object.") - parameters?: Record; -} diff --git a/specification/ai/Azure.AI.Unified/datasets/models.tsp b/specification/ai/Azure.AI.Unified/datasets/models.tsp deleted file mode 100644 index 6f733e8d6b77..000000000000 --- a/specification/ai/Azure.AI.Unified/datasets/models.tsp +++ /dev/null @@ -1,53 +0,0 @@ -import "@typespec/rest"; -import "@azure-tools/typespec-autorest"; -import "@typespec/versioning"; -import "@azure-tools/typespec-azure-core"; -import "../common/models.tsp"; -import "../main.tsp"; -import "@typespec/openapi"; -import "@typespec/versioning"; - -using TypeSpec.OpenAPI; -using TypeSpec.Http; -using TypeSpec.Rest; -using TypeSpec.Versioning; -using Azure.Core; -using Azure.Core.Traits; - -namespace Azure.AI.Unified; - -@doc("Enum to determine the type of data.") -union DatasetType { - string, - - @doc("URI file.") - uri_file: "uri_file", -} - -#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" -@doc("DatasetVersion Definition") -model DatasetVersion { - @doc("[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330") - @visibility("read", "create") - @minLength(1) - @pattern("[a-zA-Z0-9_]") - datasetUri: string; - - @doc("Data type") - datasetType: DatasetType; - - ...AssetBase; -} - -@doc("PagedDataVersionBase Definition") -@pagedResult -model PagedDatasetVersion { - @doc("The list of DatasetVersions.") - @extension("x-ms-identifiers", []) - @items - value: DatasetVersion[]; - - @doc("The link to the next page of results, if any.") - @nextLink - nextLink?: string; -} diff --git a/specification/ai/Azure.AI.Unified/indexes/models.tsp b/specification/ai/Azure.AI.Unified/indexes/models.tsp deleted file mode 100644 index 659d9d23200f..000000000000 --- a/specification/ai/Azure.AI.Unified/indexes/models.tsp +++ /dev/null @@ -1,101 +0,0 @@ -import "@typespec/rest"; -import "@azure-tools/typespec-autorest"; -import "@typespec/versioning"; -import "@azure-tools/typespec-azure-core"; -import "../common/models.tsp"; -import "../main.tsp"; - -using TypeSpec.OpenAPI; -using TypeSpec.Http; -using TypeSpec.Rest; -using TypeSpec.Versioning; -using Azure.Core; -using Azure.Core.Traits; - -namespace Azure.AI.Unified; - -@doc("Index resource Definition") -@discriminator("indexType") -model Index { - @doc("Type of index") - indexType: IndexType; - - ...AssetBase; -} - -@doc("Paged collection of Index items.") -@pagedResult -model PagedIndex { - @doc("The list of Indexes.") - @extension("x-ms-identifiers", []) - @items - value: Index[]; - - @doc("The link to the next page of items") - @nextLink - nextLink?: ResourceLocation; -} - -@doc("Azure AI Search Index Definition") -model AzureAISearchIndex extends Index { - @doc("Type of index") - indexType: IndexType.azureSearch; - - @doc("Connection id to Azure AI Search") - connectionId: string; - - @doc("Name of index in Azure AI Search resource to attach") - indexName: string; -} - -@doc("Managed Azure AI Search Index Definition") -model ManagedAzureAISearchIndex extends Index { - @doc("Type of index") - indexType: IndexType.managedAzureSearch; - - @doc("Vector store id of managed index") - vectorStoreId: string; -} - -@doc("CosmosDB Vector Store Index Definition") -model CosmosDBIndex extends Index { - @doc("Type of index") - indexType: IndexType.cosmosDB; - - @doc("Connection id to CosmosDB") - connectionId: string; - - @doc("Name of the CosmosDB Database") - databaseName: string; - - @doc("Name of CosmosDB Container") - containerName: string; - - @doc("Embedding model configuration") - embeddingConfiguration: EmbeddingConfiguration; -} - -@doc("Embedding configuration class") -model EmbeddingConfiguration { - @doc("Connection id to embedding model") - connectionId?: string; - - @doc("Deployment name of embedding model") - deploymentName: string; - - @doc("Embedding field") - embeddingField: string; -} - -union IndexType { - string, - - @doc("Azure search") - azureSearch: "AzureSearch", - - @doc("CosmosDB") - cosmosDB: "CosmosDBNoSqlVectorStore", - - @doc("Managed Azure Search") - managedAzureSearch: "ManagedAzureSearch", -} diff --git a/specification/ai/Azure.AI.Unified/tspconfig.yaml b/specification/ai/Azure.AI.Unified/tspconfig.yaml deleted file mode 100644 index 7a9b7a1a5ecd..000000000000 --- a/specification/ai/Azure.AI.Unified/tspconfig.yaml +++ /dev/null @@ -1,42 +0,0 @@ -parameters: - "service-dir": - default: "sdk/ai" -emit: - - "@azure-tools/typespec-autorest" -options: - "@azure-tools/typespec-autorest": - emitter-output-dir: "{project-root}/.." - azure-resource-provider-folder: "data-plane" - emit-lro-options: "none" - output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/azure-ai-projects-1dp.json" - "@azure-tools/typespec-python": - package-mode: "dataplane" - package-dir: "azure-ai-projects-1dp" - package-name: "{package-dir}" - flavor: azure - generate-test: false - generate-sample: false - "@azure-tools/typespec-csharp": - package-mode: "dataplane" - package-dir: "Azure.AI.Projects.1DP" - namespace: "Azure.AI.Projects.1DP" - package-name: "{package-dir}" - model-namespace: false - flavor: azure - generate-test: false - generate-sample: false - "@azure-tools/typespec-ts": - package-dir: "ai-projects-1dp" - generateTest: true - generateMetadata: false - packageDetails: - name: "@azure/ai-projects-1dp" - flavor: azure -linter: - extends: - - "@azure-tools/typespec-azure-rulesets/data-plane" - disable: - "@azure-tools/typespec-azure-core/casing-style": "Since we have many names in the form XxxxAIXxxx" - "@azure-tools/typespec-azure-core/no-string-discriminator": "Use an extensible union instead of a plain string" - "@azure-tools/typespec-azure-core/bad-record-type": "We do want to use Record, and not Record. But this needs further investigation" - "@azure-tools/typespec-azure-core/use-standard-names": "PUT operations that return 200 should start with 'replace' or 'createOrReplace'" diff --git a/specification/ai/data-plane/Azure.AI.Unified/preview/2025-05-01-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json similarity index 100% rename from specification/ai/data-plane/Azure.AI.Unified/preview/2025-05-01-preview/azure-ai-projects-1dp.json rename to specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json From 91621e8d8bff2bac0681d5d1d7855e71486e5b4d Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Wed, 12 Mar 2025 12:21:59 -0400 Subject: [PATCH 057/143] clean up connections --- .../ai/Azure.AI.Projects/connections/models.tsp | 11 +++++------ .../ai/Azure.AI.Projects/connections/routes.tsp | 11 ++--------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/connections/models.tsp b/specification/ai/Azure.AI.Projects/connections/models.tsp index ca3674216d57..a7274699ef09 100644 --- a/specification/ai/Azure.AI.Projects/connections/models.tsp +++ b/specification/ai/Azure.AI.Projects/connections/models.tsp @@ -27,22 +27,21 @@ model Connection { @key("connectionName") name: string; - @doc("Credential used to connect to the external resource.") - @visibility("read") - credentials: BaseCredential; - @doc("Category of the connection") @visibility("read") - category: ConnectionCategory; + type: ConnectionType; @doc("The connection URL to be used for this service") @visibility("read") target: string; + + @doc("A collection of properties of the connection") + properties: Record; } // https://learn.microsoft.com/rest/api/azureml/workspace-connections/list-secrets?view=rest-azureml-2024-04-01&tabs=HTTP#ConnectionType @doc("The Type (or category) of the connection") -union ConnectionCategory { +union ConnectionType { string, @doc("Azure OpenAI Service") diff --git a/specification/ai/Azure.AI.Projects/connections/routes.tsp b/specification/ai/Azure.AI.Projects/connections/routes.tsp index e2cd14716029..a7e4e687c5ed 100644 --- a/specification/ai/Azure.AI.Projects/connections/routes.tsp +++ b/specification/ai/Azure.AI.Projects/connections/routes.tsp @@ -23,20 +23,13 @@ interface Connections { @doc("Get a connection by name.") get is ConnectionOperations.ResourceRead; - @doc("Get connection with secrets by name.") - getWithCredentials is ConnectionOperations.ResourceAction< - Connection, - {}, - Connection - >; - @doc("List all connections in the project") list is ConnectionOperations.ResourceList< Connection, ListQueryParametersTrait<{ @doc("Specific type of connection to return in list") - @query("$connectionCategory") - connectionCategory?: ConnectionCategory; + @query("$connectionType") + connectionType?: ConnectionType; ...StandardListQueryParameters; }> From 28ee55ae6e71e44188f67566f455e29472367780 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Wed, 12 Mar 2025 16:19:50 -0400 Subject: [PATCH 058/143] remove inference routes from tsp --- .../Azure.AI.Projects/agents/tools/models.tsp | 16 +- .../ai/Azure.AI.Projects/common/models.tsp | 18 - specification/ai/Azure.AI.Projects/main.tsp | 1 - .../models/chat_completions.tsp | 726 ------------------ .../Azure.AI.Projects/models/embeddings.tsp | 139 ---- .../models/image_embeddings.tsp | 61 -- .../ai/Azure.AI.Projects/models/routes.tsp | 71 -- 7 files changed, 15 insertions(+), 1017 deletions(-) delete mode 100644 specification/ai/Azure.AI.Projects/models/chat_completions.tsp delete mode 100644 specification/ai/Azure.AI.Projects/models/embeddings.tsp delete mode 100644 specification/ai/Azure.AI.Projects/models/image_embeddings.tsp delete mode 100644 specification/ai/Azure.AI.Projects/models/routes.tsp diff --git a/specification/ai/Azure.AI.Projects/agents/tools/models.tsp b/specification/ai/Azure.AI.Projects/agents/tools/models.tsp index fd839e35a592..79be7e609003 100644 --- a/specification/ai/Azure.AI.Projects/agents/tools/models.tsp +++ b/specification/ai/Azure.AI.Projects/agents/tools/models.tsp @@ -1,6 +1,5 @@ import "@typespec/http"; import "@typespec/versioning"; -import "../../common/models.tsp"; using TypeSpec.Http; using TypeSpec.Versioning; @@ -135,6 +134,21 @@ model FileSearchRankingOptions { scoreThreshold: float32; } +// Definition details: Functions + +@doc("The input definition information for a function.") +model FunctionDefinition { + @doc("The name of the function to be called.") + name: string; + + @doc("A description of what the function does, used by the model to choose when and how to call the function.") + description?: string; + + #suppress "@azure-tools/typespec-azure-core/no-unknown" "External API shape takes an arbitrary json" + @doc("The parameters the functions accepts, described as a JSON Schema object.") + parameters: unknown; +} + @doc("The definition of Azure function.") model AzureFunctionDefinition { @doc("The definition of azure function and its parameters.") diff --git a/specification/ai/Azure.AI.Projects/common/models.tsp b/specification/ai/Azure.AI.Projects/common/models.tsp index 9f1f085f3389..e7686674da94 100644 --- a/specification/ai/Azure.AI.Projects/common/models.tsp +++ b/specification/ai/Azure.AI.Projects/common/models.tsp @@ -338,21 +338,3 @@ model BlobReferenceForConsumption { @doc("Credential info to access the storage account.") credential: SasCredential; } - -@doc(""" - The definition of a caller-specified function that chat completions may invoke in response to matching user input. - """) -model FunctionDefinition { - @doc("The name of the function to be called.") - name: string; - - @doc(""" - A description of what the function does. The model will use this description when selecting the function and - interpreting its parameters. - """) - description?: string; - - #suppress "@azure-tools/typespec-azure-core/no-unknown" "External API shape takes an arbitrary json" - @doc("The parameters the function accepts, described as a JSON Schema object.") - parameters?: Record; -} diff --git a/specification/ai/Azure.AI.Projects/main.tsp b/specification/ai/Azure.AI.Projects/main.tsp index d82b53d7fec7..3b5ecfeda31d 100644 --- a/specification/ai/Azure.AI.Projects/main.tsp +++ b/specification/ai/Azure.AI.Projects/main.tsp @@ -16,7 +16,6 @@ import "./agents/vector_stores/file_batches/routes.tsp"; import "./connections/routes.tsp"; import "./evaluations/routes.tsp"; import "./datasets/routes.tsp"; -import "./models/routes.tsp"; import "./indexes/routes.tsp"; import "./deployments/routes.tsp"; diff --git a/specification/ai/Azure.AI.Projects/models/chat_completions.tsp b/specification/ai/Azure.AI.Projects/models/chat_completions.tsp deleted file mode 100644 index fedcd35ed80d..000000000000 --- a/specification/ai/Azure.AI.Projects/models/chat_completions.tsp +++ /dev/null @@ -1,726 +0,0 @@ -import "@azure-tools/typespec-client-generator-core"; -import "@typespec/rest"; -import "@typespec/http"; -import "../common/models.tsp"; - -using TypeSpec.Rest; -using TypeSpec.Http; - -using Azure.ClientGenerator.Core; - -namespace Azure.AI.Unified; - -@doc(""" - The configuration information for a chat completions request. - Completions support a wide variety of tasks and generate text that continues from or "completes" - provided prompt data. - """) -model ChatCompletionsOptions { - @doc(""" - The collection of context messages associated with this chat completions request. - Typical usage begins with a chat message for the System role that provides instructions for - the behavior of the assistant, followed by alternating messages between the User and - Assistant roles. - """) - @minItems(1) - messages: ChatRequestMessage[]; - - @doc(""" - A value that influences the probability of generated tokens appearing based on their cumulative - frequency in generated text. - Positive values will make tokens less likely to appear as their frequency increases and - decrease the likelihood of the model repeating the same statements verbatim. - Supported range is [-2, 2]. - """) - @maxValue(2.0) - @minValue(-2.0) - frequency_penalty?: float32 = 0.0; - - @doc(""" - A value indicating whether chat completions should be streamed for this request. - """) - @clientName("InternalShouldStreamResponse", "csharp") - stream?: boolean; - - @doc(""" - A value that influences the probability of generated tokens appearing based on their existing - presence in generated text. - Positive values will make tokens less likely to appear when they already exist and increase the - model's likelihood to output new topics. - Supported range is [-2, 2]. - """) - @maxValue(2.0) - @minValue(-2.0) - presence_penalty?: float32 = 0.0; - - @doc(""" - The sampling temperature to use that controls the apparent creativity of generated completions. - Higher values will make output more random while lower values will make results more focused - and deterministic. - It is not recommended to modify temperature and top_p for the same completions request as the - interaction of these two settings is difficult to predict. - Supported range is [0, 1]. - """) - @maxValue(1.0) - @minValue(0.0) - temperature?: float32 = 0.7; - - @doc(""" - An alternative to sampling with temperature called nucleus sampling. This value causes the - model to consider the results of tokens with the provided probability mass. As an example, a - value of 0.15 will cause only the tokens comprising the top 15% of probability mass to be - considered. - It is not recommended to modify temperature and top_p for the same completions request as the - interaction of these two settings is difficult to predict. - Supported range is [0, 1]. - """) - @maxValue(1.0) - @minValue(0.0) - @clientName("NucleusSamplingFactor", "csharp") - top_p?: float32 = 1.0; - - @doc("The maximum number of tokens to generate.") - @minValue(0.0) - max_tokens?: int32; - - @doc(""" - An object specifying the format that the model must output. - - Setting to `{ "type": "json_schema", "json_schema": {...} }` enables Structured Outputs which ensures the model will match your supplied JSON schema. - - Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. - - **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. - """) - response_format?: ChatCompletionsResponseFormat; - - @doc(""" - A collection of textual sequences that will end completions generation. - """) - @minItems(1) - @clientName("StopSequences", "csharp") - stop?: string[]; - - @doc(""" - A list of tools the model may request to call. Currently, only functions are supported as a tool. The model - may response with a function call request and provide the input arguments in JSON format for that function. - """) - @minItems(1) - tools?: ChatCompletionsToolDefinition[]; - - @encodedName("application/json", "tool_choice") - @doc(""" - If specified, the model will configure which of the provided tools it can use for the chat completions response. - """) - toolChoice?: ChatCompletionsToolChoice; - - @doc(""" - If specified, the system will make a best effort to sample deterministically such that repeated requests with the - same seed and parameters should return the same result. Determinism is not guaranteed. - """) - seed?: int64; - - @doc(""" - ID of the specific AI model to use, if more than one model is available on the endpoint. - """) - `model`?: string; - - @doc(""" - The modalities that the model is allowed to use for the chat completions response. The default modality - is `text`. Indicating an unsupported modality combination results in an 422 error. - """) - modalities?: ChatCompletionsModality[]; - - ...Record; -} -@doc("The modalities that the model is allowed to use for the chat completions response.") -union ChatCompletionsModality { - string, - - @doc("The model is only allowed to generate text.") - text: "text", - - @doc("The model is allowed to generate audio.") - audio: "audio", -} - -alias ChatCompletionsCommon = { - @doc("A unique identifier associated with this chat completions response.") - id: string; - - @doc("The response object type, which is always `chat.completion`.") - object: "chat.completion"; - - #suppress "@microsoft/azure-openapi-validator/IntegerTypeMustHaveFormat" "Format is present but rule only allow int32 or int64." - @doc(""" - The first timestamp associated with generation activity for this completions response, - represented as seconds since the beginning of the Unix epoch of 00:00 on 1 Jan 1970. - """) - @encode(DateTimeKnownEncoding.unixTimestamp, int64) - created: utcDateTime; - - @doc("The model used for the chat completion.") - `model`: string; -}; - -@doc(""" - Representation of the response data from a chat completions request. - Completions support a wide variety of tasks and generate text that continues from or "completes" - provided prompt data. - """) -model ChatCompletions { - ...ChatCompletionsCommon; - - @doc(""" - The collection of completions choices associated with this completions response. - Generally, `n` choices are generated per provided prompt with a default value of 1. - Token limits and other settings may limit the number of choices generated. - """) - @minItems(1) - choices: ChatChoice[]; - - @doc(""" - Usage information for tokens processed and generated as part of this completions operation. - """) - usage: CompletionsUsage; -} - -@doc(""" - Represents a response update to a chat completions request, when the service is streaming updates - using Server Sent Events (SSE). - Completions support a wide variety of tasks and generate text that continues from or "completes" - provided prompt data. - """) -model StreamingChatCompletionsUpdate { - ...ChatCompletionsCommon; - - @doc(""" - An update to the collection of completion choices associated with this completions response. - Generally, `n` choices are generated per provided prompt with a default value of 1. - Token limits and other settings may limit the number of choices generated. - """) - @minItems(1) - choices: StreamingChatChoiceUpdate[]; - - @doc(""" - Usage information for tokens processed and generated as part of this completions operation. - """) - usage?: CompletionsUsage; -} - -@doc(""" - Representation of the token counts processed for a completions request. - Counts consider all tokens across prompts, choices, choice alternates, best_of generations, and - other consumers. - """) -model CompletionsUsage { - @doc("The number of tokens generated across all completions emissions.") - completion_tokens: int32; - - @doc("The number of tokens in the provided prompts for the completions request.") - prompt_tokens: int32; - - @doc("The total number of tokens processed for the completions request and response.") - total_tokens: int32; - - @doc("Breakdown of tokens used in a completion.") - completion_tokens_details?: CompletionsUsageDetails; - - @doc("Breakdown of tokens used in the prompt/chat history.") - prompt_tokens_details?: PromptUsageDetails; -} - -@doc("A breakdown of tokens used in a completion.") -model CompletionsUsageDetails { - @doc("The number of tokens corresponding to audio input.") - audio_tokens: int32; - - @doc("The total number of tokens processed for the completions request and response.") - total_tokens: int32; -} - -@doc("A breakdown of tokens used in the prompt/chat history.") -model PromptUsageDetails { - @doc("The number of tokens corresponding to audio input.") - audio_tokens: int32; - - @doc("The total number of tokens cached.") - cached_tokens: int32; -} - -@doc(""" - Representation of the manner in which a completions response concluded. - """) -union CompletionsFinishReason { - string, - - @doc("Completions ended normally and reached its end of token generation.") - stopped: "stop", - - @doc("Completions exhausted available token limits before generation could complete.") - tokenLimitReached: "length", - - @doc(""" - Completions generated a response that was identified as potentially sensitive per content - moderation policies. - """) - contentFiltered: "content_filter", - - @doc("Completion ended with the model calling a provided tool for output.") - toolCalls: "tool_calls", -} - -@doc("A description of the intended purpose of a message within a chat completions interaction.") -union ChatRole { - string, - - @doc("The role that instructs or sets the behavior of the assistant.") - system: "system", - - @doc("The role that provides instructions to the model prioritized ahead of user messages.") - developer: "developer", - - @doc("The role that provides input for chat completions.") - user: "user", - - @doc("The role that provides responses to system-instructed, user-prompted input.") - assistant: "assistant", - - @doc("The role that represents extension tool activity within a chat completions operation.") - tool: "tool", -} - -@doc(""" - Represents the format that the model must output. Use this to enable JSON mode instead of the default text mode. - Note that to enable JSON mode, some AI models may also require you to instruct the model to produce JSON - via a system or user message. - """) -@discriminator("type") -model ChatCompletionsResponseFormat { - @doc("The response format type to use for chat completions.") - type: string; -} - -@doc(""" - A response format for Chat Completions that emits text responses. This is the default response format. - """) -model ChatCompletionsResponseFormatText extends ChatCompletionsResponseFormat { - @doc("Response format type: always 'text' for this object.") - type: "text"; -} - -@doc(""" - A response format for Chat Completions that restricts responses to emitting valid JSON objects. - Note that to enable JSON mode, some AI models may also require you to instruct the model to produce JSON - via a system or user message. - """) -model ChatCompletionsResponseFormatJsonObject - extends ChatCompletionsResponseFormat { - @doc("Response format type: always 'json_object' for this object.") - type: "json_object"; -} - -@doc(""" - The definition of the required JSON schema in the response, and associated metadata. - """) -model ChatCompletionsResponseFormatJsonSchemaDefinition { - /** The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. */ - name: string; - - /** The definition of the JSON schema */ - schema: Record; - - /** A description of the response format, used by the AI model to determine how to generate responses in this format. */ - description?: string; - - @doc(""" - Whether to enable strict schema adherence when generating the output. - If set to true, the model will always follow the exact schema defined in the `schema` field. Only a subset of - JSON Schema is supported when `strict` is `true`. - """) - strict?: boolean = false; -} - -@doc(""" - A response format for Chat Completions that restricts responses to emitting valid JSON objects, with a - JSON schema specified by the caller. - """) -model ChatCompletionsResponseFormatJsonSchema - extends ChatCompletionsResponseFormat { - @doc(""" - The type of response format being defined: `json_schema` - """) - type: "json_schema"; - - /** The definition of the required JSON schema in the response, and associated metadata. */ - json_schema: ChatCompletionsResponseFormatJsonSchemaDefinition; -} - -alias ChatChoiceCommon = { - @doc("The ordered index associated with this chat completions choice.") - index: int32; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "The operation already returns nulls" - #suppress "@azure-tools/typespec-autorest/union-unsupported" "OpenAPI v2 support deferred" - @doc("The reason that this chat completions choice completed its generated.") - finish_reason: CompletionsFinishReason | null; -}; - -@doc(""" - The representation of a single prompt completion as part of an overall chat completions request. - Generally, `n` choices are generated per provided prompt with a default value of 1. - Token limits and other settings may limit the number of choices generated. - """) -model ChatChoice { - ...ChatChoiceCommon; - - @doc("The chat message for a given chat completions prompt.") - message: ChatResponseMessage; -} - -@doc(""" - Represents an update to a single prompt completion when the service is streaming updates - using Server Sent Events (SSE). - Generally, `n` choices are generated per provided prompt with a default value of 1. - Token limits and other settings may limit the number of choices generated. - """) -model StreamingChatChoiceUpdate { - ...ChatChoiceCommon; - - @doc("An update to the chat message for a given chat completions prompt.") - delta: StreamingChatResponseMessageUpdate; -} - -@discriminator("role") -@doc("An abstract representation of a chat message as provided in a request.") -model ChatRequestMessage { - @doc("The chat role associated with this message.") - role: ChatRole; -} - -@doc(""" - A request chat message containing system instructions that influence how the model will generate a chat completions - response. - """) -model ChatRequestSystemMessage extends ChatRequestMessage { - @doc("The chat role associated with this message, which is always 'system' for system messages.") - role: ChatRole.system; - - @doc("The contents of the system message.") - content: string; -} - -@doc("A request chat message representing user input to the assistant.") -model ChatRequestUserMessage extends ChatRequestMessage { - @doc("The chat role associated with this message, which is always 'user' for user messages.") - role: ChatRole.user; - - #suppress "@azure-tools/typespec-autorest/union-unsupported" "External API shape is defined in OpenAPI 3.0 as oneOf." - @doc("The contents of the user message, with available input types varying by selected model.") - content: string | ChatMessageContentItem[]; -} - -@doc("A request chat message representing response or action from the assistant.") -model ChatRequestAssistantMessage extends ChatRequestMessage { - @doc("The chat role associated with this message, which is always 'assistant' for assistant messages.") - role: ChatRole.assistant; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "explicitly nullable in mirrored API" - @doc("The content of the message.") - content?: string; - - @encodedName("application/json", "tool_calls") - @doc(""" - The tool calls that must be resolved and have their outputs appended to subsequent input messages for the chat - completions request to resolve as configured. - """) - toolCalls?: ChatCompletionsToolCall[]; - - @doc(""" - The audio generated by a previous response in a multi-turn conversation. - """) - audio?: ChatRequestAudioReference; -} - -@doc("A reference to an audio response generated by the model.") -model ChatRequestAudioReference { - @doc(""" - Unique identifier for the audio response. This value corresponds to the id of a previous audio completion. - """) - id: string; -} - -@doc("A request chat message representing requested output from a configured tool.") -model ChatRequestToolMessage extends ChatRequestMessage { - @doc("The chat role associated with this message, which is always 'tool' for tool messages.") - role: ChatRole.tool; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "explicitly nullable in mirrored API" - @doc("The content of the message.") - content?: string; - - @encodedName("application/json", "tool_call_id") - @doc("The ID of the tool call resolved by the provided content.") - toolCallId: string; -} - -@doc("A representation of a chat message update as received in a streaming response.") -model StreamingChatResponseMessageUpdate { - @doc("The chat role associated with the message. If present, should always be 'assistant'") - role?: ChatRole; - - //#suppress "@azure-tools/typespec-azure-core/no-nullable" "explicitly nullable in mirrored API" - @doc("The content of the message.") - content?: string; - - @encodedName("application/json", "tool_calls") - @doc(""" - The tool calls that must be resolved and have their outputs appended to subsequent input messages for the chat - completions request to resolve as configured. - """) - toolCalls?: StreamingChatResponseToolCallUpdate[]; -} - -@doc("A representation of a chat message as received in a response.") -model ChatResponseMessage { - @doc("The chat role associated with the message.") - role: ChatRole; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "explicitly nullable in mirrored API" - @doc("The content of the message.") - content: string | null; - - @encodedName("application/json", "tool_calls") - @doc(""" - The tool calls that must be resolved and have their outputs appended to subsequent input messages for the chat - completions request to resolve as configured. - """) - toolCalls?: ChatCompletionsToolCall[]; - - @doc(""" - The audio generated by the model as a response to the messages if the model is configured to generate audio. - """) - audio?: ChatCompletionsAudio; -} - -#suppress "@azure-tools/typespec-autorest/union-unsupported" "External API shape is defined in OpenAPI 3.0 as oneOf." -alias ChatCompletionsToolChoice = ChatCompletionsToolChoicePreset | ChatCompletionsNamedToolChoice; - -@doc("Represents a generic policy for how a chat completions tool may be selected.") -union ChatCompletionsToolChoicePreset { - string, - - @doc(""" - Specifies that the model may either use any of the tools provided in this chat completions request or - instead return a standard chat completions response as if no tools were provided. - """) - auto: "auto", - - @doc(""" - Specifies that the model should not respond with a tool call and should instead provide a standard chat - completions response. Response content may still be influenced by the provided tool definitions. - """) - none: "none", - - @doc(""" - Specifies that the model should respond with a call to one or more tools. - """) - required: "required", -} - -@doc("A tool selection of a specific, named function tool that will limit chat completions to using the named function.") -model ChatCompletionsNamedToolChoice { - @doc("The type of the tool. Currently, only `function` is supported.") - type: "function"; - - @doc("The function that should be called.") - function: ChatCompletionsNamedToolChoiceFunction; -} - -@doc("A tool selection of a specific, named function tool that will limit chat completions to using the named function.") -model ChatCompletionsNamedToolChoiceFunction { - @doc("The name of the function that should be called.") - name: string; -} - -@doc(""" - The definition of a chat completions tool that can call a function. - """) -model ChatCompletionsToolDefinition { - @doc("The type of the tool. Currently, only `function` is supported.") - type: "function"; - - @doc("The function definition details for the function tool.") - function: FunctionDefinition; -} - -@doc(""" - An update to the function tool call information requested by the AI model. - """) -model StreamingChatResponseToolCallUpdate { - @doc("The ID of the tool call.") - id: string; - - @doc("Updates to the function call requested by the AI model.") - function: FunctionCall; -} - -@doc(""" - A function tool call requested by the AI model. - """) -model ChatCompletionsToolCall { - @doc("The ID of the tool call.") - id: string; - - @doc("The type of tool call. Currently, only `function` is supported.") - type: "function"; - - @doc("The details of the function call requested by the AI model.") - function: FunctionCall; -} - -@doc("The name and arguments of a function that should be called, as generated by the model.") -model FunctionCall { - @doc("The name of the function to call.") - name: string; - - @doc(""" - The arguments to call the function with, as generated by the model in JSON format. - Note that the model does not always generate valid JSON, and may hallucinate parameters - not defined by your function schema. Validate the arguments in your code before calling - your function. - """) - arguments: string; -} - -@doc("An abstract representation of a structured content item within a chat message.") -@discriminator("type") -model ChatMessageContentItem { - @doc("The discriminated object type.") - type: string; -} - -@doc("A structured chat content item containing plain text.") -model ChatMessageTextContentItem extends ChatMessageContentItem { - @doc("The discriminated object type: always 'text' for this type.") - type: "text"; - - @doc("The content of the message.") - text: string; -} - -@doc("A structured chat content item containing an image reference.") -model ChatMessageImageContentItem extends ChatMessageContentItem { - @doc("The discriminated object type: always 'image_url' for this type.") - type: "image_url"; - - @doc("An internet location, which must be accessible to the model,from which the image may be retrieved.") - @encodedName("application/json", "image_url") - imageUrl: ChatMessageImageUrl; -} - -@doc("An internet location from which the model may retrieve an image.") -model ChatMessageImageUrl { - @doc("The URL of the image.") - url: string; - - @doc(""" - The evaluation quality setting to use, which controls relative prioritization of speed, token consumption, and - accuracy. - """) - detail?: ChatMessageImageDetailLevel; -} - -@doc("A representation of the possible image detail levels for image-based chat completions message content.") -union ChatMessageImageDetailLevel { - string, - - @doc("Specifies that the model should determine which detail level to apply using heuristics like image size.") - auto: "auto", - - @doc(""" - Specifies that image evaluation should be constrained to the 'low-res' model that may be faster and consume fewer - tokens but may also be less accurate for highly detailed images. - """) - low: "low", - - @doc(""" - Specifies that image evaluation should enable the 'high-res' model that may be more accurate for highly detailed - images but may also be slower and consume more tokens. - """) - high: "high", -} - -@doc("A structured chat content item containing an audio reference.") -model ChatMessageAudioContentItem extends ChatMessageContentItem { - @doc("The discriminated object type: always 'image_url' for this type.") - type: "audio_url"; - - @doc("An internet location, which must be accessible to the model, from which the audio may be retrieved.") - @encodedName("application/json", "audio_url") - audioUrl: ChatMessageAudioUrl; -} - -@doc("An internet location from which the model may retrieve an audio.") -model ChatMessageAudioUrl { - @doc("The URL of the audio.") - url: string; -} - -@doc("A structured chat content item containing an audio content.") -model ChatMessageInputAudioContentItem extends ChatMessageContentItem { - @doc("The discriminated object type: always 'input_audio' for this type.") - type: "input_audio"; - - @doc("The audio format of the audio reference.") - format: AudioContentFormat; -} - -@doc("The details of an audio chat message content part.") -model ChatMessageInputAudio { - @doc("Base64 encoded audio data") - data: string; - - @doc("The audio format of the audio content.") - format: AudioContentFormat; -} - -@doc("A representation of the possible audio formats for audio.") -union AudioContentFormat { - string, - - @doc("Specifies audio in WAV format.") - wav: "wav", - - @doc("Specifies audio in MP3 format.") - mp3: "mp3", -} - -@doc("A representation of the audio generated by the model.") -model ChatCompletionsAudio { - @doc(""" - Unique identifier for the audio response. This value can be used in chat history messages instead of passing - the full audio object. - """) - id: string; - - @doc(""" - The Unix timestamp (in seconds) at which the audio piece expires and can't be any longer referenced by its ID in - multi-turn conversations. - """) - @encode(DateTimeKnownEncoding.unixTimestamp, int64) - @encodedName("application/json", "expires_at") - expiresAt: utcDateTime; - - @doc("Base64 encoded audio data") - data: string; - - @doc(""" - The format of the audio content. If format is not provided, it will match the format used in the - input audio request. - """) - format?: AudioContentFormat; - - @doc("The transcript of the audio file.") - transcript: string; -} diff --git a/specification/ai/Azure.AI.Projects/models/embeddings.tsp b/specification/ai/Azure.AI.Projects/models/embeddings.tsp deleted file mode 100644 index 98febf6f01d2..000000000000 --- a/specification/ai/Azure.AI.Projects/models/embeddings.tsp +++ /dev/null @@ -1,139 +0,0 @@ -import "@typespec/rest"; -import "@typespec/http"; - -using TypeSpec.Rest; -using TypeSpec.Http; - -namespace Azure.AI.Unified; - -@doc("Represents the input types used for embedding search.") -union EmbeddingInputType { - string, - - @doc("Indicates the input is a general text input.") - text: "text", - - @doc("Indicates the input represents a search query to find the most relevant documents in your vector database.") - query: "query", - - @doc("Indicates the input represents a document that is stored in a vector database.") - document: "document", -} - -@doc(""" - Specifies the types of embeddings to generate. Compressed embeddings types like `uint8`, `int8`, `ubinary` and - `binary`, may reduce storage costs without sacrificing the integrity of the data. Returns a 422 error if the - model doesn't support the value or parameter. Read the model's documentation to know the values supported by - the your model. - """) -union EmbeddingEncodingFormat { - string, - - @doc(""" - Get back binary representation of the embeddings encoded as Base64 string. OpenAI Python library retrieves - embeddings from the API as encoded binary data, rather than using intermediate decimal representations as is - usually done. - """) - base64: "base64", - - @doc("Get back signed binary embeddings") - binary: "binary", - - @doc("Get back full precision embeddings") - float: "float", - - @doc("Get back signed int8 embeddings") - int8: "int8", - - @doc("Get back unsigned binary embeddings") - ubinary: "ubinary", - - @doc("Get back unsigned int8 embeddings") - uint8: "uint8", -} - -@doc(""" - Representation of the response data from an embeddings request. - Embeddings measure the relatedness of text strings and are commonly used for search, clustering, - recommendations, and other similar scenarios. - """) -model EmbeddingsResult { - @doc("Unique identifier for the embeddings result.") - id: string; - - @doc("Embedding values for the prompts submitted in the request.") - data: EmbeddingItem[]; - - @doc("Usage counts for tokens input using the embeddings API.") - usage: EmbeddingsUsage; - - @doc("The object type of the embeddings result. Will always be `list`.") - object: "list"; - - @doc("The model ID used to generate this result.") - `model`: string; -} - -@doc("Representation of a single embeddings relatedness comparison.") -model EmbeddingItem { - @doc(""" - List of embedding values for the input prompt. These represent a measurement of the - vector-based relatedness of the provided input. Or a base64 encoded string of the embedding vector. - """) - embedding: float32[]; - - @doc("Index of the prompt to which the EmbeddingItem corresponds.") - index: int32; - - @doc("The object type of this embeddings item. Will always be `embedding`.") - object: "embedding"; -} - -@doc("Measurement of the amount of tokens used in this request and response.") -model EmbeddingsUsage { - @doc("Number of tokens in the request.") - prompt_tokens: int32; - - @doc(""" - Total number of tokens transacted in this request/response. Should equal the - number of tokens in the request. - """) - total_tokens: int32; -} - -@doc(""" - The configuration information for an embeddings request. - """) -model EmbeddingsOptions { - @doc(""" - Input text to embed, encoded as a string or array of tokens. - To embed multiple inputs in a single request, pass an array - of strings or array of token arrays. - """) - input: string[]; - - @doc(""" - Optional. The number of dimensions the resulting output embeddings should have. - Passing null causes the model to use its default value. - Returns a 422 error if the model doesn't support the value or parameter. - """) - dimensions?: int32; - - @doc(""" - Optional. The desired format for the returned embeddings. - """) - encoding_format?: EmbeddingEncodingFormat; - - @doc(""" - Optional. The type of the input. - Returns a 422 error if the model doesn't support the value or parameter. - """) - input_type?: EmbeddingInputType; - - @doc(""" - ID of the specific AI model to use, if more than one model is available on the endpoint. - """) - `model`?: string; - - ...Record; -} diff --git a/specification/ai/Azure.AI.Projects/models/image_embeddings.tsp b/specification/ai/Azure.AI.Projects/models/image_embeddings.tsp deleted file mode 100644 index 5293067abb6f..000000000000 --- a/specification/ai/Azure.AI.Projects/models/image_embeddings.tsp +++ /dev/null @@ -1,61 +0,0 @@ -import "@typespec/rest"; -import "@typespec/http"; - -import "./embeddings.tsp"; - -using TypeSpec.Rest; -using TypeSpec.Http; - -namespace Azure.AI.Unified; - -@doc(""" - The configuration information for an image embeddings request. - """) -model ImageEmbeddingsOptions { - @doc(""" - Input image to embed. To embed multiple inputs in a single request, pass an array. - The input must not exceed the max input tokens for the model. - """) - input: ImageEmbeddingInput[]; - - @doc(""" - Optional. The number of dimensions the resulting output embeddings should have. - Passing null causes the model to use its default value. - Returns a 422 error if the model doesn't support the value or parameter. - """) - dimensions?: int32; - - @doc(""" - Optional. The number of dimensions the resulting output embeddings should have. - Passing null causes the model to use its default value. - Returns a 422 error if the model doesn't support the value or parameter. - """) - encoding_format?: EmbeddingEncodingFormat; - - @doc(""" - Optional. The type of the input. - Returns a 422 error if the model doesn't support the value or parameter. - """) - input_type?: EmbeddingInputType; - - @doc(""" - ID of the specific AI model to use, if more than one model is available on the endpoint. - """) - `model`?: string; - - ...Record; -} - -@doc("Represents an image with optional text.") -model ImageEmbeddingInput { - @doc(""" - The input image encoded in base64 string as a data URL. Example: `data:image/{format};base64,{data}`. - """) - image: string; - - @doc(""" - Optional. The text input to feed into the model (like DINO, CLIP). - Returns a 422 error if the model doesn't support the value or parameter. - """) - text?: string; -} diff --git a/specification/ai/Azure.AI.Projects/models/routes.tsp b/specification/ai/Azure.AI.Projects/models/routes.tsp deleted file mode 100644 index 903c142907a4..000000000000 --- a/specification/ai/Azure.AI.Projects/models/routes.tsp +++ /dev/null @@ -1,71 +0,0 @@ -import "@typespec/rest"; -import "@azure-tools/typespec-autorest"; -import "@typespec/versioning"; -import "@azure-tools/typespec-azure-core"; -import "./chat_completions.tsp"; -import "./embeddings.tsp"; -import "./image_embeddings.tsp"; - -using TypeSpec.Http; -using TypeSpec.Rest; -using TypeSpec.Versioning; -using Azure.Core; -using Azure.Core.Traits; -using Azure.Core.Foundations; - -namespace Azure.AI.Unified; - -interface Models { - @doc(""" - Gets chat completions for the provided chat messages. - Completions support a wide variety of tasks and generate text that continues from or "completes" - provided prompt data. The method makes a REST API call to the `/chat/completions` route - on the given endpoint. - """) - @actionSeparator("/") - @route("models/chat/completions") - getChatCompletions is Azure.Core.RpcOperation< - { - @doc("The parameters of the chat completions request.") - @body - body: ChatCompletionsOptions; - - ...AdditionalInferenceRequestHeaders; - }, - ChatCompletions - >; - - @doc(""" - Return the embedding vectors for given text prompts. - The method makes a REST API call to the `/embeddings` route on the given endpoint. - """) - @actionSeparator("/") - @route("models/embeddings") - getEmbeddings is Azure.Core.RpcOperation< - { - @doc("The parameters of the embeddings request.") - @body - body: EmbeddingsOptions; - - ...AdditionalInferenceRequestHeaders; - }, - EmbeddingsResult - >; - - @doc(""" - Return the embedding vectors for given images. - The method makes a REST API call to the `/images/embeddings` route on the given endpoint. - """) - @actionSeparator("/") - @route("models/images/embeddings") - getImageEmbeddings is Azure.Core.RpcOperation< - { - @doc("The parameters of the image embeddings request.") - @body - body: ImageEmbeddingsOptions; - - ...AdditionalInferenceRequestHeaders; - }, - EmbeddingsResult - >; -} From c83b455104b72cf43111d78d560091fa2ba66e7d Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Thu, 13 Mar 2025 08:36:22 -0700 Subject: [PATCH 059/143] Additional changes to support SDK emitters (#33184) * Rename Azure.AI.Unified to Azure.AI.Projects * Run `npx tsp format **\*.tsp`. Run `npx tsv .` and update swagger --- .../agents/common/models.tsp | 2 +- .../Azure.AI.Projects/agents/files/models.tsp | 2 +- .../Azure.AI.Projects/agents/files/routes.tsp | 2 +- .../agents/messages/models.tsp | 2 +- .../agents/messages/routes.tsp | 2 +- .../ai/Azure.AI.Projects/agents/models.tsp | 2 +- .../ai/Azure.AI.Projects/agents/routes.tsp | 2 +- .../agents/run_steps/models.tsp | 2 +- .../agents/run_steps/routes.tsp | 2 +- .../Azure.AI.Projects/agents/runs/models.tsp | 2 +- .../Azure.AI.Projects/agents/runs/routes.tsp | 2 +- .../agents/streaming/events.tsp | 2 +- .../agents/threads/models.tsp | 2 +- .../agents/threads/routes.tsp | 2 +- .../Azure.AI.Projects/agents/tools/models.tsp | 2 +- .../agents/tools/tool_resources.tsp | 2 +- .../agents/vector_stores/common/main.tsp | 2 +- .../vector_stores/file_batches/models.tsp | 2 +- .../vector_stores/file_batches/routes.tsp | 2 +- .../agents/vector_stores/files/models.tsp | 2 +- .../agents/vector_stores/files/routes.tsp | 2 +- .../agents/vector_stores/models.tsp | 2 +- .../agents/vector_stores/routes.tsp | 2 +- .../ai/Azure.AI.Projects/common/models.tsp | 2 +- .../Azure.AI.Projects/connections/models.tsp | 2 +- .../Azure.AI.Projects/connections/routes.tsp | 2 +- .../Azure.AI.Projects/credentials/models.tsp | 2 +- .../ai/Azure.AI.Projects/datasets/models.tsp | 4 +- .../ai/Azure.AI.Projects/datasets/routes.tsp | 2 +- .../Azure.AI.Projects/deployments/models.tsp | 2 +- .../Azure.AI.Projects/deployments/routes.tsp | 2 +- .../Azure.AI.Projects/evaluations/models.tsp | 2 +- .../Azure.AI.Projects/evaluations/routes.tsp | 2 +- .../ai/Azure.AI.Projects/indexes/models.tsp | 4 +- .../ai/Azure.AI.Projects/indexes/routes.tsp | 2 +- specification/ai/Azure.AI.Projects/main.tsp | 2 +- .../azure-ai-projects-1dp.json | 1836 +---------------- 37 files changed, 136 insertions(+), 1776 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/agents/common/models.tsp b/specification/ai/Azure.AI.Projects/agents/common/models.tsp index 2edfd150ca14..574e0f2ebba1 100644 --- a/specification/ai/Azure.AI.Projects/agents/common/models.tsp +++ b/specification/ai/Azure.AI.Projects/agents/common/models.tsp @@ -4,7 +4,7 @@ import "@typespec/versioning"; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; @doc("The possible values for roles attributed to messages in a thread.") union MessageRole { diff --git a/specification/ai/Azure.AI.Projects/agents/files/models.tsp b/specification/ai/Azure.AI.Projects/agents/files/models.tsp index db9f82ffd124..73b85e312a52 100644 --- a/specification/ai/Azure.AI.Projects/agents/files/models.tsp +++ b/specification/ai/Azure.AI.Projects/agents/files/models.tsp @@ -1,6 +1,6 @@ import "@typespec/versioning"; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/agents/files/routes.tsp b/specification/ai/Azure.AI.Projects/agents/files/routes.tsp index 1ec65732cee1..e48e53be8b44 100644 --- a/specification/ai/Azure.AI.Projects/agents/files/routes.tsp +++ b/specification/ai/Azure.AI.Projects/agents/files/routes.tsp @@ -9,7 +9,7 @@ using TypeSpec.Http; using TypeSpec.Versioning; using Azure.ClientGenerator.Core; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; /** * Gets a list of previously uploaded files. diff --git a/specification/ai/Azure.AI.Projects/agents/messages/models.tsp b/specification/ai/Azure.AI.Projects/agents/messages/models.tsp index 5d071658d66d..5b5134a852d3 100644 --- a/specification/ai/Azure.AI.Projects/agents/messages/models.tsp +++ b/specification/ai/Azure.AI.Projects/agents/messages/models.tsp @@ -2,7 +2,7 @@ import "../tools/models.tsp"; import "@typespec/versioning"; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/agents/messages/routes.tsp b/specification/ai/Azure.AI.Projects/agents/messages/routes.tsp index c17c4c833bd5..4dab8c9401ee 100644 --- a/specification/ai/Azure.AI.Projects/agents/messages/routes.tsp +++ b/specification/ai/Azure.AI.Projects/agents/messages/routes.tsp @@ -12,7 +12,7 @@ using TypeSpec.Versioning; using Azure.Core; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; /** * Creates a new message on a specified thread. diff --git a/specification/ai/Azure.AI.Projects/agents/models.tsp b/specification/ai/Azure.AI.Projects/agents/models.tsp index 9989f3982a26..76c5a557eb0a 100644 --- a/specification/ai/Azure.AI.Projects/agents/models.tsp +++ b/specification/ai/Azure.AI.Projects/agents/models.tsp @@ -7,7 +7,7 @@ import "../main.tsp"; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; @doc("Represents an agent that can call the model and use tools.") model Agent { diff --git a/specification/ai/Azure.AI.Projects/agents/routes.tsp b/specification/ai/Azure.AI.Projects/agents/routes.tsp index 52e7eb551296..427c61fa22cd 100644 --- a/specification/ai/Azure.AI.Projects/agents/routes.tsp +++ b/specification/ai/Azure.AI.Projects/agents/routes.tsp @@ -11,7 +11,7 @@ using Azure.Core; using Azure.Core.Traits; using Azure.Core.Foundations; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; /** * Creates a new agent. diff --git a/specification/ai/Azure.AI.Projects/agents/run_steps/models.tsp b/specification/ai/Azure.AI.Projects/agents/run_steps/models.tsp index 05d5a1b920c3..e6a778354e54 100644 --- a/specification/ai/Azure.AI.Projects/agents/run_steps/models.tsp +++ b/specification/ai/Azure.AI.Projects/agents/run_steps/models.tsp @@ -2,7 +2,7 @@ import "@typespec/versioning"; import "../tools/models.tsp"; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/agents/run_steps/routes.tsp b/specification/ai/Azure.AI.Projects/agents/run_steps/routes.tsp index b9d57a3308b2..0ce3c2657fda 100644 --- a/specification/ai/Azure.AI.Projects/agents/run_steps/routes.tsp +++ b/specification/ai/Azure.AI.Projects/agents/run_steps/routes.tsp @@ -9,7 +9,7 @@ using TypeSpec.Rest; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; /** * Gets a single run step from a thread run. diff --git a/specification/ai/Azure.AI.Projects/agents/runs/models.tsp b/specification/ai/Azure.AI.Projects/agents/runs/models.tsp index 76a42774636d..57c13229b324 100644 --- a/specification/ai/Azure.AI.Projects/agents/runs/models.tsp +++ b/specification/ai/Azure.AI.Projects/agents/runs/models.tsp @@ -4,7 +4,7 @@ import "../common/models.tsp"; import "../threads/models.tsp"; import "../tools/models.tsp"; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; using TypeSpec.Versioning; using Azure.ClientGenerator.Core; diff --git a/specification/ai/Azure.AI.Projects/agents/runs/routes.tsp b/specification/ai/Azure.AI.Projects/agents/runs/routes.tsp index a2e9f80695aa..abfcf1ca0bd3 100644 --- a/specification/ai/Azure.AI.Projects/agents/runs/routes.tsp +++ b/specification/ai/Azure.AI.Projects/agents/runs/routes.tsp @@ -10,7 +10,7 @@ using TypeSpec.Rest; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; /** * Creates and starts a new run of the specified thread using the specified agent. diff --git a/specification/ai/Azure.AI.Projects/agents/streaming/events.tsp b/specification/ai/Azure.AI.Projects/agents/streaming/events.tsp index 832477649fdb..78c2d05bc44c 100644 --- a/specification/ai/Azure.AI.Projects/agents/streaming/events.tsp +++ b/specification/ai/Azure.AI.Projects/agents/streaming/events.tsp @@ -2,7 +2,7 @@ import "@typespec/versioning"; using TypeSpec.Versioning; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; @doc(""" Each event in a server-sent events stream has an `event` and `data` property: diff --git a/specification/ai/Azure.AI.Projects/agents/threads/models.tsp b/specification/ai/Azure.AI.Projects/agents/threads/models.tsp index 066f01f831dd..39e868006097 100644 --- a/specification/ai/Azure.AI.Projects/agents/threads/models.tsp +++ b/specification/ai/Azure.AI.Projects/agents/threads/models.tsp @@ -7,7 +7,7 @@ import "../messages/models.tsp"; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; @doc("Information about a single thread associated with an agent.") model AgentThread { diff --git a/specification/ai/Azure.AI.Projects/agents/threads/routes.tsp b/specification/ai/Azure.AI.Projects/agents/threads/routes.tsp index edaa0fae93df..868f7c8bfbb2 100644 --- a/specification/ai/Azure.AI.Projects/agents/threads/routes.tsp +++ b/specification/ai/Azure.AI.Projects/agents/threads/routes.tsp @@ -7,7 +7,7 @@ using TypeSpec.Rest; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; /** * Creates a new thread. Threads contain messages and can be run by agents. diff --git a/specification/ai/Azure.AI.Projects/agents/tools/models.tsp b/specification/ai/Azure.AI.Projects/agents/tools/models.tsp index 79be7e609003..8792ce526e96 100644 --- a/specification/ai/Azure.AI.Projects/agents/tools/models.tsp +++ b/specification/ai/Azure.AI.Projects/agents/tools/models.tsp @@ -4,7 +4,7 @@ import "@typespec/versioning"; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; // // Tool inputs -- definitions used before model evaluation to configure agents, threads, and messages diff --git a/specification/ai/Azure.AI.Projects/agents/tools/tool_resources.tsp b/specification/ai/Azure.AI.Projects/agents/tools/tool_resources.tsp index 66ab55adaf0a..eaa6ae384610 100644 --- a/specification/ai/Azure.AI.Projects/agents/tools/tool_resources.tsp +++ b/specification/ai/Azure.AI.Projects/agents/tools/tool_resources.tsp @@ -6,7 +6,7 @@ import "../vector_stores/common/main.tsp"; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; // // Response objects diff --git a/specification/ai/Azure.AI.Projects/agents/vector_stores/common/main.tsp b/specification/ai/Azure.AI.Projects/agents/vector_stores/common/main.tsp index ed9713a2d910..2001ed55da18 100644 --- a/specification/ai/Azure.AI.Projects/agents/vector_stores/common/main.tsp +++ b/specification/ai/Azure.AI.Projects/agents/vector_stores/common/main.tsp @@ -4,7 +4,7 @@ import "@typespec/versioning"; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; /** Options to configure a vector store static chunking strategy. */ model VectorStoreStaticChunkingStrategyOptions { diff --git a/specification/ai/Azure.AI.Projects/agents/vector_stores/file_batches/models.tsp b/specification/ai/Azure.AI.Projects/agents/vector_stores/file_batches/models.tsp index ce64405248f1..62a372b9732b 100644 --- a/specification/ai/Azure.AI.Projects/agents/vector_stores/file_batches/models.tsp +++ b/specification/ai/Azure.AI.Projects/agents/vector_stores/file_batches/models.tsp @@ -1,4 +1,4 @@ -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/agents/vector_stores/file_batches/routes.tsp b/specification/ai/Azure.AI.Projects/agents/vector_stores/file_batches/routes.tsp index 19246a6a3b34..1e09b52360d4 100644 --- a/specification/ai/Azure.AI.Projects/agents/vector_stores/file_batches/routes.tsp +++ b/specification/ai/Azure.AI.Projects/agents/vector_stores/file_batches/routes.tsp @@ -9,7 +9,7 @@ using TypeSpec.Rest; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; /** * Create a vector store file batch. diff --git a/specification/ai/Azure.AI.Projects/agents/vector_stores/files/models.tsp b/specification/ai/Azure.AI.Projects/agents/vector_stores/files/models.tsp index f7455045d144..8ef32a418bf2 100644 --- a/specification/ai/Azure.AI.Projects/agents/vector_stores/files/models.tsp +++ b/specification/ai/Azure.AI.Projects/agents/vector_stores/files/models.tsp @@ -1,4 +1,4 @@ -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/agents/vector_stores/files/routes.tsp b/specification/ai/Azure.AI.Projects/agents/vector_stores/files/routes.tsp index 2270e7c4179d..b0478f698b70 100644 --- a/specification/ai/Azure.AI.Projects/agents/vector_stores/files/routes.tsp +++ b/specification/ai/Azure.AI.Projects/agents/vector_stores/files/routes.tsp @@ -9,7 +9,7 @@ using TypeSpec.Rest; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; /** * Returns a list of vector store files. diff --git a/specification/ai/Azure.AI.Projects/agents/vector_stores/models.tsp b/specification/ai/Azure.AI.Projects/agents/vector_stores/models.tsp index 70f85557d83d..154f700adcab 100644 --- a/specification/ai/Azure.AI.Projects/agents/vector_stores/models.tsp +++ b/specification/ai/Azure.AI.Projects/agents/vector_stores/models.tsp @@ -1,4 +1,4 @@ -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/agents/vector_stores/routes.tsp b/specification/ai/Azure.AI.Projects/agents/vector_stores/routes.tsp index 37939ca26688..74f664fb6d1a 100644 --- a/specification/ai/Azure.AI.Projects/agents/vector_stores/routes.tsp +++ b/specification/ai/Azure.AI.Projects/agents/vector_stores/routes.tsp @@ -9,7 +9,7 @@ using TypeSpec.Rest; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Unified.Agents; +namespace Azure.AI.Projects.Agents; /** * Returns a list of vector stores. diff --git a/specification/ai/Azure.AI.Projects/common/models.tsp b/specification/ai/Azure.AI.Projects/common/models.tsp index e7686674da94..d81f5f0f85bf 100644 --- a/specification/ai/Azure.AI.Projects/common/models.tsp +++ b/specification/ai/Azure.AI.Projects/common/models.tsp @@ -9,7 +9,7 @@ using TypeSpec.Versioning; using Azure.ResourceManager; using Azure.ResourceManager.Foundations; -namespace Azure.AI.Unified; +namespace Azure.AI.Projects; @doc("The possible values for roles attributed to messages in a thread.") union MessageRole { diff --git a/specification/ai/Azure.AI.Projects/connections/models.tsp b/specification/ai/Azure.AI.Projects/connections/models.tsp index a7274699ef09..76fd20ef1366 100644 --- a/specification/ai/Azure.AI.Projects/connections/models.tsp +++ b/specification/ai/Azure.AI.Projects/connections/models.tsp @@ -13,7 +13,7 @@ using TypeSpec.Versioning; using Azure.Core; using Azure.Core.Traits; -namespace Azure.AI.Unified; +namespace Azure.AI.Projects; @doc("Response from the listSecrets operation") @resource("connections") diff --git a/specification/ai/Azure.AI.Projects/connections/routes.tsp b/specification/ai/Azure.AI.Projects/connections/routes.tsp index a7e4e687c5ed..dc8d7612d455 100644 --- a/specification/ai/Azure.AI.Projects/connections/routes.tsp +++ b/specification/ai/Azure.AI.Projects/connections/routes.tsp @@ -11,7 +11,7 @@ using Azure.Core; using Azure.Core.Traits; using Azure.Core.Foundations; -namespace Azure.AI.Unified; +namespace Azure.AI.Projects; alias ConnectionServiceTraits = SupportsClientRequestId & SupportsRepeatableRequests & diff --git a/specification/ai/Azure.AI.Projects/credentials/models.tsp b/specification/ai/Azure.AI.Projects/credentials/models.tsp index 27429d7f53e2..e4e3f9c913b5 100644 --- a/specification/ai/Azure.AI.Projects/credentials/models.tsp +++ b/specification/ai/Azure.AI.Projects/credentials/models.tsp @@ -11,7 +11,7 @@ using TypeSpec.Versioning; using Azure.Core; using Azure.Core.Traits; -namespace Azure.AI.Unified; +namespace Azure.AI.Projects; @doc("The different Credential types") union CredentialType { diff --git a/specification/ai/Azure.AI.Projects/datasets/models.tsp b/specification/ai/Azure.AI.Projects/datasets/models.tsp index d67d16017012..8c84463130ca 100644 --- a/specification/ai/Azure.AI.Projects/datasets/models.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/models.tsp @@ -14,7 +14,7 @@ using TypeSpec.Versioning; using Azure.Core; using Azure.Core.Traits; -namespace Azure.AI.Unified; +namespace Azure.AI.Projects; @doc("Enum to determine the type of data.") union DatasetType { @@ -36,7 +36,7 @@ model DatasetVersion { @doc("Data type") datasetType: DatasetType; - ...AssetBase + ...AssetBase; } @doc("PagedDataVersionBase Definition") diff --git a/specification/ai/Azure.AI.Projects/datasets/routes.tsp b/specification/ai/Azure.AI.Projects/datasets/routes.tsp index 9d12ed5ea8f4..7ae21d773909 100644 --- a/specification/ai/Azure.AI.Projects/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/routes.tsp @@ -12,7 +12,7 @@ using Azure.Core; using Azure.Core.Traits; using Azure.Core.Foundations; -namespace Azure.AI.Unified; +namespace Azure.AI.Projects; interface Datasets { #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" diff --git a/specification/ai/Azure.AI.Projects/deployments/models.tsp b/specification/ai/Azure.AI.Projects/deployments/models.tsp index 59064cf8e626..f2ccf1104221 100644 --- a/specification/ai/Azure.AI.Projects/deployments/models.tsp +++ b/specification/ai/Azure.AI.Projects/deployments/models.tsp @@ -13,7 +13,7 @@ using TypeSpec.Versioning; using Azure.Core; using Azure.Core.Traits; -namespace Azure.AI.Unified; +namespace Azure.AI.Projects; @doc("Model Deployment Definition") @resource("deployments") diff --git a/specification/ai/Azure.AI.Projects/deployments/routes.tsp b/specification/ai/Azure.AI.Projects/deployments/routes.tsp index 13356cb566a8..990bd2f3e406 100644 --- a/specification/ai/Azure.AI.Projects/deployments/routes.tsp +++ b/specification/ai/Azure.AI.Projects/deployments/routes.tsp @@ -11,7 +11,7 @@ using Azure.Core; using Azure.Core.Traits; using Azure.Core.Foundations; -namespace Azure.AI.Unified; +namespace Azure.AI.Projects; alias DeploymentServiceTraits = SupportsClientRequestId & SupportsRepeatableRequests & diff --git a/specification/ai/Azure.AI.Projects/evaluations/models.tsp b/specification/ai/Azure.AI.Projects/evaluations/models.tsp index 229dd6f1bafe..361ddb6d5b05 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/models.tsp @@ -14,7 +14,7 @@ using TypeSpec.Versioning; using Azure.Core; using Azure.Core.Traits; -namespace Azure.AI.Unified; +namespace Azure.AI.Projects; @doc("Evaluator Configuration") model EvaluatorConfiguration { diff --git a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp index ca34be3dbd03..36e5eafee141 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp @@ -11,7 +11,7 @@ using Azure.Core; using Azure.Core.Traits; using Azure.Core.Foundations; -namespace Azure.AI.Unified; +namespace Azure.AI.Projects; interface Evaluations { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Waiting for bug fix: https://github.com/Azure/typespec-azure-pr/issues/3739." diff --git a/specification/ai/Azure.AI.Projects/indexes/models.tsp b/specification/ai/Azure.AI.Projects/indexes/models.tsp index 0a60e58f747c..7e192328b51f 100644 --- a/specification/ai/Azure.AI.Projects/indexes/models.tsp +++ b/specification/ai/Azure.AI.Projects/indexes/models.tsp @@ -12,7 +12,7 @@ using TypeSpec.Versioning; using Azure.Core; using Azure.Core.Traits; -namespace Azure.AI.Unified; +namespace Azure.AI.Projects; @doc("Index resource Definition") @discriminator("indexType") @@ -20,7 +20,7 @@ model Index { @doc("Type of index") indexType: IndexType; - ...AssetBase + ...AssetBase; } @doc("Paged collection of Index items.") diff --git a/specification/ai/Azure.AI.Projects/indexes/routes.tsp b/specification/ai/Azure.AI.Projects/indexes/routes.tsp index f768d9f26eee..021729279788 100644 --- a/specification/ai/Azure.AI.Projects/indexes/routes.tsp +++ b/specification/ai/Azure.AI.Projects/indexes/routes.tsp @@ -11,7 +11,7 @@ using Azure.Core; using Azure.Core.Traits; using Azure.Core.Foundations; -namespace Azure.AI.Unified; +namespace Azure.AI.Projects; interface Indexes { #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" diff --git a/specification/ai/Azure.AI.Projects/main.tsp b/specification/ai/Azure.AI.Projects/main.tsp index 3b5ecfeda31d..7adba724f10a 100644 --- a/specification/ai/Azure.AI.Projects/main.tsp +++ b/specification/ai/Azure.AI.Projects/main.tsp @@ -55,7 +55,7 @@ namespace Azure.AI { } ) @versioned(Versions) -namespace Azure.AI.Unified { +namespace Azure.AI.Projects { @doc("Azure AI API versions") enum Versions { @doc("Azure AI API version 2025-05-01-preview.") diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json index e240a1cdb21c..18011e292e3c 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json @@ -336,7 +336,7 @@ "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "$connectionCategory", + "name": "$connectionType", "in": "query", "description": "Specific type of connection to return in list", "required": false, @@ -349,7 +349,7 @@ "ApiKey" ], "x-ms-enum": { - "name": "ConnectionCategory", + "name": "ConnectionType", "modelAsString": true, "values": [ { @@ -379,7 +379,7 @@ } ] }, - "x-ms-client-name": "connectionCategory" + "x-ms-client-name": "connectionType" }, { "$ref": "#/parameters/Azure.Core.TopQueryParameter" @@ -490,84 +490,6 @@ } } }, - "/connections/{connectionName}:getWithCredentials": { - "post": { - "operationId": "Connections_GetWithCredentials", - "description": "Get connection with secrets by name.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "connectionName", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/Connection" - }, - "headers": { - "Repeatability-Result": { - "type": "string", - "description": "Indicates whether the repeatable request was accepted or rejected.", - "enum": [ - "accepted", - "rejected" - ], - "x-ms-enum": { - "name": "RepeatabilityResult", - "modelAsString": false, - "values": [ - { - "name": "accepted", - "value": "accepted", - "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." - }, - { - "name": "rejected", - "value": "rejected", - "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." - } - ] - } - }, - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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." - } - } - } - } - } - }, "/datasets": { "get": { "operationId": "Datasets_ListLatestDatasets", @@ -1687,228 +1609,6 @@ } } }, - "/models/chat/completions": { - "post": { - "operationId": "Models_GetChatCompletions", - "description": "Gets chat completions for the provided chat messages.\nCompletions support a wide variety of tasks and generate text that continues from or \"completes\"\nprovided prompt data. The method makes a REST API call to the `/chat/completions` route\non the given endpoint.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "extra-parameters", - "in": "header", - "description": "Controls what happens if extra parameters, undefined by the REST API,\nare passed in the JSON request payload.\nThis sets the HTTP request header `extra-parameters`.", - "required": false, - "type": "string", - "enum": [ - "error", - "drop", - "pass-through" - ], - "x-ms-enum": { - "name": "ExtraParameters", - "modelAsString": true, - "values": [ - { - "name": "error", - "value": "error", - "description": "The service will error if it detected extra parameters in the request payload. This is the service default." - }, - { - "name": "drop", - "value": "drop", - "description": "The service will ignore (drop) extra parameters in the request payload. It will only pass the known parameters to the back-end AI model." - }, - { - "name": "pass_through", - "value": "pass-through", - "description": "The service will pass extra parameters to the back-end AI model." - } - ] - }, - "x-ms-client-name": "extra_params" - }, - { - "name": "body", - "in": "body", - "description": "The parameters of the chat completions request.", - "required": true, - "schema": { - "$ref": "#/definitions/ChatCompletionsOptions" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/ChatCompletions" - } - }, - "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." - } - } - } - } - } - }, - "/models/embeddings": { - "post": { - "operationId": "Models_GetEmbeddings", - "description": "Return the embedding vectors for given text prompts.\nThe method makes a REST API call to the `/embeddings` route on the given endpoint.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "extra-parameters", - "in": "header", - "description": "Controls what happens if extra parameters, undefined by the REST API,\nare passed in the JSON request payload.\nThis sets the HTTP request header `extra-parameters`.", - "required": false, - "type": "string", - "enum": [ - "error", - "drop", - "pass-through" - ], - "x-ms-enum": { - "name": "ExtraParameters", - "modelAsString": true, - "values": [ - { - "name": "error", - "value": "error", - "description": "The service will error if it detected extra parameters in the request payload. This is the service default." - }, - { - "name": "drop", - "value": "drop", - "description": "The service will ignore (drop) extra parameters in the request payload. It will only pass the known parameters to the back-end AI model." - }, - { - "name": "pass_through", - "value": "pass-through", - "description": "The service will pass extra parameters to the back-end AI model." - } - ] - }, - "x-ms-client-name": "extra_params" - }, - { - "name": "body", - "in": "body", - "description": "The parameters of the embeddings request.", - "required": true, - "schema": { - "$ref": "#/definitions/EmbeddingsOptions" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/EmbeddingsResult" - } - }, - "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." - } - } - } - } - } - }, - "/models/images/embeddings": { - "post": { - "operationId": "Models_GetImageEmbeddings", - "description": "Return the embedding vectors for given images.\nThe method makes a REST API call to the `/images/embeddings` route on the given endpoint.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "extra-parameters", - "in": "header", - "description": "Controls what happens if extra parameters, undefined by the REST API,\nare passed in the JSON request payload.\nThis sets the HTTP request header `extra-parameters`.", - "required": false, - "type": "string", - "enum": [ - "error", - "drop", - "pass-through" - ], - "x-ms-enum": { - "name": "ExtraParameters", - "modelAsString": true, - "values": [ - { - "name": "error", - "value": "error", - "description": "The service will error if it detected extra parameters in the request payload. This is the service default." - }, - { - "name": "drop", - "value": "drop", - "description": "The service will ignore (drop) extra parameters in the request payload. It will only pass the known parameters to the back-end AI model." - }, - { - "name": "pass_through", - "value": "pass-through", - "description": "The service will pass extra parameters to the back-end AI model." - } - ] - }, - "x-ms-client-name": "extra_params" - }, - { - "name": "body", - "in": "body", - "description": "The parameters of the image embeddings request.", - "required": true, - "schema": { - "$ref": "#/definitions/ImageEmbeddingsOptions" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/EmbeddingsResult" - } - }, - "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." - } - } - } - } - } - }, "/threads": { "post": { "operationId": "Agents_CreateThread", @@ -4598,7 +4298,7 @@ "description": "The definition of Azure function.", "properties": { "function": { - "$ref": "#/definitions/FunctionDefinition", + "$ref": "#/definitions/Agents.FunctionDefinition", "description": "The definition of azure function and its parameters." }, "input_binding": { @@ -5400,6 +5100,27 @@ ] } }, + "Agents.FunctionDefinition": { + "type": "object", + "description": "The input definition information for a function.", + "properties": { + "name": { + "type": "string", + "description": "The name of the function to be called." + }, + "description": { + "type": "string", + "description": "A description of what the function does, used by the model to choose when and how to call the function." + }, + "parameters": { + "description": "The parameters the functions accepts, described as a JSON Schema object." + } + }, + "required": [ + "name", + "parameters" + ] + }, "Agents.FunctionName": { "type": "object", "description": "The function name that will be used, if using the `function` tool", @@ -5418,7 +5139,7 @@ "description": "The input definition information for a function tool as used to configure an agent.", "properties": { "function": { - "$ref": "#/definitions/FunctionDefinition", + "$ref": "#/definitions/Agents.FunctionDefinition", "description": "The definition of the concrete function that the function tool should call." } }, @@ -9465,30 +9186,6 @@ } }, "AssistantsApiResponseFormatOption": {}, - "AudioContentFormat": { - "type": "string", - "description": "A representation of the possible audio formats for audio.", - "enum": [ - "wav", - "mp3" - ], - "x-ms-enum": { - "name": "AudioContentFormat", - "modelAsString": true, - "values": [ - { - "name": "wav", - "value": "wav", - "description": "Specifies audio in WAV format." - }, - { - "name": "mp3", - "value": "mp3", - "description": "Specifies audio in MP3 format." - } - ] - } - }, "Azure.Core.Foundations.Error": { "type": "object", "description": "The error object.", @@ -9612,912 +9309,22 @@ "credential" ] }, - "ChatChoice": { - "type": "object", - "description": "The representation of a single prompt completion as part of an overall chat completions request.\nGenerally, `n` choices are generated per provided prompt with a default value of 1.\nToken limits and other settings may limit the number of choices generated.", - "properties": { - "index": { - "type": "integer", - "format": "int32", - "description": "The ordered index associated with this chat completions choice." - }, - "finish_reason": { - "$ref": "#/definitions/CompletionsFinishReason", - "description": "The reason that this chat completions choice completed its generated.", - "x-nullable": true - }, - "message": { - "$ref": "#/definitions/ChatResponseMessage", - "description": "The chat message for a given chat completions prompt." - } - }, - "required": [ - "index", - "finish_reason", - "message" - ] - }, - "ChatCompletions": { + "Connection": { "type": "object", - "description": "Representation of the response data from a chat completions request.\nCompletions support a wide variety of tasks and generate text that continues from or \"completes\"\nprovided prompt data.", + "description": "Response from the listSecrets operation", "properties": { "id": { "type": "string", - "description": "A unique identifier associated with this chat completions response." - }, - "object": { - "type": "string", - "description": "The response object type, which is always `chat.completion`.", - "enum": [ - "chat.completion" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "created": { - "type": "integer", - "format": "unixtime", - "description": "The first timestamp associated with generation activity for this completions response,\nrepresented as seconds since the beginning of the Unix epoch of 00:00 on 1 Jan 1970." - }, - "model": { - "type": "string", - "description": "The model used for the chat completion." - }, - "choices": { - "type": "array", - "description": "The collection of completions choices associated with this completions response.\nGenerally, `n` choices are generated per provided prompt with a default value of 1.\nToken limits and other settings may limit the number of choices generated.", - "minItems": 1, - "items": { - "$ref": "#/definitions/ChatChoice" - }, - "x-ms-identifiers": [] - }, - "usage": { - "$ref": "#/definitions/CompletionsUsage", - "description": " Usage information for tokens processed and generated as part of this completions operation." - } - }, - "required": [ - "id", - "object", - "created", - "model", - "choices", - "usage" - ] - }, - "ChatCompletionsAudio": { - "type": "object", - "description": "A representation of the audio generated by the model.", - "properties": { - "id": { - "type": "string", - "description": " Unique identifier for the audio response. This value can be used in chat history messages instead of passing \n the full audio object." - }, - "expires_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) at which the audio piece expires and can't be any longer referenced by its ID in \nmulti-turn conversations.", - "x-ms-client-name": "expiresAt" - }, - "data": { - "type": "string", - "description": "Base64 encoded audio data" - }, - "format": { - "$ref": "#/definitions/AudioContentFormat", - "description": "The format of the audio content. If format is not provided, it will match the format used in the\ninput audio request." - }, - "transcript": { - "type": "string", - "description": "The transcript of the audio file." - } - }, - "required": [ - "id", - "expires_at", - "data", - "transcript" - ] - }, - "ChatCompletionsModality": { - "type": "string", - "description": "The modalities that the model is allowed to use for the chat completions response.", - "enum": [ - "text", - "audio" - ], - "x-ms-enum": { - "name": "ChatCompletionsModality", - "modelAsString": true, - "values": [ - { - "name": "text", - "value": "text", - "description": "The model is only allowed to generate text." - }, - { - "name": "audio", - "value": "audio", - "description": "The model is allowed to generate audio." - } - ] - } - }, - "ChatCompletionsNamedToolChoice": { - "type": "object", - "description": "A tool selection of a specific, named function tool that will limit chat completions to using the named function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the tool. Currently, only `function` is supported.", - "enum": [ - "function" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "function": { - "$ref": "#/definitions/ChatCompletionsNamedToolChoiceFunction", - "description": "The function that should be called." - } - }, - "required": [ - "type", - "function" - ] - }, - "ChatCompletionsNamedToolChoiceFunction": { - "type": "object", - "description": "A tool selection of a specific, named function tool that will limit chat completions to using the named function.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function that should be called." - } - }, - "required": [ - "name" - ] - }, - "ChatCompletionsOptions": { - "type": "object", - "description": "The configuration information for a chat completions request.\nCompletions support a wide variety of tasks and generate text that continues from or \"completes\"\nprovided prompt data.", - "properties": { - "messages": { - "type": "array", - "description": "The collection of context messages associated with this chat completions request.\nTypical usage begins with a chat message for the System role that provides instructions for\nthe behavior of the assistant, followed by alternating messages between the User and\nAssistant roles.", - "minItems": 1, - "items": { - "$ref": "#/definitions/ChatRequestMessage" - }, - "x-ms-identifiers": [] - }, - "frequency_penalty": { - "type": "number", - "format": "float", - "description": "A value that influences the probability of generated tokens appearing based on their cumulative\nfrequency in generated text.\nPositive values will make tokens less likely to appear as their frequency increases and\ndecrease the likelihood of the model repeating the same statements verbatim.\nSupported range is [-2, 2].", - "default": 0, - "minimum": -2, - "maximum": 2 - }, - "stream": { - "type": "boolean", - "description": "A value indicating whether chat completions should be streamed for this request." - }, - "presence_penalty": { - "type": "number", - "format": "float", - "description": "A value that influences the probability of generated tokens appearing based on their existing\npresence in generated text.\nPositive values will make tokens less likely to appear when they already exist and increase the\nmodel's likelihood to output new topics.\nSupported range is [-2, 2].", - "default": 0, - "minimum": -2, - "maximum": 2 - }, - "temperature": { - "type": "number", - "format": "float", - "description": "The sampling temperature to use that controls the apparent creativity of generated completions.\nHigher values will make output more random while lower values will make results more focused\nand deterministic.\nIt is not recommended to modify temperature and top_p for the same completions request as the\ninteraction of these two settings is difficult to predict.\nSupported range is [0, 1].", - "default": 0.7, - "minimum": 0, - "maximum": 1 - }, - "top_p": { - "type": "number", - "format": "float", - "description": "An alternative to sampling with temperature called nucleus sampling. This value causes the\nmodel to consider the results of tokens with the provided probability mass. As an example, a\nvalue of 0.15 will cause only the tokens comprising the top 15% of probability mass to be\nconsidered.\nIt is not recommended to modify temperature and top_p for the same completions request as the\ninteraction of these two settings is difficult to predict.\nSupported range is [0, 1].", - "default": 1, - "minimum": 0, - "maximum": 1 - }, - "max_tokens": { - "type": "integer", - "format": "int32", - "description": "The maximum number of tokens to generate.", - "minimum": 0 - }, - "response_format": { - "$ref": "#/definitions/ChatCompletionsResponseFormat", - "description": "An object specifying the format that the model must output.\n\nSetting to `{ \"type\": \"json_schema\", \"json_schema\": {...} }` enables Structured Outputs which ensures the model will match your supplied JSON schema.\n\nSetting to `{ \"type\": \"json_object\" }` enables JSON mode, which ensures the message the model generates is valid JSON.\n\n**Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly \"stuck\" request. Also note that the message content may be partially cut off if `finish_reason=\"length\"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length." - }, - "stop": { - "type": "array", - "description": "A collection of textual sequences that will end completions generation.", - "minItems": 1, - "items": { - "type": "string" - } - }, - "tools": { - "type": "array", - "description": "A list of tools the model may request to call. Currently, only functions are supported as a tool. The model\nmay response with a function call request and provide the input arguments in JSON format for that function.", - "minItems": 1, - "items": { - "$ref": "#/definitions/ChatCompletionsToolDefinition" - }, - "x-ms-identifiers": [] - }, - "tool_choice": { - "description": "If specified, the model will configure which of the provided tools it can use for the chat completions response.", - "x-ms-client-name": "toolChoice" - }, - "seed": { - "type": "integer", - "format": "int64", - "description": "If specified, the system will make a best effort to sample deterministically such that repeated requests with the\nsame seed and parameters should return the same result. Determinism is not guaranteed." - }, - "model": { - "type": "string", - "description": "ID of the specific AI model to use, if more than one model is available on the endpoint." - }, - "modalities": { - "type": "array", - "description": "The modalities that the model is allowed to use for the chat completions response. The default modality\nis `text`. Indicating an unsupported modality combination results in an 422 error.", - "items": { - "$ref": "#/definitions/ChatCompletionsModality" - } - } - }, - "required": [ - "messages" - ], - "additionalProperties": {} - }, - "ChatCompletionsResponseFormat": { - "type": "object", - "description": "Represents the format that the model must output. Use this to enable JSON mode instead of the default text mode.\nNote that to enable JSON mode, some AI models may also require you to instruct the model to produce JSON\nvia a system or user message.", - "properties": { - "type": { - "type": "string", - "description": "The response format type to use for chat completions." - } - }, - "discriminator": "type", - "required": [ - "type" - ] - }, - "ChatCompletionsResponseFormatJsonObject": { - "type": "object", - "description": "A response format for Chat Completions that restricts responses to emitting valid JSON objects.\nNote that to enable JSON mode, some AI models may also require you to instruct the model to produce JSON\nvia a system or user message.", - "allOf": [ - { - "$ref": "#/definitions/ChatCompletionsResponseFormat" - } - ], - "x-ms-discriminator-value": "json_object" - }, - "ChatCompletionsResponseFormatJsonSchema": { - "type": "object", - "description": "A response format for Chat Completions that restricts responses to emitting valid JSON objects, with a\nJSON schema specified by the caller.", - "properties": { - "json_schema": { - "$ref": "#/definitions/ChatCompletionsResponseFormatJsonSchemaDefinition", - "description": "The definition of the required JSON schema in the response, and associated metadata." - } - }, - "required": [ - "json_schema" - ], - "allOf": [ - { - "$ref": "#/definitions/ChatCompletionsResponseFormat" - } - ], - "x-ms-discriminator-value": "json_schema" - }, - "ChatCompletionsResponseFormatJsonSchemaDefinition": { - "type": "object", - "description": "The definition of the required JSON schema in the response, and associated metadata.", - "properties": { - "name": { - "type": "string", - "description": "The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64." - }, - "schema": { - "type": "object", - "description": "The definition of the JSON schema", - "additionalProperties": {} - }, - "description": { - "type": "string", - "description": "A description of the response format, used by the AI model to determine how to generate responses in this format." - }, - "strict": { - "type": "boolean", - "description": "Whether to enable strict schema adherence when generating the output.\nIf set to true, the model will always follow the exact schema defined in the `schema` field. Only a subset of\nJSON Schema is supported when `strict` is `true`.", - "default": false - } - }, - "required": [ - "name", - "schema" - ] - }, - "ChatCompletionsResponseFormatText": { - "type": "object", - "description": "A response format for Chat Completions that emits text responses. This is the default response format.", - "allOf": [ - { - "$ref": "#/definitions/ChatCompletionsResponseFormat" - } - ], - "x-ms-discriminator-value": "text" - }, - "ChatCompletionsToolCall": { - "type": "object", - "description": "A function tool call requested by the AI model.", - "properties": { - "id": { - "type": "string", - "description": "The ID of the tool call." - }, - "type": { - "type": "string", - "description": "The type of tool call. Currently, only `function` is supported.", - "enum": [ - "function" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "function": { - "$ref": "#/definitions/FunctionCall", - "description": "The details of the function call requested by the AI model." - } - }, - "required": [ - "id", - "type", - "function" - ] - }, - "ChatCompletionsToolChoicePreset": { - "type": "string", - "description": "Represents a generic policy for how a chat completions tool may be selected.", - "enum": [ - "auto", - "none", - "required" - ], - "x-ms-enum": { - "name": "ChatCompletionsToolChoicePreset", - "modelAsString": true, - "values": [ - { - "name": "auto", - "value": "auto", - "description": "Specifies that the model may either use any of the tools provided in this chat completions request or\ninstead return a standard chat completions response as if no tools were provided." - }, - { - "name": "none", - "value": "none", - "description": "Specifies that the model should not respond with a tool call and should instead provide a standard chat\ncompletions response. Response content may still be influenced by the provided tool definitions." - }, - { - "name": "required", - "value": "required", - "description": "Specifies that the model should respond with a call to one or more tools." - } - ] - } - }, - "ChatCompletionsToolDefinition": { - "type": "object", - "description": "The definition of a chat completions tool that can call a function.", - "properties": { - "type": { - "type": "string", - "description": "The type of the tool. Currently, only `function` is supported.", - "enum": [ - "function" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "function": { - "$ref": "#/definitions/FunctionDefinition", - "description": "The function definition details for the function tool." - } - }, - "required": [ - "type", - "function" - ] - }, - "ChatMessageAudioContentItem": { - "type": "object", - "description": "A structured chat content item containing an audio reference.", - "properties": { - "audio_url": { - "$ref": "#/definitions/ChatMessageAudioUrl", - "description": "An internet location, which must be accessible to the model, from which the audio may be retrieved.", - "x-ms-client-name": "audioUrl" - } - }, - "required": [ - "audio_url" - ], - "allOf": [ - { - "$ref": "#/definitions/ChatMessageContentItem" - } - ], - "x-ms-discriminator-value": "audio_url" - }, - "ChatMessageAudioUrl": { - "type": "object", - "description": "An internet location from which the model may retrieve an audio.", - "properties": { - "url": { - "type": "string", - "description": "The URL of the audio." - } - }, - "required": [ - "url" - ] - }, - "ChatMessageContentItem": { - "type": "object", - "description": "An abstract representation of a structured content item within a chat message.", - "properties": { - "type": { - "type": "string", - "description": "The discriminated object type." - } - }, - "discriminator": "type", - "required": [ - "type" - ] - }, - "ChatMessageImageContentItem": { - "type": "object", - "description": "A structured chat content item containing an image reference.", - "properties": { - "image_url": { - "$ref": "#/definitions/ChatMessageImageUrl", - "description": "An internet location, which must be accessible to the model,from which the image may be retrieved.", - "x-ms-client-name": "imageUrl" - } - }, - "required": [ - "image_url" - ], - "allOf": [ - { - "$ref": "#/definitions/ChatMessageContentItem" - } - ], - "x-ms-discriminator-value": "image_url" - }, - "ChatMessageImageDetailLevel": { - "type": "string", - "description": "A representation of the possible image detail levels for image-based chat completions message content.", - "enum": [ - "auto", - "low", - "high" - ], - "x-ms-enum": { - "name": "ChatMessageImageDetailLevel", - "modelAsString": true, - "values": [ - { - "name": "auto", - "value": "auto", - "description": "Specifies that the model should determine which detail level to apply using heuristics like image size." - }, - { - "name": "low", - "value": "low", - "description": "Specifies that image evaluation should be constrained to the 'low-res' model that may be faster and consume fewer\ntokens but may also be less accurate for highly detailed images." - }, - { - "name": "high", - "value": "high", - "description": "Specifies that image evaluation should enable the 'high-res' model that may be more accurate for highly detailed\nimages but may also be slower and consume more tokens." - } - ] - } - }, - "ChatMessageImageUrl": { - "type": "object", - "description": "An internet location from which the model may retrieve an image.", - "properties": { - "url": { - "type": "string", - "description": "The URL of the image." - }, - "detail": { - "$ref": "#/definitions/ChatMessageImageDetailLevel", - "description": "The evaluation quality setting to use, which controls relative prioritization of speed, token consumption, and\naccuracy." - } - }, - "required": [ - "url" - ] - }, - "ChatMessageInputAudio": { - "type": "object", - "description": "The details of an audio chat message content part.", - "properties": { - "data": { - "type": "string", - "description": "Base64 encoded audio data" - }, - "format": { - "$ref": "#/definitions/AudioContentFormat", - "description": "The audio format of the audio content." - } - }, - "required": [ - "data", - "format" - ] - }, - "ChatMessageInputAudioContentItem": { - "type": "object", - "description": "A structured chat content item containing an audio content.", - "properties": { - "format": { - "$ref": "#/definitions/AudioContentFormat", - "description": "The audio format of the audio reference." - } - }, - "required": [ - "format" - ], - "allOf": [ - { - "$ref": "#/definitions/ChatMessageContentItem" - } - ], - "x-ms-discriminator-value": "input_audio" - }, - "ChatMessageTextContentItem": { - "type": "object", - "description": "A structured chat content item containing plain text.", - "properties": { - "text": { - "type": "string", - "description": "The content of the message." - } - }, - "required": [ - "text" - ], - "allOf": [ - { - "$ref": "#/definitions/ChatMessageContentItem" - } - ], - "x-ms-discriminator-value": "text" - }, - "ChatRequestAssistantMessage": { - "type": "object", - "description": "A request chat message representing response or action from the assistant.", - "properties": { - "content": { - "type": "string", - "description": "The content of the message." - }, - "tool_calls": { - "type": "array", - "description": "The tool calls that must be resolved and have their outputs appended to subsequent input messages for the chat\ncompletions request to resolve as configured.", - "items": { - "$ref": "#/definitions/ChatCompletionsToolCall" - }, - "x-ms-client-name": "toolCalls" - }, - "audio": { - "$ref": "#/definitions/ChatRequestAudioReference", - "description": " The audio generated by a previous response in a multi-turn conversation." - } - }, - "allOf": [ - { - "$ref": "#/definitions/ChatRequestMessage" - } - ], - "x-ms-discriminator-value": "assistant" - }, - "ChatRequestAudioReference": { - "type": "object", - "description": "A reference to an audio response generated by the model.", - "properties": { - "id": { - "type": "string", - "description": " Unique identifier for the audio response. This value corresponds to the id of a previous audio completion." - } - }, - "required": [ - "id" - ] - }, - "ChatRequestMessage": { - "type": "object", - "description": "An abstract representation of a chat message as provided in a request.", - "properties": { - "role": { - "$ref": "#/definitions/ChatRole", - "description": "The chat role associated with this message." - } - }, - "discriminator": "role", - "required": [ - "role" - ] - }, - "ChatRequestSystemMessage": { - "type": "object", - "description": "A request chat message containing system instructions that influence how the model will generate a chat completions\nresponse.", - "properties": { - "content": { - "type": "string", - "description": "The contents of the system message." - } - }, - "required": [ - "content" - ], - "allOf": [ - { - "$ref": "#/definitions/ChatRequestMessage" - } - ], - "x-ms-discriminator-value": "system" - }, - "ChatRequestToolMessage": { - "type": "object", - "description": "A request chat message representing requested output from a configured tool.", - "properties": { - "content": { - "type": "string", - "description": "The content of the message." - }, - "tool_call_id": { - "type": "string", - "description": "The ID of the tool call resolved by the provided content.", - "x-ms-client-name": "toolCallId" - } - }, - "required": [ - "tool_call_id" - ], - "allOf": [ - { - "$ref": "#/definitions/ChatRequestMessage" - } - ], - "x-ms-discriminator-value": "tool" - }, - "ChatRequestUserMessage": { - "type": "object", - "description": "A request chat message representing user input to the assistant.", - "properties": { - "content": { - "description": "The contents of the user message, with available input types varying by selected model." - } - }, - "required": [ - "content" - ], - "allOf": [ - { - "$ref": "#/definitions/ChatRequestMessage" - } - ], - "x-ms-discriminator-value": "user" - }, - "ChatResponseMessage": { - "type": "object", - "description": "A representation of a chat message as received in a response.", - "properties": { - "role": { - "$ref": "#/definitions/ChatRole", - "description": "The chat role associated with the message." - }, - "content": { - "type": "string", - "description": "The content of the message.", - "x-nullable": true - }, - "tool_calls": { - "type": "array", - "description": "The tool calls that must be resolved and have their outputs appended to subsequent input messages for the chat\ncompletions request to resolve as configured.", - "items": { - "$ref": "#/definitions/ChatCompletionsToolCall" - }, - "x-ms-client-name": "toolCalls" - }, - "audio": { - "$ref": "#/definitions/ChatCompletionsAudio", - "description": " The audio generated by the model as a response to the messages if the model is configured to generate audio." - } - }, - "required": [ - "role", - "content" - ] - }, - "ChatRole": { - "type": "string", - "description": "A description of the intended purpose of a message within a chat completions interaction.", - "enum": [ - "system", - "developer", - "user", - "assistant", - "tool" - ], - "x-ms-enum": { - "name": "ChatRole", - "modelAsString": true, - "values": [ - { - "name": "system", - "value": "system", - "description": "The role that instructs or sets the behavior of the assistant." - }, - { - "name": "developer", - "value": "developer", - "description": "The role that provides instructions to the model prioritized ahead of user messages." - }, - { - "name": "user", - "value": "user", - "description": "The role that provides input for chat completions." - }, - { - "name": "assistant", - "value": "assistant", - "description": "The role that provides responses to system-instructed, user-prompted input." - }, - { - "name": "tool", - "value": "tool", - "description": "The role that represents extension tool activity within a chat completions operation." - } - ] - } - }, - "CompletionsFinishReason": { - "type": "string", - "description": "Representation of the manner in which a completions response concluded.", - "enum": [ - "stop", - "length", - "content_filter", - "tool_calls" - ], - "x-ms-enum": { - "name": "CompletionsFinishReason", - "modelAsString": true, - "values": [ - { - "name": "stopped", - "value": "stop", - "description": "Completions ended normally and reached its end of token generation." - }, - { - "name": "tokenLimitReached", - "value": "length", - "description": "Completions exhausted available token limits before generation could complete." - }, - { - "name": "contentFiltered", - "value": "content_filter", - "description": "Completions generated a response that was identified as potentially sensitive per content\nmoderation policies." - }, - { - "name": "toolCalls", - "value": "tool_calls", - "description": "Completion ended with the model calling a provided tool for output." - } - ] - } - }, - "CompletionsUsage": { - "type": "object", - "description": "Representation of the token counts processed for a completions request.\nCounts consider all tokens across prompts, choices, choice alternates, best_of generations, and\nother consumers.", - "properties": { - "completion_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of tokens generated across all completions emissions." - }, - "prompt_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of tokens in the provided prompts for the completions request." - }, - "total_tokens": { - "type": "integer", - "format": "int32", - "description": "The total number of tokens processed for the completions request and response." - }, - "completion_tokens_details": { - "$ref": "#/definitions/CompletionsUsageDetails", - "description": "Breakdown of tokens used in a completion." - }, - "prompt_tokens_details": { - "$ref": "#/definitions/PromptUsageDetails", - "description": "Breakdown of tokens used in the prompt/chat history." - } - }, - "required": [ - "completion_tokens", - "prompt_tokens", - "total_tokens" - ] - }, - "CompletionsUsageDetails": { - "type": "object", - "description": "A breakdown of tokens used in a completion.", - "properties": { - "audio_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of tokens corresponding to audio input." - }, - "total_tokens": { - "type": "integer", - "format": "int32", - "description": "The total number of tokens processed for the completions request and response." - } - }, - "required": [ - "audio_tokens", - "total_tokens" - ] - }, - "Connection": { - "type": "object", - "description": "Response from the listSecrets operation", - "properties": { - "id": { - "type": "string", - "description": "Fully qualified resource identifier", - "readOnly": true + "description": "Fully qualified resource identifier", + "readOnly": true }, "name": { "type": "string", "description": "The name of the resource", "readOnly": true }, - "credentials": { - "$ref": "#/definitions/BaseCredential", - "description": "Credential used to connect to the external resource.", - "readOnly": true - }, - "category": { - "$ref": "#/definitions/ConnectionCategory", + "type": { + "$ref": "#/definitions/ConnectionType", "description": "Category of the connection", "readOnly": true }, @@ -10525,17 +9332,24 @@ "type": "string", "description": "The connection URL to be used for this service", "readOnly": true + }, + "properties": { + "type": "object", + "description": "A collection of properties of the connection", + "additionalProperties": { + "type": "string" + } } }, "required": [ "id", "name", - "credentials", - "category", - "target" + "type", + "target", + "properties" ] }, - "ConnectionCategory": { + "ConnectionType": { "type": "string", "description": "The Type (or category) of the connection", "enum": [ @@ -10546,7 +9360,7 @@ "ApiKey" ], "x-ms-enum": { - "name": "ConnectionCategory", + "name": "ConnectionType", "modelAsString": true, "values": [ { @@ -10769,289 +9583,80 @@ "readOnly": true }, "modelName": { - "type": "string", - "description": "Publisher-specific name of the model", - "readOnly": true - }, - "modelVersion": { - "type": "string", - "description": "Publisher-specific version of the model", - "readOnly": true - }, - "publisher": { - "type": "string", - "description": "Name of the model publisher", - "readOnly": true - }, - "capabilities": { - "type": "object", - "description": "Capabilities of model", - "additionalProperties": { - "type": "string" - }, - "readOnly": true - }, - "raiPolicyName": { - "type": "string", - "description": "RAI policy enabled for model", - "readOnly": true - }, - "sku": { - "$ref": "#/definitions/Sku", - "description": "Sku of the model deployment", - "readOnly": true - }, - "connectionName": { - "type": "string", - "description": "Name of the connection the model comes from", - "readOnly": true - }, - "systemData": { - "$ref": "#/definitions/SystemData", - "description": "System data of the resource", - "readOnly": true - } - }, - "required": [ - "deploymentName", - "modelName", - "modelVersion", - "publisher", - "capabilities", - "raiPolicyName", - "sku", - "systemData" - ] - }, - "EmbeddingConfiguration": { - "type": "object", - "description": "Embedding configuration class", - "properties": { - "connectionId": { - "type": "string", - "description": "Connection id to embedding model" - }, - "deploymentName": { - "type": "string", - "description": "Deployment name of embedding model" - }, - "embeddingField": { - "type": "string", - "description": "Embedding field" - } - }, - "required": [ - "deploymentName", - "embeddingField" - ] - }, - "EmbeddingEncodingFormat": { - "type": "string", - "description": "Specifies the types of embeddings to generate. Compressed embeddings types like `uint8`, `int8`, `ubinary` and \n`binary`, may reduce storage costs without sacrificing the integrity of the data. Returns a 422 error if the\nmodel doesn't support the value or parameter. Read the model's documentation to know the values supported by\nthe your model.", - "enum": [ - "base64", - "binary", - "float", - "int8", - "ubinary", - "uint8" - ], - "x-ms-enum": { - "name": "EmbeddingEncodingFormat", - "modelAsString": true, - "values": [ - { - "name": "base64", - "value": "base64", - "description": "Get back binary representation of the embeddings encoded as Base64 string. OpenAI Python library retrieves \nembeddings from the API as encoded binary data, rather than using intermediate decimal representations as is \nusually done." - }, - { - "name": "binary", - "value": "binary", - "description": "Get back signed binary embeddings" - }, - { - "name": "float", - "value": "float", - "description": "Get back full precision embeddings" - }, - { - "name": "int8", - "value": "int8", - "description": "Get back signed int8 embeddings" - }, - { - "name": "ubinary", - "value": "ubinary", - "description": "Get back unsigned binary embeddings" - }, - { - "name": "uint8", - "value": "uint8", - "description": "Get back unsigned int8 embeddings" - } - ] - } - }, - "EmbeddingInputType": { - "type": "string", - "description": "Represents the input types used for embedding search.", - "enum": [ - "text", - "query", - "document" - ], - "x-ms-enum": { - "name": "EmbeddingInputType", - "modelAsString": true, - "values": [ - { - "name": "text", - "value": "text", - "description": "Indicates the input is a general text input." - }, - { - "name": "query", - "value": "query", - "description": "Indicates the input represents a search query to find the most relevant documents in your vector database." - }, - { - "name": "document", - "value": "document", - "description": "Indicates the input represents a document that is stored in a vector database." - } - ] - } - }, - "EmbeddingItem": { - "type": "object", - "description": "Representation of a single embeddings relatedness comparison.", - "properties": { - "embedding": { - "type": "array", - "description": "List of embedding values for the input prompt. These represent a measurement of the\nvector-based relatedness of the provided input. Or a base64 encoded string of the embedding vector.", - "items": { - "type": "number", - "format": "float" - } - }, - "index": { - "type": "integer", - "format": "int32", - "description": "Index of the prompt to which the EmbeddingItem corresponds." - }, - "object": { - "type": "string", - "description": "The object type of this embeddings item. Will always be `embedding`.", - "enum": [ - "embedding" - ], - "x-ms-enum": { - "modelAsString": false - } - } - }, - "required": [ - "embedding", - "index", - "object" - ] - }, - "EmbeddingsOptions": { - "type": "object", - "description": "The configuration information for an embeddings request.", - "properties": { - "input": { - "type": "array", - "description": "Input text to embed, encoded as a string or array of tokens.\nTo embed multiple inputs in a single request, pass an array\nof strings or array of token arrays.", - "items": { - "type": "string" - } - }, - "dimensions": { - "type": "integer", - "format": "int32", - "description": "Optional. The number of dimensions the resulting output embeddings should have.\nPassing null causes the model to use its default value.\nReturns a 422 error if the model doesn't support the value or parameter." - }, - "encoding_format": { - "$ref": "#/definitions/EmbeddingEncodingFormat", - "description": "Optional. The desired format for the returned embeddings." - }, - "input_type": { - "$ref": "#/definitions/EmbeddingInputType", - "description": "Optional. The type of the input.\nReturns a 422 error if the model doesn't support the value or parameter." + "type": "string", + "description": "Publisher-specific name of the model", + "readOnly": true }, - "model": { + "modelVersion": { "type": "string", - "description": "ID of the specific AI model to use, if more than one model is available on the endpoint." - } - }, - "required": [ - "input" - ], - "additionalProperties": {} - }, - "EmbeddingsResult": { - "type": "object", - "description": "Representation of the response data from an embeddings request.\nEmbeddings measure the relatedness of text strings and are commonly used for search, clustering,\nrecommendations, and other similar scenarios.", - "properties": { - "id": { + "description": "Publisher-specific version of the model", + "readOnly": true + }, + "publisher": { "type": "string", - "description": "Unique identifier for the embeddings result." + "description": "Name of the model publisher", + "readOnly": true }, - "data": { - "type": "array", - "description": "Embedding values for the prompts submitted in the request.", - "items": { - "$ref": "#/definitions/EmbeddingItem" + "capabilities": { + "type": "object", + "description": "Capabilities of model", + "additionalProperties": { + "type": "string" }, - "x-ms-identifiers": [] - }, - "usage": { - "$ref": "#/definitions/EmbeddingsUsage", - "description": "Usage counts for tokens input using the embeddings API." + "readOnly": true }, - "object": { + "raiPolicyName": { "type": "string", - "description": "The object type of the embeddings result. Will always be `list`.", - "enum": [ - "list" - ], - "x-ms-enum": { - "modelAsString": false - } + "description": "RAI policy enabled for model", + "readOnly": true }, - "model": { + "sku": { + "$ref": "#/definitions/Sku", + "description": "Sku of the model deployment", + "readOnly": true + }, + "connectionName": { "type": "string", - "description": "The model ID used to generate this result." + "description": "Name of the connection the model comes from", + "readOnly": true + }, + "systemData": { + "$ref": "#/definitions/SystemData", + "description": "System data of the resource", + "readOnly": true } }, "required": [ - "id", - "data", - "usage", - "object", - "model" + "deploymentName", + "modelName", + "modelVersion", + "publisher", + "capabilities", + "raiPolicyName", + "sku", + "systemData" ] }, - "EmbeddingsUsage": { + "EmbeddingConfiguration": { "type": "object", - "description": "Measurement of the amount of tokens used in this request and response.", + "description": "Embedding configuration class", "properties": { - "prompt_tokens": { - "type": "integer", - "format": "int32", - "description": "Number of tokens in the request." + "connectionId": { + "type": "string", + "description": "Connection id to embedding model" }, - "total_tokens": { - "type": "integer", - "format": "int32", - "description": "Total number of tokens transacted in this request/response. Should equal the\nnumber of tokens in the request." + "deploymentName": { + "type": "string", + "description": "Deployment name of embedding model" + }, + "embeddingField": { + "type": "string", + "description": "Embedding field" } }, "required": [ - "prompt_tokens", - "total_tokens" + "deploymentName", + "embeddingField" ] }, "Evaluation": { @@ -11166,46 +9771,6 @@ ] } }, - "FunctionCall": { - "type": "object", - "description": "The name and arguments of a function that should be called, as generated by the model.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to call." - }, - "arguments": { - "type": "string", - "description": "The arguments to call the function with, as generated by the model in JSON format.\nNote that the model does not always generate valid JSON, and may hallucinate parameters\nnot defined by your function schema. Validate the arguments in your code before calling\nyour function." - } - }, - "required": [ - "name", - "arguments" - ] - }, - "FunctionDefinition": { - "type": "object", - "description": "The definition of a caller-specified function that chat completions may invoke in response to matching user input.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does. The model will use this description when selecting the function and\ninterpreting its parameters." - }, - "parameters": { - "type": "object", - "description": "The parameters the function accepts, described as a JSON Schema object.", - "additionalProperties": {} - } - }, - "required": [ - "name" - ] - }, "IdAssetReference": { "type": "object", "description": "Reference to an asset via its ARM resource ID.", @@ -11227,58 +9792,6 @@ ], "x-ms-discriminator-value": "Id" }, - "ImageEmbeddingInput": { - "type": "object", - "description": "Represents an image with optional text.", - "properties": { - "image": { - "type": "string", - "description": "The input image encoded in base64 string as a data URL. Example: `data:image/{format};base64,{data}`." - }, - "text": { - "type": "string", - "description": "Optional. The text input to feed into the model (like DINO, CLIP).\nReturns a 422 error if the model doesn't support the value or parameter." - } - }, - "required": [ - "image" - ] - }, - "ImageEmbeddingsOptions": { - "type": "object", - "description": "The configuration information for an image embeddings request.", - "properties": { - "input": { - "type": "array", - "description": "Input image to embed. To embed multiple inputs in a single request, pass an array.\nThe input must not exceed the max input tokens for the model.", - "items": { - "$ref": "#/definitions/ImageEmbeddingInput" - }, - "x-ms-identifiers": [] - }, - "dimensions": { - "type": "integer", - "format": "int32", - "description": "Optional. The number of dimensions the resulting output embeddings should have.\nPassing null causes the model to use its default value.\nReturns a 422 error if the model doesn't support the value or parameter." - }, - "encoding_format": { - "$ref": "#/definitions/EmbeddingEncodingFormat", - "description": "Optional. The number of dimensions the resulting output embeddings should have.\nPassing null causes the model to use its default value.\nReturns a 422 error if the model doesn't support the value or parameter." - }, - "input_type": { - "$ref": "#/definitions/EmbeddingInputType", - "description": "Optional. The type of the input.\nReturns a 422 error if the model doesn't support the value or parameter." - }, - "model": { - "type": "string", - "description": "ID of the specific AI model to use, if more than one model is available on the endpoint." - } - }, - "required": [ - "input" - ], - "additionalProperties": {} - }, "Index": { "type": "object", "description": "Index resource Definition", @@ -11695,26 +10208,6 @@ ] } }, - "PromptUsageDetails": { - "type": "object", - "description": "A breakdown of tokens used in the prompt/chat history.", - "properties": { - "audio_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of tokens corresponding to audio input." - }, - "cached_tokens": { - "type": "integer", - "format": "int32", - "description": "The total number of tokens cached." - } - }, - "required": [ - "audio_tokens", - "cached_tokens" - ] - }, "ReferenceType": { "type": "string", "description": "Enum to determine which reference method to use for an asset.", @@ -11799,120 +10292,6 @@ "tier" ] }, - "StreamingChatChoiceUpdate": { - "type": "object", - "description": "Represents an update to a single prompt completion when the service is streaming updates \nusing Server Sent Events (SSE).\nGenerally, `n` choices are generated per provided prompt with a default value of 1.\nToken limits and other settings may limit the number of choices generated.", - "properties": { - "index": { - "type": "integer", - "format": "int32", - "description": "The ordered index associated with this chat completions choice." - }, - "finish_reason": { - "$ref": "#/definitions/CompletionsFinishReason", - "description": "The reason that this chat completions choice completed its generated.", - "x-nullable": true - }, - "delta": { - "$ref": "#/definitions/StreamingChatResponseMessageUpdate", - "description": "An update to the chat message for a given chat completions prompt." - } - }, - "required": [ - "index", - "finish_reason", - "delta" - ] - }, - "StreamingChatCompletionsUpdate": { - "type": "object", - "description": "Represents a response update to a chat completions request, when the service is streaming updates \nusing Server Sent Events (SSE).\nCompletions support a wide variety of tasks and generate text that continues from or \"completes\"\nprovided prompt data.", - "properties": { - "id": { - "type": "string", - "description": "A unique identifier associated with this chat completions response." - }, - "object": { - "type": "string", - "description": "The response object type, which is always `chat.completion`.", - "enum": [ - "chat.completion" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "created": { - "type": "integer", - "format": "unixtime", - "description": "The first timestamp associated with generation activity for this completions response,\nrepresented as seconds since the beginning of the Unix epoch of 00:00 on 1 Jan 1970." - }, - "model": { - "type": "string", - "description": "The model used for the chat completion." - }, - "choices": { - "type": "array", - "description": "An update to the collection of completion choices associated with this completions response.\nGenerally, `n` choices are generated per provided prompt with a default value of 1.\nToken limits and other settings may limit the number of choices generated.", - "minItems": 1, - "items": { - "$ref": "#/definitions/StreamingChatChoiceUpdate" - }, - "x-ms-identifiers": [] - }, - "usage": { - "$ref": "#/definitions/CompletionsUsage", - "description": "Usage information for tokens processed and generated as part of this completions operation." - } - }, - "required": [ - "id", - "object", - "created", - "model", - "choices" - ] - }, - "StreamingChatResponseMessageUpdate": { - "type": "object", - "description": "A representation of a chat message update as received in a streaming response.", - "properties": { - "role": { - "$ref": "#/definitions/ChatRole", - "description": "The chat role associated with the message. If present, should always be 'assistant'" - }, - "content": { - "type": "string", - "description": "The content of the message." - }, - "tool_calls": { - "type": "array", - "description": "The tool calls that must be resolved and have their outputs appended to subsequent input messages for the chat\ncompletions request to resolve as configured.", - "items": { - "$ref": "#/definitions/StreamingChatResponseToolCallUpdate" - }, - "x-ms-client-name": "toolCalls" - } - } - }, - "StreamingChatResponseToolCallUpdate": { - "type": "object", - "description": "An update to the function tool call information requested by the AI model.", - "properties": { - "id": { - "type": "string", - "description": "The ID of the tool call." - }, - "function": { - "$ref": "#/definitions/FunctionCall", - "description": "Updates to the function call requested by the AI model." - } - }, - "required": [ - "id", - "function" - ] - }, "SystemData": { "type": "object", "description": "Metadata pertaining to creation and last modification of the resource.", @@ -12026,25 +10405,6 @@ "format": "int32", "x-ms-parameter-location": "method" }, - "Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent": { - "name": "Repeatability-First-Sent", - "in": "header", - "description": "Specifies the date and time at which the request was first created.", - "required": false, - "type": "string", - "format": "date-time", - "x-ms-parameter-location": "method", - "x-ms-client-name": "repeatabilityFirstSent" - }, - "Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId": { - "name": "Repeatability-Request-ID", - "in": "header", - "description": "An opaque, globally-unique, client-generated string identifier for the request.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "repeatabilityRequestId" - }, "Azure.Core.SkipQueryParameter": { "name": "skip", "in": "query", From 3bde64e811ad6108136976a3ea47a99f4d0b9dad Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Thu, 13 Mar 2025 12:07:07 -0400 Subject: [PATCH 060/143] update evaluations operations --- .../Azure.AI.Projects/evaluations/models.tsp | 6 ++- .../Azure.AI.Projects/evaluations/routes.tsp | 52 ++++++++----------- 2 files changed, 25 insertions(+), 33 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/evaluations/models.tsp b/specification/ai/Azure.AI.Projects/evaluations/models.tsp index 229dd6f1bafe..d7e98371a752 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/models.tsp @@ -37,7 +37,7 @@ model InputData { } @doc("Dataset as source for evaluation.") -model Dataset extends InputData { +model InputDataset extends InputData { type: "dataset"; @doc("Evaluation input data") @@ -45,14 +45,16 @@ model Dataset extends InputData { } @doc("Evaluation Definition") +@resource("runs") model Evaluation { @doc("Identifier of the evaluation.") + @key("name") id?: string; @doc("Data for evaluation.") data: InputData; - @doc("Update stage to 'Archive' to archive the asset. Default is Development, which means the asset is under development.") + @doc("Display Name for evaluation. It helps to find the evaluation easily in AI Foundry. It does not need to be unique.") displayName?: string; @doc("Description of the evaluation. It can be used to store additional information about the evaluation and is mutable.") diff --git a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp index ca34be3dbd03..28b3fbbd95e2 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp @@ -13,43 +13,33 @@ using Azure.Core.Foundations; namespace Azure.AI.Unified; +alias ServiceTraits = SupportsClientRequestId & + NoRepeatableRequests & + NoConditionalRequests; + +alias EvaluationsOperations = Azure.Core.ResourceOperations; + +@route("evaluations") interface Evaluations { - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Waiting for bug fix: https://github.com/Azure/typespec-azure-pr/issues/3739." - @doc("Get an evaluation.") - @route("/evaluations/{id}") - @get - get is Azure.Core.Foundations.Operation< - { - @doc("Identifier of the evaluation.") - @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") - @maxLength(254) - @path - id: string; - }, - Evaluation + @doc("Get an evaluation run by name.") + get is EvaluationsOperations.ResourceRead; + + @doc("List evaluation runs") + list is EvaluationsOperations.ResourceList< + Evaluation, + ListQueryParametersTrait >; - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Waiting for bug fix: https://github.com/Azure/typespec-azure-pr/issues/3739." - @doc("Creates an evaluation.") - @route("/evaluations:create") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("Creates an evaluation run.") + @route("runs:createRun") @post - create is Azure.Core.Foundations.Operation< + createRun is Azure.Core.Foundations.Operation< { - @doc("Properties of Evaluation.") + @doc("Evalution to be run") @body - body: Evaluation; + evaluation: Evaluation; }, - ResourceCreatedResponse - >; - - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Waiting for bug fix: https://github.com/Azure/typespec-azure-pr/issues/3739." - @doc("List evaluations") - @route("/evaluations") - @get - list is Azure.Core.Foundations.Operation< - { - ...StandardListQueryParameters; - }, - PagedEvaluation + Evaluation >; } From dd26409dd0f4c4ba67e05ccb9e0cfcb3ec855e2f Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Thu, 13 Mar 2025 12:42:31 -0400 Subject: [PATCH 061/143] fix id being optional --- .../ai/Azure.AI.Projects/evaluations/models.tsp | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/evaluations/models.tsp b/specification/ai/Azure.AI.Projects/evaluations/models.tsp index 2fab53363062..6bddd0ef7e84 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/models.tsp @@ -49,7 +49,7 @@ model InputDataset extends InputData { model Evaluation { @doc("Identifier of the evaluation.") @key("name") - id?: string; + id: string; @doc("Data for evaluation.") data: InputData; @@ -77,16 +77,3 @@ model Evaluation { @doc("Evaluators to be used for the evaluation.") evaluators: Record; } - -@doc("Paged evaluation items") -@pagedResult -model PagedEvaluation { - @doc("The list of Evaluations.") - @extension("x-ms-identifiers", []) - @items - value: Evaluation[]; - - @doc("The link to the next page of items") - @nextLink - nextLink?: ResourceLocation; -} From 2d2713e0a39c13f953f6b4118dd4f14c0a6ce61c Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Thu, 13 Mar 2025 13:40:12 -0400 Subject: [PATCH 062/143] align to old naming --- specification/ai/Azure.AI.Projects/evaluations/routes.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp index 4628f80c5bee..149e390f1d38 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp @@ -32,7 +32,7 @@ interface Evaluations { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" @doc("Creates an evaluation run.") - @route("runs:createRun") + @route("runs:run") @post createRun is Azure.Core.Foundations.Operation< { From 423cfa755b46eaf217dec7fabde6f3cb837e87f9 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Fri, 14 Mar 2025 08:48:21 -0700 Subject: [PATCH 063/143] Rename package and folder to azure-ai-projects-dp1 (#33195) --- specification/ai/Azure.AI.Projects/tspconfig.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/ai/Azure.AI.Projects/tspconfig.yaml b/specification/ai/Azure.AI.Projects/tspconfig.yaml index 7a9b7a1a5ecd..6208c9ba1d3c 100644 --- a/specification/ai/Azure.AI.Projects/tspconfig.yaml +++ b/specification/ai/Azure.AI.Projects/tspconfig.yaml @@ -11,7 +11,7 @@ options: output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/azure-ai-projects-1dp.json" "@azure-tools/typespec-python": package-mode: "dataplane" - package-dir: "azure-ai-projects-1dp" + package-dir: "azure-ai-projects-dp1" package-name: "{package-dir}" flavor: azure generate-test: false From eba4829fecc7a83f717a58199b85405f0ce10cad Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri Date: Fri, 14 Mar 2025 11:52:43 -0400 Subject: [PATCH 064/143] add visibility param to key --- specification/ai/Azure.AI.Projects/evaluations/models.tsp | 1 + 1 file changed, 1 insertion(+) diff --git a/specification/ai/Azure.AI.Projects/evaluations/models.tsp b/specification/ai/Azure.AI.Projects/evaluations/models.tsp index 6bddd0ef7e84..f7032667fe1c 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/models.tsp @@ -49,6 +49,7 @@ model InputDataset extends InputData { model Evaluation { @doc("Identifier of the evaluation.") @key("name") + @visibility("read") id: string; @doc("Data for evaluation.") From 5afee0998634c7e5ef50d6f2b22a445986449895 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Mon, 17 Mar 2025 11:22:06 -0700 Subject: [PATCH 065/143] Update ConnectionType enum (#33224) --- .../Azure.AI.Projects/connections/models.tsp | 6 + .../azure-ai-projects-1dp.json | 127 ++++++++++++------ 2 files changed, 91 insertions(+), 42 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/connections/models.tsp b/specification/ai/Azure.AI.Projects/connections/models.tsp index 76fd20ef1366..59ef0e447fc9 100644 --- a/specification/ai/Azure.AI.Projects/connections/models.tsp +++ b/specification/ai/Azure.AI.Projects/connections/models.tsp @@ -58,4 +58,10 @@ union ConnectionType { @doc("Generic connection that uses API Key authentication") APIKey: "ApiKey", + + @doc("Application Insights") + ApplicationInsights: "AppInsights", + + @doc("Custom Keys") + Custom: "CustomKeys", } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json index 18011e292e3c..a8b86bd6a227 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json @@ -346,7 +346,9 @@ "AzureBlob", "CognitiveSearch", "CosmosDB", - "ApiKey" + "ApiKey", + "AppInsights", + "CustomKeys" ], "x-ms-enum": { "name": "ConnectionType", @@ -376,6 +378,16 @@ "name": "APIKey", "value": "ApiKey", "description": "Generic connection that uses API Key authentication" + }, + { + "name": "ApplicationInsights", + "value": "AppInsights", + "description": "Application Insights" + }, + { + "name": "Custom", + "value": "CustomKeys", + "description": "Custom Keys" } ] }, @@ -914,10 +926,10 @@ } } }, - "/evaluations": { + "/evaluations/runs": { "get": { "operationId": "Evaluations_List", - "description": "List evaluations", + "description": "List evaluation runs", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -930,6 +942,9 @@ }, { "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -937,6 +952,13 @@ "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/PagedEvaluation" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } } }, "default": { @@ -957,22 +979,23 @@ } } }, - "/evaluations/{id}": { + "/evaluations/runs/{name}": { "get": { "operationId": "Evaluations_Get", - "description": "Get an evaluation.", + "description": "Get an evaluation run by name.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "id", + "name": "name", "in": "path", "description": "Identifier of the evaluation.", "required": true, - "type": "string", - "maxLength": 254, - "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_]*$" + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -980,6 +1003,13 @@ "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Evaluation" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } } }, "default": { @@ -997,18 +1027,18 @@ } } }, - "/evaluations:create": { + "/evaluations/runs:run": { "post": { - "operationId": "Evaluations_Create", - "description": "Creates an evaluation.", + "operationId": "Evaluations_CreateRun", + "description": "Creates an evaluation run.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "body", + "name": "evaluation", "in": "body", - "description": "Properties of Evaluation.", + "description": "Evalution to be run", "required": true, "schema": { "$ref": "#/definitions/Evaluation" @@ -1016,8 +1046,8 @@ } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Evaluation" } @@ -9357,7 +9387,9 @@ "AzureBlob", "CognitiveSearch", "CosmosDB", - "ApiKey" + "ApiKey", + "AppInsights", + "CustomKeys" ], "x-ms-enum": { "name": "ConnectionType", @@ -9387,6 +9419,16 @@ "name": "APIKey", "value": "ApiKey", "description": "Generic connection that uses API Key authentication" + }, + { + "name": "ApplicationInsights", + "value": "AppInsights", + "description": "Application Insights" + }, + { + "name": "Custom", + "value": "CustomKeys", + "description": "Custom Keys" } ] } @@ -9472,25 +9514,6 @@ ], "x-ms-discriminator-value": "DataPath" }, - "Dataset": { - "type": "object", - "description": "Dataset as source for evaluation.", - "properties": { - "id": { - "type": "string", - "description": "Evaluation input data" - } - }, - "required": [ - "id" - ], - "allOf": [ - { - "$ref": "#/definitions/InputData" - } - ], - "x-ms-discriminator-value": "dataset" - }, "DatasetType": { "type": "string", "description": "Enum to determine the type of data.", @@ -9665,7 +9688,8 @@ "properties": { "id": { "type": "string", - "description": "Identifier of the evaluation." + "description": "Identifier of the evaluation.", + "readOnly": true }, "data": { "$ref": "#/definitions/InputData", @@ -9673,7 +9697,7 @@ }, "displayName": { "type": "string", - "description": "Update stage to 'Archive' to archive the asset. Default is Development, which means the asset is under development." + "description": "Display Name for evaluation. It helps to find the evaluation easily in AI Foundry. It does not need to be unique." }, "description": { "type": "string", @@ -9712,6 +9736,7 @@ } }, "required": [ + "id", "data", "evaluators" ] @@ -9889,6 +9914,25 @@ "type" ] }, + "InputDataset": { + "type": "object", + "description": "Dataset as source for evaluation.", + "properties": { + "id": { + "type": "string", + "description": "Evaluation input data" + } + }, + "required": [ + "id" + ], + "allOf": [ + { + "$ref": "#/definitions/InputData" + } + ], + "x-ms-discriminator-value": "dataset" + }, "ListSortOrder": { "type": "string", "description": "The available sorting options when requesting a list of response objects.", @@ -10072,15 +10116,14 @@ }, "PagedEvaluation": { "type": "object", - "description": "Paged evaluation items", + "description": "Paged collection of Evaluation items", "properties": { "value": { "type": "array", - "description": "The list of Evaluations.", + "description": "The Evaluation items on this page", "items": { "$ref": "#/definitions/Evaluation" - }, - "x-ms-identifiers": [] + } }, "nextLink": { "type": "string", From 7afc1fcc4dfe56d91e62593ed88eda1b7541c744 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Mon, 17 Mar 2025 14:34:52 -0400 Subject: [PATCH 066/143] Remove Extraneous Fields from Connection and Deployment (#33245) * Remove unnecessary deployments contracts * remove unnecessary connection fields * Run npx tsv . --- .../Azure.AI.Projects/connections/models.tsp | 4 - .../Azure.AI.Projects/connections/routes.tsp | 4 +- .../Azure.AI.Projects/deployments/models.tsp | 26 ++-- .../Azure.AI.Projects/deployments/routes.tsp | 4 +- .../azure-ai-projects-1dp.json | 119 +++--------------- 5 files changed, 29 insertions(+), 128 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/connections/models.tsp b/specification/ai/Azure.AI.Projects/connections/models.tsp index 59ef0e447fc9..849d91fade27 100644 --- a/specification/ai/Azure.AI.Projects/connections/models.tsp +++ b/specification/ai/Azure.AI.Projects/connections/models.tsp @@ -18,10 +18,6 @@ namespace Azure.AI.Projects; @doc("Response from the listSecrets operation") @resource("connections") model Connection { - @doc("Fully qualified resource identifier") - @visibility("read") - id: string; - @doc("The name of the resource") @visibility("read") @key("connectionName") diff --git a/specification/ai/Azure.AI.Projects/connections/routes.tsp b/specification/ai/Azure.AI.Projects/connections/routes.tsp index dc8d7612d455..90a1cab79109 100644 --- a/specification/ai/Azure.AI.Projects/connections/routes.tsp +++ b/specification/ai/Azure.AI.Projects/connections/routes.tsp @@ -14,8 +14,8 @@ using Azure.Core.Foundations; namespace Azure.AI.Projects; alias ConnectionServiceTraits = SupportsClientRequestId & - SupportsRepeatableRequests & - SupportsConditionalRequests; + NoRepeatableRequests & + NoConditionalRequests; alias ConnectionOperations = Azure.Core.ResourceOperations; diff --git a/specification/ai/Azure.AI.Projects/deployments/models.tsp b/specification/ai/Azure.AI.Projects/deployments/models.tsp index f2ccf1104221..c1bdaf3121a2 100644 --- a/specification/ai/Azure.AI.Projects/deployments/models.tsp +++ b/specification/ai/Azure.AI.Projects/deployments/models.tsp @@ -18,42 +18,34 @@ namespace Azure.AI.Projects; @doc("Model Deployment Definition") @resource("deployments") model Deployment { - @doc("Name of the deployment for the model") + @doc("Name of the deployment") @visibility("read") - @key("deploymentName") - deploymentName: string; + @key("name") + name: string; - @doc("Publisher-specific name of the model") + @doc("Publisher-specific name of the deployed model") @visibility("read") modelName: string; - @doc("Publisher-specific version of the model") + @doc("Publisher-specific version of the deployed model") @visibility("read") modelVersion: string; - @doc("Name of the model publisher") + @doc("Name of the deployed model's publisher") @visibility("read") - publisher: string; + modelPublisher: string; - @doc("Capabilities of model") + @doc("Capabilities of deployed model") @visibility("read") capabilities: Record; - @doc("RAI policy enabled for model") - @visibility("read") - raiPolicyName: string; - @doc("Sku of the model deployment") @visibility("read") sku: Sku; - @doc("Name of the connection the model comes from") + @doc("Name of the connection the deployment comes from") @visibility("read") connectionName?: string; - - @doc("System data of the resource") - @visibility("read") - systemData: SystemData; } #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" diff --git a/specification/ai/Azure.AI.Projects/deployments/routes.tsp b/specification/ai/Azure.AI.Projects/deployments/routes.tsp index 990bd2f3e406..15f8287fe44b 100644 --- a/specification/ai/Azure.AI.Projects/deployments/routes.tsp +++ b/specification/ai/Azure.AI.Projects/deployments/routes.tsp @@ -14,8 +14,8 @@ using Azure.Core.Foundations; namespace Azure.AI.Projects; alias DeploymentServiceTraits = SupportsClientRequestId & - SupportsRepeatableRequests & - SupportsConditionalRequests; + NoRepeatableRequests & + NoConditionalRequests; alias DeploymentOperations = Azure.Core.ResourceOperations; diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json index a8b86bd6a227..67a5d1fcee02 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json @@ -455,18 +455,6 @@ }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" } ], "responses": { @@ -476,10 +464,6 @@ "$ref": "#/definitions/Connection" }, "headers": { - "ETag": { - "type": "string", - "description": "The entity tag for the response." - }, "x-ms-client-request-id": { "type": "string", "format": "uuid", @@ -862,7 +846,7 @@ } } }, - "/deployments/{deploymentName}": { + "/deployments/{name}": { "get": { "operationId": "Deployments_Get", "description": "Get a deployed model.", @@ -871,26 +855,14 @@ "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "deploymentName", + "name": "name", "in": "path", - "description": "Name of the deployment for the model", + "description": "Name of the deployment", "required": true, "type": "string" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" } ], "responses": { @@ -900,10 +872,6 @@ "$ref": "#/definitions/Deployment" }, "headers": { - "ETag": { - "type": "string", - "description": "The entity tag for the response." - }, "x-ms-client-request-id": { "type": "string", "format": "uuid", @@ -9343,11 +9311,6 @@ "type": "object", "description": "Response from the listSecrets operation", "properties": { - "id": { - "type": "string", - "description": "Fully qualified resource identifier", - "readOnly": true - }, "name": { "type": "string", "description": "The name of the resource", @@ -9372,7 +9335,6 @@ } }, "required": [ - "id", "name", "type", "target", @@ -9600,39 +9562,34 @@ "type": "object", "description": "Model Deployment Definition", "properties": { - "deploymentName": { + "name": { "type": "string", - "description": "Name of the deployment for the model", + "description": "Name of the deployment", "readOnly": true }, "modelName": { "type": "string", - "description": "Publisher-specific name of the model", + "description": "Publisher-specific name of the deployed model", "readOnly": true }, "modelVersion": { "type": "string", - "description": "Publisher-specific version of the model", + "description": "Publisher-specific version of the deployed model", "readOnly": true }, - "publisher": { + "modelPublisher": { "type": "string", - "description": "Name of the model publisher", + "description": "Name of the deployed model's publisher", "readOnly": true }, "capabilities": { "type": "object", - "description": "Capabilities of model", + "description": "Capabilities of deployed model", "additionalProperties": { "type": "string" }, "readOnly": true }, - "raiPolicyName": { - "type": "string", - "description": "RAI policy enabled for model", - "readOnly": true - }, "sku": { "$ref": "#/definitions/Sku", "description": "Sku of the model deployment", @@ -9640,24 +9597,17 @@ }, "connectionName": { "type": "string", - "description": "Name of the connection the model comes from", - "readOnly": true - }, - "systemData": { - "$ref": "#/definitions/SystemData", - "description": "System data of the resource", + "description": "Name of the connection the deployment comes from", "readOnly": true } }, "required": [ - "deploymentName", + "name", "modelName", "modelVersion", - "publisher", + "modelPublisher", "capabilities", - "raiPolicyName", - "sku", - "systemData" + "sku" ] }, "EmbeddingConfiguration": { @@ -10059,7 +10009,8 @@ "description": "The Connection items on this page", "items": { "$ref": "#/definitions/Connection" - } + }, + "x-ms-identifiers": [] }, "nextLink": { "type": "string", @@ -10391,44 +10342,6 @@ "x-ms-parameter-location": "method", "x-ms-client-name": "clientRequestId" }, - "Azure.Core.ConditionalRequestHeaders.ifMatch": { - "name": "If-Match", - "in": "header", - "description": "The request should only proceed if an entity matches this string.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "ifMatch" - }, - "Azure.Core.ConditionalRequestHeaders.ifModifiedSince": { - "name": "If-Modified-Since", - "in": "header", - "description": "The request should only proceed if the entity was modified after this time.", - "required": false, - "type": "string", - "format": "date-time", - "x-ms-parameter-location": "method", - "x-ms-client-name": "ifModifiedSince" - }, - "Azure.Core.ConditionalRequestHeaders.ifNoneMatch": { - "name": "If-None-Match", - "in": "header", - "description": "The request should only proceed if no entity matches this string.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "ifNoneMatch" - }, - "Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince": { - "name": "If-Unmodified-Since", - "in": "header", - "description": "The request should only proceed if the entity was not modified after this time.", - "required": false, - "type": "string", - "format": "date-time", - "x-ms-parameter-location": "method", - "x-ms-client-name": "ifUnmodifiedSince" - }, "Azure.Core.Foundations.ApiVersionParameter": { "name": "api-version", "in": "query", From 94a064d1d28f9b3d6a9d6eb4fb7c29688e7705a2 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Wed, 19 Mar 2025 12:13:16 -0400 Subject: [PATCH 067/143] Dataset Review Feedback (#33252) * Update dataset with extra fields * update a docstring * add optional version in pendingupload response, and isReference to dataset version * make isreference readonly * add connection name to pendinguploadrequest * add uri_folder * add uri_folder * update swagger file --- .../ai/Azure.AI.Projects/common/models.tsp | 6 ++ .../ai/Azure.AI.Projects/datasets/models.tsp | 27 ++++++++- .../azure-ai-projects-1dp.json | 57 +++++++++++++++++-- 3 files changed, 84 insertions(+), 6 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/common/models.tsp b/specification/ai/Azure.AI.Projects/common/models.tsp index d81f5f0f85bf..5b9c8f7e116e 100644 --- a/specification/ai/Azure.AI.Projects/common/models.tsp +++ b/specification/ai/Azure.AI.Projects/common/models.tsp @@ -311,6 +311,9 @@ model PendingUploadRequest { @doc("If PendingUploadId is not provided, a random GUID will be used.") pendingUploadId?: string; + @doc("Name of Azure blob storage connection to use for generating temporary SAS token") + connectionName?: string; + @doc("TemporaryBlobReference is the only supported type.") pendingUploadType: PendingUploadType.temporaryBlobReference; } @@ -323,6 +326,9 @@ model PendingUploadResponse { @doc("ID for this upload request.") pendingUploadId: string; + @doc("Version of dataset to be created if user did not specify version when initially creating upload") + datasetVersion?: string; + @doc("TemporaryBlobReference is the only supported type") pendingUploadType: PendingUploadType.temporaryBlobReference; } diff --git a/specification/ai/Azure.AI.Projects/datasets/models.tsp b/specification/ai/Azure.AI.Projects/datasets/models.tsp index 8c84463130ca..8a5ad927dba5 100644 --- a/specification/ai/Azure.AI.Projects/datasets/models.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/models.tsp @@ -22,10 +22,14 @@ union DatasetType { @doc("URI file.") uri_file: "uri_file", + + @doc("URI folder.") + uri_folder: "uri_folder", } #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" @doc("DatasetVersion Definition") +@discriminator("type") model DatasetVersion { @doc("[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330") @visibility("read", "create") @@ -33,12 +37,31 @@ model DatasetVersion { @pattern("[a-zA-Z0-9_]") datasetUri: string; - @doc("Data type") - datasetType: DatasetType; + @doc("Dataset type") + type: DatasetType; + + @doc("Indicates if dataset is reference only or managed by dataset service. If true, the underlying data will be deleted when the dataset version is deleted") + @visibility("read") + isReference?: boolean; ...AssetBase; } +@doc("FileDatasetVersion Definition") +model FileDatasetVersion extends DatasetVersion { + @doc("Dataset type") + type: DatasetType.uri_file; + + @doc("Indicates OpenAI Purpose. FileDatasets created with this field will be compatible with OpenAI-specific features") + openAIPurpose: string; +} + +@doc("FileDatasetVersion Definition") +model FolderDatasetVersion extends DatasetVersion { + @doc("Dataset type") + type: DatasetType.uri_folder; +} + @doc("PagedDataVersionBase Definition") @pagedResult model PagedDatasetVersion { diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json index 67a5d1fcee02..e02d6a2a20b5 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json @@ -9480,7 +9480,8 @@ "type": "string", "description": "Enum to determine the type of data.", "enum": [ - "uri_file" + "uri_file", + "uri_folder" ], "x-ms-enum": { "name": "DatasetType", @@ -9490,6 +9491,11 @@ "name": "uri_file", "value": "uri_file", "description": "URI file." + }, + { + "name": "uri_folder", + "value": "uri_folder", + "description": "URI folder." } ] } @@ -9508,9 +9514,14 @@ "create" ] }, - "datasetType": { + "type": { "$ref": "#/definitions/DatasetType", - "description": "Data type" + "description": "Dataset type" + }, + "isReference": { + "type": "boolean", + "description": "Indicates if dataset is reference only or managed by dataset service. If true, the underlying data will be deleted when the dataset version is deleted", + "readOnly": true }, "stage": { "type": "string", @@ -9553,9 +9564,10 @@ "readOnly": true } }, + "discriminator": "type", "required": [ "datasetUri", - "datasetType" + "type" ] }, "Deployment": { @@ -9746,6 +9758,35 @@ ] } }, + "FileDatasetVersion": { + "type": "object", + "description": "FileDatasetVersion Definition", + "properties": { + "openAIPurpose": { + "type": "string", + "description": "Indicates OpenAI Purpose. FileDatasets created with this field will be compatible with OpenAI-specific features" + } + }, + "required": [ + "openAIPurpose" + ], + "allOf": [ + { + "$ref": "#/definitions/DatasetVersion" + } + ], + "x-ms-discriminator-value": "uri_file" + }, + "FolderDatasetVersion": { + "type": "object", + "description": "FileDatasetVersion Definition", + "allOf": [ + { + "$ref": "#/definitions/DatasetVersion" + } + ], + "x-ms-discriminator-value": "uri_folder" + }, "IdAssetReference": { "type": "object", "description": "Reference to an asset via its ARM resource ID.", @@ -10134,6 +10175,10 @@ "type": "string", "description": "If PendingUploadId is not provided, a random GUID will be used." }, + "connectionName": { + "type": "string", + "description": "Name of Azure blob storage connection to use for generating temporary SAS token" + }, "pendingUploadType": { "type": "string", "description": "TemporaryBlobReference is the only supported type.", @@ -10161,6 +10206,10 @@ "type": "string", "description": "ID for this upload request." }, + "datasetVersion": { + "type": "string", + "description": "Version of dataset to be created if user did not specify version when initially creating upload" + }, "pendingUploadType": { "type": "string", "description": "TemporaryBlobReference is the only supported type", From 72c43a5015030423abbc0546b77de326e9f0f6bb Mon Sep 17 00:00:00 2001 From: "Johan Stenberg (MSFT)" Date: Wed, 19 Mar 2025 13:52:07 -0700 Subject: [PATCH 068/143] Add service pattern templates for 1dp azure ai projects (#33235) * Update generated azure-ai-project-1dp.json to match TSP sources (recompiled) * Updated azure ai projects datasets to use common entity templates * Updated indexes to use versioned entity operations for azure ai projects. * Address review feedback/azure ai projects 1dp service patterns * Updated generated azure ai projects 1dp openapi description * Added support for client request id for repeatable creates * Added documentation and appropriate suppressions for operation templates for azure ai 1dp * cspell fixes azure ai projects 1dp * Formatting update * Fix broken merge * fix merge conflicts with datasets/models.tsp --------- Co-authored-by: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Co-authored-by: Neehar Duvvuri --- .../ai/Azure.AI.Projects/common/models.tsp | 9 +- .../ai/Azure.AI.Projects/datasets/models.tsp | 14 +- .../ai/Azure.AI.Projects/datasets/routes.tsp | 163 ++---- .../Azure.AI.Projects/evaluations/routes.tsp | 2 +- .../ai/Azure.AI.Projects/indexes/models.tsp | 14 +- .../ai/Azure.AI.Projects/indexes/routes.tsp | 137 ++--- .../ai/Azure.AI.Projects/servicepatterns.tsp | 121 ++++ .../azure-ai-projects-1dp.json | 545 ++++++++++++++---- 8 files changed, 628 insertions(+), 377 deletions(-) create mode 100644 specification/ai/Azure.AI.Projects/servicepatterns.tsp diff --git a/specification/ai/Azure.AI.Projects/common/models.tsp b/specification/ai/Azure.AI.Projects/common/models.tsp index 5b9c8f7e116e..c7f85775143c 100644 --- a/specification/ai/Azure.AI.Projects/common/models.tsp +++ b/specification/ai/Azure.AI.Projects/common/models.tsp @@ -233,11 +233,12 @@ alias AssetBase = { @doc("The name of the resource") @visibility("read") - name?: string; + @key + name: string; @doc("The version of the resource") @visibility("read") - version?: string; + version: string; @doc("The asset description text.") description?: string; @@ -250,11 +251,11 @@ alias AssetBase = { systemData?: SystemData; }; -#suppress "@azure-tools/typespec-providerhub/no-inline-model" "Need to create reponses correctly" +#suppress "@azure-tools/typespec-providerhub/no-inline-model" "Need to create responses correctly" alias ResourceCreatedResponse = TypeSpec.Http.Response<201> & T; -#suppress "@azure-tools/typespec-providerhub/no-inline-model" "Need to create reponses correctly" +#suppress "@azure-tools/typespec-providerhub/no-inline-model" "Need to create responses correctly" alias OkResponse = TypeSpec.Http.Response<200> & T; diff --git a/specification/ai/Azure.AI.Projects/datasets/models.tsp b/specification/ai/Azure.AI.Projects/datasets/models.tsp index 8a5ad927dba5..12bae6a70631 100644 --- a/specification/ai/Azure.AI.Projects/datasets/models.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/models.tsp @@ -29,6 +29,7 @@ union DatasetType { #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" @doc("DatasetVersion Definition") +@Rest.resource("datasets") @discriminator("type") model DatasetVersion { @doc("[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330") @@ -61,16 +62,3 @@ model FolderDatasetVersion extends DatasetVersion { @doc("Dataset type") type: DatasetType.uri_folder; } - -@doc("PagedDataVersionBase Definition") -@pagedResult -model PagedDatasetVersion { - @doc("The list of DatasetVersions.") - @extension("x-ms-identifiers", []) - @items - value: DatasetVersion[]; - - @doc("The link to the next page of results, if any.") - @nextLink - nextLink?: string; -} diff --git a/specification/ai/Azure.AI.Projects/datasets/routes.tsp b/specification/ai/Azure.AI.Projects/datasets/routes.tsp index 7ae21d773909..3570aeaf96ed 100644 --- a/specification/ai/Azure.AI.Projects/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/routes.tsp @@ -4,6 +4,7 @@ import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; import "../common/models.tsp"; import "./models.tsp"; +import "../servicepatterns.tsp"; using TypeSpec.Http; using TypeSpec.Rest; @@ -14,123 +15,47 @@ using Azure.Core.Foundations; namespace Azure.AI.Projects; -interface Datasets { - #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("List latest version of each dataset in a project.") - @route("/datasets") - @get - listLatestDatasets( - @doc("Continuation token for pagination. This is the nextLink from the previous response.") - @query("$continuationToken") - $continuationToken?: string, - - @doc("View type for including/excluding (for example) archived entities.") - @query("listViewType") - listViewType?: ListViewType, - ): PagedDatasetVersion; - - #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("List dataset versions of a specific dataset") - @route("/datasets/{name}/versions") - @get - listDatasetVersions( - @doc("Container name.") - @pattern("^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$") - @path - name: string, - - @doc("Please choose OrderBy value from ['createdtime', 'modifiedtime']") - @query("$orderBy") - $orderBy?: string, - - @doc("Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned") - @query("$top") - $top?: int32, - - @doc("Continuation token for pagination.") - @query("$skip") - $skip?: string, - - @doc("Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2") - @query("$tags") - $tags?: string, - - @doc("[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.") - @query("listViewType") - listViewType?: ListViewType, - ): PagedDatasetVersion; - - #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("Delete version.") - @route("/datasets/{name}/versions/{version}") - @delete - deleteVersion( - @doc("Container name.") - @pattern("^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$") - @path - name: string, - - @doc("Version identifier.") - @path - version: string, - ): void; - - #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("Get dataset version.") - @route("/datasets/{name}/versions/{version}") - @get - getVersion( - @doc("Container name.") - @pattern("^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$") - @path - name: string, - - @doc("Version identifier.") - @path - version: string, - ): DatasetVersion; - - #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("Create or update version.") - @route("/datasets/{name}/versions/{version}") - @put - createOrUpdate( - @doc("Container name.") - @pattern("^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$") - @path - name: string, - - @doc("Version identifier.") - @path - version: string, - - @doc("Version entity to create or update.") - @body - datasetVersion: DatasetVersion, - ): DatasetVersion; - - #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("Start pending upload.") - @post - @route("/datasets/{name}/versions/{version}/startPendingUpload") - createOrGetStartPendingUpload( - @doc("Container name.") - @pattern("^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$") - @path - name: string, - - @doc("Version identifier.") - @path - version: string, - - @doc("Pensing upload request.") - @body - pendingUploadRequest: PendingUploadRequest, - ): PendingUploadResponse; +alias ListDatasetVersionsParameters = { + @doc("Please choose OrderBy value from ['createdtime', 'modifiedtime']") + @query("$orderBy") + $orderBy?: string; + + @doc("Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned") + @query("$top") + $top?: int32; + + @doc("Continuation token for pagination.") + @query("$skip") + $skip?: string; + + @doc("Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2") + @query("$tags") + $tags?: string; + + @doc("[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.") + @query("listViewType") + listViewType?: ListViewType; +}; + +alias ListLatestDataSetVersionParameters = { + @doc("View type for including/excluding (for example) archived entities.") + @query("listViewType") + listViewType?: ListViewType; +}; + +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "We are using service specific operation templates" +interface Datasets + extends ServicePatterns.VersionedOperations< + DatasetVersion, + ListLatestDataSetVersionParameters, + ListDatasetVersionsParameters + > { + /** + * Create or start a pending upload of a dataset + */ + startPendingUpload is ServicePatterns.VersionedResourceAction< + DatasetVersion, + PendingUploadRequest, + PendingUploadResponse + >; } diff --git a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp index 149e390f1d38..d56315a30c94 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp @@ -36,7 +36,7 @@ interface Evaluations { @post createRun is Azure.Core.Foundations.Operation< { - @doc("Evalution to be run") + @doc("Evaluation to be run") @body evaluation: Evaluation; }, diff --git a/specification/ai/Azure.AI.Projects/indexes/models.tsp b/specification/ai/Azure.AI.Projects/indexes/models.tsp index 7e192328b51f..a4f289fd4a44 100644 --- a/specification/ai/Azure.AI.Projects/indexes/models.tsp +++ b/specification/ai/Azure.AI.Projects/indexes/models.tsp @@ -16,6 +16,7 @@ namespace Azure.AI.Projects; @doc("Index resource Definition") @discriminator("indexType") +@Rest.resource("indexes") model Index { @doc("Type of index") indexType: IndexType; @@ -23,19 +24,6 @@ model Index { ...AssetBase; } -@doc("Paged collection of Index items.") -@pagedResult -model PagedIndex { - @doc("The list of Indexes.") - @extension("x-ms-identifiers", []) - @items - value: Index[]; - - @doc("The link to the next page of items") - @nextLink - nextLink?: ResourceLocation; -} - @doc("Azure AI Search Index Definition") model AzureAISearchIndex extends Index { @doc("Type of index") diff --git a/specification/ai/Azure.AI.Projects/indexes/routes.tsp b/specification/ai/Azure.AI.Projects/indexes/routes.tsp index 021729279788..e3119bf35698 100644 --- a/specification/ai/Azure.AI.Projects/indexes/routes.tsp +++ b/specification/ai/Azure.AI.Projects/indexes/routes.tsp @@ -3,6 +3,7 @@ import "@azure-tools/typespec-autorest"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; import "./models.tsp"; +import "../servicepatterns.tsp"; using TypeSpec.Http; using TypeSpec.Rest; @@ -13,106 +14,36 @@ using Azure.Core.Foundations; namespace Azure.AI.Projects; -interface Indexes { - #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("List latest version of each dataset in a project.") - @route("/indexes") - @get - listLatestIndexes( - @doc("Continuation token for pagination. This is the nextLink from the previous response.") - @query("$continuationToken") - $continuationToken?: string, - - @doc("View type for including/excluding (for example) archived entities.") - @query("listViewType") - listViewType?: ListViewType, - ): PagedDatasetVersion; - - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Waiting for bug fix: https://github.com/Azure/typespec-azure-pr/issues/3739." - @doc("Get a specific version of an Index.") - @route("/indexes/{name}/versions/{version}") - @get - get is Azure.Core.Foundations.Operation< - { - @doc("Name of the index.") - @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") - @maxLength(254) - @path - name: string; - - @doc("Version of the index.") - @path - version: string; - }, - Index - >; - - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Waiting for bug fix: https://github.com/Azure/typespec-azure-pr/issues/3739." - @doc("Creates or updates a IndexVersion.") - @route("/indexes/{name}:create") - @post - createIndex is Azure.Core.Foundations.Operation< - { - @doc("Name of the index.") - @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") - @maxLength(254) - @path - name: string; - - @doc("Properties of an Index Version.") - @bodyRoot - body: Index; - }, - ResourceCreatedOrOkResponse - >; - - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Need to use same model in both list calls." - @doc("List the versions of an Index given the name.") - @route("/indexes/{name}/versions") - @get - listIndexVersions is Azure.Core.Foundations.Operation< - { - @doc("Name of the index.") - @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_]*$") - @maxLength(254) - @path - name: string; - - @doc("View type for including/excluding (for example) archived entities.") - @query - listViewType: string = "ActiveOnly"; - - @doc("Ordering of list: Please choose orderby value from ['createdAt', 'lastModifiedAt'].") - @query - orderBy?: string; - - @doc("Ordering of list: Please choose orderby value from ['createdAt', 'lastModifiedAt'].") - @query - orderby?: string; - - @doc("Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2.") - @query - tags?: string; - - ...StandardListQueryParameters; - }, - PagedIndex - >; - - #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("Delete version.") - @route("/indexes/{name}/versions/{version}") - @delete - deleteVersion( - @doc("Container name.") - @pattern("^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$") - @path - name: string, - - @doc("Version identifier.") - @path - version: string, - ): void; -} +alias ListIndexVersionParameters = { + @doc("View type for including/excluding (for example) archived entities.") + @query + listViewType: string = "ActiveOnly"; + + @doc("Ordering of list: Please choose orderby value from ['createdAt', 'lastModifiedAt'].") + @query + orderBy?: string; + + @doc("Ordering of list: Please choose orderby value from ['createdAt', 'lastModifiedAt'].") + @query + orderby?: string; + + @doc("Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2.") + @query + tags?: string; + + ...StandardListQueryParameters; +}; + +alias ListLatestIndexParameters = { + @doc("View type for including/excluding (for example) archived entities.") + @query("listViewType") + listViewType?: ListViewType; +}; + +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "We are using service specific operation templates" +interface Indexes + extends ServicePatterns.VersionedOperations< + Index, + ListLatestIndexParameters, + ListIndexVersionParameters + > {} diff --git a/specification/ai/Azure.AI.Projects/servicepatterns.tsp b/specification/ai/Azure.AI.Projects/servicepatterns.tsp new file mode 100644 index 000000000000..a873b0f9d3c2 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/servicepatterns.tsp @@ -0,0 +1,121 @@ +import "@typespec/http"; +import "@typespec/rest"; +import "@azure-tools/typespec-azure-core"; + +namespace Azure.AI.Projects.ServicePatterns { + @Rest.autoRoute + interface VersionedOperations< + TEntityType extends Reflection.Model, + TListLatestParameters extends Reflection.Model = {}, + TListVersionsParameters extends Reflection.Model = {} + > { + #suppress "@azure-tools/typespec-azure-core/verb-conflict" "We are using the resource action as a building block." + @doc("List all versions of the given {name}", TEntityType) + @Rest.action("versions") + @Rest.actionSeparator("/") + @Http.get + listVersions is BuildingBlocks.CoreOps.ResourceAction< + TEntityType, + TListVersionsParameters, + Azure.Core.Page + >; + + @doc("List the latest version of each {name}", TEntityType) + @Rest.listsResource(TEntityType) + listLatest is Azure.Core.Foundations.ResourceList< + TEntityType, + TListLatestParameters, + Azure.Core.Page + >; + + @doc("Get the specific version of the {name}", TEntityType) + getVersion is Azure.Core.Foundations.ResourceOperation< + TEntityType, + { + @doc("The specific version id of the {name} to retrieve.", TEntityType) + @Rest.segment("versions") + @Http.path + version: string; + }, + Azure.Core.Foundations.ResourceOkResponse + >; + + @doc("Delete the specific version of the {name}", TEntityType) + @Http.delete + deleteVersion is Azure.Core.Foundations.ResourceOperation< + TEntityType, + { + @doc("The version of the {name} to delete.", TEntityType) + @Rest.segment("versions") + @Http.path + version: string; + }, + Http.NoContentResponse + >; + + @doc( + "Create a new {name}. The version id will be generated by the service.", + TEntityType + ) + @Rest.actionSeparator("/") + versions is BuildingBlocks.RepeatableCoreOps.ResourceAction< + TEntityType, + { + @doc("The definition of the {name} to create", TEntityType) + @Http.bodyRoot + body: TEntityType; + }, + TEntityType + >; + + @doc( + "Create a new or replace an existing {name} with the given version id", + TEntityType + ) + @Http.put + createVersion is Azure.Core.Foundations.ResourceOperation< + TEntityType, + { + @doc( + "The specific version id of the {name} to create or replace.", + TEntityType + ) + @Rest.segment("versions") + @Http.path + version: string; + + @doc("The definition of the {name} to create", TEntityType) + @Http.bodyRoot + body: TEntityType; + }, + Azure.Core.Foundations.ResourceCreatedOrOkResponse + >; + } + + @Rest.action + op VersionedResourceAction< + TEntityType extends Reflection.Model, + TParams, + TResponse + > is Azure.Core.Foundations.ResourceOperation< + TEntityType, + { + @doc("The specific version id of the {name} to operate on.", TEntityType) + @Rest.segment("versions") + @Http.path + version: string; + + @doc("Parameters for the action") + @Http.bodyRoot + body: TParams; + }, + TResponse + >; + + namespace BuildingBlocks { + alias CoreOps = Azure.Core.StandardResourceOperations; + alias RepeatableCoreOps = Azure.Core.ResourceOperations; + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json index e02d6a2a20b5..3bf232f14dc2 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json @@ -488,15 +488,11 @@ }, "/datasets": { "get": { - "operationId": "Datasets_ListLatestDatasets", - "description": "List latest version of each dataset in a project.", + "operationId": "Datasets_ListLatest", + "description": "List the latest version of each DatasetVersion", "parameters": [ { - "name": "$continuationToken", - "in": "query", - "description": "Continuation token for pagination. This is the nextLink from the previous response.", - "required": false, - "type": "string" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "listViewType", @@ -538,6 +534,18 @@ "schema": { "$ref": "#/definitions/PagedDatasetVersion" } + }, + "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-pageable": { @@ -547,16 +555,18 @@ }, "/datasets/{name}/versions": { "get": { - "operationId": "Datasets_ListDatasetVersions", - "description": "List dataset versions of a specific dataset", + "operationId": "Datasets_ListVersions", + "description": "List all versions of the given DatasetVersion", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "name", "in": "path", - "description": "Container name.", + "description": "The name of the resource", "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$" + "type": "string" }, { "name": "$orderBy", @@ -627,30 +637,129 @@ "schema": { "$ref": "#/definitions/PagedDatasetVersion" } + }, + "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-pageable": { "nextLinkName": "nextLink" } + }, + "post": { + "operationId": "Datasets_Versions", + "description": "Create a new DatasetVersion. The version id will be generated by the service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the DatasetVersion to create", + "required": true, + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + }, + "headers": { + "Repeatability-Result": { + "type": "string", + "description": "Indicates whether the repeatable request was accepted or rejected.", + "enum": [ + "accepted", + "rejected" + ], + "x-ms-enum": { + "name": "RepeatabilityResult", + "modelAsString": false, + "values": [ + { + "name": "accepted", + "value": "accepted", + "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." + }, + { + "name": "rejected", + "value": "rejected", + "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } } }, "/datasets/{name}/versions/{version}": { "get": { "operationId": "Datasets_GetVersion", - "description": "Get dataset version.", + "description": "Get the specific version of the DatasetVersion", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "name", "in": "path", - "description": "Container name.", + "description": "The name of the resource", "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$" + "type": "string" }, { "name": "version", "in": "path", - "description": "Version identifier.", + "description": "The specific version id of the DatasetVersion to retrieve.", "required": true, "type": "string" } @@ -661,32 +770,46 @@ "schema": { "$ref": "#/definitions/DatasetVersion" } + }, + "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." + } + } } } }, "put": { - "operationId": "Datasets_CreateOrUpdate", - "description": "Create or update version.", + "operationId": "Datasets_CreateVersion", + "description": "Create a new or replace an existing DatasetVersion with the given version id", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "name", "in": "path", - "description": "Container name.", + "description": "The name of the resource", "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$" + "type": "string" }, { "name": "version", "in": "path", - "description": "Version identifier.", + "description": "The specific version id of the DatasetVersion to create or replace.", "required": true, "type": "string" }, { - "name": "datasetVersion", + "name": "body", "in": "body", - "description": "Version entity to create or update.", + "description": "The definition of the DatasetVersion to create", "required": true, "schema": { "$ref": "#/definitions/DatasetVersion" @@ -699,60 +822,94 @@ "schema": { "$ref": "#/definitions/DatasetVersion" } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + }, + "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." + } + } } } }, "delete": { "operationId": "Datasets_DeleteVersion", - "description": "Delete version.", + "description": "Delete the specific version of the DatasetVersion", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "name", "in": "path", - "description": "Container name.", + "description": "The name of the resource", "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$" + "type": "string" }, { "name": "version", "in": "path", - "description": "Version identifier.", + "description": "The version of the DatasetVersion to delete.", "required": true, "type": "string" } ], "responses": { "204": { - "description": "There is no content to send for this request, but the headers may be useful. " + "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." + } + } } } } }, "/datasets/{name}/versions/{version}/startPendingUpload": { "post": { - "operationId": "Datasets_CreateOrGetStartPendingUpload", - "description": "Start pending upload.", + "operationId": "Datasets_StartPendingUpload", + "description": "Create or start a pending upload of a dataset", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "name", "in": "path", - "description": "Container name.", + "description": "The name of the resource", "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$" + "type": "string" }, { "name": "version", "in": "path", - "description": "Version identifier.", + "description": "The specific version id of the DatasetVersion to operate on.", "required": true, "type": "string" }, { - "name": "pendingUploadRequest", + "name": "body", "in": "body", - "description": "Pensing upload request.", + "description": "Parameters for the action", "required": true, "schema": { "$ref": "#/definitions/PendingUploadRequest" @@ -765,6 +922,18 @@ "schema": { "$ref": "#/definitions/PendingUploadResponse" } + }, + "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." + } + } } } } @@ -1006,7 +1175,7 @@ { "name": "evaluation", "in": "body", - "description": "Evalution to be run", + "description": "Evaluation to be run", "required": true, "schema": { "$ref": "#/definitions/Evaluation" @@ -1341,15 +1510,11 @@ }, "/indexes": { "get": { - "operationId": "Indexes_ListLatestIndexes", - "description": "List latest version of each dataset in a project.", + "operationId": "Indexes_ListLatest", + "description": "List the latest version of each Index", "parameters": [ { - "name": "$continuationToken", - "in": "query", - "description": "Continuation token for pagination. This is the nextLink from the previous response.", - "required": false, - "type": "string" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { "name": "listViewType", @@ -1389,53 +1554,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/PagedDatasetVersion" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/indexes/{name}:create": { - "post": { - "operationId": "Indexes_CreateIndex", - "description": "Creates or updates a IndexVersion.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "Name of the index.", - "required": true, - "type": "string", - "maxLength": 254, - "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_]*$" - }, - { - "name": "body", - "in": "body", - "description": "Properties of an Index Version.", - "required": true, - "schema": { - "$ref": "#/definitions/Index" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/Index" - } - }, - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", - "schema": { - "$ref": "#/definitions/Index" + "$ref": "#/definitions/PagedIndex" } }, "default": { @@ -1450,13 +1569,16 @@ } } } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, "/indexes/{name}/versions": { "get": { - "operationId": "Indexes_ListIndexVersions", - "description": "List the versions of an Index given the name.", + "operationId": "Indexes_ListVersions", + "description": "List all versions of the given Index", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -1464,11 +1586,9 @@ { "name": "name", "in": "path", - "description": "Name of the index.", + "description": "The name of the resource", "required": true, - "type": "string", - "maxLength": 254, - "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_]*$" + "type": "string" }, { "name": "listViewType", @@ -1532,12 +1652,97 @@ "x-ms-pageable": { "nextLinkName": "nextLink" } + }, + "post": { + "operationId": "Indexes_Versions", + "description": "Create a new Index. The version id will be generated by the service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the Index to create", + "required": true, + "schema": { + "$ref": "#/definitions/Index" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Index" + }, + "headers": { + "Repeatability-Result": { + "type": "string", + "description": "Indicates whether the repeatable request was accepted or rejected.", + "enum": [ + "accepted", + "rejected" + ], + "x-ms-enum": { + "name": "RepeatabilityResult", + "modelAsString": false, + "values": [ + { + "name": "accepted", + "value": "accepted", + "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." + }, + { + "name": "rejected", + "value": "rejected", + "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } } }, "/indexes/{name}/versions/{version}": { "get": { - "operationId": "Indexes_Get", - "description": "Get a specific version of an Index.", + "operationId": "Indexes_GetVersion", + "description": "Get the specific version of the Index", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -1545,16 +1750,14 @@ { "name": "name", "in": "path", - "description": "Name of the index.", + "description": "The name of the resource", "required": true, - "type": "string", - "maxLength": 254, - "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_]*$" + "type": "string" }, { "name": "version", "in": "path", - "description": "Version of the index.", + "description": "The specific version id of the Index to retrieve.", "required": true, "type": "string" } @@ -1580,29 +1783,101 @@ } } }, + "put": { + "operationId": "Indexes_CreateVersion", + "description": "Create a new or replace an existing Index with the given version id", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the Index to create or replace.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the Index to create", + "required": true, + "schema": { + "$ref": "#/definitions/Index" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "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." + } + } + } + } + }, "delete": { "operationId": "Indexes_DeleteVersion", - "description": "Delete version.", + "description": "Delete the specific version of the Index", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "name", "in": "path", - "description": "Container name.", + "description": "The name of the resource", "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$" + "type": "string" }, { "name": "version", "in": "path", - "description": "Version identifier.", + "description": "The version of the Index to delete.", "required": true, "type": "string" } ], "responses": { "204": { - "description": "There is no content to send for this request, but the headers may be useful. " + "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." + } + } } } } @@ -9567,7 +9842,9 @@ "discriminator": "type", "required": [ "datasetUri", - "type" + "type", + "name", + "version" ] }, "Deployment": { @@ -9859,7 +10136,9 @@ }, "discriminator": "indexType", "required": [ - "indexType" + "indexType", + "name", + "version" ] }, "IndexType": { @@ -10065,19 +10344,19 @@ }, "PagedDatasetVersion": { "type": "object", - "description": "PagedDataVersionBase Definition", + "description": "Paged collection of DatasetVersion items", "properties": { "value": { "type": "array", - "description": "The list of DatasetVersions.", + "description": "The DatasetVersion items on this page", "items": { "$ref": "#/definitions/DatasetVersion" - }, - "x-ms-identifiers": [] + } }, "nextLink": { "type": "string", - "description": "The link to the next page of results, if any." + "format": "uri", + "description": "The link to the next page of items" } }, "required": [ @@ -10129,15 +10408,14 @@ }, "PagedIndex": { "type": "object", - "description": "Paged collection of Index items.", + "description": "Paged collection of Index items", "properties": { "value": { "type": "array", - "description": "The list of Indexes.", + "description": "The Index items on this page", "items": { "$ref": "#/definitions/Index" - }, - "x-ms-identifiers": [] + } }, "nextLink": { "type": "string", @@ -10410,6 +10688,25 @@ "format": "int32", "x-ms-parameter-location": "method" }, + "Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent": { + "name": "Repeatability-First-Sent", + "in": "header", + "description": "Specifies the date and time at which the request was first created.", + "required": false, + "type": "string", + "format": "date-time", + "x-ms-parameter-location": "method", + "x-ms-client-name": "repeatabilityFirstSent" + }, + "Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId": { + "name": "Repeatability-Request-ID", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "repeatabilityRequestId" + }, "Azure.Core.SkipQueryParameter": { "name": "skip", "in": "query", From 18ae7d3159654610270145b2a5efb2afe579eafc Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Fri, 21 Mar 2025 12:23:46 -0400 Subject: [PATCH 069/143] Change Name of Autoincrement API (#33353) * Change name of versions post to create * properly hit save this time --- specification/ai/Azure.AI.Projects/servicepatterns.tsp | 4 +++- .../preview/2025-05-01-preview/azure-ai-projects-1dp.json | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/servicepatterns.tsp b/specification/ai/Azure.AI.Projects/servicepatterns.tsp index a873b0f9d3c2..e0b0373d594d 100644 --- a/specification/ai/Azure.AI.Projects/servicepatterns.tsp +++ b/specification/ai/Azure.AI.Projects/servicepatterns.tsp @@ -58,7 +58,9 @@ namespace Azure.AI.Projects.ServicePatterns { TEntityType ) @Rest.actionSeparator("/") - versions is BuildingBlocks.RepeatableCoreOps.ResourceAction< + @Rest.action("versions") + @Http.post + create is BuildingBlocks.RepeatableCoreOps.ResourceAction< TEntityType, { @doc("The definition of the {name} to create", TEntityType) diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json index 3bf232f14dc2..ffbd0747b3b6 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json @@ -656,7 +656,7 @@ } }, "post": { - "operationId": "Datasets_Versions", + "operationId": "Datasets_Create", "description": "Create a new DatasetVersion. The version id will be generated by the service.", "parameters": [ { @@ -1654,7 +1654,7 @@ } }, "post": { - "operationId": "Indexes_Versions", + "operationId": "Indexes_Create", "description": "Create a new Index. The version id will be generated by the service.", "parameters": [ { From 224e34e8654d91889c69e3a8f24eea860b132179 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Fri, 21 Mar 2025 15:37:22 -0400 Subject: [PATCH 070/143] Incorporate Index Feedback (#33243) * address index feedback * update swagger file * Change indexType -> index --- .../ai/Azure.AI.Projects/indexes/models.tsp | 25 ++++++++--------- .../azure-ai-projects-1dp.json | 28 ++++++++----------- 2 files changed, 23 insertions(+), 30 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/indexes/models.tsp b/specification/ai/Azure.AI.Projects/indexes/models.tsp index a4f289fd4a44..7bc38e7cb683 100644 --- a/specification/ai/Azure.AI.Projects/indexes/models.tsp +++ b/specification/ai/Azure.AI.Projects/indexes/models.tsp @@ -15,11 +15,11 @@ using Azure.Core.Traits; namespace Azure.AI.Projects; @doc("Index resource Definition") -@discriminator("indexType") +@discriminator("type") @Rest.resource("indexes") model Index { @doc("Type of index") - indexType: IndexType; + type: IndexType; ...AssetBase; } @@ -27,10 +27,10 @@ model Index { @doc("Azure AI Search Index Definition") model AzureAISearchIndex extends Index { @doc("Type of index") - indexType: IndexType.azureSearch; + type: IndexType.azureSearch; - @doc("Connection id to Azure AI Search") - connectionId: string; + @doc("Name of connection to Azure AI Search") + connectionName: string; @doc("Name of index in Azure AI Search resource to attach") indexName: string; @@ -39,7 +39,7 @@ model AzureAISearchIndex extends Index { @doc("Managed Azure AI Search Index Definition") model ManagedAzureAISearchIndex extends Index { @doc("Type of index") - indexType: IndexType.managedAzureSearch; + type: IndexType.managedAzureSearch; @doc("Vector store id of managed index") vectorStoreId: string; @@ -48,10 +48,10 @@ model ManagedAzureAISearchIndex extends Index { @doc("CosmosDB Vector Store Index Definition") model CosmosDBIndex extends Index { @doc("Type of index") - indexType: IndexType.cosmosDB; + type: IndexType.cosmosDB; - @doc("Connection id to CosmosDB") - connectionId: string; + @doc("Name of connection to CosmosDB") + connectionName: string; @doc("Name of the CosmosDB Database") databaseName: string; @@ -65,11 +65,8 @@ model CosmosDBIndex extends Index { @doc("Embedding configuration class") model EmbeddingConfiguration { - @doc("Connection id to embedding model") - connectionId?: string; - - @doc("Deployment name of embedding model") - deploymentName: string; + @doc("Deployment name of embedding model. It can point to a model deployment either in the parent AIServices or a connection.") + modelDeploymentName: string; @doc("Embedding field") embeddingField: string; diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json index ffbd0747b3b6..04c32f288cc2 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json @@ -9524,9 +9524,9 @@ "type": "object", "description": "Azure AI Search Index Definition", "properties": { - "connectionId": { + "connectionName": { "type": "string", - "description": "Connection id to Azure AI Search" + "description": "Name of connection to Azure AI Search" }, "indexName": { "type": "string", @@ -9534,7 +9534,7 @@ } }, "required": [ - "connectionId", + "connectionName", "indexName" ], "allOf": [ @@ -9674,9 +9674,9 @@ "type": "object", "description": "CosmosDB Vector Store Index Definition", "properties": { - "connectionId": { + "connectionName": { "type": "string", - "description": "Connection id to CosmosDB" + "description": "Name of connection to CosmosDB" }, "databaseName": { "type": "string", @@ -9692,7 +9692,7 @@ } }, "required": [ - "connectionId", + "connectionName", "databaseName", "containerName", "embeddingConfiguration" @@ -9903,13 +9903,9 @@ "type": "object", "description": "Embedding configuration class", "properties": { - "connectionId": { - "type": "string", - "description": "Connection id to embedding model" - }, - "deploymentName": { + "modelDeploymentName": { "type": "string", - "description": "Deployment name of embedding model" + "description": "Deployment name of embedding model. It can point to a model deployment either in the parent AIServices or a connection." }, "embeddingField": { "type": "string", @@ -9917,7 +9913,7 @@ } }, "required": [ - "deploymentName", + "modelDeploymentName", "embeddingField" ] }, @@ -10089,7 +10085,7 @@ "type": "object", "description": "Index resource Definition", "properties": { - "indexType": { + "type": { "$ref": "#/definitions/IndexType", "description": "Type of index" }, @@ -10134,9 +10130,9 @@ "readOnly": true } }, - "discriminator": "indexType", + "discriminator": "type", "required": [ - "indexType", + "type", "name", "version" ] From 259fd621c97e2f615dfc447a01179f7291e0d96d Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Fri, 21 Mar 2025 15:38:05 -0400 Subject: [PATCH 071/143] Version-less Pending Upload API (#33399) * Add version-less startPendingUploadAPI * address feedback --- .../ai/Azure.AI.Projects/datasets/routes.tsp | 15 +++- .../azure-ai-projects-1dp.json | 88 ++++++++++++++++++- 2 files changed, 99 insertions(+), 4 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/datasets/routes.tsp b/specification/ai/Azure.AI.Projects/datasets/routes.tsp index 3570aeaf96ed..00a615fbcb16 100644 --- a/specification/ai/Azure.AI.Projects/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/routes.tsp @@ -1,3 +1,4 @@ +import "@typespec/http"; import "@typespec/rest"; import "@azure-tools/typespec-autorest"; import "@typespec/versioning"; @@ -50,12 +51,20 @@ interface Datasets ListLatestDataSetVersionParameters, ListDatasetVersionsParameters > { - /** - * Create or start a pending upload of a dataset - */ + @doc("Create or start a pending upload of a dataset for a specific version.") startPendingUpload is ServicePatterns.VersionedResourceAction< DatasetVersion, PendingUploadRequest, PendingUploadResponse >; + + @doc("Create or start a pending upload of a dataset. The dataset version will be generated by service.") + @Rest.actionSeparator("/") + @Rest.action("startPendingUpload") + @Http.post + startPendingUploadAutoIncrement is ServicePatterns.BuildingBlocks.RepeatableCoreOps.ResourceAction< + DatasetVersion, + PendingUploadRequest, + PendingUploadResponse + >; } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json index 04c32f288cc2..2c141e197a68 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json @@ -553,6 +553,92 @@ } } }, + "/datasets/{name}/startPendingUpload": { + "post": { + "operationId": "Datasets_StartPendingUploadAutoIncrement", + "description": "Create or start a pending upload of a dataset. The dataset version will be generated by service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PendingUploadRequest" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PendingUploadResponse" + }, + "headers": { + "Repeatability-Result": { + "type": "string", + "description": "Indicates whether the repeatable request was accepted or rejected.", + "enum": [ + "accepted", + "rejected" + ], + "x-ms-enum": { + "name": "RepeatabilityResult", + "modelAsString": false, + "values": [ + { + "name": "accepted", + "value": "accepted", + "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." + }, + { + "name": "rejected", + "value": "rejected", + "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, "/datasets/{name}/versions": { "get": { "operationId": "Datasets_ListVersions", @@ -887,7 +973,7 @@ "/datasets/{name}/versions/{version}/startPendingUpload": { "post": { "operationId": "Datasets_StartPendingUpload", - "description": "Create or start a pending upload of a dataset", + "description": "Create or start a pending upload of a dataset for a specific version.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" From 8e92721ea4d4528684d7fc94bd7042ef95275dc1 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Mon, 24 Mar 2025 13:14:52 -0700 Subject: [PATCH 072/143] Rename folder and namespace from Agents to Assistants (#33452) --- .../{agents => assistants}/common/models.tsp | 2 +- .../{agents => assistants}/files/main.tsp | 0 .../{agents => assistants}/files/models.tsp | 2 +- .../{agents => assistants}/files/routes.tsp | 2 +- .../{agents => assistants}/main.tsp | 0 .../messages/models.tsp | 2 +- .../messages/routes.tsp | 2 +- .../{agents => assistants}/models.tsp | 2 +- .../{agents => assistants}/routes.tsp | 2 +- .../run_steps/models.tsp | 2 +- .../run_steps/routes.tsp | 2 +- .../{agents => assistants}/runs/models.tsp | 2 +- .../{agents => assistants}/runs/routes.tsp | 2 +- .../streaming/events.tsp | 2 +- .../{agents => assistants}/threads/models.tsp | 2 +- .../{agents => assistants}/threads/routes.tsp | 2 +- .../{agents => assistants}/tools/models.tsp | 2 +- .../tools/tool_resources.tsp | 2 +- .../vector_stores/common/main.tsp | 2 +- .../vector_stores/file_batches/models.tsp | 2 +- .../vector_stores/file_batches/routes.tsp | 2 +- .../vector_stores/files/models.tsp | 2 +- .../vector_stores/files/routes.tsp | 2 +- .../vector_stores/main.tsp | 0 .../vector_stores/models.tsp | 2 +- .../vector_stores/routes.tsp | 2 +- specification/ai/Azure.AI.Projects/main.tsp | 20 +- .../azure-ai-projects-1dp.json | 1066 ++++++++--------- 28 files changed, 566 insertions(+), 566 deletions(-) rename specification/ai/Azure.AI.Projects/{agents => assistants}/common/models.tsp (99%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/files/main.tsp (100%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/files/models.tsp (98%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/files/routes.tsp (99%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/main.tsp (100%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/messages/models.tsp (99%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/messages/routes.tsp (98%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/models.tsp (99%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/routes.tsp (98%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/run_steps/models.tsp (99%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/run_steps/routes.tsp (98%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/runs/models.tsp (99%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/runs/routes.tsp (99%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/streaming/events.tsp (99%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/threads/models.tsp (98%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/threads/routes.tsp (98%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/tools/models.tsp (99%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/tools/tool_resources.tsp (99%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/vector_stores/common/main.tsp (99%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/vector_stores/file_batches/models.tsp (97%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/vector_stores/file_batches/routes.tsp (99%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/vector_stores/files/models.tsp (98%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/vector_stores/files/routes.tsp (99%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/vector_stores/main.tsp (100%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/vector_stores/models.tsp (99%) rename specification/ai/Azure.AI.Projects/{agents => assistants}/vector_stores/routes.tsp (98%) diff --git a/specification/ai/Azure.AI.Projects/agents/common/models.tsp b/specification/ai/Azure.AI.Projects/assistants/common/models.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/agents/common/models.tsp rename to specification/ai/Azure.AI.Projects/assistants/common/models.tsp index 574e0f2ebba1..3211f783f3ef 100644 --- a/specification/ai/Azure.AI.Projects/agents/common/models.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/common/models.tsp @@ -4,7 +4,7 @@ import "@typespec/versioning"; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; @doc("The possible values for roles attributed to messages in a thread.") union MessageRole { diff --git a/specification/ai/Azure.AI.Projects/agents/files/main.tsp b/specification/ai/Azure.AI.Projects/assistants/files/main.tsp similarity index 100% rename from specification/ai/Azure.AI.Projects/agents/files/main.tsp rename to specification/ai/Azure.AI.Projects/assistants/files/main.tsp diff --git a/specification/ai/Azure.AI.Projects/agents/files/models.tsp b/specification/ai/Azure.AI.Projects/assistants/files/models.tsp similarity index 98% rename from specification/ai/Azure.AI.Projects/agents/files/models.tsp rename to specification/ai/Azure.AI.Projects/assistants/files/models.tsp index 73b85e312a52..1022fdd0f94f 100644 --- a/specification/ai/Azure.AI.Projects/agents/files/models.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/files/models.tsp @@ -1,6 +1,6 @@ import "@typespec/versioning"; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/agents/files/routes.tsp b/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/agents/files/routes.tsp rename to specification/ai/Azure.AI.Projects/assistants/files/routes.tsp index e48e53be8b44..9cf41ddf0dd3 100644 --- a/specification/ai/Azure.AI.Projects/agents/files/routes.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp @@ -9,7 +9,7 @@ using TypeSpec.Http; using TypeSpec.Versioning; using Azure.ClientGenerator.Core; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; /** * Gets a list of previously uploaded files. diff --git a/specification/ai/Azure.AI.Projects/agents/main.tsp b/specification/ai/Azure.AI.Projects/assistants/main.tsp similarity index 100% rename from specification/ai/Azure.AI.Projects/agents/main.tsp rename to specification/ai/Azure.AI.Projects/assistants/main.tsp diff --git a/specification/ai/Azure.AI.Projects/agents/messages/models.tsp b/specification/ai/Azure.AI.Projects/assistants/messages/models.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/agents/messages/models.tsp rename to specification/ai/Azure.AI.Projects/assistants/messages/models.tsp index 5b5134a852d3..ceb5c1244f0b 100644 --- a/specification/ai/Azure.AI.Projects/agents/messages/models.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/messages/models.tsp @@ -2,7 +2,7 @@ import "../tools/models.tsp"; import "@typespec/versioning"; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/agents/messages/routes.tsp b/specification/ai/Azure.AI.Projects/assistants/messages/routes.tsp similarity index 98% rename from specification/ai/Azure.AI.Projects/agents/messages/routes.tsp rename to specification/ai/Azure.AI.Projects/assistants/messages/routes.tsp index 4dab8c9401ee..853770ff60f6 100644 --- a/specification/ai/Azure.AI.Projects/agents/messages/routes.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/messages/routes.tsp @@ -12,7 +12,7 @@ using TypeSpec.Versioning; using Azure.Core; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; /** * Creates a new message on a specified thread. diff --git a/specification/ai/Azure.AI.Projects/agents/models.tsp b/specification/ai/Azure.AI.Projects/assistants/models.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/agents/models.tsp rename to specification/ai/Azure.AI.Projects/assistants/models.tsp index 76c5a557eb0a..6d552dad15d9 100644 --- a/specification/ai/Azure.AI.Projects/agents/models.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/models.tsp @@ -7,7 +7,7 @@ import "../main.tsp"; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; @doc("Represents an agent that can call the model and use tools.") model Agent { diff --git a/specification/ai/Azure.AI.Projects/agents/routes.tsp b/specification/ai/Azure.AI.Projects/assistants/routes.tsp similarity index 98% rename from specification/ai/Azure.AI.Projects/agents/routes.tsp rename to specification/ai/Azure.AI.Projects/assistants/routes.tsp index 427c61fa22cd..4929ba11dacd 100644 --- a/specification/ai/Azure.AI.Projects/agents/routes.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/routes.tsp @@ -11,7 +11,7 @@ using Azure.Core; using Azure.Core.Traits; using Azure.Core.Foundations; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; /** * Creates a new agent. diff --git a/specification/ai/Azure.AI.Projects/agents/run_steps/models.tsp b/specification/ai/Azure.AI.Projects/assistants/run_steps/models.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/agents/run_steps/models.tsp rename to specification/ai/Azure.AI.Projects/assistants/run_steps/models.tsp index e6a778354e54..67e24ed7aa1e 100644 --- a/specification/ai/Azure.AI.Projects/agents/run_steps/models.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/run_steps/models.tsp @@ -2,7 +2,7 @@ import "@typespec/versioning"; import "../tools/models.tsp"; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/agents/run_steps/routes.tsp b/specification/ai/Azure.AI.Projects/assistants/run_steps/routes.tsp similarity index 98% rename from specification/ai/Azure.AI.Projects/agents/run_steps/routes.tsp rename to specification/ai/Azure.AI.Projects/assistants/run_steps/routes.tsp index 0ce3c2657fda..b6afcea65534 100644 --- a/specification/ai/Azure.AI.Projects/agents/run_steps/routes.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/run_steps/routes.tsp @@ -9,7 +9,7 @@ using TypeSpec.Rest; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; /** * Gets a single run step from a thread run. diff --git a/specification/ai/Azure.AI.Projects/agents/runs/models.tsp b/specification/ai/Azure.AI.Projects/assistants/runs/models.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/agents/runs/models.tsp rename to specification/ai/Azure.AI.Projects/assistants/runs/models.tsp index 57c13229b324..9b0974e14f81 100644 --- a/specification/ai/Azure.AI.Projects/agents/runs/models.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/runs/models.tsp @@ -4,7 +4,7 @@ import "../common/models.tsp"; import "../threads/models.tsp"; import "../tools/models.tsp"; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; using TypeSpec.Versioning; using Azure.ClientGenerator.Core; diff --git a/specification/ai/Azure.AI.Projects/agents/runs/routes.tsp b/specification/ai/Azure.AI.Projects/assistants/runs/routes.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/agents/runs/routes.tsp rename to specification/ai/Azure.AI.Projects/assistants/runs/routes.tsp index abfcf1ca0bd3..e0ab1d3a951c 100644 --- a/specification/ai/Azure.AI.Projects/agents/runs/routes.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/runs/routes.tsp @@ -10,7 +10,7 @@ using TypeSpec.Rest; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; /** * Creates and starts a new run of the specified thread using the specified agent. diff --git a/specification/ai/Azure.AI.Projects/agents/streaming/events.tsp b/specification/ai/Azure.AI.Projects/assistants/streaming/events.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/agents/streaming/events.tsp rename to specification/ai/Azure.AI.Projects/assistants/streaming/events.tsp index 78c2d05bc44c..9c88f3150dad 100644 --- a/specification/ai/Azure.AI.Projects/agents/streaming/events.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/streaming/events.tsp @@ -2,7 +2,7 @@ import "@typespec/versioning"; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; @doc(""" Each event in a server-sent events stream has an `event` and `data` property: diff --git a/specification/ai/Azure.AI.Projects/agents/threads/models.tsp b/specification/ai/Azure.AI.Projects/assistants/threads/models.tsp similarity index 98% rename from specification/ai/Azure.AI.Projects/agents/threads/models.tsp rename to specification/ai/Azure.AI.Projects/assistants/threads/models.tsp index 39e868006097..4a68a1acda59 100644 --- a/specification/ai/Azure.AI.Projects/agents/threads/models.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/threads/models.tsp @@ -7,7 +7,7 @@ import "../messages/models.tsp"; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; @doc("Information about a single thread associated with an agent.") model AgentThread { diff --git a/specification/ai/Azure.AI.Projects/agents/threads/routes.tsp b/specification/ai/Azure.AI.Projects/assistants/threads/routes.tsp similarity index 98% rename from specification/ai/Azure.AI.Projects/agents/threads/routes.tsp rename to specification/ai/Azure.AI.Projects/assistants/threads/routes.tsp index 868f7c8bfbb2..1a99918dd561 100644 --- a/specification/ai/Azure.AI.Projects/agents/threads/routes.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/threads/routes.tsp @@ -7,7 +7,7 @@ using TypeSpec.Rest; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; /** * Creates a new thread. Threads contain messages and can be run by agents. diff --git a/specification/ai/Azure.AI.Projects/agents/tools/models.tsp b/specification/ai/Azure.AI.Projects/assistants/tools/models.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/agents/tools/models.tsp rename to specification/ai/Azure.AI.Projects/assistants/tools/models.tsp index 8792ce526e96..efd2b465dcd7 100644 --- a/specification/ai/Azure.AI.Projects/agents/tools/models.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/tools/models.tsp @@ -4,7 +4,7 @@ import "@typespec/versioning"; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; // // Tool inputs -- definitions used before model evaluation to configure agents, threads, and messages diff --git a/specification/ai/Azure.AI.Projects/agents/tools/tool_resources.tsp b/specification/ai/Azure.AI.Projects/assistants/tools/tool_resources.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/agents/tools/tool_resources.tsp rename to specification/ai/Azure.AI.Projects/assistants/tools/tool_resources.tsp index eaa6ae384610..6f1ed5176e41 100644 --- a/specification/ai/Azure.AI.Projects/agents/tools/tool_resources.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/tools/tool_resources.tsp @@ -6,7 +6,7 @@ import "../vector_stores/common/main.tsp"; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; // // Response objects diff --git a/specification/ai/Azure.AI.Projects/agents/vector_stores/common/main.tsp b/specification/ai/Azure.AI.Projects/assistants/vector_stores/common/main.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/agents/vector_stores/common/main.tsp rename to specification/ai/Azure.AI.Projects/assistants/vector_stores/common/main.tsp index 2001ed55da18..2f016ec336e8 100644 --- a/specification/ai/Azure.AI.Projects/agents/vector_stores/common/main.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/vector_stores/common/main.tsp @@ -4,7 +4,7 @@ import "@typespec/versioning"; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; /** Options to configure a vector store static chunking strategy. */ model VectorStoreStaticChunkingStrategyOptions { diff --git a/specification/ai/Azure.AI.Projects/agents/vector_stores/file_batches/models.tsp b/specification/ai/Azure.AI.Projects/assistants/vector_stores/file_batches/models.tsp similarity index 97% rename from specification/ai/Azure.AI.Projects/agents/vector_stores/file_batches/models.tsp rename to specification/ai/Azure.AI.Projects/assistants/vector_stores/file_batches/models.tsp index 62a372b9732b..4ecab0b89463 100644 --- a/specification/ai/Azure.AI.Projects/agents/vector_stores/file_batches/models.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/vector_stores/file_batches/models.tsp @@ -1,4 +1,4 @@ -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/agents/vector_stores/file_batches/routes.tsp b/specification/ai/Azure.AI.Projects/assistants/vector_stores/file_batches/routes.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/agents/vector_stores/file_batches/routes.tsp rename to specification/ai/Azure.AI.Projects/assistants/vector_stores/file_batches/routes.tsp index 1e09b52360d4..efdfffd6606e 100644 --- a/specification/ai/Azure.AI.Projects/agents/vector_stores/file_batches/routes.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/vector_stores/file_batches/routes.tsp @@ -9,7 +9,7 @@ using TypeSpec.Rest; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; /** * Create a vector store file batch. diff --git a/specification/ai/Azure.AI.Projects/agents/vector_stores/files/models.tsp b/specification/ai/Azure.AI.Projects/assistants/vector_stores/files/models.tsp similarity index 98% rename from specification/ai/Azure.AI.Projects/agents/vector_stores/files/models.tsp rename to specification/ai/Azure.AI.Projects/assistants/vector_stores/files/models.tsp index 8ef32a418bf2..2c434da9f024 100644 --- a/specification/ai/Azure.AI.Projects/agents/vector_stores/files/models.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/vector_stores/files/models.tsp @@ -1,4 +1,4 @@ -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/agents/vector_stores/files/routes.tsp b/specification/ai/Azure.AI.Projects/assistants/vector_stores/files/routes.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/agents/vector_stores/files/routes.tsp rename to specification/ai/Azure.AI.Projects/assistants/vector_stores/files/routes.tsp index b0478f698b70..35d1179cdbdf 100644 --- a/specification/ai/Azure.AI.Projects/agents/vector_stores/files/routes.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/vector_stores/files/routes.tsp @@ -9,7 +9,7 @@ using TypeSpec.Rest; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; /** * Returns a list of vector store files. diff --git a/specification/ai/Azure.AI.Projects/agents/vector_stores/main.tsp b/specification/ai/Azure.AI.Projects/assistants/vector_stores/main.tsp similarity index 100% rename from specification/ai/Azure.AI.Projects/agents/vector_stores/main.tsp rename to specification/ai/Azure.AI.Projects/assistants/vector_stores/main.tsp diff --git a/specification/ai/Azure.AI.Projects/agents/vector_stores/models.tsp b/specification/ai/Azure.AI.Projects/assistants/vector_stores/models.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/agents/vector_stores/models.tsp rename to specification/ai/Azure.AI.Projects/assistants/vector_stores/models.tsp index 154f700adcab..ab4f9cae4d7e 100644 --- a/specification/ai/Azure.AI.Projects/agents/vector_stores/models.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/vector_stores/models.tsp @@ -1,4 +1,4 @@ -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/agents/vector_stores/routes.tsp b/specification/ai/Azure.AI.Projects/assistants/vector_stores/routes.tsp similarity index 98% rename from specification/ai/Azure.AI.Projects/agents/vector_stores/routes.tsp rename to specification/ai/Azure.AI.Projects/assistants/vector_stores/routes.tsp index 74f664fb6d1a..d63442278a26 100644 --- a/specification/ai/Azure.AI.Projects/agents/vector_stores/routes.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/vector_stores/routes.tsp @@ -9,7 +9,7 @@ using TypeSpec.Rest; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Agents; +namespace Azure.AI.Projects.Assistants; /** * Returns a list of vector stores. diff --git a/specification/ai/Azure.AI.Projects/main.tsp b/specification/ai/Azure.AI.Projects/main.tsp index 7adba724f10a..fc5acd5ecf39 100644 --- a/specification/ai/Azure.AI.Projects/main.tsp +++ b/specification/ai/Azure.AI.Projects/main.tsp @@ -3,16 +3,16 @@ import "@typespec/rest"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; import "@azure-tools/typespec-azure-resource-manager"; -import "./agents/routes.tsp"; -import "./agents/threads/routes.tsp"; -import "./agents/messages/routes.tsp"; -import "./agents/runs/routes.tsp"; -import "./agents/run_steps/routes.tsp"; -import "./agents/files/routes.tsp"; -import "./agents/streaming/events.tsp"; -import "./agents/vector_stores/routes.tsp"; -import "./agents/vector_stores/files/routes.tsp"; -import "./agents/vector_stores/file_batches/routes.tsp"; +import "./assistants/routes.tsp"; +import "./assistants/threads/routes.tsp"; +import "./assistants/messages/routes.tsp"; +import "./assistants/runs/routes.tsp"; +import "./assistants/run_steps/routes.tsp"; +import "./assistants/files/routes.tsp"; +import "./assistants/streaming/events.tsp"; +import "./assistants/vector_stores/routes.tsp"; +import "./assistants/vector_stores/files/routes.tsp"; +import "./assistants/vector_stores/file_batches/routes.tsp"; import "./connections/routes.tsp"; import "./evaluations/routes.tsp"; import "./datasets/routes.tsp"; diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json index 2c141e197a68..e0925ac73ed8 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json @@ -54,7 +54,7 @@ "paths": { "/assistants": { "get": { - "operationId": "Agents_ListAgents", + "operationId": "Assistants_ListAgents", "description": "Gets a list of agents that were previously created.", "parameters": [ { @@ -133,7 +133,7 @@ "type": "array", "description": "The requested list of items.", "items": { - "$ref": "#/definitions/Agents.Agent" + "$ref": "#/definitions/Assistants.Agent" } }, "first_id": { @@ -176,7 +176,7 @@ } }, "post": { - "operationId": "Agents_CreateAgent", + "operationId": "Assistants_CreateAgent", "description": "Creates a new agent.", "parameters": [ { @@ -187,7 +187,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/Agents.CreateAgentOptions" + "$ref": "#/definitions/Assistants.CreateAgentOptions" } } ], @@ -195,7 +195,7 @@ "200": { "description": "The new agent instance.", "schema": { - "$ref": "#/definitions/Agents.Agent" + "$ref": "#/definitions/Assistants.Agent" } }, "default": { @@ -215,7 +215,7 @@ }, "/assistants/{assistantId}": { "get": { - "operationId": "Agents_GetAgent", + "operationId": "Assistants_GetAgent", "description": "Retrieves an existing agent.", "parameters": [ { @@ -233,7 +233,7 @@ "200": { "description": "The requested agent instance.", "schema": { - "$ref": "#/definitions/Agents.Agent" + "$ref": "#/definitions/Assistants.Agent" } }, "default": { @@ -251,21 +251,21 @@ } }, "post": { - "operationId": "Agents_UpdateAgent", + "operationId": "Assistants_UpdateAgent", "description": "Modifies an existing agent.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/Agents.UpdateAgentOptions.assistantId" + "$ref": "#/parameters/Assistants.UpdateAgentOptions.assistantId" }, { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/Agents.UpdateAgentOptions" + "$ref": "#/definitions/Assistants.UpdateAgentOptions" } } ], @@ -273,7 +273,7 @@ "200": { "description": "The updated agent instance.", "schema": { - "$ref": "#/definitions/Agents.Agent" + "$ref": "#/definitions/Assistants.Agent" } }, "default": { @@ -291,7 +291,7 @@ } }, "delete": { - "operationId": "Agents_DeleteAgent", + "operationId": "Assistants_DeleteAgent", "description": "Deletes an agent.", "parameters": [ { @@ -309,7 +309,7 @@ "200": { "description": "Status information about the requested deletion operation.", "schema": { - "$ref": "#/definitions/Agents.AgentDeletionStatus" + "$ref": "#/definitions/Assistants.AgentDeletionStatus" } }, "default": { @@ -1292,7 +1292,7 @@ }, "/files": { "get": { - "operationId": "Agents_ListFiles", + "operationId": "Assistants_ListFiles", "description": "Gets a list of previously uploaded files.", "parameters": [ { @@ -1360,7 +1360,7 @@ "200": { "description": "The requested list of files.", "schema": { - "$ref": "#/definitions/Agents.FileListResponse" + "$ref": "#/definitions/Assistants.FileListResponse" } }, "default": { @@ -1378,7 +1378,7 @@ } }, "post": { - "operationId": "Agents_UploadFile", + "operationId": "Assistants_UploadFile", "description": "Uploads a file for use by other operations.", "consumes": [ "multipart/form-data" @@ -1463,7 +1463,7 @@ "200": { "description": "A representation of the uploaded file.", "schema": { - "$ref": "#/definitions/Agents.OpenAIFile" + "$ref": "#/definitions/Assistants.OpenAIFile" } }, "default": { @@ -1483,7 +1483,7 @@ }, "/files/{fileId}": { "get": { - "operationId": "Agents_GetFile", + "operationId": "Assistants_GetFile", "description": "Returns information about a specific file. Does not retrieve file content.", "parameters": [ { @@ -1501,7 +1501,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Agents.OpenAIFile" + "$ref": "#/definitions/Assistants.OpenAIFile" } }, "default": { @@ -1519,7 +1519,7 @@ } }, "delete": { - "operationId": "Agents_DeleteFile", + "operationId": "Assistants_DeleteFile", "description": "Delete a previously uploaded file.", "parameters": [ { @@ -1537,7 +1537,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Agents.FileDeletionStatus" + "$ref": "#/definitions/Assistants.FileDeletionStatus" } }, "default": { @@ -1557,7 +1557,7 @@ }, "/files/{fileId}/content": { "get": { - "operationId": "Agents_GetFileContent", + "operationId": "Assistants_GetFileContent", "description": "Retrieves the raw content of a specific file.", "parameters": [ { @@ -1970,7 +1970,7 @@ }, "/threads": { "post": { - "operationId": "Agents_CreateThread", + "operationId": "Assistants_CreateThread", "description": "Creates a new thread. Threads contain messages and can be run by agents.", "parameters": [ { @@ -1981,7 +1981,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/Agents.AgentThreadCreationOptions" + "$ref": "#/definitions/Assistants.AgentThreadCreationOptions" } } ], @@ -1989,7 +1989,7 @@ "200": { "description": "Information about the newly created thread.", "schema": { - "$ref": "#/definitions/Agents.AgentThread" + "$ref": "#/definitions/Assistants.AgentThread" } }, "default": { @@ -2009,7 +2009,7 @@ }, "/threads/{threadId}": { "get": { - "operationId": "Agents_GetThread", + "operationId": "Assistants_GetThread", "description": "Gets information about an existing thread.", "parameters": [ { @@ -2027,7 +2027,7 @@ "200": { "description": "Information about the requested thread.", "schema": { - "$ref": "#/definitions/Agents.AgentThread" + "$ref": "#/definitions/Assistants.AgentThread" } }, "default": { @@ -2045,21 +2045,21 @@ } }, "post": { - "operationId": "Agents_UpdateThread", + "operationId": "Assistants_UpdateThread", "description": "Modifies an existing thread.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/Agents.UpdateAgentThreadOptions.threadId" + "$ref": "#/parameters/Assistants.UpdateAgentThreadOptions.threadId" }, { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/Agents.UpdateAgentThreadOptions" + "$ref": "#/definitions/Assistants.UpdateAgentThreadOptions" } } ], @@ -2067,7 +2067,7 @@ "200": { "description": "Information about the modified thread.", "schema": { - "$ref": "#/definitions/Agents.AgentThread" + "$ref": "#/definitions/Assistants.AgentThread" } }, "default": { @@ -2085,7 +2085,7 @@ } }, "delete": { - "operationId": "Agents_DeleteThread", + "operationId": "Assistants_DeleteThread", "description": "Deletes an existing thread.", "parameters": [ { @@ -2103,7 +2103,7 @@ "200": { "description": "Status information about the requested thread deletion operation.", "schema": { - "$ref": "#/definitions/Agents.ThreadDeletionStatus" + "$ref": "#/definitions/Assistants.ThreadDeletionStatus" } }, "default": { @@ -2123,7 +2123,7 @@ }, "/threads/{threadId}/messages": { "get": { - "operationId": "Agents_ListMessages", + "operationId": "Assistants_ListMessages", "description": "Gets a list of messages that exist on a thread.", "parameters": [ { @@ -2216,7 +2216,7 @@ "type": "array", "description": "The requested list of items.", "items": { - "$ref": "#/definitions/Agents.ThreadMessage" + "$ref": "#/definitions/Assistants.ThreadMessage" } }, "first_id": { @@ -2259,7 +2259,7 @@ } }, "post": { - "operationId": "Agents_CreateMessage", + "operationId": "Assistants_CreateMessage", "description": "Creates a new message on a specified thread.", "parameters": [ { @@ -2277,7 +2277,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/Agents.ThreadMessageOptions" + "$ref": "#/definitions/Assistants.ThreadMessageOptions" } } ], @@ -2285,7 +2285,7 @@ "200": { "description": "A representation of the new message.", "schema": { - "$ref": "#/definitions/Agents.ThreadMessage" + "$ref": "#/definitions/Assistants.ThreadMessage" } }, "default": { @@ -2305,7 +2305,7 @@ }, "/threads/{threadId}/messages/{messageId}": { "get": { - "operationId": "Agents_GetMessage", + "operationId": "Assistants_GetMessage", "description": "Gets an existing message from an existing thread.", "parameters": [ { @@ -2330,7 +2330,7 @@ "200": { "description": "A representation of the requested message.", "schema": { - "$ref": "#/definitions/Agents.ThreadMessage" + "$ref": "#/definitions/Assistants.ThreadMessage" } }, "default": { @@ -2348,7 +2348,7 @@ } }, "post": { - "operationId": "Agents_UpdateMessage", + "operationId": "Assistants_UpdateMessage", "description": "Modifies an existing message on an existing thread.", "parameters": [ { @@ -2391,7 +2391,7 @@ "200": { "description": "A representation of the modified message.", "schema": { - "$ref": "#/definitions/Agents.ThreadMessage" + "$ref": "#/definitions/Assistants.ThreadMessage" } }, "default": { @@ -2411,7 +2411,7 @@ }, "/threads/{threadId}/runs": { "get": { - "operationId": "Agents_ListRuns", + "operationId": "Assistants_ListRuns", "description": "Gets a list of runs for a specified thread.", "parameters": [ { @@ -2497,7 +2497,7 @@ "type": "array", "description": "The requested list of items.", "items": { - "$ref": "#/definitions/Agents.ThreadRun" + "$ref": "#/definitions/Assistants.ThreadRun" } }, "first_id": { @@ -2540,7 +2540,7 @@ } }, "post": { - "operationId": "Agents_CreateRun", + "operationId": "Assistants_CreateRun", "description": "Creates a new run for an agent thread.", "parameters": [ { @@ -2584,7 +2584,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/Agents.CreateRunOptions" + "$ref": "#/definitions/Assistants.CreateRunOptions" } } ], @@ -2592,7 +2592,7 @@ "200": { "description": "Information about the new thread run.", "schema": { - "$ref": "#/definitions/Agents.ThreadRun" + "$ref": "#/definitions/Assistants.ThreadRun" } }, "default": { @@ -2612,7 +2612,7 @@ }, "/threads/{threadId}/runs/{runId}": { "get": { - "operationId": "Agents_GetRun", + "operationId": "Assistants_GetRun", "description": "Gets an existing run from an existing thread.", "parameters": [ { @@ -2637,7 +2637,7 @@ "200": { "description": "The requested information about the specified thread run.", "schema": { - "$ref": "#/definitions/Agents.ThreadRun" + "$ref": "#/definitions/Assistants.ThreadRun" } }, "default": { @@ -2655,7 +2655,7 @@ } }, "post": { - "operationId": "Agents_UpdateRun", + "operationId": "Assistants_UpdateRun", "description": "Modifies an existing thread run.", "parameters": [ { @@ -2698,7 +2698,7 @@ "200": { "description": "Information about the modified run.", "schema": { - "$ref": "#/definitions/Agents.ThreadRun" + "$ref": "#/definitions/Assistants.ThreadRun" } }, "default": { @@ -2718,7 +2718,7 @@ }, "/threads/{threadId}/runs/{runId}/cancel": { "post": { - "operationId": "Agents_CancelRun", + "operationId": "Assistants_CancelRun", "description": "Cancels a run of an in progress thread.", "parameters": [ { @@ -2743,7 +2743,7 @@ "200": { "description": "Updated information about the cancelled run.", "schema": { - "$ref": "#/definitions/Agents.ThreadRun" + "$ref": "#/definitions/Assistants.ThreadRun" } }, "default": { @@ -2763,7 +2763,7 @@ }, "/threads/{threadId}/runs/{runId}/steps": { "get": { - "operationId": "Agents_ListRunSteps", + "operationId": "Assistants_ListRunSteps", "description": "Gets a list of run steps from a thread run.", "parameters": [ { @@ -2882,7 +2882,7 @@ "type": "array", "description": "The requested list of items.", "items": { - "$ref": "#/definitions/Agents.RunStep" + "$ref": "#/definitions/Assistants.RunStep" } }, "first_id": { @@ -2927,7 +2927,7 @@ }, "/threads/{threadId}/runs/{runId}/steps/{stepId}": { "get": { - "operationId": "Agents_GetRunStep", + "operationId": "Assistants_GetRunStep", "description": "Gets a single run step from a thread run.", "parameters": [ { @@ -2985,7 +2985,7 @@ "200": { "description": "Information about the requested run step.", "schema": { - "$ref": "#/definitions/Agents.RunStep" + "$ref": "#/definitions/Assistants.RunStep" } }, "default": { @@ -3005,7 +3005,7 @@ }, "/threads/{threadId}/runs/{runId}/submit_tool_outputs": { "post": { - "operationId": "Agents_SubmitToolOutputsToRun", + "operationId": "Assistants_SubmitToolOutputsToRun", "description": "Submits outputs from tools as requested by tool calls in a run. Runs that need submitted tool outputs will have a status of 'requires_action' with a required_action.type of 'submit_tool_outputs'.", "parameters": [ { @@ -3036,7 +3036,7 @@ "type": "array", "description": "A list of tools for which the outputs are being submitted", "items": { - "$ref": "#/definitions/Agents.ToolOutput" + "$ref": "#/definitions/Assistants.ToolOutput" }, "x-ms-client-name": "toolOutputs", "x-ms-identifiers": [] @@ -3057,7 +3057,7 @@ "200": { "description": "Updated information about the run.", "schema": { - "$ref": "#/definitions/Agents.ThreadRun" + "$ref": "#/definitions/Assistants.ThreadRun" } }, "default": { @@ -3077,7 +3077,7 @@ }, "/threads/runs": { "post": { - "operationId": "Agents_CreateThreadAndRun", + "operationId": "Assistants_CreateThreadAndRun", "description": "Creates a new agent thread and immediately starts a run using that new thread.", "parameters": [ { @@ -3088,7 +3088,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/Agents.CreateAndRunThreadOptions" + "$ref": "#/definitions/Assistants.CreateAndRunThreadOptions" } } ], @@ -3096,7 +3096,7 @@ "200": { "description": "Information about the newly created thread.", "schema": { - "$ref": "#/definitions/Agents.ThreadRun" + "$ref": "#/definitions/Assistants.ThreadRun" } }, "default": { @@ -3116,7 +3116,7 @@ }, "/vector_stores": { "get": { - "operationId": "Agents_ListVectorStores", + "operationId": "Assistants_ListVectorStores", "description": "Returns a list of vector stores.", "parameters": [ { @@ -3195,7 +3195,7 @@ "type": "array", "description": "The requested list of items.", "items": { - "$ref": "#/definitions/Agents.VectorStore" + "$ref": "#/definitions/Assistants.VectorStore" } }, "first_id": { @@ -3238,7 +3238,7 @@ } }, "post": { - "operationId": "Agents_CreateVectorStore", + "operationId": "Assistants_CreateVectorStore", "description": "Creates a vector store.", "parameters": [ { @@ -3249,7 +3249,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/Agents.VectorStoreOptions" + "$ref": "#/definitions/Assistants.VectorStoreOptions" } } ], @@ -3257,7 +3257,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Agents.VectorStore" + "$ref": "#/definitions/Assistants.VectorStore" } }, "default": { @@ -3277,7 +3277,7 @@ }, "/vector_stores/{vectorStoreId}": { "get": { - "operationId": "Agents_GetVectorStore", + "operationId": "Assistants_GetVectorStore", "description": "Returns the vector store object matching the specified ID.", "parameters": [ { @@ -3295,7 +3295,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Agents.VectorStore" + "$ref": "#/definitions/Assistants.VectorStore" } }, "default": { @@ -3313,7 +3313,7 @@ } }, "post": { - "operationId": "Agents_ModifyVectorStore", + "operationId": "Assistants_ModifyVectorStore", "description": "The ID of the vector store to modify.", "parameters": [ { @@ -3331,7 +3331,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/Agents.VectorStoreUpdateOptions" + "$ref": "#/definitions/Assistants.VectorStoreUpdateOptions" } } ], @@ -3339,7 +3339,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Agents.VectorStore" + "$ref": "#/definitions/Assistants.VectorStore" } }, "default": { @@ -3357,7 +3357,7 @@ } }, "delete": { - "operationId": "Agents_DeleteVectorStore", + "operationId": "Assistants_DeleteVectorStore", "description": "Deletes the vector store object matching the specified ID.", "parameters": [ { @@ -3375,7 +3375,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Agents.VectorStoreDeletionStatus" + "$ref": "#/definitions/Assistants.VectorStoreDeletionStatus" } }, "default": { @@ -3395,7 +3395,7 @@ }, "/vector_stores/{vectorStoreId}/file_batches": { "post": { - "operationId": "Agents_CreateVectorStoreFileBatch", + "operationId": "Assistants_CreateVectorStoreFileBatch", "description": "Create a vector store file batch.", "parameters": [ { @@ -3431,13 +3431,13 @@ "minItems": 1, "maxItems": 500, "items": { - "$ref": "#/definitions/Agents.VectorStoreDataSource" + "$ref": "#/definitions/Assistants.VectorStoreDataSource" }, "x-ms-client-name": "dataSources", "x-ms-identifiers": [] }, "chunking_strategy": { - "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyRequest", + "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyRequest", "description": "The chunking strategy used to chunk the file(s). If not set, will use the auto strategy.", "x-ms-client-name": "chunkingStrategy" } @@ -3449,7 +3449,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Agents.VectorStoreFileBatch" + "$ref": "#/definitions/Assistants.VectorStoreFileBatch" } }, "default": { @@ -3469,7 +3469,7 @@ }, "/vector_stores/{vectorStoreId}/file_batches/{batchId}": { "get": { - "operationId": "Agents_GetVectorStoreFileBatch", + "operationId": "Assistants_GetVectorStoreFileBatch", "description": "Retrieve a vector store file batch.", "parameters": [ { @@ -3494,7 +3494,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Agents.VectorStoreFileBatch" + "$ref": "#/definitions/Assistants.VectorStoreFileBatch" } }, "default": { @@ -3514,7 +3514,7 @@ }, "/vector_stores/{vectorStoreId}/file_batches/{batchId}/cancel": { "post": { - "operationId": "Agents_CancelVectorStoreFileBatch", + "operationId": "Assistants_CancelVectorStoreFileBatch", "description": "Cancel a vector store file batch. This attempts to cancel the processing of files in this batch as soon as possible.", "parameters": [ { @@ -3539,7 +3539,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Agents.VectorStoreFileBatch" + "$ref": "#/definitions/Assistants.VectorStoreFileBatch" } }, "default": { @@ -3559,7 +3559,7 @@ }, "/vector_stores/{vectorStoreId}/file_batches/{batchId}/files": { "get": { - "operationId": "Agents_ListVectorStoreFileBatchFiles", + "operationId": "Assistants_ListVectorStoreFileBatchFiles", "description": "Returns a list of vector store files in a batch.", "parameters": [ { @@ -3691,7 +3691,7 @@ "type": "array", "description": "The requested list of items.", "items": { - "$ref": "#/definitions/Agents.VectorStoreFile" + "$ref": "#/definitions/Assistants.VectorStoreFile" } }, "first_id": { @@ -3736,7 +3736,7 @@ }, "/vector_stores/{vectorStoreId}/files": { "get": { - "operationId": "Agents_ListVectorStoreFiles", + "operationId": "Assistants_ListVectorStoreFiles", "description": "Returns a list of vector store files.", "parameters": [ { @@ -3861,7 +3861,7 @@ "type": "array", "description": "The requested list of items.", "items": { - "$ref": "#/definitions/Agents.VectorStoreFile" + "$ref": "#/definitions/Assistants.VectorStoreFile" } }, "first_id": { @@ -3904,7 +3904,7 @@ } }, "post": { - "operationId": "Agents_CreateVectorStoreFile", + "operationId": "Assistants_CreateVectorStoreFile", "description": "Create a vector store file by attaching a file to a vector store.", "parameters": [ { @@ -3930,12 +3930,12 @@ "x-ms-client-name": "fileId" }, "data_source": { - "$ref": "#/definitions/Agents.VectorStoreDataSource", + "$ref": "#/definitions/Assistants.VectorStoreDataSource", "description": "Azure asset ID.", "x-ms-client-name": "dataSource" }, "chunking_strategy": { - "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyRequest", + "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyRequest", "description": "The chunking strategy used to chunk the file(s). If not set, will use the auto strategy.", "x-ms-client-name": "chunkingStrategy" } @@ -3947,7 +3947,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Agents.VectorStoreFile" + "$ref": "#/definitions/Assistants.VectorStoreFile" } }, "default": { @@ -3967,7 +3967,7 @@ }, "/vector_stores/{vectorStoreId}/files/{fileId}": { "get": { - "operationId": "Agents_GetVectorStoreFile", + "operationId": "Assistants_GetVectorStoreFile", "description": "Retrieves a vector store file.", "parameters": [ { @@ -3992,7 +3992,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Agents.VectorStoreFile" + "$ref": "#/definitions/Assistants.VectorStoreFile" } }, "default": { @@ -4010,7 +4010,7 @@ } }, "delete": { - "operationId": "Agents_DeleteVectorStoreFile", + "operationId": "Assistants_DeleteVectorStoreFile", "description": "Delete a vector store file. This will remove the file from the vector store but the file itself will not be deleted.\nTo delete the file, use the delete file endpoint.", "parameters": [ { @@ -4035,7 +4035,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Agents.VectorStoreFileDeletionStatus" + "$ref": "#/definitions/Assistants.VectorStoreFileDeletionStatus" } }, "default": { @@ -4065,7 +4065,65 @@ ], "x-ms-discriminator-value": "AAD" }, - "Agents.Agent": { + "ApiKeyCredential": { + "type": "object", + "description": "ApiKey Credential definition", + "properties": { + "apiKey": { + "type": "string", + "description": "API Key", + "readOnly": true + } + }, + "required": [ + "apiKey" + ], + "allOf": [ + { + "$ref": "#/definitions/BaseCredential" + } + ], + "x-ms-discriminator-value": "ApiKey" + }, + "ApiResponseFormat": { + "type": "string", + "description": "Possible API response formats.", + "enum": [ + "text", + "json_object" + ], + "x-ms-enum": { + "name": "ApiResponseFormat", + "modelAsString": true, + "values": [ + { + "name": "text", + "value": "text", + "description": "`text` format should be used for requests involving any sort of ToolCall." + }, + { + "name": "jsonObject", + "value": "json_object", + "description": "Using `json_object` format will limit the usage of ToolCall to only functions." + } + ] + } + }, + "AssetReferenceBase": { + "type": "object", + "description": "Base definition for asset references.", + "properties": { + "referenceType": { + "$ref": "#/definitions/ReferenceType", + "description": "Asset reference type." + } + }, + "discriminator": "referenceType", + "required": [ + "referenceType" + ] + }, + "Assistants.Agent": { "type": "object", "description": "Represents an agent that can call the model and use tools.", "properties": { @@ -4113,7 +4171,7 @@ "description": "The collection of tools enabled for the agent.", "default": [], "items": { - "$ref": "#/definitions/Agents.ToolDefinition" + "$ref": "#/definitions/Assistants.ToolDefinition" }, "x-ms-identifiers": [] }, @@ -4123,7 +4181,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Agents.ToolResources" + "$ref": "#/definitions/Assistants.ToolResources" } ], "x-ms-client-name": "toolResources" @@ -4144,7 +4202,7 @@ "x-ms-client-name": "topP" }, "response_format": { - "$ref": "#/definitions/Agents.AgentsApiResponseFormatOption", + "$ref": "#/definitions/Assistants.AgentsApiResponseFormatOption", "description": "The response format of the tool calls used by this agent.", "x-nullable": true, "x-ms-client-name": "responseFormat" @@ -4173,7 +4231,7 @@ "metadata" ] }, - "Agents.AgentDeletionStatus": { + "Assistants.AgentDeletionStatus": { "type": "object", "description": "The status of an agent deletion operation.", "properties": { @@ -4202,7 +4260,7 @@ "object" ] }, - "Agents.AgentStreamEvent": { + "Assistants.AgentStreamEvent": { "type": "string", "description": "Each event in a server-sent events stream has an `event` and `data` property:\n\n```\nevent: thread.created\ndata: {\"id\": \"thread_123\", \"object\": \"thread\", ...}\n```\n\nWe emit events whenever a new object is created, transitions to a new state, or is being\nstreamed in parts (deltas). For example, we emit `thread.run.created` when a new run\nis created, `thread.run.completed` when a run completes, and so on. When an Agent chooses\nto create a message during a run, we emit a `thread.message.created event`, a\n`thread.message.in_progress` event, many `thread.message.delta` events, and finally a\n`thread.message.completed` event.\n\nWe may add additional events over time, so we recommend handling unknown events gracefully\nin your code.", "enum": [ @@ -4364,7 +4422,7 @@ ] } }, - "Agents.AgentThread": { + "Assistants.AgentThread": { "type": "object", "description": "Information about a single thread associated with an agent.", "properties": { @@ -4394,7 +4452,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Agents.ToolResources" + "$ref": "#/definitions/Assistants.ToolResources" } ], "x-ms-client-name": "toolResources" @@ -4416,7 +4474,7 @@ "metadata" ] }, - "Agents.AgentThreadCreationOptions": { + "Assistants.AgentThreadCreationOptions": { "type": "object", "description": "The details used to create a new agent thread.", "properties": { @@ -4424,7 +4482,7 @@ "type": "array", "description": "The initial messages to associate with the new thread.", "items": { - "$ref": "#/definitions/Agents.ThreadMessageOptions" + "$ref": "#/definitions/Assistants.ThreadMessageOptions" }, "x-ms-identifiers": [] }, @@ -4434,7 +4492,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Agents.ToolResources" + "$ref": "#/definitions/Assistants.ToolResources" } ], "x-ms-client-name": "toolResources" @@ -4449,7 +4507,7 @@ } } }, - "Agents.AgentsApiResponseFormat": { + "Assistants.AgentsApiResponseFormat": { "type": "object", "description": "An object describing the expected output of the model. If `json_object` only `function` type `tools` are allowed to be passed to the Run.\nIf `text` the model can return text or any value needed.", "properties": { @@ -4480,7 +4538,7 @@ } } }, - "Agents.AgentsApiResponseFormatMode": { + "Assistants.AgentsApiResponseFormatMode": { "type": "string", "description": "Represents the mode in which the model will handle the return format of a tool call.", "enum": [ @@ -4504,9 +4562,9 @@ ] } }, - "Agents.AgentsApiResponseFormatOption": {}, - "Agents.AgentsApiToolChoiceOption": {}, - "Agents.AgentsApiToolChoiceOptionMode": { + "Assistants.AgentsApiResponseFormatOption": {}, + "Assistants.AgentsApiToolChoiceOption": {}, + "Assistants.AgentsApiToolChoiceOptionMode": { "type": "string", "description": "Specifies how the tool choice will be used", "enum": [ @@ -4530,16 +4588,16 @@ ] } }, - "Agents.AgentsNamedToolChoice": { + "Assistants.AgentsNamedToolChoice": { "type": "object", "description": "Specifies a tool the model should use. Use to force the model to call a specific tool.", "properties": { "type": { - "$ref": "#/definitions/Agents.AgentsNamedToolChoiceType", + "$ref": "#/definitions/Assistants.AgentsNamedToolChoiceType", "description": "the type of tool. If type is `function`, the function name must be set." }, "function": { - "$ref": "#/definitions/Agents.FunctionName", + "$ref": "#/definitions/Assistants.FunctionName", "description": "The name of the function to call" } }, @@ -4547,7 +4605,7 @@ "type" ] }, - "Agents.AgentsNamedToolChoiceType": { + "Assistants.AgentsNamedToolChoiceType": { "type": "string", "description": "Available tool types for agents named tools.", "enum": [ @@ -4601,7 +4659,7 @@ ] } }, - "Agents.AzureAISearchResource": { + "Assistants.AzureAISearchResource": { "type": "object", "description": "A set of index resources used by the `azure_ai_search` tool.", "properties": { @@ -4610,24 +4668,24 @@ "description": "The indices attached to this agent. There can be a maximum of 1 index\nresource attached to the agent.", "maxItems": 1, "items": { - "$ref": "#/definitions/Agents.IndexResource" + "$ref": "#/definitions/Assistants.IndexResource" }, "x-ms-client-name": "indexList", "x-ms-identifiers": [] } } }, - "Agents.AzureAISearchToolDefinition": { + "Assistants.AzureAISearchToolDefinition": { "type": "object", "description": "The input definition information for an Azure AI search tool as used to configure an agent.", "allOf": [ { - "$ref": "#/definitions/Agents.ToolDefinition" + "$ref": "#/definitions/Assistants.ToolDefinition" } ], "x-ms-discriminator-value": "azure_ai_search" }, - "Agents.AzureFunctionBinding": { + "Assistants.AzureFunctionBinding": { "type": "object", "description": "The structure for keeping storage queue name and URI.", "properties": { @@ -4642,7 +4700,7 @@ } }, "storage_queue": { - "$ref": "#/definitions/Agents.AzureFunctionStorageQueue", + "$ref": "#/definitions/Assistants.AzureFunctionStorageQueue", "description": "Storage queue.", "x-ms-client-name": "storageQueue" } @@ -4652,21 +4710,21 @@ "storage_queue" ] }, - "Agents.AzureFunctionDefinition": { + "Assistants.AzureFunctionDefinition": { "type": "object", "description": "The definition of Azure function.", "properties": { "function": { - "$ref": "#/definitions/Agents.FunctionDefinition", + "$ref": "#/definitions/Assistants.FunctionDefinition", "description": "The definition of azure function and its parameters." }, "input_binding": { - "$ref": "#/definitions/Agents.AzureFunctionBinding", + "$ref": "#/definitions/Assistants.AzureFunctionBinding", "description": "Input storage queue. The queue storage trigger runs a function as messages are added to it.", "x-ms-client-name": "inputBinding" }, "output_binding": { - "$ref": "#/definitions/Agents.AzureFunctionBinding", + "$ref": "#/definitions/Assistants.AzureFunctionBinding", "description": "Output storage queue. The function writes output to this queue when the input items are processed.", "x-ms-client-name": "outputBinding" } @@ -4677,7 +4735,7 @@ "output_binding" ] }, - "Agents.AzureFunctionStorageQueue": { + "Assistants.AzureFunctionStorageQueue": { "type": "object", "description": "The structure for keeping storage queue name and URI.", "properties": { @@ -4697,12 +4755,12 @@ "queue_name" ] }, - "Agents.AzureFunctionToolDefinition": { + "Assistants.AzureFunctionToolDefinition": { "type": "object", "description": "The input definition information for a azure function tool as used to configure an agent.", "properties": { "azure_function": { - "$ref": "#/definitions/Agents.AzureFunctionDefinition", + "$ref": "#/definitions/Assistants.AzureFunctionDefinition", "description": "The definition of the concrete function that the function tool should call.", "x-ms-client-name": "azureFunction" } @@ -4712,17 +4770,17 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.ToolDefinition" + "$ref": "#/definitions/Assistants.ToolDefinition" } ], "x-ms-discriminator-value": "azure_function" }, - "Agents.BingGroundingToolDefinition": { + "Assistants.BingGroundingToolDefinition": { "type": "object", "description": "The input definition information for a bing grounding search tool as used to configure an agent.", "properties": { "bing_grounding": { - "$ref": "#/definitions/Agents.ToolConnectionList", + "$ref": "#/definitions/Assistants.ToolConnectionList", "description": "The list of connections used by the bing grounding tool." } }, @@ -4731,22 +4789,22 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.ToolDefinition" + "$ref": "#/definitions/Assistants.ToolDefinition" } ], "x-ms-discriminator-value": "bing_grounding" }, - "Agents.CodeInterpreterToolDefinition": { + "Assistants.CodeInterpreterToolDefinition": { "type": "object", "description": "The input definition information for a code interpreter tool as used to configure an agent.", "allOf": [ { - "$ref": "#/definitions/Agents.ToolDefinition" + "$ref": "#/definitions/Assistants.ToolDefinition" } ], "x-ms-discriminator-value": "code_interpreter" }, - "Agents.CodeInterpreterToolResource": { + "Assistants.CodeInterpreterToolResource": { "type": "object", "description": "A set of resources that are used by the `code_interpreter` tool.", "properties": { @@ -4765,14 +4823,14 @@ "description": "The data sources to be used. This option is mutually exclusive with the `fileIds` property.", "maxItems": 20, "items": { - "$ref": "#/definitions/Agents.VectorStoreDataSource" + "$ref": "#/definitions/Assistants.VectorStoreDataSource" }, "x-ms-client-name": "dataSources", "x-ms-identifiers": [] } } }, - "Agents.CreateAgentOptions": { + "Assistants.CreateAgentOptions": { "type": "object", "description": "The request details to use when creating a new agent.", "properties": { @@ -4800,7 +4858,7 @@ "description": "The collection of tools to enable for the new agent.", "default": [], "items": { - "$ref": "#/definitions/Agents.ToolDefinition" + "$ref": "#/definitions/Assistants.ToolDefinition" }, "x-ms-identifiers": [] }, @@ -4810,7 +4868,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Agents.ToolResources" + "$ref": "#/definitions/Assistants.ToolResources" } ], "x-ms-client-name": "toolResources" @@ -4831,7 +4889,7 @@ "x-ms-client-name": "topP" }, "response_format": { - "$ref": "#/definitions/Agents.AgentsApiResponseFormatOption", + "$ref": "#/definitions/Assistants.AgentsApiResponseFormatOption", "description": "The response format of the tool calls used by this agent.", "x-nullable": true, "x-ms-client-name": "responseFormat" @@ -4849,7 +4907,7 @@ "model" ] }, - "Agents.CreateAndRunThreadOptions": { + "Assistants.CreateAndRunThreadOptions": { "type": "object", "description": "The details used when creating and immediately running a new agent thread.", "properties": { @@ -4859,7 +4917,7 @@ "x-ms-client-name": "assistantId" }, "thread": { - "$ref": "#/definitions/Agents.AgentThreadCreationOptions", + "$ref": "#/definitions/Assistants.AgentThreadCreationOptions", "description": "The details used to create the new thread. If no thread is provided, an empty one will be created." }, "model": { @@ -4877,7 +4935,7 @@ "description": "The overridden list of enabled tools the agent should use to run the thread.", "x-nullable": true, "items": { - "$ref": "#/definitions/Agents.ToolDefinition" + "$ref": "#/definitions/Assistants.ToolDefinition" }, "x-ms-identifiers": [] }, @@ -4887,7 +4945,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Agents.UpdateToolResourcesOptions" + "$ref": "#/definitions/Assistants.UpdateToolResourcesOptions" } ], "x-ms-client-name": "toolResources" @@ -4931,19 +4989,19 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Agents.TruncationObject" + "$ref": "#/definitions/Assistants.TruncationObject" } ], "x-ms-client-name": "truncationStrategy" }, "tool_choice": { - "$ref": "#/definitions/Agents.AgentsApiToolChoiceOption", + "$ref": "#/definitions/Assistants.AgentsApiToolChoiceOption", "description": "Controls whether or not and which tool is called by the model.", "x-nullable": true, "x-ms-client-name": "toolChoice" }, "response_format": { - "$ref": "#/definitions/Agents.AgentsApiResponseFormatOption", + "$ref": "#/definitions/Assistants.AgentsApiResponseFormatOption", "description": "Specifies the format that the model must output.", "x-nullable": true, "x-ms-client-name": "responseFormat" @@ -4966,7 +5024,7 @@ "assistant_id" ] }, - "Agents.CreateCodeInterpreterToolResourceOptions": { + "Assistants.CreateCodeInterpreterToolResourceOptions": { "type": "object", "description": "A set of resources that will be used by the `code_interpreter` tool. Request object.", "properties": { @@ -4982,8 +5040,8 @@ } } }, - "Agents.CreateFileSearchToolResourceOptions": {}, - "Agents.CreateFileSearchToolResourceVectorStoreOptions": { + "Assistants.CreateFileSearchToolResourceOptions": {}, + "Assistants.CreateFileSearchToolResourceVectorStoreOptions": { "type": "object", "description": "File IDs associated to the vector store to be passed to the helper.", "properties": { @@ -4997,7 +5055,7 @@ "x-ms-client-name": "fileIds" }, "chunking_strategy": { - "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyRequest", + "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyRequest", "description": "The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy.", "x-ms-client-name": "chunkingStrategy" }, @@ -5015,7 +5073,7 @@ "chunking_strategy" ] }, - "Agents.CreateRunOptions": { + "Assistants.CreateRunOptions": { "type": "object", "description": "The details used when creating a new run of an agent thread.", "properties": { @@ -5045,7 +5103,7 @@ "description": "Adds additional messages to the thread before creating the run.", "x-nullable": true, "items": { - "$ref": "#/definitions/Agents.ThreadMessageOptions" + "$ref": "#/definitions/Assistants.ThreadMessageOptions" }, "x-ms-client-name": "additionalMessages", "x-ms-identifiers": [] @@ -5055,7 +5113,7 @@ "description": "The overridden list of enabled tools that the agent should use to run the thread.", "x-nullable": true, "items": { - "$ref": "#/definitions/Agents.ToolDefinition" + "$ref": "#/definitions/Assistants.ToolDefinition" }, "x-ms-identifiers": [] }, @@ -5098,19 +5156,19 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Agents.TruncationObject" + "$ref": "#/definitions/Assistants.TruncationObject" } ], "x-ms-client-name": "truncationStrategy" }, "tool_choice": { - "$ref": "#/definitions/Agents.AgentsApiToolChoiceOption", + "$ref": "#/definitions/Assistants.AgentsApiToolChoiceOption", "description": "Controls whether or not and which tool is called by the model.", "x-nullable": true, "x-ms-client-name": "toolChoice" }, "response_format": { - "$ref": "#/definitions/Agents.AgentsApiResponseFormatOption", + "$ref": "#/definitions/Assistants.AgentsApiResponseFormatOption", "description": "Specifies the format that the model must output.", "x-nullable": true, "x-ms-client-name": "responseFormat" @@ -5133,28 +5191,28 @@ "assistant_id" ] }, - "Agents.CreateToolResourcesOptions": { + "Assistants.CreateToolResourcesOptions": { "type": "object", "description": "Request object. A set of resources that are used by the agent's tools. The resources are specific to the\ntype of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search`\ntool requires a list of vector store IDs.", "properties": { "code_interpreter": { - "$ref": "#/definitions/Agents.CreateCodeInterpreterToolResourceOptions", + "$ref": "#/definitions/Assistants.CreateCodeInterpreterToolResourceOptions", "description": "A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files\nassociated with the tool.", "x-ms-client-name": "codeInterpreter" }, "file_search": { - "$ref": "#/definitions/Agents.CreateFileSearchToolResourceOptions", + "$ref": "#/definitions/Assistants.CreateFileSearchToolResourceOptions", "description": "A list of vector stores or their IDs made available to the `file_search` tool.", "x-ms-client-name": "fileSearch" }, "azure_ai_search": { - "$ref": "#/definitions/Agents.AzureAISearchResource", + "$ref": "#/definitions/Assistants.AzureAISearchResource", "description": "Resources to be used by the `azure_ai_search` tool consisting of index IDs and names.", "x-ms-client-name": "azureAISearch" } } }, - "Agents.DoneEvent": { + "Assistants.DoneEvent": { "type": "string", "description": "Terminal event indicating the successful end of a stream.", "enum": [ @@ -5172,7 +5230,7 @@ ] } }, - "Agents.ErrorEvent": { + "Assistants.ErrorEvent": { "type": "string", "description": "Terminal event indicating a server side error while streaming.", "enum": [ @@ -5190,7 +5248,7 @@ ] } }, - "Agents.FileDeletionStatus": { + "Assistants.FileDeletionStatus": { "type": "object", "description": "A status response from a file deletion operation.", "properties": { @@ -5219,7 +5277,7 @@ "object" ] }, - "Agents.FileListResponse": { + "Assistants.FileListResponse": { "type": "object", "description": "The response data from a file list operation.", "properties": { @@ -5237,7 +5295,7 @@ "type": "array", "description": "The files returned for the request.", "items": { - "$ref": "#/definitions/Agents.OpenAIFile" + "$ref": "#/definitions/Assistants.OpenAIFile" } } }, @@ -5246,7 +5304,7 @@ "data" ] }, - "Agents.FilePurpose": { + "Assistants.FilePurpose": { "type": "string", "description": "The possible values denoting the intended usage of a file.", "enum": [ @@ -5300,7 +5358,7 @@ ] } }, - "Agents.FileSearchRankingOptions": { + "Assistants.FileSearchRankingOptions": { "type": "object", "description": "Ranking options for file search.", "properties": { @@ -5320,7 +5378,7 @@ "score_threshold" ] }, - "Agents.FileSearchToolCallContent": { + "Assistants.FileSearchToolCallContent": { "type": "object", "description": "The file search result content object.", "properties": { @@ -5344,24 +5402,24 @@ "text" ] }, - "Agents.FileSearchToolDefinition": { + "Assistants.FileSearchToolDefinition": { "type": "object", "description": "The input definition information for a file search tool as used to configure an agent.", "properties": { "file_search": { - "$ref": "#/definitions/Agents.FileSearchToolDefinitionDetails", + "$ref": "#/definitions/Assistants.FileSearchToolDefinitionDetails", "description": "Options overrides for the file search tool.", "x-ms-client-name": "fileSearch" } }, "allOf": [ { - "$ref": "#/definitions/Agents.ToolDefinition" + "$ref": "#/definitions/Assistants.ToolDefinition" } ], "x-ms-discriminator-value": "file_search" }, - "Agents.FileSearchToolDefinitionDetails": { + "Assistants.FileSearchToolDefinitionDetails": { "type": "object", "description": "Options overrides for the file search tool.", "properties": { @@ -5374,13 +5432,13 @@ "x-ms-client-name": "maxNumResults" }, "ranking_options": { - "$ref": "#/definitions/Agents.FileSearchRankingOptions", + "$ref": "#/definitions/Assistants.FileSearchRankingOptions", "description": "Ranking options for file search.", "x-ms-client-name": "rankingOptions" } } }, - "Agents.FileSearchToolResource": { + "Assistants.FileSearchToolResource": { "type": "object", "description": "A set of resources that are used by the `file_search` tool.", "properties": { @@ -5398,14 +5456,14 @@ "description": "The list of vector store configuration objects from Azure.\nThis list is limited to one element.\nThe only element of this list contains the list of azure asset IDs used by the search tool.", "maxItems": 1, "items": { - "$ref": "#/definitions/Agents.VectorStoreConfigurations" + "$ref": "#/definitions/Assistants.VectorStoreConfigurations" }, "x-ms-client-name": "vectorStores", "x-ms-identifiers": [] } } }, - "Agents.FileState": { + "Assistants.FileState": { "type": "string", "description": "The state of the file.", "enum": [ @@ -5459,7 +5517,7 @@ ] } }, - "Agents.FunctionDefinition": { + "Assistants.FunctionDefinition": { "type": "object", "description": "The input definition information for a function.", "properties": { @@ -5480,7 +5538,7 @@ "parameters" ] }, - "Agents.FunctionName": { + "Assistants.FunctionName": { "type": "object", "description": "The function name that will be used, if using the `function` tool", "properties": { @@ -5493,12 +5551,12 @@ "name" ] }, - "Agents.FunctionToolDefinition": { + "Assistants.FunctionToolDefinition": { "type": "object", "description": "The input definition information for a function tool as used to configure an agent.", "properties": { "function": { - "$ref": "#/definitions/Agents.FunctionDefinition", + "$ref": "#/definitions/Assistants.FunctionDefinition", "description": "The definition of the concrete function that the function tool should call." } }, @@ -5507,12 +5565,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.ToolDefinition" + "$ref": "#/definitions/Assistants.ToolDefinition" } ], "x-ms-discriminator-value": "function" }, - "Agents.IncompleteDetailsReason": { + "Assistants.IncompleteDetailsReason": { "type": "string", "description": "The reason why the run is incomplete. This will point to which specific token limit was reached over the course of the run.", "enum": [ @@ -5536,12 +5594,12 @@ ] } }, - "Agents.IncompleteRunDetails": { + "Assistants.IncompleteRunDetails": { "type": "object", "description": "Details on why the run is incomplete. Will be `null` if the run is not incomplete.", "properties": { "reason": { - "$ref": "#/definitions/Agents.IncompleteDetailsReason", + "$ref": "#/definitions/Assistants.IncompleteDetailsReason", "description": "The reason why the run is incomplete. This indicates which specific token limit was reached during the run." } }, @@ -5549,7 +5607,7 @@ "reason" ] }, - "Agents.IndexResource": { + "Assistants.IndexResource": { "type": "object", "description": "A Index resource.", "properties": { @@ -5569,7 +5627,7 @@ "index_name" ] }, - "Agents.ListSortOrder": { + "Assistants.ListSortOrder": { "type": "string", "description": "The available sorting options when requesting a list of response objects.", "enum": [ @@ -5593,7 +5651,7 @@ ] } }, - "Agents.MessageAttachment": { + "Assistants.MessageAttachment": { "type": "object", "description": "This describes to which tools a file has been attached.", "properties": { @@ -5603,7 +5661,7 @@ "x-ms-client-name": "fileId" }, "data_source": { - "$ref": "#/definitions/Agents.VectorStoreDataSource", + "$ref": "#/definitions/Assistants.VectorStoreDataSource", "description": "Azure asset ID.", "x-ms-client-name": "dataSource" }, @@ -5611,7 +5669,7 @@ "type": "array", "description": "The tools to add to this file.", "items": { - "$ref": "#/definitions/Agents.MessageAttachmentToolDefinition" + "$ref": "#/definitions/Assistants.MessageAttachmentToolDefinition" } } }, @@ -5619,10 +5677,10 @@ "tools" ] }, - "Agents.MessageAttachmentToolDefinition": { + "Assistants.MessageAttachmentToolDefinition": { "x-nullable": false }, - "Agents.MessageContent": { + "Assistants.MessageContent": { "type": "object", "description": "An abstract representation of a single item of thread message content.", "properties": { @@ -5636,19 +5694,19 @@ "type" ] }, - "Agents.MessageDelta": { + "Assistants.MessageDelta": { "type": "object", "description": "Represents the typed 'delta' payload within a streaming message delta chunk.", "properties": { "role": { - "$ref": "#/definitions/Agents.MessageRole", + "$ref": "#/definitions/Assistants.MessageRole", "description": "The entity that produced the message." }, "content": { "type": "array", "description": "The content of the message as an array of text and/or images.", "items": { - "$ref": "#/definitions/Agents.MessageDeltaContent" + "$ref": "#/definitions/Assistants.MessageDeltaContent" }, "x-ms-identifiers": [] } @@ -5658,7 +5716,7 @@ "content" ] }, - "Agents.MessageDeltaChunk": { + "Assistants.MessageDeltaChunk": { "type": "object", "description": "Represents a message delta i.e. any changed fields on a message during streaming.", "properties": { @@ -5677,7 +5735,7 @@ } }, "delta": { - "$ref": "#/definitions/Agents.MessageDelta", + "$ref": "#/definitions/Assistants.MessageDelta", "description": "The delta containing the fields that have changed on the Message." } }, @@ -5687,7 +5745,7 @@ "delta" ] }, - "Agents.MessageDeltaContent": { + "Assistants.MessageDeltaContent": { "type": "object", "description": "The abstract base representation of a partial streamed message content payload.", "properties": { @@ -5707,24 +5765,24 @@ "type" ] }, - "Agents.MessageDeltaImageFileContent": { + "Assistants.MessageDeltaImageFileContent": { "type": "object", "description": "Represents a streamed image file content part within a streaming message delta chunk.", "properties": { "image_file": { - "$ref": "#/definitions/Agents.MessageDeltaImageFileContentObject", + "$ref": "#/definitions/Assistants.MessageDeltaImageFileContentObject", "description": "The image_file data.", "x-ms-client-name": "imageFile" } }, "allOf": [ { - "$ref": "#/definitions/Agents.MessageDeltaContent" + "$ref": "#/definitions/Assistants.MessageDeltaContent" } ], "x-ms-discriminator-value": "image_file" }, - "Agents.MessageDeltaImageFileContentObject": { + "Assistants.MessageDeltaImageFileContentObject": { "type": "object", "description": "Represents the 'image_file' payload within streaming image file content.", "properties": { @@ -5735,7 +5793,7 @@ } } }, - "Agents.MessageDeltaTextAnnotation": { + "Assistants.MessageDeltaTextAnnotation": { "type": "object", "description": "The abstract base representation of a streamed text content part's text annotation.", "properties": { @@ -5755,23 +5813,23 @@ "type" ] }, - "Agents.MessageDeltaTextContent": { + "Assistants.MessageDeltaTextContent": { "type": "object", "description": "Represents a streamed text content part within a streaming message delta chunk.", "properties": { "text": { - "$ref": "#/definitions/Agents.MessageDeltaTextContentObject", + "$ref": "#/definitions/Assistants.MessageDeltaTextContentObject", "description": "The text content details." } }, "allOf": [ { - "$ref": "#/definitions/Agents.MessageDeltaContent" + "$ref": "#/definitions/Assistants.MessageDeltaContent" } ], "x-ms-discriminator-value": "text" }, - "Agents.MessageDeltaTextContentObject": { + "Assistants.MessageDeltaTextContentObject": { "type": "object", "description": "Represents the data of a streamed text content part within a streaming message delta chunk.", "properties": { @@ -5783,18 +5841,18 @@ "type": "array", "description": "Annotations for the text.", "items": { - "$ref": "#/definitions/Agents.MessageDeltaTextAnnotation" + "$ref": "#/definitions/Assistants.MessageDeltaTextAnnotation" }, "x-ms-identifiers": [] } } }, - "Agents.MessageDeltaTextFileCitationAnnotation": { + "Assistants.MessageDeltaTextFileCitationAnnotation": { "type": "object", "description": "Represents a streamed file citation applied to a streaming text content part.", "properties": { "file_citation": { - "$ref": "#/definitions/Agents.MessageDeltaTextFileCitationAnnotationObject", + "$ref": "#/definitions/Assistants.MessageDeltaTextFileCitationAnnotationObject", "description": "The file citation information.", "x-ms-client-name": "fileCitation" }, @@ -5817,12 +5875,12 @@ }, "allOf": [ { - "$ref": "#/definitions/Agents.MessageDeltaTextAnnotation" + "$ref": "#/definitions/Assistants.MessageDeltaTextAnnotation" } ], "x-ms-discriminator-value": "file_citation" }, - "Agents.MessageDeltaTextFileCitationAnnotationObject": { + "Assistants.MessageDeltaTextFileCitationAnnotationObject": { "type": "object", "description": "Represents the data of a streamed file citation as applied to a streaming text content part.", "properties": { @@ -5837,12 +5895,12 @@ } } }, - "Agents.MessageDeltaTextFilePathAnnotation": { + "Assistants.MessageDeltaTextFilePathAnnotation": { "type": "object", "description": "Represents a streamed file path annotation applied to a streaming text content part.", "properties": { "file_path": { - "$ref": "#/definitions/Agents.MessageDeltaTextFilePathAnnotationObject", + "$ref": "#/definitions/Assistants.MessageDeltaTextFilePathAnnotationObject", "description": "The file path information.", "x-ms-client-name": "filePath" }, @@ -5865,12 +5923,12 @@ }, "allOf": [ { - "$ref": "#/definitions/Agents.MessageDeltaTextAnnotation" + "$ref": "#/definitions/Assistants.MessageDeltaTextAnnotation" } ], "x-ms-discriminator-value": "file_path" }, - "Agents.MessageDeltaTextFilePathAnnotationObject": { + "Assistants.MessageDeltaTextFilePathAnnotationObject": { "type": "object", "description": "Represents the data of a streamed file path annotation as applied to a streaming text content part.", "properties": { @@ -5881,7 +5939,7 @@ } } }, - "Agents.MessageDeltaTextUrlCitationDetails": { + "Assistants.MessageDeltaTextUrlCitationDetails": { "type": "object", "description": "A representation of the URL used for the text citation.", "properties": { @@ -5895,12 +5953,12 @@ } } }, - "Agents.MessageImageFileContent": { + "Assistants.MessageImageFileContent": { "type": "object", "description": "A representation of image file content in a thread message.", "properties": { "image_file": { - "$ref": "#/definitions/Agents.MessageImageFileDetails", + "$ref": "#/definitions/Assistants.MessageImageFileDetails", "description": "The image file for this thread message content item.", "x-ms-client-name": "imageFile" } @@ -5910,12 +5968,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.MessageContent" + "$ref": "#/definitions/Assistants.MessageContent" } ], "x-ms-discriminator-value": "image_file" }, - "Agents.MessageImageFileDetails": { + "Assistants.MessageImageFileDetails": { "type": "object", "description": "An image reference, as represented in thread message content.", "properties": { @@ -5929,12 +5987,12 @@ "file_id" ] }, - "Agents.MessageIncompleteDetails": { + "Assistants.MessageIncompleteDetails": { "type": "object", "description": "Information providing additional detail about a message entering an incomplete status.", "properties": { "reason": { - "$ref": "#/definitions/Agents.MessageIncompleteDetailsReason", + "$ref": "#/definitions/Assistants.MessageIncompleteDetailsReason", "description": "The provided reason describing why the message was marked as incomplete." } }, @@ -5942,7 +6000,7 @@ "reason" ] }, - "Agents.MessageIncompleteDetailsReason": { + "Assistants.MessageIncompleteDetailsReason": { "type": "string", "description": "A set of reasons describing why a message is marked as incomplete.", "enum": [ @@ -5984,7 +6042,7 @@ ] } }, - "Agents.MessageRole": { + "Assistants.MessageRole": { "type": "string", "description": "The possible values for roles attributed to messages in a thread.", "enum": [ @@ -6008,7 +6066,7 @@ ] } }, - "Agents.MessageStatus": { + "Assistants.MessageStatus": { "type": "string", "description": "The possible execution status values for a thread message.", "enum": [ @@ -6038,7 +6096,7 @@ ] } }, - "Agents.MessageStreamEvent": { + "Assistants.MessageStreamEvent": { "type": "string", "description": "Message operation related streaming events", "enum": [ @@ -6080,7 +6138,7 @@ ] } }, - "Agents.MessageTextAnnotation": { + "Assistants.MessageTextAnnotation": { "type": "object", "description": "An abstract representation of an annotation to text thread message content.", "properties": { @@ -6099,12 +6157,12 @@ "text" ] }, - "Agents.MessageTextContent": { + "Assistants.MessageTextContent": { "type": "object", "description": "A representation of a textual item of thread message content.", "properties": { "text": { - "$ref": "#/definitions/Agents.MessageTextDetails", + "$ref": "#/definitions/Assistants.MessageTextDetails", "description": "The text and associated annotations for this thread message content item." } }, @@ -6113,12 +6171,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.MessageContent" + "$ref": "#/definitions/Assistants.MessageContent" } ], "x-ms-discriminator-value": "text" }, - "Agents.MessageTextDetails": { + "Assistants.MessageTextDetails": { "type": "object", "description": "The text and associated annotations for a single item of agent thread message content.", "properties": { @@ -6130,7 +6188,7 @@ "type": "array", "description": "A list of annotations associated with this text.", "items": { - "$ref": "#/definitions/Agents.MessageTextAnnotation" + "$ref": "#/definitions/Assistants.MessageTextAnnotation" }, "x-ms-identifiers": [] } @@ -6140,12 +6198,12 @@ "annotations" ] }, - "Agents.MessageTextFileCitationAnnotation": { + "Assistants.MessageTextFileCitationAnnotation": { "type": "object", "description": "A citation within the message that points to a specific quote from a specific File associated with the agent or the message. Generated when the agent uses the 'file_search' tool to search files.", "properties": { "file_citation": { - "$ref": "#/definitions/Agents.MessageTextFileCitationDetails", + "$ref": "#/definitions/Assistants.MessageTextFileCitationDetails", "description": "A citation within the message that points to a specific quote from a specific file.\nGenerated when the agent uses the \"file_search\" tool to search files.", "x-ms-client-name": "fileCitation" }, @@ -6167,12 +6225,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.MessageTextAnnotation" + "$ref": "#/definitions/Assistants.MessageTextAnnotation" } ], "x-ms-discriminator-value": "file_citation" }, - "Agents.MessageTextFileCitationDetails": { + "Assistants.MessageTextFileCitationDetails": { "type": "object", "description": "A representation of a file-based text citation, as used in a file-based annotation of text thread message content.", "properties": { @@ -6191,12 +6249,12 @@ "quote" ] }, - "Agents.MessageTextFilePathAnnotation": { + "Assistants.MessageTextFilePathAnnotation": { "type": "object", "description": "A citation within the message that points to a file located at a specific path.", "properties": { "file_path": { - "$ref": "#/definitions/Agents.MessageTextFilePathDetails", + "$ref": "#/definitions/Assistants.MessageTextFilePathDetails", "description": "A URL for the file that's generated when the agent used the code_interpreter tool to generate a file.", "x-ms-client-name": "filePath" }, @@ -6218,12 +6276,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.MessageTextAnnotation" + "$ref": "#/definitions/Assistants.MessageTextAnnotation" } ], "x-ms-discriminator-value": "file_path" }, - "Agents.MessageTextFilePathDetails": { + "Assistants.MessageTextFilePathDetails": { "type": "object", "description": "An encapsulation of an image file ID, as used by message image content.", "properties": { @@ -6237,12 +6295,12 @@ "file_id" ] }, - "Agents.MicrosoftFabricToolDefinition": { + "Assistants.MicrosoftFabricToolDefinition": { "type": "object", "description": "The input definition information for a Microsoft Fabric tool as used to configure an agent.", "properties": { "fabric_aiskill": { - "$ref": "#/definitions/Agents.ToolConnectionList", + "$ref": "#/definitions/Assistants.ToolConnectionList", "description": "The list of connections used by the Microsoft Fabric tool." } }, @@ -6251,12 +6309,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.ToolDefinition" + "$ref": "#/definitions/Assistants.ToolDefinition" } ], "x-ms-discriminator-value": "fabric_aiskill" }, - "Agents.OpenAIFile": { + "Assistants.OpenAIFile": { "type": "object", "description": "Represents an agent that can call the model and use tools.", "properties": { @@ -6290,11 +6348,11 @@ "x-ms-client-name": "createdAt" }, "purpose": { - "$ref": "#/definitions/Agents.FilePurpose", + "$ref": "#/definitions/Assistants.FilePurpose", "description": "The intended purpose of a file." }, "status": { - "$ref": "#/definitions/Agents.FileState", + "$ref": "#/definitions/Assistants.FileState", "description": "The state of the file. This field is available in Azure OpenAI only." }, "status_details": { @@ -6312,22 +6370,22 @@ "purpose" ] }, - "Agents.OpenApiAnonymousAuthDetails": { + "Assistants.OpenApiAnonymousAuthDetails": { "type": "object", "description": "Security details for OpenApi anonymous authentication", "allOf": [ { - "$ref": "#/definitions/Agents.OpenApiAuthDetails" + "$ref": "#/definitions/Assistants.OpenApiAuthDetails" } ], "x-ms-discriminator-value": "anonymous" }, - "Agents.OpenApiAuthDetails": { + "Assistants.OpenApiAuthDetails": { "type": "object", "description": "authentication details for OpenApiFunctionDefinition", "properties": { "type": { - "$ref": "#/definitions/Agents.OpenApiAuthType", + "$ref": "#/definitions/Assistants.OpenApiAuthType", "description": "The type of authentication, must be anonymous/connection/managed_identity" } }, @@ -6336,7 +6394,7 @@ "type" ] }, - "Agents.OpenApiAuthType": { + "Assistants.OpenApiAuthType": { "type": "string", "description": " Authentication type for OpenApi endpoint. Allowed types are:\n - Anonymous (no authentication required)\n - Connection (requires connection_id to endpoint, as setup in AI Foundry)\n - Managed_Identity (requires audience for identity based auth)", "enum": [ @@ -6363,12 +6421,12 @@ ] } }, - "Agents.OpenApiConnectionAuthDetails": { + "Assistants.OpenApiConnectionAuthDetails": { "type": "object", "description": "Security details for OpenApi connection authentication", "properties": { "security_scheme": { - "$ref": "#/definitions/Agents.OpenApiConnectionSecurityScheme", + "$ref": "#/definitions/Assistants.OpenApiConnectionSecurityScheme", "description": "Connection auth security details" } }, @@ -6377,12 +6435,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.OpenApiAuthDetails" + "$ref": "#/definitions/Assistants.OpenApiAuthDetails" } ], "x-ms-discriminator-value": "connection" }, - "Agents.OpenApiConnectionSecurityScheme": { + "Assistants.OpenApiConnectionSecurityScheme": { "type": "object", "description": "Security scheme for OpenApi managed_identity authentication", "properties": { @@ -6395,7 +6453,7 @@ "connection_id" ] }, - "Agents.OpenApiFunctionDefinition": { + "Assistants.OpenApiFunctionDefinition": { "type": "object", "description": "The input definition information for an openapi function.", "properties": { @@ -6411,7 +6469,7 @@ "description": "The openapi function shape, described as a JSON Schema object." }, "auth": { - "$ref": "#/definitions/Agents.OpenApiAuthDetails", + "$ref": "#/definitions/Assistants.OpenApiAuthDetails", "description": "Open API authentication details" } }, @@ -6421,12 +6479,12 @@ "auth" ] }, - "Agents.OpenApiManagedAuthDetails": { + "Assistants.OpenApiManagedAuthDetails": { "type": "object", "description": "Security details for OpenApi managed_identity authentication", "properties": { "security_scheme": { - "$ref": "#/definitions/Agents.OpenApiManagedSecurityScheme", + "$ref": "#/definitions/Assistants.OpenApiManagedSecurityScheme", "description": "Connection auth security details" } }, @@ -6435,12 +6493,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.OpenApiAuthDetails" + "$ref": "#/definitions/Assistants.OpenApiAuthDetails" } ], "x-ms-discriminator-value": "managed_identity" }, - "Agents.OpenApiManagedSecurityScheme": { + "Assistants.OpenApiManagedSecurityScheme": { "type": "object", "description": "Security scheme for OpenApi managed_identity authentication", "properties": { @@ -6453,12 +6511,12 @@ "audience" ] }, - "Agents.OpenApiToolDefinition": { + "Assistants.OpenApiToolDefinition": { "type": "object", "description": "The input definition information for an OpenAPI tool as used to configure an agent.", "properties": { "openapi": { - "$ref": "#/definitions/Agents.OpenApiFunctionDefinition", + "$ref": "#/definitions/Assistants.OpenApiFunctionDefinition", "description": "The openapi function definition." } }, @@ -6467,12 +6525,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.ToolDefinition" + "$ref": "#/definitions/Assistants.ToolDefinition" } ], "x-ms-discriminator-value": "openapi" }, - "Agents.RequiredAction": { + "Assistants.RequiredAction": { "type": "object", "description": "An abstract representation of a required action for an agent thread run to continue.", "properties": { @@ -6486,12 +6544,12 @@ "type" ] }, - "Agents.RequiredFunctionToolCall": { + "Assistants.RequiredFunctionToolCall": { "type": "object", "description": "A representation of a requested call to a function tool, needed by the model to continue evaluation of a run.", "properties": { "function": { - "$ref": "#/definitions/Agents.RequiredFunctionToolCallDetails", + "$ref": "#/definitions/Assistants.RequiredFunctionToolCallDetails", "description": "Detailed information about the function to be executed by the tool that includes name and arguments." } }, @@ -6500,12 +6558,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.RequiredToolCall" + "$ref": "#/definitions/Assistants.RequiredToolCall" } ], "x-ms-discriminator-value": "function" }, - "Agents.RequiredFunctionToolCallDetails": { + "Assistants.RequiredFunctionToolCallDetails": { "type": "object", "description": "The detailed information for a function invocation, as provided by a required action invoking a function tool, that includes the name of and arguments to the function.", "properties": { @@ -6523,7 +6581,7 @@ "arguments" ] }, - "Agents.RequiredToolCall": { + "Assistants.RequiredToolCall": { "type": "object", "description": "An abstract representation of a tool invocation needed by the model to continue a run.", "properties": { @@ -6542,7 +6600,7 @@ "id" ] }, - "Agents.ResponseFormat": { + "Assistants.ResponseFormat": { "type": "string", "description": "Possible API response formats.", "enum": [ @@ -6566,7 +6624,7 @@ ] } }, - "Agents.ResponseFormatJsonSchema": { + "Assistants.ResponseFormatJsonSchema": { "type": "object", "description": "A description of what the response format is for, used by the model to determine how to respond in the format.", "properties": { @@ -6587,7 +6645,7 @@ "schema" ] }, - "Agents.ResponseFormatJsonSchemaType": { + "Assistants.ResponseFormatJsonSchemaType": { "type": "object", "description": "The type of response format being defined: `json_schema`", "properties": { @@ -6602,7 +6660,7 @@ } }, "json_schema": { - "$ref": "#/definitions/Agents.ResponseFormatJsonSchema", + "$ref": "#/definitions/Assistants.ResponseFormatJsonSchema", "description": "The JSON schema, describing response format.", "x-ms-client-name": "jsonSchema" } @@ -6612,7 +6670,7 @@ "json_schema" ] }, - "Agents.RunAdditionalFieldList": { + "Assistants.RunAdditionalFieldList": { "type": "string", "description": "A list of additional fields to include in the response.", "enum": [ @@ -6630,7 +6688,7 @@ ] } }, - "Agents.RunCompletionUsage": { + "Assistants.RunCompletionUsage": { "type": "object", "description": "Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.).", "properties": { @@ -6659,7 +6717,7 @@ "total_tokens" ] }, - "Agents.RunError": { + "Assistants.RunError": { "type": "object", "description": "The details of an error as encountered by an agent thread run.", "properties": { @@ -6677,7 +6735,7 @@ "message" ] }, - "Agents.RunStatus": { + "Assistants.RunStatus": { "type": "string", "description": "Possible values for the status of an agent thread run.", "enum": [ @@ -6737,7 +6795,7 @@ ] } }, - "Agents.RunStep": { + "Assistants.RunStep": { "type": "object", "description": "Detailed information about a single step of an agent thread run.", "properties": { @@ -6756,7 +6814,7 @@ } }, "type": { - "$ref": "#/definitions/Agents.RunStepType", + "$ref": "#/definitions/Assistants.RunStepType", "description": "The type of run step, which can be either message_creation or tool_calls." }, "assistant_id": { @@ -6775,11 +6833,11 @@ "x-ms-client-name": "runId" }, "status": { - "$ref": "#/definitions/Agents.RunStepStatus", + "$ref": "#/definitions/Assistants.RunStepStatus", "description": "The status of this run step." }, "step_details": { - "$ref": "#/definitions/Agents.RunStepDetails", + "$ref": "#/definitions/Assistants.RunStepDetails", "description": "The details for this run step.", "x-ms-client-name": "stepDetails" }, @@ -6789,7 +6847,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Agents.RunStepError" + "$ref": "#/definitions/Assistants.RunStepError" } ], "x-ms-client-name": "lastError" @@ -6834,7 +6892,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Agents.RunStepCompletionUsage" + "$ref": "#/definitions/Assistants.RunStepCompletionUsage" } ] }, @@ -6865,7 +6923,7 @@ "metadata" ] }, - "Agents.RunStepAzureAISearchToolCall": { + "Assistants.RunStepAzureAISearchToolCall": { "type": "object", "description": "A record of a call to an Azure AI Search tool, issued by the model in evaluation of a defined tool, that represents\nexecuted Azure AI search.", "properties": { @@ -6883,12 +6941,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.RunStepToolCall" + "$ref": "#/definitions/Assistants.RunStepToolCall" } ], "x-ms-discriminator-value": "azure_ai_search" }, - "Agents.RunStepBingGroundingToolCall": { + "Assistants.RunStepBingGroundingToolCall": { "type": "object", "description": "A record of a call to a bing grounding tool, issued by the model in evaluation of a defined tool, that represents\nexecuted search with bing grounding.", "properties": { @@ -6906,17 +6964,17 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.RunStepToolCall" + "$ref": "#/definitions/Assistants.RunStepToolCall" } ], "x-ms-discriminator-value": "bing_grounding" }, - "Agents.RunStepCodeInterpreterImageOutput": { + "Assistants.RunStepCodeInterpreterImageOutput": { "type": "object", "description": "A representation of an image output emitted by a code interpreter tool in response to a tool call by the model.", "properties": { "image": { - "$ref": "#/definitions/Agents.RunStepCodeInterpreterImageReference", + "$ref": "#/definitions/Assistants.RunStepCodeInterpreterImageReference", "description": "Referential information for the image associated with this output." } }, @@ -6925,12 +6983,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.RunStepCodeInterpreterToolCallOutput" + "$ref": "#/definitions/Assistants.RunStepCodeInterpreterToolCallOutput" } ], "x-ms-discriminator-value": "image" }, - "Agents.RunStepCodeInterpreterImageReference": { + "Assistants.RunStepCodeInterpreterImageReference": { "type": "object", "description": "An image reference emitted by a code interpreter tool in response to a tool call by the model.", "properties": { @@ -6944,7 +7002,7 @@ "file_id" ] }, - "Agents.RunStepCodeInterpreterLogOutput": { + "Assistants.RunStepCodeInterpreterLogOutput": { "type": "object", "description": "A representation of a log output emitted by a code interpreter tool in response to a tool call by the model.", "properties": { @@ -6958,17 +7016,17 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.RunStepCodeInterpreterToolCallOutput" + "$ref": "#/definitions/Assistants.RunStepCodeInterpreterToolCallOutput" } ], "x-ms-discriminator-value": "logs" }, - "Agents.RunStepCodeInterpreterToolCall": { + "Assistants.RunStepCodeInterpreterToolCall": { "type": "object", "description": "A record of a call to a code interpreter tool, issued by the model in evaluation of a defined tool, that\nrepresents inputs and outputs consumed and emitted by the code interpreter.", "properties": { "code_interpreter": { - "$ref": "#/definitions/Agents.RunStepCodeInterpreterToolCallDetails", + "$ref": "#/definitions/Assistants.RunStepCodeInterpreterToolCallDetails", "description": "The details of the tool call to the code interpreter tool.", "x-ms-client-name": "codeInterpreter" } @@ -6978,12 +7036,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.RunStepToolCall" + "$ref": "#/definitions/Assistants.RunStepToolCall" } ], "x-ms-discriminator-value": "code_interpreter" }, - "Agents.RunStepCodeInterpreterToolCallDetails": { + "Assistants.RunStepCodeInterpreterToolCallDetails": { "type": "object", "description": "The detailed information about a code interpreter invocation by the model.", "properties": { @@ -6995,7 +7053,7 @@ "type": "array", "description": "The outputs produced by the code interpreter tool back to the model in response to the tool call.", "items": { - "$ref": "#/definitions/Agents.RunStepCodeInterpreterToolCallOutput" + "$ref": "#/definitions/Assistants.RunStepCodeInterpreterToolCallOutput" }, "x-ms-identifiers": [] } @@ -7005,7 +7063,7 @@ "outputs" ] }, - "Agents.RunStepCodeInterpreterToolCallOutput": { + "Assistants.RunStepCodeInterpreterToolCallOutput": { "type": "object", "description": "An abstract representation of an emitted output from a code interpreter tool.", "properties": { @@ -7019,7 +7077,7 @@ "type" ] }, - "Agents.RunStepCompletionUsage": { + "Assistants.RunStepCompletionUsage": { "type": "object", "description": "Usage statistics related to the run step.", "properties": { @@ -7048,18 +7106,18 @@ "total_tokens" ] }, - "Agents.RunStepDelta": { + "Assistants.RunStepDelta": { "type": "object", "description": "Represents the delta payload in a streaming run step delta chunk.", "properties": { "step_details": { - "$ref": "#/definitions/Agents.RunStepDeltaDetail", + "$ref": "#/definitions/Assistants.RunStepDeltaDetail", "description": "The details of the run step.", "x-ms-client-name": "stepDetails" } } }, - "Agents.RunStepDeltaChunk": { + "Assistants.RunStepDeltaChunk": { "type": "object", "description": "Represents a run step delta i.e. any changed fields on a run step during streaming.", "properties": { @@ -7078,7 +7136,7 @@ } }, "delta": { - "$ref": "#/definitions/Agents.RunStepDelta", + "$ref": "#/definitions/Assistants.RunStepDelta", "description": "The delta containing the fields that have changed on the run step." } }, @@ -7088,7 +7146,7 @@ "delta" ] }, - "Agents.RunStepDeltaCodeInterpreterDetailItemObject": { + "Assistants.RunStepDeltaCodeInterpreterDetailItemObject": { "type": "object", "description": "Represents the Code Interpreter tool call data in a streaming run step's tool calls.", "properties": { @@ -7100,29 +7158,29 @@ "type": "array", "description": "The outputs from the Code Interpreter tool call. Code Interpreter can output one or more\nitems, including text (`logs`) or images (`image`). Each of these are represented by a\ndifferent object type.", "items": { - "$ref": "#/definitions/Agents.RunStepDeltaCodeInterpreterOutput" + "$ref": "#/definitions/Assistants.RunStepDeltaCodeInterpreterOutput" }, "x-ms-identifiers": [] } } }, - "Agents.RunStepDeltaCodeInterpreterImageOutput": { + "Assistants.RunStepDeltaCodeInterpreterImageOutput": { "type": "object", "description": "Represents an image output as produced the Code interpreter tool and as represented in a streaming run step's delta tool calls collection.", "properties": { "image": { - "$ref": "#/definitions/Agents.RunStepDeltaCodeInterpreterImageOutputObject", + "$ref": "#/definitions/Assistants.RunStepDeltaCodeInterpreterImageOutputObject", "description": "The image data for the Code Interpreter tool call output." } }, "allOf": [ { - "$ref": "#/definitions/Agents.RunStepDeltaCodeInterpreterOutput" + "$ref": "#/definitions/Assistants.RunStepDeltaCodeInterpreterOutput" } ], "x-ms-discriminator-value": "image" }, - "Agents.RunStepDeltaCodeInterpreterImageOutputObject": { + "Assistants.RunStepDeltaCodeInterpreterImageOutputObject": { "type": "object", "description": "Represents the data for a streaming run step's Code Interpreter tool call image output.", "properties": { @@ -7133,7 +7191,7 @@ } } }, - "Agents.RunStepDeltaCodeInterpreterLogOutput": { + "Assistants.RunStepDeltaCodeInterpreterLogOutput": { "type": "object", "description": "Represents a log output as produced by the Code Interpreter tool and as represented in a streaming run step's delta tool calls collection.", "properties": { @@ -7144,12 +7202,12 @@ }, "allOf": [ { - "$ref": "#/definitions/Agents.RunStepDeltaCodeInterpreterOutput" + "$ref": "#/definitions/Assistants.RunStepDeltaCodeInterpreterOutput" } ], "x-ms-discriminator-value": "logs" }, - "Agents.RunStepDeltaCodeInterpreterOutput": { + "Assistants.RunStepDeltaCodeInterpreterOutput": { "type": "object", "description": "The abstract base representation of a streaming run step tool call's Code Interpreter tool output.", "properties": { @@ -7169,24 +7227,24 @@ "type" ] }, - "Agents.RunStepDeltaCodeInterpreterToolCall": { + "Assistants.RunStepDeltaCodeInterpreterToolCall": { "type": "object", "description": "Represents a Code Interpreter tool call within a streaming run step's tool call details.", "properties": { "code_interpreter": { - "$ref": "#/definitions/Agents.RunStepDeltaCodeInterpreterDetailItemObject", + "$ref": "#/definitions/Assistants.RunStepDeltaCodeInterpreterDetailItemObject", "description": "The Code Interpreter data for the tool call.", "x-ms-client-name": "codeInterpreter" } }, "allOf": [ { - "$ref": "#/definitions/Agents.RunStepDeltaToolCall" + "$ref": "#/definitions/Assistants.RunStepDeltaToolCall" } ], "x-ms-discriminator-value": "code_interpreter" }, - "Agents.RunStepDeltaDetail": { + "Assistants.RunStepDeltaDetail": { "type": "object", "description": "Represents a single run step detail item in a streaming run step's delta payload.", "properties": { @@ -7200,7 +7258,7 @@ "type" ] }, - "Agents.RunStepDeltaFileSearchToolCall": { + "Assistants.RunStepDeltaFileSearchToolCall": { "type": "object", "description": "Represents a file search tool call within a streaming run step's tool call details.", "properties": { @@ -7215,12 +7273,12 @@ }, "allOf": [ { - "$ref": "#/definitions/Agents.RunStepDeltaToolCall" + "$ref": "#/definitions/Assistants.RunStepDeltaToolCall" } ], "x-ms-discriminator-value": "file_search" }, - "Agents.RunStepDeltaFunction": { + "Assistants.RunStepDeltaFunction": { "type": "object", "description": "Represents the function data in a streaming run step delta's function tool call.", "properties": { @@ -7239,40 +7297,40 @@ } } }, - "Agents.RunStepDeltaFunctionToolCall": { + "Assistants.RunStepDeltaFunctionToolCall": { "type": "object", "description": "Represents a function tool call within a streaming run step's tool call details.", "properties": { "function": { - "$ref": "#/definitions/Agents.RunStepDeltaFunction", + "$ref": "#/definitions/Assistants.RunStepDeltaFunction", "description": "The function data for the tool call." } }, "allOf": [ { - "$ref": "#/definitions/Agents.RunStepDeltaToolCall" + "$ref": "#/definitions/Assistants.RunStepDeltaToolCall" } ], "x-ms-discriminator-value": "function" }, - "Agents.RunStepDeltaMessageCreation": { + "Assistants.RunStepDeltaMessageCreation": { "type": "object", "description": "Represents a message creation within a streaming run step delta.", "properties": { "message_creation": { - "$ref": "#/definitions/Agents.RunStepDeltaMessageCreationObject", + "$ref": "#/definitions/Assistants.RunStepDeltaMessageCreationObject", "description": "The message creation data.", "x-ms-client-name": "messageCreation" } }, "allOf": [ { - "$ref": "#/definitions/Agents.RunStepDeltaDetail" + "$ref": "#/definitions/Assistants.RunStepDeltaDetail" } ], "x-ms-discriminator-value": "message_creation" }, - "Agents.RunStepDeltaMessageCreationObject": { + "Assistants.RunStepDeltaMessageCreationObject": { "type": "object", "description": "Represents the data within a streaming run step message creation response object.", "properties": { @@ -7283,7 +7341,7 @@ } } }, - "Agents.RunStepDeltaToolCall": { + "Assistants.RunStepDeltaToolCall": { "type": "object", "description": "The abstract base representation of a single tool call within a streaming run step's delta tool call details.", "properties": { @@ -7308,7 +7366,7 @@ "type" ] }, - "Agents.RunStepDeltaToolCallObject": { + "Assistants.RunStepDeltaToolCallObject": { "type": "object", "description": "Represents an invocation of tool calls as part of a streaming run step.", "properties": { @@ -7316,24 +7374,24 @@ "type": "array", "description": "The collection of tool calls for the tool call detail item.", "items": { - "$ref": "#/definitions/Agents.RunStepDeltaToolCall" + "$ref": "#/definitions/Assistants.RunStepDeltaToolCall" }, "x-ms-client-name": "toolCalls" } }, "allOf": [ { - "$ref": "#/definitions/Agents.RunStepDeltaDetail" + "$ref": "#/definitions/Assistants.RunStepDeltaDetail" } ], "x-ms-discriminator-value": "tool_calls" }, - "Agents.RunStepDetails": { + "Assistants.RunStepDetails": { "type": "object", "description": "An abstract representation of the details for a run step.", "properties": { "type": { - "$ref": "#/definitions/Agents.RunStepType", + "$ref": "#/definitions/Assistants.RunStepType", "description": "The object type." } }, @@ -7342,12 +7400,12 @@ "type" ] }, - "Agents.RunStepError": { + "Assistants.RunStepError": { "type": "object", "description": "The error information associated with a failed run step.", "properties": { "code": { - "$ref": "#/definitions/Agents.RunStepErrorCode", + "$ref": "#/definitions/Assistants.RunStepErrorCode", "description": "The error code for this error." }, "message": { @@ -7360,7 +7418,7 @@ "message" ] }, - "Agents.RunStepErrorCode": { + "Assistants.RunStepErrorCode": { "type": "string", "description": "Possible error code values attributable to a failed run step.", "enum": [ @@ -7384,7 +7442,7 @@ ] } }, - "Agents.RunStepFileSearchToolCall": { + "Assistants.RunStepFileSearchToolCall": { "type": "object", "description": "A record of a call to a file search tool, issued by the model in evaluation of a defined tool, that represents\nexecuted file search.", "properties": { @@ -7393,7 +7451,7 @@ "description": "The ID of the tool call. This ID must be referenced when you submit tool outputs." }, "file_search": { - "$ref": "#/definitions/Agents.RunStepFileSearchToolCallResults", + "$ref": "#/definitions/Assistants.RunStepFileSearchToolCallResults", "description": "For now, this is always going to be an empty object.", "x-ms-client-name": "fileSearch" } @@ -7404,12 +7462,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.RunStepToolCall" + "$ref": "#/definitions/Assistants.RunStepToolCall" } ], "x-ms-discriminator-value": "file_search" }, - "Agents.RunStepFileSearchToolCallResult": { + "Assistants.RunStepFileSearchToolCallResult": { "type": "object", "description": " File search tool call result.", "properties": { @@ -7434,7 +7492,7 @@ "type": "array", "description": "The content of the result that was found. The content is only included if requested via the include query parameter.", "items": { - "$ref": "#/definitions/Agents.FileSearchToolCallContent" + "$ref": "#/definitions/Assistants.FileSearchToolCallContent" }, "x-ms-identifiers": [] } @@ -7445,12 +7503,12 @@ "score" ] }, - "Agents.RunStepFileSearchToolCallResults": { + "Assistants.RunStepFileSearchToolCallResults": { "type": "object", "description": "The results of the file search.", "properties": { "ranking_options": { - "$ref": "#/definitions/Agents.FileSearchRankingOptions", + "$ref": "#/definitions/Assistants.FileSearchRankingOptions", "description": "Ranking options for file search.", "x-ms-client-name": "rankingOptions" }, @@ -7458,7 +7516,7 @@ "type": "array", "description": "The array of a file search results", "items": { - "$ref": "#/definitions/Agents.RunStepFileSearchToolCallResult" + "$ref": "#/definitions/Assistants.RunStepFileSearchToolCallResult" }, "x-ms-identifiers": [] } @@ -7467,12 +7525,12 @@ "results" ] }, - "Agents.RunStepFunctionToolCall": { + "Assistants.RunStepFunctionToolCall": { "type": "object", "description": "A record of a call to a function tool, issued by the model in evaluation of a defined tool, that represents the inputs\nand output consumed and emitted by the specified function.", "properties": { "function": { - "$ref": "#/definitions/Agents.RunStepFunctionToolCallDetails", + "$ref": "#/definitions/Assistants.RunStepFunctionToolCallDetails", "description": "The detailed information about the function called by the model." } }, @@ -7481,12 +7539,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.RunStepToolCall" + "$ref": "#/definitions/Assistants.RunStepToolCall" } ], "x-ms-discriminator-value": "function" }, - "Agents.RunStepFunctionToolCallDetails": { + "Assistants.RunStepFunctionToolCallDetails": { "type": "object", "description": "The detailed information about the function called by the model.", "properties": { @@ -7510,12 +7568,12 @@ "output" ] }, - "Agents.RunStepMessageCreationDetails": { + "Assistants.RunStepMessageCreationDetails": { "type": "object", "description": "The detailed information associated with a message creation run step.", "properties": { "message_creation": { - "$ref": "#/definitions/Agents.RunStepMessageCreationReference", + "$ref": "#/definitions/Assistants.RunStepMessageCreationReference", "description": "Information about the message creation associated with this run step.", "x-ms-client-name": "messageCreation" } @@ -7525,12 +7583,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.RunStepDetails" + "$ref": "#/definitions/Assistants.RunStepDetails" } ], "x-ms-discriminator-value": "message_creation" }, - "Agents.RunStepMessageCreationReference": { + "Assistants.RunStepMessageCreationReference": { "type": "object", "description": "The details of a message created as a part of a run step.", "properties": { @@ -7544,7 +7602,7 @@ "message_id" ] }, - "Agents.RunStepMicrosoftFabricToolCall": { + "Assistants.RunStepMicrosoftFabricToolCall": { "type": "object", "description": "A record of a call to a Microsoft Fabric tool, issued by the model in evaluation of a defined tool, that represents\nexecuted Microsoft Fabric operations.", "properties": { @@ -7562,12 +7620,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.RunStepToolCall" + "$ref": "#/definitions/Assistants.RunStepToolCall" } ], "x-ms-discriminator-value": "fabric_aiskill" }, - "Agents.RunStepSharepointToolCall": { + "Assistants.RunStepSharepointToolCall": { "type": "object", "description": "A record of a call to a SharePoint tool, issued by the model in evaluation of a defined tool, that represents\nexecuted SharePoint actions.", "properties": { @@ -7585,12 +7643,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.RunStepToolCall" + "$ref": "#/definitions/Assistants.RunStepToolCall" } ], "x-ms-discriminator-value": "sharepoint_grounding" }, - "Agents.RunStepStatus": { + "Assistants.RunStepStatus": { "type": "string", "description": "Possible values for the status of a run step.", "enum": [ @@ -7632,7 +7690,7 @@ ] } }, - "Agents.RunStepStreamEvent": { + "Assistants.RunStepStreamEvent": { "type": "string", "description": "Run step operation related streaming events", "enum": [ @@ -7686,7 +7744,7 @@ ] } }, - "Agents.RunStepToolCall": { + "Assistants.RunStepToolCall": { "type": "object", "description": "An abstract representation of a detailed tool call as recorded within a run step for an existing run.", "properties": { @@ -7705,7 +7763,7 @@ "id" ] }, - "Agents.RunStepToolCallDetails": { + "Assistants.RunStepToolCallDetails": { "type": "object", "description": "The detailed information associated with a run step calling tools.", "properties": { @@ -7713,7 +7771,7 @@ "type": "array", "description": "A list of tool call details for this run step.", "items": { - "$ref": "#/definitions/Agents.RunStepToolCall" + "$ref": "#/definitions/Assistants.RunStepToolCall" }, "x-ms-client-name": "toolCalls" } @@ -7723,12 +7781,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.RunStepDetails" + "$ref": "#/definitions/Assistants.RunStepDetails" } ], "x-ms-discriminator-value": "tool_calls" }, - "Agents.RunStepType": { + "Assistants.RunStepType": { "type": "string", "description": "The possible types of run steps.", "enum": [ @@ -7752,7 +7810,7 @@ ] } }, - "Agents.RunStreamEvent": { + "Assistants.RunStreamEvent": { "type": "string", "description": "Run operation related streaming events", "enum": [ @@ -7824,12 +7882,12 @@ ] } }, - "Agents.SharepointToolDefinition": { + "Assistants.SharepointToolDefinition": { "type": "object", "description": "The input definition information for a sharepoint tool as used to configure an agent.", "properties": { "sharepoint_grounding": { - "$ref": "#/definitions/Agents.ToolConnectionList", + "$ref": "#/definitions/Assistants.ToolConnectionList", "description": "The list of connections used by the SharePoint tool." } }, @@ -7838,17 +7896,17 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.ToolDefinition" + "$ref": "#/definitions/Assistants.ToolDefinition" } ], "x-ms-discriminator-value": "sharepoint_grounding" }, - "Agents.SubmitToolOutputsAction": { + "Assistants.SubmitToolOutputsAction": { "type": "object", "description": "The details for required tool calls that must be submitted for an agent thread run to continue.", "properties": { "submit_tool_outputs": { - "$ref": "#/definitions/Agents.SubmitToolOutputsDetails", + "$ref": "#/definitions/Assistants.SubmitToolOutputsDetails", "description": "The details describing tools that should be called to submit tool outputs.", "x-ms-client-name": "submitToolOutputs" } @@ -7858,12 +7916,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.RequiredAction" + "$ref": "#/definitions/Assistants.RequiredAction" } ], "x-ms-discriminator-value": "submit_tool_outputs" }, - "Agents.SubmitToolOutputsDetails": { + "Assistants.SubmitToolOutputsDetails": { "type": "object", "description": "The details describing tools that should be called to submit tool outputs.", "properties": { @@ -7871,7 +7929,7 @@ "type": "array", "description": "The list of tool calls that must be resolved for the agent thread run to continue.", "items": { - "$ref": "#/definitions/Agents.RequiredToolCall" + "$ref": "#/definitions/Assistants.RequiredToolCall" }, "x-ms-client-name": "toolCalls" } @@ -7880,7 +7938,7 @@ "tool_calls" ] }, - "Agents.ThreadDeletionStatus": { + "Assistants.ThreadDeletionStatus": { "type": "object", "description": "The status of a thread deletion operation.", "properties": { @@ -7909,7 +7967,7 @@ "object" ] }, - "Agents.ThreadMessage": { + "Assistants.ThreadMessage": { "type": "object", "description": "A single, existing message within an agent thread.", "properties": { @@ -7939,7 +7997,7 @@ "x-ms-client-name": "threadId" }, "status": { - "$ref": "#/definitions/Agents.MessageStatus", + "$ref": "#/definitions/Assistants.MessageStatus", "description": "The status of the message." }, "incomplete_details": { @@ -7948,7 +8006,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Agents.MessageIncompleteDetails" + "$ref": "#/definitions/Assistants.MessageIncompleteDetails" } ], "x-ms-client-name": "incompleteDetails" @@ -7968,14 +8026,14 @@ "x-ms-client-name": "incompleteAt" }, "role": { - "$ref": "#/definitions/Agents.MessageRole", + "$ref": "#/definitions/Assistants.MessageRole", "description": "The role associated with the agent thread message." }, "content": { "type": "array", "description": "The list of content items associated with the agent thread message.", "items": { - "$ref": "#/definitions/Agents.MessageContent" + "$ref": "#/definitions/Assistants.MessageContent" }, "x-ms-identifiers": [] }, @@ -7996,7 +8054,7 @@ "description": "A list of files attached to the message, and the tools they were added to.", "x-nullable": true, "items": { - "$ref": "#/definitions/Agents.MessageAttachment" + "$ref": "#/definitions/Assistants.MessageAttachment" }, "x-ms-identifiers": [] }, @@ -8026,12 +8084,12 @@ "metadata" ] }, - "Agents.ThreadMessageOptions": { + "Assistants.ThreadMessageOptions": { "type": "object", "description": "A single message within an agent thread, as provided during that thread's creation for its initial state.", "properties": { "role": { - "$ref": "#/definitions/Agents.MessageRole", + "$ref": "#/definitions/Assistants.MessageRole", "description": "The role of the entity that is creating the message. Allowed values include:\n- `user`: Indicates the message is sent by an actual user and should be used in most\ncases to represent user-generated messages.\n- `assistant`: Indicates the message is generated by the agent. Use this value to insert\nmessages from the agent into the\nconversation." }, "content": { @@ -8043,7 +8101,7 @@ "description": "A list of files attached to the message, and the tools they should be added to.", "x-nullable": true, "items": { - "$ref": "#/definitions/Agents.MessageAttachment" + "$ref": "#/definitions/Assistants.MessageAttachment" }, "x-ms-identifiers": [] }, @@ -8061,7 +8119,7 @@ "content" ] }, - "Agents.ThreadRun": { + "Assistants.ThreadRun": { "type": "object", "description": "Data representing a single evaluation run of an agent thread.", "properties": { @@ -8090,7 +8148,7 @@ "x-ms-client-name": "assistantId" }, "status": { - "$ref": "#/definitions/Agents.RunStatus", + "$ref": "#/definitions/Assistants.RunStatus", "description": "The status of the agent thread run." }, "required_action": { @@ -8099,7 +8157,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Agents.RequiredAction" + "$ref": "#/definitions/Assistants.RequiredAction" } ], "x-ms-client-name": "requiredAction" @@ -8110,7 +8168,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Agents.RunError" + "$ref": "#/definitions/Assistants.RunError" } ], "x-ms-client-name": "lastError" @@ -8128,7 +8186,7 @@ "description": "The overridden enabled tools used for this agent thread run.", "default": [], "items": { - "$ref": "#/definitions/Agents.ToolDefinition" + "$ref": "#/definitions/Assistants.ToolDefinition" }, "x-ms-identifiers": [] }, @@ -8179,7 +8237,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Agents.IncompleteRunDetails" + "$ref": "#/definitions/Assistants.IncompleteRunDetails" } ], "x-ms-client-name": "incompleteDetails" @@ -8190,7 +8248,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Agents.RunCompletionUsage" + "$ref": "#/definitions/Assistants.RunCompletionUsage" } ] }, @@ -8227,19 +8285,19 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Agents.TruncationObject" + "$ref": "#/definitions/Assistants.TruncationObject" } ], "x-ms-client-name": "truncationStrategy" }, "tool_choice": { - "$ref": "#/definitions/Agents.AgentsApiToolChoiceOption", + "$ref": "#/definitions/Assistants.AgentsApiToolChoiceOption", "description": "Controls whether or not and which tool is called by the model.", "x-nullable": true, "x-ms-client-name": "toolChoice" }, "response_format": { - "$ref": "#/definitions/Agents.AgentsApiResponseFormatOption", + "$ref": "#/definitions/Assistants.AgentsApiResponseFormatOption", "description": "The response format of the tool calls used in this run.", "x-nullable": true, "x-ms-client-name": "responseFormat" @@ -8258,7 +8316,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Agents.UpdateToolResourcesOptions" + "$ref": "#/definitions/Assistants.UpdateToolResourcesOptions" } ], "x-ms-client-name": "toolResources" @@ -8296,7 +8354,7 @@ "parallel_tool_calls" ] }, - "Agents.ThreadStreamEvent": { + "Assistants.ThreadStreamEvent": { "type": "string", "description": "Thread operation related streaming events", "enum": [ @@ -8314,7 +8372,7 @@ ] } }, - "Agents.ToolConnection": { + "Assistants.ToolConnection": { "type": "object", "description": "A connection resource.", "properties": { @@ -8328,7 +8386,7 @@ "connection_id" ] }, - "Agents.ToolConnectionList": { + "Assistants.ToolConnectionList": { "type": "object", "description": "A set of connection resources currently used by either the `bing_grounding`, `fabric_aiskill`, or `sharepoint_grounding` tools.", "properties": { @@ -8337,14 +8395,14 @@ "description": "The connections attached to this tool. There can be a maximum of 1 connection\nresource attached to the tool.", "maxItems": 1, "items": { - "$ref": "#/definitions/Agents.ToolConnection" + "$ref": "#/definitions/Assistants.ToolConnection" }, "x-ms-client-name": "connectionList", "x-ms-identifiers": [] } } }, - "Agents.ToolDefinition": { + "Assistants.ToolDefinition": { "type": "object", "description": "An abstract representation of an input tool definition that an agent can use.", "properties": { @@ -8358,7 +8416,7 @@ "type" ] }, - "Agents.ToolOutput": { + "Assistants.ToolOutput": { "type": "object", "description": "The data provided during a tool outputs submission to resolve pending tool calls and allow the model to continue.", "properties": { @@ -8373,28 +8431,28 @@ } } }, - "Agents.ToolResources": { + "Assistants.ToolResources": { "type": "object", "description": "A set of resources that are used by the agent's tools. The resources are specific to the type of\ntool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search`\ntool requires a list of vector store IDs.", "properties": { "code_interpreter": { - "$ref": "#/definitions/Agents.CodeInterpreterToolResource", + "$ref": "#/definitions/Assistants.CodeInterpreterToolResource", "description": "Resources to be used by the `code_interpreter` tool consisting of file IDs.", "x-ms-client-name": "codeInterpreter" }, "file_search": { - "$ref": "#/definitions/Agents.FileSearchToolResource", + "$ref": "#/definitions/Assistants.FileSearchToolResource", "description": "Resources to be used by the `file_search` tool consisting of vector store IDs.", "x-ms-client-name": "fileSearch" }, "azure_ai_search": { - "$ref": "#/definitions/Agents.AzureAISearchResource", + "$ref": "#/definitions/Assistants.AzureAISearchResource", "description": "Resources to be used by the `azure_ai_search` tool consisting of index IDs and names.", "x-ms-client-name": "azureAISearch" } } }, - "Agents.TruncationObject": { + "Assistants.TruncationObject": { "type": "object", "description": "Controls for how a thread will be truncated prior to the run. Use this to control the initial\ncontext window of the run.", "properties": { @@ -8435,7 +8493,7 @@ "type" ] }, - "Agents.TruncationStrategy": { + "Assistants.TruncationStrategy": { "type": "string", "description": "Possible truncation strategies for the thread.", "enum": [ @@ -8459,7 +8517,7 @@ ] } }, - "Agents.UpdateAgentOptions": { + "Assistants.UpdateAgentOptions": { "type": "object", "description": "The request details to use when modifying an existing agent.", "properties": { @@ -8487,12 +8545,12 @@ "description": "The modified collection of tools to enable for the agent.", "default": [], "items": { - "$ref": "#/definitions/Agents.ToolDefinition" + "$ref": "#/definitions/Assistants.ToolDefinition" }, "x-ms-identifiers": [] }, "tool_resources": { - "$ref": "#/definitions/Agents.ToolResources", + "$ref": "#/definitions/Assistants.ToolResources", "description": "A set of resources that are used by the agent's tools. The resources are specific to the type of tool. For example,\nthe `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs.", "x-ms-client-name": "toolResources" }, @@ -8512,7 +8570,7 @@ "x-ms-client-name": "topP" }, "response_format": { - "$ref": "#/definitions/Agents.AgentsApiResponseFormatOption", + "$ref": "#/definitions/Assistants.AgentsApiResponseFormatOption", "description": "The response format of the tool calls used by this agent.", "x-nullable": true, "x-ms-client-name": "responseFormat" @@ -8527,7 +8585,7 @@ } } }, - "Agents.UpdateAgentThreadOptions": { + "Assistants.UpdateAgentThreadOptions": { "type": "object", "description": "The details used to update an existing agent thread", "properties": { @@ -8537,7 +8595,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Agents.ToolResources" + "$ref": "#/definitions/Assistants.ToolResources" } ], "x-ms-client-name": "toolResources" @@ -8552,7 +8610,7 @@ } } }, - "Agents.UpdateCodeInterpreterToolResourceOptions": { + "Assistants.UpdateCodeInterpreterToolResourceOptions": { "type": "object", "description": "Request object to update `code_interpreted` tool resources.", "properties": { @@ -8567,7 +8625,7 @@ } } }, - "Agents.UpdateFileSearchToolResourceOptions": { + "Assistants.UpdateFileSearchToolResourceOptions": { "type": "object", "description": "Request object to update `file_search` tool resources.", "properties": { @@ -8582,28 +8640,28 @@ } } }, - "Agents.UpdateToolResourcesOptions": { + "Assistants.UpdateToolResourcesOptions": { "type": "object", "description": "Request object. A set of resources that are used by the agent's tools. The resources are specific to the type of tool.\nFor example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of\nvector store IDs.", "properties": { "code_interpreter": { - "$ref": "#/definitions/Agents.UpdateCodeInterpreterToolResourceOptions", + "$ref": "#/definitions/Assistants.UpdateCodeInterpreterToolResourceOptions", "description": "Overrides the list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files\nassociated with the tool.", "x-ms-client-name": "codeInterpreter" }, "file_search": { - "$ref": "#/definitions/Agents.UpdateFileSearchToolResourceOptions", + "$ref": "#/definitions/Assistants.UpdateFileSearchToolResourceOptions", "description": "Overrides the vector store attached to this agent. There can be a maximum of 1 vector store attached to the agent.", "x-ms-client-name": "fileSearch" }, "azure_ai_search": { - "$ref": "#/definitions/Agents.AzureAISearchResource", + "$ref": "#/definitions/Assistants.AzureAISearchResource", "description": "Overrides the resources to be used by the `azure_ai_search` tool consisting of index IDs and names.", "x-ms-client-name": "azureAISearch" } } }, - "Agents.VectorStore": { + "Assistants.VectorStore": { "type": "object", "description": "A vector store is a collection of processed files can be used by the `file_search` tool.", "properties": { @@ -8638,16 +8696,16 @@ "x-ms-client-name": "usageBytes" }, "file_counts": { - "$ref": "#/definitions/Agents.VectorStoreFileCount", + "$ref": "#/definitions/Assistants.VectorStoreFileCount", "description": "Files count grouped by status processed or being processed by this vector store.", "x-ms-client-name": "fileCounts" }, "status": { - "$ref": "#/definitions/Agents.VectorStoreStatus", + "$ref": "#/definitions/Assistants.VectorStoreStatus", "description": "The status of the vector store, which can be either `expired`, `in_progress`, or `completed`. A status of `completed` indicates that the vector store is ready for use." }, "expires_after": { - "$ref": "#/definitions/Agents.VectorStoreExpirationPolicy", + "$ref": "#/definitions/Assistants.VectorStoreExpirationPolicy", "description": "Details on when this vector store expires", "x-ms-client-name": "expiresAfter" }, @@ -8686,32 +8744,32 @@ "metadata" ] }, - "Agents.VectorStoreAutoChunkingStrategyRequest": { + "Assistants.VectorStoreAutoChunkingStrategyRequest": { "type": "object", "description": "The default strategy. This strategy currently uses a max_chunk_size_tokens of 800 and chunk_overlap_tokens of 400.", "allOf": [ { - "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyRequest" + "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyRequest" } ], "x-ms-discriminator-value": "auto" }, - "Agents.VectorStoreAutoChunkingStrategyResponse": { + "Assistants.VectorStoreAutoChunkingStrategyResponse": { "type": "object", "description": "This is returned when the chunking strategy is unknown. Typically, this is because the file was indexed before the chunking_strategy concept was introduced in the API.", "allOf": [ { - "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyResponse" + "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyResponse" } ], "x-ms-discriminator-value": "other" }, - "Agents.VectorStoreChunkingStrategyRequest": { + "Assistants.VectorStoreChunkingStrategyRequest": { "type": "object", "description": "An abstract representation of a vector store chunking strategy configuration.", "properties": { "type": { - "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyRequestType", + "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyRequestType", "description": "The object type." } }, @@ -8720,7 +8778,7 @@ "type" ] }, - "Agents.VectorStoreChunkingStrategyRequestType": { + "Assistants.VectorStoreChunkingStrategyRequestType": { "type": "string", "description": "Type of chunking strategy", "enum": [ @@ -8742,12 +8800,12 @@ ] } }, - "Agents.VectorStoreChunkingStrategyResponse": { + "Assistants.VectorStoreChunkingStrategyResponse": { "type": "object", "description": "An abstract representation of a vector store chunking strategy configuration.", "properties": { "type": { - "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyResponseType", + "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyResponseType", "description": "The object type." } }, @@ -8756,7 +8814,7 @@ "type" ] }, - "Agents.VectorStoreChunkingStrategyResponseType": { + "Assistants.VectorStoreChunkingStrategyResponseType": { "type": "string", "description": "Type of chunking strategy", "enum": [ @@ -8778,7 +8836,7 @@ ] } }, - "Agents.VectorStoreConfiguration": { + "Assistants.VectorStoreConfiguration": { "type": "object", "description": "Vector storage configuration is the list of data sources, used when multiple\nfiles can be used for the enterprise file search.", "properties": { @@ -8786,7 +8844,7 @@ "type": "array", "description": "Data sources", "items": { - "$ref": "#/definitions/Agents.VectorStoreDataSource" + "$ref": "#/definitions/Assistants.VectorStoreDataSource" }, "x-ms-client-name": "dataSources", "x-ms-identifiers": [] @@ -8796,7 +8854,7 @@ "data_sources" ] }, - "Agents.VectorStoreConfigurations": { + "Assistants.VectorStoreConfigurations": { "type": "object", "description": "The structure, containing the list of vector storage configurations i.e. the list of azure asset IDs.", "properties": { @@ -8806,7 +8864,7 @@ "x-ms-client-name": "storeName" }, "configuration": { - "$ref": "#/definitions/Agents.VectorStoreConfiguration", + "$ref": "#/definitions/Assistants.VectorStoreConfiguration", "description": "Configurations", "x-ms-client-name": "storeConfiguration" } @@ -8816,7 +8874,7 @@ "configuration" ] }, - "Agents.VectorStoreDataSource": { + "Assistants.VectorStoreDataSource": { "type": "object", "description": "The structure, containing Azure asset URI path and the asset type of the file used as a data source\nfor the enterprise file search.", "properties": { @@ -8826,7 +8884,7 @@ "x-ms-client-name": "assetIdentifier" }, "type": { - "$ref": "#/definitions/Agents.VectorStoreDataSourceAssetType", + "$ref": "#/definitions/Assistants.VectorStoreDataSourceAssetType", "description": "The asset type", "x-ms-client-name": "assetType" } @@ -8836,7 +8894,7 @@ "type" ] }, - "Agents.VectorStoreDataSourceAssetType": { + "Assistants.VectorStoreDataSourceAssetType": { "type": "string", "description": "Type of vector storage asset. Asset type may be a uri_asset, in this case it should contain asset URI ID,\nin the case of id_asset it should contain the data ID.", "enum": [ @@ -8860,7 +8918,7 @@ ] } }, - "Agents.VectorStoreDeletionStatus": { + "Assistants.VectorStoreDeletionStatus": { "type": "object", "description": "Response object for deleting a vector store.", "properties": { @@ -8889,12 +8947,12 @@ "object" ] }, - "Agents.VectorStoreExpirationPolicy": { + "Assistants.VectorStoreExpirationPolicy": { "type": "object", "description": "The expiration policy for a vector store.", "properties": { "anchor": { - "$ref": "#/definitions/Agents.VectorStoreExpirationPolicyAnchor", + "$ref": "#/definitions/Assistants.VectorStoreExpirationPolicyAnchor", "description": "Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`." }, "days": { @@ -8910,7 +8968,7 @@ "days" ] }, - "Agents.VectorStoreExpirationPolicyAnchor": { + "Assistants.VectorStoreExpirationPolicyAnchor": { "type": "string", "description": "Describes the relationship between the days and the expiration of this vector store", "enum": [ @@ -8928,7 +8986,7 @@ ] } }, - "Agents.VectorStoreFile": { + "Assistants.VectorStoreFile": { "type": "object", "description": "Description of a file attached to a vector store.", "properties": { @@ -8964,7 +9022,7 @@ "x-ms-client-name": "vectorStoreId" }, "status": { - "$ref": "#/definitions/Agents.VectorStoreFileStatus", + "$ref": "#/definitions/Assistants.VectorStoreFileStatus", "description": "The status of the vector store file, which can be either `in_progress`, `completed`, `cancelled`, or `failed`. The status `completed` indicates that the vector store file is ready for use." }, "last_error": { @@ -8973,13 +9031,13 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Agents.VectorStoreFileError" + "$ref": "#/definitions/Assistants.VectorStoreFileError" } ], "x-ms-client-name": "lastError" }, "chunking_strategy": { - "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyResponse", + "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyResponse", "description": "The strategy used to chunk the file.", "x-ms-client-name": "chunkingStrategy" } @@ -8995,7 +9053,7 @@ "chunking_strategy" ] }, - "Agents.VectorStoreFileBatch": { + "Assistants.VectorStoreFileBatch": { "type": "object", "description": "A batch of files attached to a vector store.", "properties": { @@ -9025,11 +9083,11 @@ "x-ms-client-name": "vectorStoreId" }, "status": { - "$ref": "#/definitions/Agents.VectorStoreFileBatchStatus", + "$ref": "#/definitions/Assistants.VectorStoreFileBatchStatus", "description": "The status of the vector store files batch, which can be either `in_progress`, `completed`, `cancelled` or `failed`." }, "file_counts": { - "$ref": "#/definitions/Agents.VectorStoreFileCount", + "$ref": "#/definitions/Assistants.VectorStoreFileCount", "description": "Files count grouped by status processed or being processed by this vector store.", "x-ms-client-name": "fileCounts" } @@ -9043,7 +9101,7 @@ "file_counts" ] }, - "Agents.VectorStoreFileBatchStatus": { + "Assistants.VectorStoreFileBatchStatus": { "type": "string", "description": "The status of the vector store file batch.", "enum": [ @@ -9079,7 +9137,7 @@ ] } }, - "Agents.VectorStoreFileCount": { + "Assistants.VectorStoreFileCount": { "type": "object", "description": "Counts of files processed or being processed by this vector store grouped by status.", "properties": { @@ -9118,7 +9176,7 @@ "total" ] }, - "Agents.VectorStoreFileDeletionStatus": { + "Assistants.VectorStoreFileDeletionStatus": { "type": "object", "description": "Response object for deleting a vector store file relationship.", "properties": { @@ -9147,12 +9205,12 @@ "object" ] }, - "Agents.VectorStoreFileError": { + "Assistants.VectorStoreFileError": { "type": "object", "description": "Details on the error that may have occurred while processing a file for this vector store", "properties": { "code": { - "$ref": "#/definitions/Agents.VectorStoreFileErrorCode", + "$ref": "#/definitions/Assistants.VectorStoreFileErrorCode", "description": "One of `server_error` or `rate_limit_exceeded`." }, "message": { @@ -9165,7 +9223,7 @@ "message" ] }, - "Agents.VectorStoreFileErrorCode": { + "Assistants.VectorStoreFileErrorCode": { "type": "string", "description": "Error code variants for vector store file processing", "enum": [ @@ -9195,7 +9253,7 @@ ] } }, - "Agents.VectorStoreFileStatus": { + "Assistants.VectorStoreFileStatus": { "type": "string", "description": "Vector store file status", "enum": [ @@ -9231,7 +9289,7 @@ ] } }, - "Agents.VectorStoreFileStatusFilter": { + "Assistants.VectorStoreFileStatusFilter": { "type": "string", "description": "Query parameter filter for vector store file retrieval endpoint", "enum": [ @@ -9267,7 +9325,7 @@ ] } }, - "Agents.VectorStoreOptions": { + "Assistants.VectorStoreOptions": { "type": "object", "description": "Request object for creating a vector store.", "properties": { @@ -9285,17 +9343,17 @@ "description": "The name of the vector store." }, "configuration": { - "$ref": "#/definitions/Agents.VectorStoreConfiguration", + "$ref": "#/definitions/Assistants.VectorStoreConfiguration", "description": "The vector store configuration, used when vector store is created from Azure asset URIs.", "x-ms-client-name": "storeConfiguration" }, "expires_after": { - "$ref": "#/definitions/Agents.VectorStoreExpirationPolicy", + "$ref": "#/definitions/Assistants.VectorStoreExpirationPolicy", "description": "Details on when this vector store expires", "x-ms-client-name": "expiresAfter" }, "chunking_strategy": { - "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyRequest", + "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyRequest", "description": "The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. Only applicable if file_ids is non-empty.", "x-ms-client-name": "chunkingStrategy" }, @@ -9309,7 +9367,7 @@ } } }, - "Agents.VectorStoreStaticChunkingStrategyOptions": { + "Assistants.VectorStoreStaticChunkingStrategyOptions": { "type": "object", "description": "Options to configure a vector store static chunking strategy.", "properties": { @@ -9333,12 +9391,12 @@ "chunk_overlap_tokens" ] }, - "Agents.VectorStoreStaticChunkingStrategyRequest": { + "Assistants.VectorStoreStaticChunkingStrategyRequest": { "type": "object", "description": "A statically configured chunking strategy.", "properties": { "static": { - "$ref": "#/definitions/Agents.VectorStoreStaticChunkingStrategyOptions", + "$ref": "#/definitions/Assistants.VectorStoreStaticChunkingStrategyOptions", "description": "The options for the static chunking strategy." } }, @@ -9347,17 +9405,17 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyRequest" + "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyRequest" } ], "x-ms-discriminator-value": "static" }, - "Agents.VectorStoreStaticChunkingStrategyResponse": { + "Assistants.VectorStoreStaticChunkingStrategyResponse": { "type": "object", "description": "A statically configured chunking strategy.", "properties": { "static": { - "$ref": "#/definitions/Agents.VectorStoreStaticChunkingStrategyOptions", + "$ref": "#/definitions/Assistants.VectorStoreStaticChunkingStrategyOptions", "description": "The options for the static chunking strategy." } }, @@ -9366,12 +9424,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Agents.VectorStoreChunkingStrategyResponse" + "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyResponse" } ], "x-ms-discriminator-value": "static" }, - "Agents.VectorStoreStatus": { + "Assistants.VectorStoreStatus": { "type": "string", "description": "Vector store possible status", "enum": [ @@ -9401,7 +9459,7 @@ ] } }, - "Agents.VectorStoreUpdateOptions": { + "Assistants.VectorStoreUpdateOptions": { "type": "object", "description": "Request object for updating a vector store.", "properties": { @@ -9416,7 +9474,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Agents.VectorStoreExpirationPolicy" + "$ref": "#/definitions/Assistants.VectorStoreExpirationPolicy" } ], "x-ms-client-name": "expiresAfter" @@ -9431,64 +9489,6 @@ } } }, - "ApiKeyCredential": { - "type": "object", - "description": "ApiKey Credential definition", - "properties": { - "apiKey": { - "type": "string", - "description": "API Key", - "readOnly": true - } - }, - "required": [ - "apiKey" - ], - "allOf": [ - { - "$ref": "#/definitions/BaseCredential" - } - ], - "x-ms-discriminator-value": "ApiKey" - }, - "ApiResponseFormat": { - "type": "string", - "description": "Possible API response formats.", - "enum": [ - "text", - "json_object" - ], - "x-ms-enum": { - "name": "ApiResponseFormat", - "modelAsString": true, - "values": [ - { - "name": "text", - "value": "text", - "description": "`text` format should be used for requests involving any sort of ToolCall." - }, - { - "name": "jsonObject", - "value": "json_object", - "description": "Using `json_object` format will limit the usage of ToolCall to only functions." - } - ] - } - }, - "AssetReferenceBase": { - "type": "object", - "description": "Base definition for asset references.", - "properties": { - "referenceType": { - "$ref": "#/definitions/ReferenceType", - "description": "Asset reference type." - } - }, - "discriminator": "referenceType", - "required": [ - "referenceType" - ] - }, "AssistantsApiResponseFormat": { "type": "object", "description": "An object describing the expected output of the model. If `json_object` only `function` type `tools` are allowed to be passed to the Run. If `text` the model can return text or any value needed.", @@ -10725,7 +10725,7 @@ } }, "parameters": { - "Agents.UpdateAgentOptions.assistantId": { + "Assistants.UpdateAgentOptions.assistantId": { "name": "assistantId", "in": "path", "description": "The ID of the agent to modify.", @@ -10733,7 +10733,7 @@ "type": "string", "x-ms-parameter-location": "method" }, - "Agents.UpdateAgentThreadOptions.threadId": { + "Assistants.UpdateAgentThreadOptions.threadId": { "name": "threadId", "in": "path", "description": "The ID of the thread to modify.", From 7ef8a1b18a494f13e68baa267dc77c897d008b2b Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Mon, 24 Mar 2025 21:33:49 -0700 Subject: [PATCH 073/143] Fix some of the build breaks due to new TypeSpec tools --- .../ai/Azure.AI.Projects/common/models.tsp | 18 +++++++++--------- .../Azure.AI.Projects/connections/models.tsp | 6 +++--- .../Azure.AI.Projects/credentials/models.tsp | 12 ++++++------ .../ai/Azure.AI.Projects/datasets/models.tsp | 4 ++-- .../Azure.AI.Projects/deployments/models.tsp | 14 +++++++------- .../Azure.AI.Projects/evaluations/models.tsp | 6 +++--- specification/ai/Azure.AI.Projects/main.tsp | 4 +--- 7 files changed, 31 insertions(+), 33 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/common/models.tsp b/specification/ai/Azure.AI.Projects/common/models.tsp index c7f85775143c..ab4207994c25 100644 --- a/specification/ai/Azure.AI.Projects/common/models.tsp +++ b/specification/ai/Azure.AI.Projects/common/models.tsp @@ -135,19 +135,19 @@ union ApiResponseFormat { @doc("Metadata pertaining to creation and last modification of the resource.") model SystemData { - @visibility("read") + @visibility(Lifecycle.Read) @doc("The timestamp the resource was created at.") createdAt?: utcDateTime; - @visibility("read") + @visibility(Lifecycle.Read) @doc("The identity that created the resource.") createdBy?: string; - @visibility("read") + @visibility(Lifecycle.Read) @doc("The identity type that created the resource.") createdByType?: string; - @visibility("read") + @visibility(Lifecycle.Read) @doc("The timestamp of resource last modification (UTC)") lastModifiedAt?: utcDateTime; } @@ -224,20 +224,20 @@ model OutputPathAssetReference extends AssetReferenceBase { alias AssetBase = { @doc("Asset stage") - @visibility("read", "create", "update") + @visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update) stage?: string; @doc("A unique identifier for the asset, assetId probably?") - @visibility("read") + @visibility(Lifecycle.Read) id?: string; @doc("The name of the resource") - @visibility("read") + @visibility(Lifecycle.Read) @key name: string; @doc("The version of the resource") - @visibility("read") + @visibility(Lifecycle.Read) version: string; @doc("The asset description text.") @@ -247,7 +247,7 @@ alias AssetBase = { tags?: Record; @doc("System data of the resource") - @visibility("read") + @visibility(Lifecycle.Read) systemData?: SystemData; }; diff --git a/specification/ai/Azure.AI.Projects/connections/models.tsp b/specification/ai/Azure.AI.Projects/connections/models.tsp index 849d91fade27..b61493719941 100644 --- a/specification/ai/Azure.AI.Projects/connections/models.tsp +++ b/specification/ai/Azure.AI.Projects/connections/models.tsp @@ -19,16 +19,16 @@ namespace Azure.AI.Projects; @resource("connections") model Connection { @doc("The name of the resource") - @visibility("read") + @visibility(Lifecycle.Read) @key("connectionName") name: string; @doc("Category of the connection") - @visibility("read") + @visibility(Lifecycle.Read) type: ConnectionType; @doc("The connection URL to be used for this service") - @visibility("read") + @visibility(Lifecycle.Read) target: string; @doc("A collection of properties of the connection") diff --git a/specification/ai/Azure.AI.Projects/credentials/models.tsp b/specification/ai/Azure.AI.Projects/credentials/models.tsp index e4e3f9c913b5..725ba17c2d37 100644 --- a/specification/ai/Azure.AI.Projects/credentials/models.tsp +++ b/specification/ai/Azure.AI.Projects/credentials/models.tsp @@ -25,33 +25,33 @@ union CredentialType { @discriminator("type") model BaseCredential { @doc("Type of credential. Possible values are: AAD, SAS, ApiKey") - @visibility("read") + @visibility(Lifecycle.Read) type: CredentialType; } @doc("ApiKey Credential definition") model ApiKeyCredential extends BaseCredential { @doc("API Key") - @visibility("read") + @visibility(Lifecycle.Read) apiKey: string; - @visibility("read") + @visibility(Lifecycle.Read) type: CredentialType.ApiKey; } @doc("AAD Credential definition") model AadCredential extends BaseCredential { // No properties need to be stored for this case - @visibility("read") + @visibility(Lifecycle.Read) type: CredentialType.AAD; } @doc("SAS Credential definition") model SasCredential extends BaseCredential { @doc("SAS Token") - @visibility("read") + @visibility(Lifecycle.Read) sasToken: string; - @visibility("read") + @visibility(Lifecycle.Read) type: CredentialType.SAS; } diff --git a/specification/ai/Azure.AI.Projects/datasets/models.tsp b/specification/ai/Azure.AI.Projects/datasets/models.tsp index 12bae6a70631..4bf10a582c41 100644 --- a/specification/ai/Azure.AI.Projects/datasets/models.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/models.tsp @@ -33,7 +33,7 @@ union DatasetType { @discriminator("type") model DatasetVersion { @doc("[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330") - @visibility("read", "create") + @visibility(Lifecycle.Read, Lifecycle.Create) @minLength(1) @pattern("[a-zA-Z0-9_]") datasetUri: string; @@ -42,7 +42,7 @@ model DatasetVersion { type: DatasetType; @doc("Indicates if dataset is reference only or managed by dataset service. If true, the underlying data will be deleted when the dataset version is deleted") - @visibility("read") + @visibility(Lifecycle.Read) isReference?: boolean; ...AssetBase; diff --git a/specification/ai/Azure.AI.Projects/deployments/models.tsp b/specification/ai/Azure.AI.Projects/deployments/models.tsp index c1bdaf3121a2..875bee28a9f0 100644 --- a/specification/ai/Azure.AI.Projects/deployments/models.tsp +++ b/specification/ai/Azure.AI.Projects/deployments/models.tsp @@ -19,32 +19,32 @@ namespace Azure.AI.Projects; @resource("deployments") model Deployment { @doc("Name of the deployment") - @visibility("read") + @visibility(Lifecycle.Read) @key("name") name: string; @doc("Publisher-specific name of the deployed model") - @visibility("read") + @visibility(Lifecycle.Read) modelName: string; @doc("Publisher-specific version of the deployed model") - @visibility("read") + @visibility(Lifecycle.Read) modelVersion: string; @doc("Name of the deployed model's publisher") - @visibility("read") + @visibility(Lifecycle.Read) modelPublisher: string; @doc("Capabilities of deployed model") - @visibility("read") + @visibility(Lifecycle.Read) capabilities: Record; @doc("Sku of the model deployment") - @visibility("read") + @visibility(Lifecycle.Read) sku: Sku; @doc("Name of the connection the deployment comes from") - @visibility("read") + @visibility(Lifecycle.Read) connectionName?: string; } diff --git a/specification/ai/Azure.AI.Projects/evaluations/models.tsp b/specification/ai/Azure.AI.Projects/evaluations/models.tsp index f7032667fe1c..6dac964c190b 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/models.tsp @@ -49,7 +49,7 @@ model InputDataset extends InputData { model Evaluation { @doc("Identifier of the evaluation.") @key("name") - @visibility("read") + @visibility(Lifecycle.Read) id: string; @doc("Data for evaluation.") @@ -62,11 +62,11 @@ model Evaluation { description?: string; @doc("Metadata containing createdBy and modifiedBy information.") - @visibility("read") + @visibility(Lifecycle.Read) systemData?: SystemData; @doc("Status of the evaluation. It is set by service and is read-only.") - @visibility("read") + @visibility(Lifecycle.Read) status?: string; @doc("Evaluation's tags. Unlike properties, tags are fully mutable.") diff --git a/specification/ai/Azure.AI.Projects/main.tsp b/specification/ai/Azure.AI.Projects/main.tsp index fc5acd5ecf39..cc02c284a755 100644 --- a/specification/ai/Azure.AI.Projects/main.tsp +++ b/specification/ai/Azure.AI.Projects/main.tsp @@ -41,9 +41,7 @@ namespace Azure.AI { } ]> ) -@service({ - title: "Azure AI", -}) +@service(#{ title: "Azure AI" }) @server( "{endpoint}", "Azure AI", From 38a557eca55b32de891c56d7fbfcf4a99800fa40 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Tue, 25 Mar 2025 12:19:23 -0700 Subject: [PATCH 074/143] Fix error due to new tools: `error deprecated: Deprecated: Implicit multipart is deprecated` --- .../assistants/files/routes.tsp | 35 ++++++++++--------- .../azure-ai-projects-1dp.json | 11 +++--- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp b/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp index 9cf41ddf0dd3..df720e178c29 100644 --- a/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp @@ -53,22 +53,25 @@ op uploadFile is Azure.Core.Foundations.Operation< @header contentType: "multipart/form-data"; - @doc("The file data, in bytes.") - @clientName("Data", "csharp") - file: bytes; - - @doc("The intended purpose of the uploaded file. Use `assistants` for Agents and Message files, `vision` for Agents image file inputs, `batch` for Batch API, and `fine-tune` for Fine-tuning.") - purpose: FilePurpose; - - /* - * Spec note: filename is not documented as a distinct option but functionally should be one. The value is encoded - * in the multipart Content-Disposition header for the data section and can be provided independently of - * any specific data source like a file. It can be inferred in some circumstances (as when using direct - * file input, like curl does) but should remain configurable when using a stream or other data source - * lacking an a priori name. - */ - @doc("The name of the file.") - filename?: string; + /** Multipart body */ + @multipartBody body: { + @doc("The file data, in bytes.") + @clientName("Data", "csharp") + file: HttpPart; + + @doc("The intended purpose of the uploaded file. Use `assistants` for Agents and Message files, `vision` for Agents image file inputs, `batch` for Batch API, and `fine-tune` for Fine-tuning.") + purpose: HttpPart; + + /* + * Spec note: filename is not documented as a distinct option but functionally should be one. The value is encoded + * in the multipart Content-Disposition header for the data section and can be provided independently of + * any specific data source like a file. It can be inferred in some circumstances (as when using direct + * file input, like curl does) but should remain configurable when using a stream or other data source + * lacking an a priori name. + */ + @doc("The name of the file.") + filename?: HttpPart; + }; }, OpenAIFile >; diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json index e0925ac73ed8..a8c9be756439 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json @@ -1390,14 +1390,13 @@ { "name": "file", "in": "formData", - "description": "The file data, in bytes.", "required": true, "type": "file" }, { "name": "purpose", "in": "formData", - "description": "The intended purpose of the uploaded file. Use `assistants` for Agents and Message files, `vision` for Agents image file inputs, `batch` for Batch API, and `fine-tune` for Fine-tuning.", + "description": "The possible values denoting the intended usage of a file.", "required": true, "type": "string", "enum": [ @@ -1454,7 +1453,6 @@ { "name": "filename", "in": "formData", - "description": "The name of the file.", "required": false, "type": "string" } @@ -1559,6 +1557,10 @@ "get": { "operationId": "Assistants_GetFileContent", "description": "Retrieves the raw content of a specific file.", + "produces": [ + "application/octet-stream", + "application/json" + ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -1575,8 +1577,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "type": "string", - "format": "byte" + "type": "file" } }, "default": { From 99c2ba29be749406763a04a7d6cd5dec9fb05481 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Tue, 25 Mar 2025 18:06:51 -0400 Subject: [PATCH 075/143] Remove $ from query param, remove system data, align list/listLatest query parameters, and add type discriminator for Deployments (#33455) * Remove $ from query param, remove system data, add type discriminator for deployments * rename properties -> metadata * update swagger file --- .../ai/Azure.AI.Projects/common/models.tsp | 23 -- .../Azure.AI.Projects/connections/models.tsp | 4 +- .../ai/Azure.AI.Projects/datasets/routes.tsp | 26 +- .../Azure.AI.Projects/deployments/models.tsp | 18 +- .../Azure.AI.Projects/evaluations/models.tsp | 4 - .../ai/Azure.AI.Projects/indexes/routes.tsp | 25 +- specification/ai/Azure.AI.Projects/main.tsp | 2 +- .../azure-ai-projects-1dp.json | 286 ++++++++++-------- 8 files changed, 204 insertions(+), 184 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/common/models.tsp b/specification/ai/Azure.AI.Projects/common/models.tsp index ab4207994c25..04207637e019 100644 --- a/specification/ai/Azure.AI.Projects/common/models.tsp +++ b/specification/ai/Azure.AI.Projects/common/models.tsp @@ -133,25 +133,6 @@ union ApiResponseFormat { jsonObject: "json_object", } -@doc("Metadata pertaining to creation and last modification of the resource.") -model SystemData { - @visibility(Lifecycle.Read) - @doc("The timestamp the resource was created at.") - createdAt?: utcDateTime; - - @visibility(Lifecycle.Read) - @doc("The identity that created the resource.") - createdBy?: string; - - @visibility(Lifecycle.Read) - @doc("The identity type that created the resource.") - createdByType?: string; - - @visibility(Lifecycle.Read) - @doc("The timestamp of resource last modification (UTC)") - lastModifiedAt?: utcDateTime; -} - @doc("List View Type Definition") union ListViewType { string, @@ -245,10 +226,6 @@ alias AssetBase = { @doc("Tag dictionary. Tags can be added, removed, and updated.") tags?: Record; - - @doc("System data of the resource") - @visibility(Lifecycle.Read) - systemData?: SystemData; }; #suppress "@azure-tools/typespec-providerhub/no-inline-model" "Need to create responses correctly" diff --git a/specification/ai/Azure.AI.Projects/connections/models.tsp b/specification/ai/Azure.AI.Projects/connections/models.tsp index b61493719941..682ba0be9371 100644 --- a/specification/ai/Azure.AI.Projects/connections/models.tsp +++ b/specification/ai/Azure.AI.Projects/connections/models.tsp @@ -31,8 +31,8 @@ model Connection { @visibility(Lifecycle.Read) target: string; - @doc("A collection of properties of the connection") - properties: Record; + @doc("Metadata of the connection") + metadata: Record; } // https://learn.microsoft.com/rest/api/azureml/workspace-connections/list-secrets?view=rest-azureml-2024-04-01&tabs=HTTP#ConnectionType diff --git a/specification/ai/Azure.AI.Projects/datasets/routes.tsp b/specification/ai/Azure.AI.Projects/datasets/routes.tsp index 00a615fbcb16..d447451faf8c 100644 --- a/specification/ai/Azure.AI.Projects/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/routes.tsp @@ -17,30 +17,20 @@ using Azure.Core.Foundations; namespace Azure.AI.Projects; alias ListDatasetVersionsParameters = { - @doc("Please choose OrderBy value from ['createdtime', 'modifiedtime']") - @query("$orderBy") - $orderBy?: string; - @doc("Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned") - @query("$top") - $top?: int32; + @query + top?: int32; @doc("Continuation token for pagination.") - @query("$skip") - $skip?: string; + @query + skip?: string; @doc("Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2") - @query("$tags") - $tags?: string; + @query + tags?: string; @doc("[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.") - @query("listViewType") - listViewType?: ListViewType; -}; - -alias ListLatestDataSetVersionParameters = { - @doc("View type for including/excluding (for example) archived entities.") - @query("listViewType") + @query listViewType?: ListViewType; }; @@ -48,7 +38,7 @@ alias ListLatestDataSetVersionParameters = { interface Datasets extends ServicePatterns.VersionedOperations< DatasetVersion, - ListLatestDataSetVersionParameters, + ListDatasetVersionsParameters, ListDatasetVersionsParameters > { @doc("Create or start a pending upload of a dataset for a specific version.") diff --git a/specification/ai/Azure.AI.Projects/deployments/models.tsp b/specification/ai/Azure.AI.Projects/deployments/models.tsp index 875bee28a9f0..61bef4945733 100644 --- a/specification/ai/Azure.AI.Projects/deployments/models.tsp +++ b/specification/ai/Azure.AI.Projects/deployments/models.tsp @@ -17,11 +17,21 @@ namespace Azure.AI.Projects; @doc("Model Deployment Definition") @resource("deployments") +@discriminator("type") model Deployment { + @doc("The type of the deployment") + type: DeploymentType; + @doc("Name of the deployment") @visibility(Lifecycle.Read) @key("name") name: string; +} + +@doc("Model Deployment Definition") +model ModelDeployment extends Deployment { + @doc("The type of the deployment") + type: DeploymentType.ModelDeployment; @doc("Publisher-specific name of the deployed model") @visibility(Lifecycle.Read) @@ -48,7 +58,6 @@ model Deployment { connectionName?: string; } -#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" @doc("Sku information") model Sku { @doc("Sku capacity") @@ -66,3 +75,10 @@ model Sku { @doc("Sku tier") tier: string; } + +union DeploymentType { + string, + + @doc("Model deployment") + ModelDeployment: "ModelDeployment", +} diff --git a/specification/ai/Azure.AI.Projects/evaluations/models.tsp b/specification/ai/Azure.AI.Projects/evaluations/models.tsp index 6dac964c190b..1291a9f5aa53 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/models.tsp @@ -61,10 +61,6 @@ model Evaluation { @doc("Description of the evaluation. It can be used to store additional information about the evaluation and is mutable.") description?: string; - @doc("Metadata containing createdBy and modifiedBy information.") - @visibility(Lifecycle.Read) - systemData?: SystemData; - @doc("Status of the evaluation. It is set by service and is read-only.") @visibility(Lifecycle.Read) status?: string; diff --git a/specification/ai/Azure.AI.Projects/indexes/routes.tsp b/specification/ai/Azure.AI.Projects/indexes/routes.tsp index e3119bf35698..b339e88895ad 100644 --- a/specification/ai/Azure.AI.Projects/indexes/routes.tsp +++ b/specification/ai/Azure.AI.Projects/indexes/routes.tsp @@ -4,6 +4,7 @@ import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; import "./models.tsp"; import "../servicepatterns.tsp"; +import "../common/models.tsp"; using TypeSpec.Http; using TypeSpec.Rest; @@ -15,28 +16,20 @@ using Azure.Core.Foundations; namespace Azure.AI.Projects; alias ListIndexVersionParameters = { - @doc("View type for including/excluding (for example) archived entities.") + @doc("Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned") @query - listViewType: string = "ActiveOnly"; + top?: int32; - @doc("Ordering of list: Please choose orderby value from ['createdAt', 'lastModifiedAt'].") + @doc("Continuation token for pagination.") @query - orderBy?: string; + skip?: string; - @doc("Ordering of list: Please choose orderby value from ['createdAt', 'lastModifiedAt'].") - @query - orderby?: string; - - @doc("Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2.") + @doc("Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2") @query tags?: string; - ...StandardListQueryParameters; -}; - -alias ListLatestIndexParameters = { - @doc("View type for including/excluding (for example) archived entities.") - @query("listViewType") + @doc("[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.") + @query listViewType?: ListViewType; }; @@ -44,6 +37,6 @@ alias ListLatestIndexParameters = { interface Indexes extends ServicePatterns.VersionedOperations< Index, - ListLatestIndexParameters, + ListIndexVersionParameters, ListIndexVersionParameters > {} diff --git a/specification/ai/Azure.AI.Projects/main.tsp b/specification/ai/Azure.AI.Projects/main.tsp index cc02c284a755..ec1217bee2f8 100644 --- a/specification/ai/Azure.AI.Projects/main.tsp +++ b/specification/ai/Azure.AI.Projects/main.tsp @@ -47,7 +47,7 @@ namespace Azure.AI { "Azure AI", { @doc(""" - Project endpoint in the form of: https://.services.ai.azure.com/projects/ + Project endpoint in the form of: https://.services.ai.azure.com/api/projects/ """) endpoint: url, } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json index a8c9be756439..bf499b25088a 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json @@ -19,7 +19,7 @@ { "name": "endpoint", "in": "path", - "description": "Project endpoint in the form of: https://.services.ai.azure.com/projects/", + "description": "Project endpoint in the form of: https://.services.ai.azure.com/api/projects/", "required": true, "type": "string", "format": "uri", @@ -494,10 +494,32 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "top", + "in": "query", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "skip", + "in": "query", + "description": "Continuation token for pagination.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", + "required": false, + "type": "string" + }, { "name": "listViewType", "in": "query", - "description": "View type for including/excluding (for example) archived entities.", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", "required": false, "type": "string", "enum": [ @@ -655,14 +677,7 @@ "type": "string" }, { - "name": "$orderBy", - "in": "query", - "description": "Please choose OrderBy value from ['createdtime', 'modifiedtime']", - "required": false, - "type": "string" - }, - { - "name": "$top", + "name": "top", "in": "query", "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", "required": false, @@ -670,14 +685,14 @@ "format": "int32" }, { - "name": "$skip", + "name": "skip", "in": "query", "description": "Continuation token for pagination.", "required": false, "type": "string" }, { - "name": "$tags", + "name": "tags", "in": "query", "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", "required": false, @@ -1603,10 +1618,32 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "top", + "in": "query", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "skip", + "in": "query", + "description": "Continuation token for pagination.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", + "required": false, + "type": "string" + }, { "name": "listViewType", "in": "query", - "description": "View type for including/excluding (for example) archived entities.", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", "required": false, "type": "string", "enum": [ @@ -1678,42 +1715,59 @@ "type": "string" }, { - "name": "listViewType", - "in": "query", - "description": "View type for including/excluding (for example) archived entities.", - "required": true, - "type": "string", - "default": "ActiveOnly" - }, - { - "name": "orderBy", + "name": "top", "in": "query", - "description": "Ordering of list: Please choose orderby value from ['createdAt', 'lastModifiedAt'].", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", "required": false, - "type": "string" + "type": "integer", + "format": "int32" }, { - "name": "orderby", + "name": "skip", "in": "query", - "description": "Ordering of list: Please choose orderby value from ['createdAt', 'lastModifiedAt'].", + "description": "Continuation token for pagination.", "required": false, "type": "string" }, { "name": "tags", "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2.", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", "required": false, "type": "string" }, { - "$ref": "#/parameters/Azure.Core.TopQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.SkipQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" + "name": "listViewType", + "in": "query", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } } ], "responses": { @@ -9688,9 +9742,9 @@ "description": "The connection URL to be used for this service", "readOnly": true }, - "properties": { + "metadata": { "type": "object", - "description": "A collection of properties of the connection", + "description": "Metadata of the connection", "additionalProperties": { "type": "string" } @@ -9700,7 +9754,7 @@ "name", "type", "target", - "properties" + "metadata" ] }, "ConnectionType": { @@ -9919,11 +9973,6 @@ "additionalProperties": { "type": "string" } - }, - "systemData": { - "$ref": "#/definitions/SystemData", - "description": "System data of the resource", - "readOnly": true } }, "discriminator": "type", @@ -9938,54 +9987,39 @@ "type": "object", "description": "Model Deployment Definition", "properties": { + "type": { + "$ref": "#/definitions/DeploymentType", + "description": "The type of the deployment" + }, "name": { "type": "string", "description": "Name of the deployment", "readOnly": true - }, - "modelName": { - "type": "string", - "description": "Publisher-specific name of the deployed model", - "readOnly": true - }, - "modelVersion": { - "type": "string", - "description": "Publisher-specific version of the deployed model", - "readOnly": true - }, - "modelPublisher": { - "type": "string", - "description": "Name of the deployed model's publisher", - "readOnly": true - }, - "capabilities": { - "type": "object", - "description": "Capabilities of deployed model", - "additionalProperties": { - "type": "string" - }, - "readOnly": true - }, - "sku": { - "$ref": "#/definitions/Sku", - "description": "Sku of the model deployment", - "readOnly": true - }, - "connectionName": { - "type": "string", - "description": "Name of the connection the deployment comes from", - "readOnly": true } }, + "discriminator": "type", "required": [ - "name", - "modelName", - "modelVersion", - "modelPublisher", - "capabilities", - "sku" + "type", + "name" ] }, + "DeploymentType": { + "type": "string", + "enum": [ + "ModelDeployment" + ], + "x-ms-enum": { + "name": "DeploymentType", + "modelAsString": true, + "values": [ + { + "name": "ModelDeployment", + "value": "ModelDeployment", + "description": "Model deployment" + } + ] + } + }, "EmbeddingConfiguration": { "type": "object", "description": "Embedding configuration class", @@ -10025,11 +10059,6 @@ "type": "string", "description": "Description of the evaluation. It can be used to store additional information about the evaluation and is mutable." }, - "systemData": { - "$ref": "#/definitions/SystemData", - "description": "Metadata containing createdBy and modifiedBy information.", - "readOnly": true - }, "status": { "type": "string", "description": "Status of the evaluation. It is set by service and is read-only.", @@ -10210,11 +10239,6 @@ "additionalProperties": { "type": "string" } - }, - "systemData": { - "$ref": "#/definitions/SystemData", - "description": "System data of the resource", - "readOnly": true } }, "discriminator": "type", @@ -10383,6 +10407,58 @@ ] } }, + "ModelDeployment": { + "type": "object", + "description": "Model Deployment Definition", + "properties": { + "modelName": { + "type": "string", + "description": "Publisher-specific name of the deployed model", + "readOnly": true + }, + "modelVersion": { + "type": "string", + "description": "Publisher-specific version of the deployed model", + "readOnly": true + }, + "modelPublisher": { + "type": "string", + "description": "Name of the deployed model's publisher", + "readOnly": true + }, + "capabilities": { + "type": "object", + "description": "Capabilities of deployed model", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + }, + "sku": { + "$ref": "#/definitions/Sku", + "description": "Sku of the model deployment", + "readOnly": true + }, + "connectionName": { + "type": "string", + "description": "Name of the connection the deployment comes from", + "readOnly": true + } + }, + "required": [ + "modelName", + "modelVersion", + "modelPublisher", + "capabilities", + "sku" + ], + "allOf": [ + { + "$ref": "#/definitions/Deployment" + } + ], + "x-ms-discriminator-value": "ModelDeployment" + }, "OutputPathAssetReference": { "type": "object", "description": "Reference to an asset via its path in a job output.", @@ -10695,34 +10771,6 @@ "size", "tier" ] - }, - "SystemData": { - "type": "object", - "description": "Metadata pertaining to creation and last modification of the resource.", - "properties": { - "createdAt": { - "type": "string", - "format": "date-time", - "description": "The timestamp the resource was created at.", - "readOnly": true - }, - "createdBy": { - "type": "string", - "description": "The identity that created the resource.", - "readOnly": true - }, - "createdByType": { - "type": "string", - "description": "The identity type that created the resource.", - "readOnly": true - }, - "lastModifiedAt": { - "type": "string", - "format": "date-time", - "description": "The timestamp of resource last modification (UTC)", - "readOnly": true - } - } } }, "parameters": { From 0ff89ea1794ea4be82d1435f7a76920bf896e305 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Tue, 25 Mar 2025 17:05:48 -0700 Subject: [PATCH 076/143] Fix formt after running `npx tsp format **\*.tsp` --- .../ai/Azure.AI.Projects/assistants/files/routes.tsp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp b/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp index df720e178c29..c79524777a3a 100644 --- a/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp @@ -58,10 +58,10 @@ op uploadFile is Azure.Core.Foundations.Operation< @doc("The file data, in bytes.") @clientName("Data", "csharp") file: HttpPart; - + @doc("The intended purpose of the uploaded file. Use `assistants` for Agents and Message files, `vision` for Agents image file inputs, `batch` for Batch API, and `fine-tune` for Fine-tuning.") purpose: HttpPart; - + /* * Spec note: filename is not documented as a distinct option but functionally should be one. The value is encoded * in the multipart Content-Disposition header for the data section and can be provided independently of From 44bd94376fcd99b2b0a1ee46ae50cb20b16499c1 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Wed, 26 Mar 2025 06:51:39 -0700 Subject: [PATCH 077/143] Bring over latest Agent typespec files from branch feature/azure-ai-projects (#33490) --- .../Azure.AI.Projects/assistants/client.tsp | 300 ++++++++++++++++++ .../assistants/files/routes.tsp | 4 +- .../ai/Azure.AI.Projects/assistants/main.tsp | 2 - .../assistants/messages/models.tsp | 67 +++- .../Azure.AI.Projects/assistants/models.tsp | 14 + .../Azure.AI.Projects/assistants/routes.tsp | 14 +- .../assistants/run_steps/models.tsp | 2 +- .../assistants/tools/models.tsp | 18 +- .../assistants/tools/tool_resources.tsp | 46 ++- 9 files changed, 436 insertions(+), 31 deletions(-) create mode 100644 specification/ai/Azure.AI.Projects/assistants/client.tsp delete mode 100644 specification/ai/Azure.AI.Projects/assistants/main.tsp diff --git a/specification/ai/Azure.AI.Projects/assistants/client.tsp b/specification/ai/Azure.AI.Projects/assistants/client.tsp new file mode 100644 index 000000000000..a8d182992910 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/assistants/client.tsp @@ -0,0 +1,300 @@ +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; + +namespace Azure.AI.Projects.Assistants { + // Trivial response value containers should treat these containers as internal details and instead surface a shimmed + // operation that exposes the underlying data directly. + @@clientName(AgentDeletionStatus, "InternalAgentDeletionStatus", "csharp"); + @@access(deleteAgent, Access.internal, "csharp"); + @@clientName(deleteAgent, "InternalDeleteAgent", "csharp"); + @@access(deleteThread, Access.internal, "csharp"); + @@clientName(deleteThread, "InternalDeleteThread", "csharp"); + @@access(listAgents, Access.internal, "csharp"); + @@clientName(listAgents, "InternalGetAgents", "csharp"); + @@access(listRunSteps, Access.internal, "csharp"); + @@clientName(listRunSteps, "InternalGetRunSteps", "csharp"); + @@access(listMessages, Access.internal, "csharp"); + @@clientName(listMessages, "InternalGetMessages", "csharp"); + @@access(listRuns, Access.internal, "csharp"); + @@clientName(listRuns, "InternalGetRuns", "csharp"); + @@access(FileListResponse, Access.internal, "csharp"); + @@clientName(FileListResponse, "InternalFileListResponse", "csharp"); + @@access(listFiles, Access.internal, "csharp"); + @@clientName(listFiles, "InternalListFiles", "csharp"); + @@access(FileDeletionStatus, Access.internal, "csharp"); + @@clientName(FileDeletionStatus, "InternalFileDeletionStatus", "csharp"); + @@access(deleteFile, Access.internal, "csharp"); + @@clientName(deleteFile, "InternalDeleteFile", "csharp"); + + // In addition to top-level response value containers, trivial intermediate structure -- levels of single-use model + // hierarchy that don't convey explanatory or functional benefit to consumers of the surface -- should also be + // internalized and merged into the more useful top-level type. + + // FunctionToolDefinition: merge FunctionDefinition structure to recast e.g. toolDefinition.function.name into + // toolDefinition.name + + @@access(FunctionDefinition, Access.internal); + @@clientName(FunctionDefinition, "InternalFunctionDefinition", "csharp"); + @@clientName(FunctionToolDefinition.function, "InternalFunction", "csharp"); + + // Make AzureFunctionDefinition internal in C#. + @@access(AzureFunctionDefinition, Access.internal); + @@clientName(AzureFunctionDefinition, + "InternalAzureFunctionDefinition", + "csharp" + ); + @@clientName(AzureFunctionToolDefinition.azureFunction, + "InternalAzureFunction", + "csharp" + ); + @@access(AzureFunctionBinding, Access.public); + + // SubmitToolOutputsAction: include .tool_calls directly rather than via an intermediate .details. + + @@access(SubmitToolOutputsDetails, Access.internal); + @@clientName(SubmitToolOutputsDetails, + "InternalSubmitToolOutputsDetails", + "csharp" + ); + @@clientName(SubmitToolOutputsAction.submitToolOutputs, + "InternalDetails", + "csharp" + ); + + // RequiredFunctionToolCall, RunStepFunctionToolCall: include name/arguments/output directly + + @@access(RunStepFunctionToolCallDetails, Access.internal); + @@clientName(RunStepFunctionToolCallDetails, + "InternalRunStepFunctionToolCallDetails", + "csharp" + ); + @@clientName(RequiredFunctionToolCall.function, "InternalDetails", "csharp"); + @@access(RequiredFunctionToolCallDetails, Access.internal); + @@clientName(RequiredFunctionToolCallDetails, + "InternalRequiredFunctionToolCallDetails", + "csharp" + ); + @@clientName(RunStepFunctionToolCall.function, "InternalDetails", "csharp"); + + // RunStepCodeInterpreterToolCall: include input/outputs directly + + @@access(RunStepCodeInterpreterToolCallDetails, Access.internal); + @@clientName(RunStepCodeInterpreterToolCallDetails, + "InternalCodeInterpreterToolCallDetails", + "csharp" + ); + @@clientName(RunStepCodeInterpreterToolCall.codeInterpreter, + "InternalDetails", + "csharp" + ); + + // MessageTextContent: text/annotations can also merge + + @@access(MessageTextDetails, Access.internal); + @@clientName(MessageTextDetails, "InternalMessageTextDetails", "csharp"); + @@clientName(MessageTextContent.text, "InternalDetails", "csharp"); + + // MessageTextFileCitationAnnotation: file_id/quote don't need another type + + @@access(MessageTextFileCitationDetails, Access.internal); + @@clientName(MessageTextFileCitationDetails, + "InternalMessageTextFileCitationDetails", + "csharp" + ); + @@clientName(MessageTextFileCitationAnnotation.fileCitation, + "InternalDetails", + "csharp" + ); + + // MessageTextFilePathAnnotation: file_id doesn't need a separate details client type + + @@access(MessageTextFilePathDetails, Access.internal); + @@clientName(MessageTextFilePathDetails, + "InternalMessageTextFilePathDetails", + "csharp" + ); + @@clientName(MessageTextFilePathAnnotation.filePath, + "InternalDetails", + "csharp" + ); + + // MessageImageFileContent: *two* levels of intermediate structure can be squashed to bring file_id to the parent + // type. Per earlier precedent with image generation, even the introduction of more image file representations (e.g. + // base64) are better accomplished via another approach at the client layer. + + @@access(MessageImageFileDetails, Access.internal); + @@clientName(MessageImageFileDetails, + "InternalMessageImageFileDetails", + "csharp" + ); + @@clientName(MessageImageFileContent.imageFile, "InternalDetails", "csharp"); + @@clientName(MessageImageFileDetails.fileId, "InternalDetails", "csharp"); + + // Several of the content item types are not intended to be used as input + + @@usage(MessageTextContent, Usage.output); + @@usage(MessageImageFileContent, Usage.output); + @@usage(MessageTextContent, Usage.output); + @@usage(MessageTextFileCitationAnnotation, Usage.output); + @@usage(MessageTextFilePathAnnotation, Usage.output); + + // Ensure some shared types remain public despite interaction with previously internalized details + + // Ensure generator inclusion of streaming "leaf" types not yet referenced by a route + + @@usage(MessageDeltaTextFileCitationAnnotation, Usage.output); + @@access(MessageDeltaTextFileCitationAnnotation, Access.public); + + @@usage(MessageDeltaTextFileCitationAnnotationObject, Usage.output); + @@access(MessageDeltaTextFileCitationAnnotationObject, Access.public); + + @@usage(MessageDeltaTextFilePathAnnotation, Usage.output); + @@access(MessageDeltaTextFilePathAnnotation, Access.public); + + @@usage(MessageDeltaTextFilePathAnnotationObject, Usage.output); + @@access(MessageDeltaTextFilePathAnnotationObject, Access.public); + + @@usage(MessageDeltaImageFileContent, Usage.output); + @@access(MessageDeltaImageFileContent, Access.public); + + @@usage(MessageDeltaImageFileContentObject, Usage.output); + @@access(MessageDeltaImageFileContentObject, Access.public); + + @@usage(MessageDeltaTextContent, Usage.output); + @@access(MessageDeltaTextContent, Access.public); + + @@usage(MessageDeltaTextContentObject, Usage.output); + @@access(MessageDeltaTextContentObject, Access.public); + + @@usage(RunStepDeltaMessageCreationObject, Usage.output); + @@access(RunStepDeltaMessageCreationObject, Access.public); + + @@usage(RunStepDeltaFunction, Usage.output); + @@access(RunStepDeltaFunction, Access.public); + + @@usage(RunStepDeltaCodeInterpreterLogOutput, Usage.output); + @@access(RunStepDeltaCodeInterpreterLogOutput, Access.public); + + @@usage(RunStepDeltaCodeInterpreterImageOutputObject, Usage.output); + @@access(RunStepDeltaCodeInterpreterImageOutputObject, Access.public); + + @@usage(RunStepDeltaChunk, Usage.output); + @@access(RunStepDeltaChunk, Access.public); + + @@usage(MessageDeltaChunk, Usage.output); + @@access(MessageDeltaChunk, Access.public); + + @@usage(MessageDelta, Usage.output); + @@access(MessageDelta, Access.public); + + @@usage(MessageDeltaContent, Usage.output); + @@access(MessageDeltaContent, Access.public); + + // Stream events : made public to expose documentation and make class casting for strongly typed languages easier + + @@usage(AgentStreamEvent, Usage.output); + @@access(AgentStreamEvent, Access.public); + + @@usage(ThreadStreamEvent, Usage.output); + @@access(ThreadStreamEvent, Access.public); + + @@usage(RunStreamEvent, Usage.output); + @@access(RunStreamEvent, Access.public); + + @@usage(RunStepStreamEvent, Usage.output); + @@access(RunStepStreamEvent, Access.public); + + @@usage(MessageStreamEvent, Usage.output); + @@access(MessageStreamEvent, Access.public); + + @@usage(ErrorEvent, Usage.output); + @@access(ErrorEvent, Access.public); + + @@usage(DoneEvent, Usage.output); + @@access(DoneEvent, Access.public); + + // Tool resources + @@usage(ToolResources, Usage.output); + @@access(ToolResources, Access.public); + + @@usage(CodeInterpreterToolResource, Usage.output); + @@access(CodeInterpreterToolResource, Access.public); + + @@usage(FileSearchToolResource, Usage.output); + @@access(FileSearchToolResource, Access.public); + + // Ensure some shared types remain public despite interaction with previously internalized details + @@access(MessageTextFilePathAnnotation, Access.public); + @@access(MessageTextFileCitationAnnotation, Access.public); + @@access(ListSortOrder, Access.public); + @@access(RequiredToolCall, Access.public); + @@usage(FilePurpose, Usage.input | Usage.output); + @@usage(ListSortOrder, Usage.input | Usage.output); + + // Make getFileContent internal method in Python (override with get_file_content_stream) + @@access(getFileContent, Access.internal, "python"); + + // Additional, language-specific idiomatic renames + + @@clientName(OpenAIFile, "OpenAIFile", "csharp"); + @@clientName(OpenAIFile.bytes, "Size", "csharp"); + @@clientName(FilePurpose, "OpenAIFilePurpose", "csharp"); + @@clientName(ThreadMessage.content, "ContentItems", "csharp"); + @@clientName(MessageTextDetails.value, "Text", "csharp"); + @@clientName(CreateRunOptions.`model`, "OverrideModelName", "csharp"); + @@clientName(CreateRunOptions.instructions, "OverrideInstructions", "csharp"); + @@clientName(CreateRunOptions.tools, "OverrideTools", "csharp"); + @@clientName(CreateAndRunThreadOptions.`model`, + "OverrideModelName", + "csharp" + ); + @@clientName(CreateAndRunThreadOptions.instructions, + "OverrideInstructions", + "csharp" + ); + @@clientName(CreateAndRunThreadOptions.tools, "OverrideTools", "csharp"); + + // Override until final decision made on assistants vs agents naming + @@clientName(ThreadMessage.assistantId, "agentId", "python"); + @@clientName(GetAgentOptions.assistantId, "agentId", "python"); + @@clientName(UpdateAgentOptions.assistantId, "agentId", "python"); + @@clientName(DeleteAgentOptions.assistantId, "agentId", "python"); + @@clientName(RunStep.assistantId, "agentId", "python"); + @@clientName(ThreadRun.assistantId, "agentId", "python"); + @@clientName(CreateRunOptions.assistantId, "agentId", "python"); + @@clientName(CreateAndRunThreadOptions.assistantId, "agentId", "python"); + // From https://platform.openai.com/docs/agents/how-it-works + // "Note that deleting an AgentFile doesn’t delete the original File object, it simply deletes the association + // between that File and the Agent." + + //@override(Azure.AI.Agents.createAgent, "java") + //op createAgentCustomization(createAgentOptions: CreateAgentOptions): Agent; + + //@@clientName(updateAgent::parameters.body, + // "updateAgentOptions", + // "java" + //); + //@@clientName(createThreadAndRun::parameters.body, + // "createAndRunThreadOptions", + // "java" + //); + //@@clientName(createThread::parameters.body, + // "agentThreadCreationOptions", + // "java" + //); + ///@@clientName(updateThread::parameters.body, + // "updateAgentThreadOptions", + // "java" + //); + //@@clientName(createVectorStore::parameters.body, + // "vectorStoreOptions", + // "java" + //); + //@@clientName(modifyVectorStore::parameters.body, + // "vectorStoreUpdateOptions", + // "java" + //); + //@@clientName(createRun::parameters.body, "createRunOptions", "java"); + //@@clientName(createMessage::parameters.body, "threadMessageOptions", "java"); +} diff --git a/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp b/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp index c79524777a3a..df720e178c29 100644 --- a/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp @@ -58,10 +58,10 @@ op uploadFile is Azure.Core.Foundations.Operation< @doc("The file data, in bytes.") @clientName("Data", "csharp") file: HttpPart; - + @doc("The intended purpose of the uploaded file. Use `assistants` for Agents and Message files, `vision` for Agents image file inputs, `batch` for Batch API, and `fine-tune` for Fine-tuning.") purpose: HttpPart; - + /* * Spec note: filename is not documented as a distinct option but functionally should be one. The value is encoded * in the multipart Content-Disposition header for the data section and can be provided independently of diff --git a/specification/ai/Azure.AI.Projects/assistants/main.tsp b/specification/ai/Azure.AI.Projects/assistants/main.tsp deleted file mode 100644 index 3b662be82ec5..000000000000 --- a/specification/ai/Azure.AI.Projects/assistants/main.tsp +++ /dev/null @@ -1,2 +0,0 @@ -import "./models.tsp"; -import "./routes.tsp"; diff --git a/specification/ai/Azure.AI.Projects/assistants/messages/models.tsp b/specification/ai/Azure.AI.Projects/assistants/messages/models.tsp index ceb5c1244f0b..f6c7ad9a5e93 100644 --- a/specification/ai/Azure.AI.Projects/assistants/messages/models.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/messages/models.tsp @@ -151,7 +151,7 @@ model MessageTextDetails { annotations: MessageTextAnnotation[]; } -// Annotations, used by text content: "file_citation" | "file_path" +// Annotations, used by text content: "file_citation" | "file_path" | "url_citation" @discriminator("type") @doc("An abstract representation of an annotation to text thread message content.") @@ -164,6 +164,35 @@ model MessageTextAnnotation { text: string; } +// URL citation annotation + details + +@doc("A citation within the message that points to a specific URL associated with the message. Generated when the agent uses tools such as 'bing_grounding' to search the Internet.") +model MessageTextUrlCitationAnnotation extends MessageTextAnnotation { + @doc("The object type, which is always 'url_citation'.") + type: "url_citation"; + + @encodedName("application/json", "url_citation") + @doc("The details of the URL citation.") + urlCitation: MessageTextUrlCitationDetails; + + @encodedName("application/json", "start_index") + @doc("The first text index associated with this text annotation.") + startIndex?: int32; + + @encodedName("application/json", "end_index") + @doc("The last text index associated with this text annotation.") + endIndex?: int32; +} + +@doc("A representation of a URL citation, as used in text thread message content.") +model MessageTextUrlCitationDetails { + @doc("The URL associated with this citation.") + url: string; + + @doc("The title of the URL.") + title?: string; +} + // File citation annotation + details @doc("A citation within the message that points to a specific quote from a specific File associated with the agent or the message. Generated when the agent uses the 'file_search' tool to search files.") @@ -355,6 +384,33 @@ model MessageDeltaTextAnnotation { type: string; } +@doc("A citation within the message that points to a specific URL associated with the message. Generated when the agent uses tools such as 'bing_grounding' to search the Internet.") +model MessageDeltaTextUrlCitationAnnotation extends MessageDeltaTextAnnotation { + @doc("The object type, which is always 'url_citation'.") + type: "url_citation"; + + @encodedName("application/json", "url_citation") + @doc("The details of the URL citation.") + urlCitation: MessageDeltaTextUrlCitationDetails; + + @encodedName("application/json", "start_index") + @doc("The first text index associated with this text annotation.") + startIndex?: int32; + + @encodedName("application/json", "end_index") + @doc("The last text index associated with this text annotation.") + endIndex?: int32; +} + +@doc("A representation of a URL citation, as used in text thread message content.") +model MessageDeltaTextUrlCitationDetails { + @doc("The URL associated with this citation.") + url: string; + + @doc("The title of the URL.") + title?: string; +} + /** Represents a streamed file citation applied to a streaming text content part. */ model MessageDeltaTextFileCitationAnnotation extends MessageDeltaTextAnnotation { @@ -414,12 +470,3 @@ model MessageDeltaTextFilePathAnnotationObject { @encodedName("application/json", "file_id") fileId?: string; } - -/** A representation of the URL used for the text citation. */ -model MessageDeltaTextUrlCitationDetails { - /** The URL where the citation is from. */ - url?: string; - - /** The title of the URL. */ - title?: string; -} diff --git a/specification/ai/Azure.AI.Projects/assistants/models.tsp b/specification/ai/Azure.AI.Projects/assistants/models.tsp index 6d552dad15d9..684b24a3e230 100644 --- a/specification/ai/Azure.AI.Projects/assistants/models.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/models.tsp @@ -202,3 +202,17 @@ model AgentDeletionStatus { @doc("The object type, which is always 'assistant.deleted'.") object: "assistant.deleted"; } + +@doc("The request details to use when retrieving an agent.") +model GetAgentOptions { + @doc("Identifier of the agent.") + @path + assistantId: string; +} + +@doc("The request details to use when deleting an agent.") +model DeleteAgentOptions { + @doc("Identifier of the agent.") + @path + assistantId: string; +} diff --git a/specification/ai/Azure.AI.Projects/assistants/routes.tsp b/specification/ai/Azure.AI.Projects/assistants/routes.tsp index 4929ba11dacd..f7220fec9505 100644 --- a/specification/ai/Azure.AI.Projects/assistants/routes.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/routes.tsp @@ -62,9 +62,10 @@ op listAgents is Azure.Core.Foundations.Operation< @route("/assistants/{assistantId}") op getAgent is Azure.Core.Foundations.Operation< { - @doc("Identifier of the agent.") - @path - assistantId: string; + /** + * The request details to use when retrieving an agent. + */ + ...GetAgentOptions; }, Agent >; @@ -103,9 +104,10 @@ op updateAgent is Azure.Core.Foundations.Operation< @route("/assistants/{assistantId}") op deleteAgent is Azure.Core.Foundations.Operation< { - @doc("Identifier of the agent.") - @path - assistantId: string; + /** + * The request details to use when deleting an agent. + */ + ...DeleteAgentOptions; }, AgentDeletionStatus >; diff --git a/specification/ai/Azure.AI.Projects/assistants/run_steps/models.tsp b/specification/ai/Azure.AI.Projects/assistants/run_steps/models.tsp index 67e24ed7aa1e..bfc57b296e0d 100644 --- a/specification/ai/Azure.AI.Projects/assistants/run_steps/models.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/run_steps/models.tsp @@ -265,7 +265,7 @@ model RunStepDeltaFileSearchToolCall extends RunStepDeltaToolCall { /** Reserved for future use. */ @encodedName("application/json", "file_search") - fileSearch?: Record; + fileSearch?: RunStepFileSearchToolCallResults; } /** Represents a Code Interpreter tool call within a streaming run step's tool call details. */ diff --git a/specification/ai/Azure.AI.Projects/assistants/tools/models.tsp b/specification/ai/Azure.AI.Projects/assistants/tools/models.tsp index efd2b465dcd7..67cf55849788 100644 --- a/specification/ai/Azure.AI.Projects/assistants/tools/models.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/tools/models.tsp @@ -58,11 +58,11 @@ model BingGroundingToolDefinition extends ToolDefinition { @doc("The input definition information for a Microsoft Fabric tool as used to configure an agent.") model MicrosoftFabricToolDefinition extends ToolDefinition { - @doc("The object type, which is always 'fabric_aiskill'.") - type: "fabric_aiskill"; + @doc("The object type, which is always 'fabric_dataagent'.") + type: "fabric_dataagent"; @doc("The list of connections used by the Microsoft Fabric tool.") - fabric_aiskill: ToolConnectionList; + fabric_dataagent: ToolConnectionList; } @doc("The input definition information for a sharepoint tool as used to configure an agent.") @@ -400,11 +400,11 @@ model RunStepSharepointToolCall extends RunStepToolCall { executed Microsoft Fabric operations. """) model RunStepMicrosoftFabricToolCall extends RunStepToolCall { - @doc("The object type, which is always 'fabric_aiskill'.") - type: "fabric_aiskill"; + @doc("The object type, which is always 'fabric_dataagent'.") + type: "fabric_dataagent"; @doc("Reserved for future use.") - @encodedName("application/json", "fabric_aiskill") + @encodedName("application/json", "fabric_dataagent") microsoftFabric: Record; } @@ -548,8 +548,8 @@ union AgentsNamedToolChoiceType { /** Tool type `bing_grounding` */ bingGrounding: "bing_grounding", - /** Tool type `fabric_aiskill` */ - microsoftFabric: "fabric_aiskill", + /** Tool type `fabric_dataagent` */ + microsoftFabric: "fabric_dataagent", /** Tool type `sharepoint_grounding` */ sharepoint: "sharepoint_grounding", @@ -565,7 +565,7 @@ model FunctionName { } /** - * A set of connection resources currently used by either the `bing_grounding`, `fabric_aiskill`, or `sharepoint_grounding` tools. + * A set of connection resources currently used by either the `bing_grounding`, `fabric_dataagent`, or `sharepoint_grounding` tools. */ model ToolConnectionList { /** diff --git a/specification/ai/Azure.AI.Projects/assistants/tools/tool_resources.tsp b/specification/ai/Azure.AI.Projects/assistants/tools/tool_resources.tsp index 6f1ed5176e41..28b9a96064d6 100644 --- a/specification/ai/Azure.AI.Projects/assistants/tools/tool_resources.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/tools/tool_resources.tsp @@ -81,7 +81,7 @@ model AzureAISearchResource { */ @maxItems(1) @encodedName("application/json", "indexes") - indexList?: IndexResource[]; + indexList?: AISearchIndexResource[]; } /** @@ -101,6 +101,30 @@ model IndexResource { indexName: string; } +/** + * A AI Search Index resource. + */ +model AISearchIndexResource { + ...IndexResource; + + /** + * Type of query in an AIIndexResource attached to this agent. + */ + @encodedName("application/json", "query_type") + queryType?: AzureAISearchQueryType; + + /** + * Number of documents to retrieve from search and present to the model. + */ + @encodedName("application/json", "top_k") + topK?: int32; + + /** + * Odata filter string for search resource. + */ + filter?: string; +} + // // Creation request objects // @@ -218,3 +242,23 @@ model UpdateFileSearchToolResourceOptions { @encodedName("application/json", "vector_store_ids") vectorStoreIds?: string[]; } + +/** Available query types for Azure AI Search tool. */ +union AzureAISearchQueryType { + string, + + /** Query type `simple` */ + simple: "simple", + + /** Query type `semantic` */ + semantic: "semantic", + + /** Query type `vector` */ + vector: "vector", + + /** Query type `vector_simple_hybrid` */ + vector_simple_hybrid: "vector_simple_hybrid", + + /** Query type `vector_semantic_hybrid` */ + vector_semantic_hybrid: "vector_semantic_hybrid", +} From 253f63794024aae92cbb63cbd30a648c8f8fff2e Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Wed, 26 Mar 2025 12:02:20 -0400 Subject: [PATCH 078/143] Remove all $ from query params (#33512) --- .../Azure.AI.Projects/connections/routes.tsp | 2 +- .../Azure.AI.Projects/deployments/routes.tsp | 6 +- .../azure-ai-projects-1dp.json | 239 +++++++++++++++--- 3 files changed, 205 insertions(+), 42 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/connections/routes.tsp b/specification/ai/Azure.AI.Projects/connections/routes.tsp index 90a1cab79109..475895cebc6c 100644 --- a/specification/ai/Azure.AI.Projects/connections/routes.tsp +++ b/specification/ai/Azure.AI.Projects/connections/routes.tsp @@ -28,7 +28,7 @@ interface Connections { Connection, ListQueryParametersTrait<{ @doc("Specific type of connection to return in list") - @query("$connectionType") + @query("connectionType") connectionType?: ConnectionType; ...StandardListQueryParameters; diff --git a/specification/ai/Azure.AI.Projects/deployments/routes.tsp b/specification/ai/Azure.AI.Projects/deployments/routes.tsp index 15f8287fe44b..5d762b07a4ac 100644 --- a/specification/ai/Azure.AI.Projects/deployments/routes.tsp +++ b/specification/ai/Azure.AI.Projects/deployments/routes.tsp @@ -28,15 +28,15 @@ interface Deployments { Deployment, ListQueryParametersTrait<{ @doc("Model publisher to filter models by") - @query("$modelPublisher") + @query("modelPublisher") modelPublisher?: string; @doc("Model name (the publisher specific name) to filter models by") - @query("$modelName") + @query("modelName") modelName?: string; @doc("Flag to include models from connections in response.") - @query("$includeConnectedModels") + @query("includeConnectedModels") includeConnectionModels?: boolean; ...StandardListQueryParameters; diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json index bf499b25088a..ec1097d400e1 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json @@ -222,11 +222,7 @@ "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "assistantId", - "in": "path", - "description": "Identifier of the agent.", - "required": true, - "type": "string" + "$ref": "#/parameters/Assistants.GetAgentOptions" } ], "responses": { @@ -298,11 +294,7 @@ "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "assistantId", - "in": "path", - "description": "Identifier of the agent.", - "required": true, - "type": "string" + "$ref": "#/parameters/Assistants.DeleteAgentOptions" } ], "responses": { @@ -336,7 +328,7 @@ "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "$connectionType", + "name": "connectionType", "in": "query", "description": "Specific type of connection to return in list", "required": false, @@ -390,8 +382,7 @@ "description": "Custom Keys" } ] - }, - "x-ms-client-name": "connectionType" + } }, { "$ref": "#/parameters/Azure.Core.TopQueryParameter" @@ -1048,23 +1039,21 @@ "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "$modelPublisher", + "name": "modelPublisher", "in": "query", "description": "Model publisher to filter models by", "required": false, - "type": "string", - "x-ms-client-name": "modelPublisher" + "type": "string" }, { - "name": "$modelName", + "name": "modelName", "in": "query", "description": "Model name (the publisher specific name) to filter models by", "required": false, - "type": "string", - "x-ms-client-name": "modelName" + "type": "string" }, { - "name": "$includeConnectedModels", + "name": "includeConnectedModels", "in": "query", "description": "Flag to include models from connections in response.", "required": false, @@ -4178,6 +4167,41 @@ "referenceType" ] }, + "Assistants.AISearchIndexResource": { + "type": "object", + "description": "A AI Search Index resource.", + "properties": { + "index_connection_id": { + "type": "string", + "description": "An index connection id in an IndexResource attached to this agent.", + "x-ms-client-name": "indexConnectionId" + }, + "index_name": { + "type": "string", + "description": "The name of an index in an IndexResource attached to this agent.", + "x-ms-client-name": "indexName" + }, + "query_type": { + "$ref": "#/definitions/Assistants.AzureAISearchQueryType", + "description": "Type of query in an AIIndexResource attached to this agent.", + "x-ms-client-name": "queryType" + }, + "top_k": { + "type": "integer", + "format": "int32", + "description": "Number of documents to retrieve from search and present to the model.", + "x-ms-client-name": "topK" + }, + "filter": { + "type": "string", + "description": "Odata filter string for search resource." + } + }, + "required": [ + "index_connection_id", + "index_name" + ] + }, "Assistants.Agent": { "type": "object", "description": "Represents an agent that can call the model and use tools.", @@ -4668,7 +4692,7 @@ "code_interpreter", "file_search", "bing_grounding", - "fabric_aiskill", + "fabric_dataagent", "sharepoint_grounding", "azure_ai_search" ], @@ -4698,8 +4722,8 @@ }, { "name": "microsoftFabric", - "value": "fabric_aiskill", - "description": "Tool type `fabric_aiskill`" + "value": "fabric_dataagent", + "description": "Tool type `fabric_dataagent`" }, { "name": "sharepoint", @@ -4714,6 +4738,48 @@ ] } }, + "Assistants.AzureAISearchQueryType": { + "type": "string", + "description": "Available query types for Azure AI Search tool.", + "enum": [ + "simple", + "semantic", + "vector", + "vector_simple_hybrid", + "vector_semantic_hybrid" + ], + "x-ms-enum": { + "name": "AzureAISearchQueryType", + "modelAsString": true, + "values": [ + { + "name": "simple", + "value": "simple", + "description": "Query type `simple`" + }, + { + "name": "semantic", + "value": "semantic", + "description": "Query type `semantic`" + }, + { + "name": "vector", + "value": "vector", + "description": "Query type `vector`" + }, + { + "name": "vector_simple_hybrid", + "value": "vector_simple_hybrid", + "description": "Query type `vector_simple_hybrid`" + }, + { + "name": "vector_semantic_hybrid", + "value": "vector_semantic_hybrid", + "description": "Query type `vector_semantic_hybrid`" + } + ] + } + }, "Assistants.AzureAISearchResource": { "type": "object", "description": "A set of index resources used by the `azure_ai_search` tool.", @@ -4723,7 +4789,7 @@ "description": "The indices attached to this agent. There can be a maximum of 1 index\nresource attached to the agent.", "maxItems": 1, "items": { - "$ref": "#/definitions/Assistants.IndexResource" + "$ref": "#/definitions/Assistants.AISearchIndexResource" }, "x-ms-client-name": "indexList", "x-ms-identifiers": [] @@ -5994,19 +6060,54 @@ } } }, + "Assistants.MessageDeltaTextUrlCitationAnnotation": { + "type": "object", + "description": "A citation within the message that points to a specific URL associated with the message. Generated when the agent uses tools such as 'bing_grounding' to search the Internet.", + "properties": { + "url_citation": { + "$ref": "#/definitions/Assistants.MessageDeltaTextUrlCitationDetails", + "description": "The details of the URL citation.", + "x-ms-client-name": "urlCitation" + }, + "start_index": { + "type": "integer", + "format": "int32", + "description": "The first text index associated with this text annotation.", + "x-ms-client-name": "startIndex" + }, + "end_index": { + "type": "integer", + "format": "int32", + "description": "The last text index associated with this text annotation.", + "x-ms-client-name": "endIndex" + } + }, + "required": [ + "url_citation" + ], + "allOf": [ + { + "$ref": "#/definitions/Assistants.MessageDeltaTextAnnotation" + } + ], + "x-ms-discriminator-value": "url_citation" + }, "Assistants.MessageDeltaTextUrlCitationDetails": { "type": "object", - "description": "A representation of the URL used for the text citation.", + "description": "A representation of a URL citation, as used in text thread message content.", "properties": { "url": { "type": "string", - "description": "The URL where the citation is from." + "description": "The URL associated with this citation." }, "title": { "type": "string", "description": "The title of the URL." } - } + }, + "required": [ + "url" + ] }, "Assistants.MessageImageFileContent": { "type": "object", @@ -6350,24 +6451,73 @@ "file_id" ] }, + "Assistants.MessageTextUrlCitationAnnotation": { + "type": "object", + "description": "A citation within the message that points to a specific URL associated with the message. Generated when the agent uses tools such as 'bing_grounding' to search the Internet.", + "properties": { + "url_citation": { + "$ref": "#/definitions/Assistants.MessageTextUrlCitationDetails", + "description": "The details of the URL citation.", + "x-ms-client-name": "urlCitation" + }, + "start_index": { + "type": "integer", + "format": "int32", + "description": "The first text index associated with this text annotation.", + "x-ms-client-name": "startIndex" + }, + "end_index": { + "type": "integer", + "format": "int32", + "description": "The last text index associated with this text annotation.", + "x-ms-client-name": "endIndex" + } + }, + "required": [ + "url_citation" + ], + "allOf": [ + { + "$ref": "#/definitions/Assistants.MessageTextAnnotation" + } + ], + "x-ms-discriminator-value": "url_citation" + }, + "Assistants.MessageTextUrlCitationDetails": { + "type": "object", + "description": "A representation of a URL citation, as used in text thread message content.", + "properties": { + "url": { + "type": "string", + "description": "The URL associated with this citation." + }, + "title": { + "type": "string", + "description": "The title of the URL." + } + }, + "required": [ + "url" + ] + }, "Assistants.MicrosoftFabricToolDefinition": { "type": "object", "description": "The input definition information for a Microsoft Fabric tool as used to configure an agent.", "properties": { - "fabric_aiskill": { + "fabric_dataagent": { "$ref": "#/definitions/Assistants.ToolConnectionList", "description": "The list of connections used by the Microsoft Fabric tool." } }, "required": [ - "fabric_aiskill" + "fabric_dataagent" ], "allOf": [ { "$ref": "#/definitions/Assistants.ToolDefinition" } ], - "x-ms-discriminator-value": "fabric_aiskill" + "x-ms-discriminator-value": "fabric_dataagent" }, "Assistants.OpenAIFile": { "type": "object", @@ -7318,11 +7468,8 @@ "description": "Represents a file search tool call within a streaming run step's tool call details.", "properties": { "file_search": { - "type": "object", + "$ref": "#/definitions/Assistants.RunStepFileSearchToolCallResults", "description": "Reserved for future use.", - "additionalProperties": { - "type": "string" - }, "x-ms-client-name": "fileSearch" } }, @@ -7661,7 +7808,7 @@ "type": "object", "description": "A record of a call to a Microsoft Fabric tool, issued by the model in evaluation of a defined tool, that represents\nexecuted Microsoft Fabric operations.", "properties": { - "fabric_aiskill": { + "fabric_dataagent": { "type": "object", "description": "Reserved for future use.", "additionalProperties": { @@ -7671,14 +7818,14 @@ } }, "required": [ - "fabric_aiskill" + "fabric_dataagent" ], "allOf": [ { "$ref": "#/definitions/Assistants.RunStepToolCall" } ], - "x-ms-discriminator-value": "fabric_aiskill" + "x-ms-discriminator-value": "fabric_dataagent" }, "Assistants.RunStepSharepointToolCall": { "type": "object", @@ -8443,7 +8590,7 @@ }, "Assistants.ToolConnectionList": { "type": "object", - "description": "A set of connection resources currently used by either the `bing_grounding`, `fabric_aiskill`, or `sharepoint_grounding` tools.", + "description": "A set of connection resources currently used by either the `bing_grounding`, `fabric_dataagent`, or `sharepoint_grounding` tools.", "properties": { "connections": { "type": "array", @@ -10774,6 +10921,22 @@ } }, "parameters": { + "Assistants.DeleteAgentOptions": { + "name": "assistantId", + "in": "path", + "description": "Identifier of the agent.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "Assistants.GetAgentOptions": { + "name": "assistantId", + "in": "path", + "description": "Identifier of the agent.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, "Assistants.UpdateAgentOptions.assistantId": { "name": "assistantId", "in": "path", From b54a5bfbaf37ce5e7aad73bb82550517058cb11f Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Wed, 26 Mar 2025 15:07:21 -0700 Subject: [PATCH 079/143] Add API key auth via the header `Authorization: Bearer ` (#33516) * Add api-key auth * Remove unused `using` statements --- .../ai/Azure.AI.Projects/assistants/files/routes.tsp | 4 ++-- specification/ai/Azure.AI.Projects/common/models.tsp | 3 --- specification/ai/Azure.AI.Projects/connections/models.tsp | 5 ----- specification/ai/Azure.AI.Projects/connections/routes.tsp | 3 --- specification/ai/Azure.AI.Projects/credentials/models.tsp | 7 ------- specification/ai/Azure.AI.Projects/datasets/models.tsp | 7 ------- specification/ai/Azure.AI.Projects/datasets/routes.tsp | 5 ----- specification/ai/Azure.AI.Projects/deployments/models.tsp | 5 ----- specification/ai/Azure.AI.Projects/deployments/routes.tsp | 3 --- specification/ai/Azure.AI.Projects/evaluations/models.tsp | 5 ----- specification/ai/Azure.AI.Projects/evaluations/routes.tsp | 3 --- specification/ai/Azure.AI.Projects/indexes/models.tsp | 7 ------- specification/ai/Azure.AI.Projects/indexes/routes.tsp | 5 ----- specification/ai/Azure.AI.Projects/main.tsp | 8 ++------ 14 files changed, 4 insertions(+), 66 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp b/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp index df720e178c29..c79524777a3a 100644 --- a/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp +++ b/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp @@ -58,10 +58,10 @@ op uploadFile is Azure.Core.Foundations.Operation< @doc("The file data, in bytes.") @clientName("Data", "csharp") file: HttpPart; - + @doc("The intended purpose of the uploaded file. Use `assistants` for Agents and Message files, `vision` for Agents image file inputs, `batch` for Batch API, and `fine-tune` for Fine-tuning.") purpose: HttpPart; - + /* * Spec note: filename is not documented as a distinct option but functionally should be one. The value is encoded * in the multipart Content-Disposition header for the data section and can be provided independently of diff --git a/specification/ai/Azure.AI.Projects/common/models.tsp b/specification/ai/Azure.AI.Projects/common/models.tsp index 04207637e019..c432a27cfe6a 100644 --- a/specification/ai/Azure.AI.Projects/common/models.tsp +++ b/specification/ai/Azure.AI.Projects/common/models.tsp @@ -5,9 +5,6 @@ import "@azure-tools/typespec-azure-resource-manager"; import "../credentials/models.tsp"; using TypeSpec.Http; -using TypeSpec.Versioning; -using Azure.ResourceManager; -using Azure.ResourceManager.Foundations; namespace Azure.AI.Projects; diff --git a/specification/ai/Azure.AI.Projects/connections/models.tsp b/specification/ai/Azure.AI.Projects/connections/models.tsp index 682ba0be9371..ae8f3615236c 100644 --- a/specification/ai/Azure.AI.Projects/connections/models.tsp +++ b/specification/ai/Azure.AI.Projects/connections/models.tsp @@ -6,12 +6,7 @@ import "@typespec/openapi"; import "@typespec/versioning"; import "../credentials/models.tsp"; -using TypeSpec.OpenAPI; -using TypeSpec.Http; using TypeSpec.Rest; -using TypeSpec.Versioning; -using Azure.Core; -using Azure.Core.Traits; namespace Azure.AI.Projects; diff --git a/specification/ai/Azure.AI.Projects/connections/routes.tsp b/specification/ai/Azure.AI.Projects/connections/routes.tsp index 475895cebc6c..4fba2bfb3f23 100644 --- a/specification/ai/Azure.AI.Projects/connections/routes.tsp +++ b/specification/ai/Azure.AI.Projects/connections/routes.tsp @@ -5,11 +5,8 @@ import "@azure-tools/typespec-azure-core"; import "./models.tsp"; using TypeSpec.Http; -using TypeSpec.Rest; -using TypeSpec.Versioning; using Azure.Core; using Azure.Core.Traits; -using Azure.Core.Foundations; namespace Azure.AI.Projects; diff --git a/specification/ai/Azure.AI.Projects/credentials/models.tsp b/specification/ai/Azure.AI.Projects/credentials/models.tsp index 725ba17c2d37..69c8f8d8c056 100644 --- a/specification/ai/Azure.AI.Projects/credentials/models.tsp +++ b/specification/ai/Azure.AI.Projects/credentials/models.tsp @@ -4,13 +4,6 @@ import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; import "@typespec/openapi"; -using TypeSpec.OpenAPI; -using TypeSpec.Http; -using TypeSpec.Rest; -using TypeSpec.Versioning; -using Azure.Core; -using Azure.Core.Traits; - namespace Azure.AI.Projects; @doc("The different Credential types") diff --git a/specification/ai/Azure.AI.Projects/datasets/models.tsp b/specification/ai/Azure.AI.Projects/datasets/models.tsp index 4bf10a582c41..bbd2876b4360 100644 --- a/specification/ai/Azure.AI.Projects/datasets/models.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/models.tsp @@ -7,13 +7,6 @@ import "../main.tsp"; import "@typespec/openapi"; import "@typespec/versioning"; -using TypeSpec.OpenAPI; -using TypeSpec.Http; -using TypeSpec.Rest; -using TypeSpec.Versioning; -using Azure.Core; -using Azure.Core.Traits; - namespace Azure.AI.Projects; @doc("Enum to determine the type of data.") diff --git a/specification/ai/Azure.AI.Projects/datasets/routes.tsp b/specification/ai/Azure.AI.Projects/datasets/routes.tsp index d447451faf8c..e111b8ada110 100644 --- a/specification/ai/Azure.AI.Projects/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/routes.tsp @@ -8,11 +8,6 @@ import "./models.tsp"; import "../servicepatterns.tsp"; using TypeSpec.Http; -using TypeSpec.Rest; -using TypeSpec.Versioning; -using Azure.Core; -using Azure.Core.Traits; -using Azure.Core.Foundations; namespace Azure.AI.Projects; diff --git a/specification/ai/Azure.AI.Projects/deployments/models.tsp b/specification/ai/Azure.AI.Projects/deployments/models.tsp index 61bef4945733..c68150f424f4 100644 --- a/specification/ai/Azure.AI.Projects/deployments/models.tsp +++ b/specification/ai/Azure.AI.Projects/deployments/models.tsp @@ -6,12 +6,7 @@ import "../main.tsp"; import "../common/models.tsp"; import "@typespec/openapi"; -using TypeSpec.OpenAPI; -using TypeSpec.Http; using TypeSpec.Rest; -using TypeSpec.Versioning; -using Azure.Core; -using Azure.Core.Traits; namespace Azure.AI.Projects; diff --git a/specification/ai/Azure.AI.Projects/deployments/routes.tsp b/specification/ai/Azure.AI.Projects/deployments/routes.tsp index 5d762b07a4ac..39168cdc4729 100644 --- a/specification/ai/Azure.AI.Projects/deployments/routes.tsp +++ b/specification/ai/Azure.AI.Projects/deployments/routes.tsp @@ -5,11 +5,8 @@ import "@azure-tools/typespec-azure-core"; import "./models.tsp"; using TypeSpec.Http; -using TypeSpec.Rest; -using TypeSpec.Versioning; using Azure.Core; using Azure.Core.Traits; -using Azure.Core.Foundations; namespace Azure.AI.Projects; diff --git a/specification/ai/Azure.AI.Projects/evaluations/models.tsp b/specification/ai/Azure.AI.Projects/evaluations/models.tsp index 1291a9f5aa53..62279bbf7c01 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/models.tsp @@ -7,12 +7,7 @@ import "../common/models.tsp"; import "../main.tsp"; import "@typespec/openapi"; -using TypeSpec.OpenAPI; -using TypeSpec.Http; using TypeSpec.Rest; -using TypeSpec.Versioning; -using Azure.Core; -using Azure.Core.Traits; namespace Azure.AI.Projects; diff --git a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp index d56315a30c94..5601d5378a96 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp @@ -5,11 +5,8 @@ import "@azure-tools/typespec-azure-core"; import "./models.tsp"; using TypeSpec.Http; -using TypeSpec.Rest; -using TypeSpec.Versioning; using Azure.Core; using Azure.Core.Traits; -using Azure.Core.Foundations; namespace Azure.AI.Projects; diff --git a/specification/ai/Azure.AI.Projects/indexes/models.tsp b/specification/ai/Azure.AI.Projects/indexes/models.tsp index 7bc38e7cb683..6a902439d105 100644 --- a/specification/ai/Azure.AI.Projects/indexes/models.tsp +++ b/specification/ai/Azure.AI.Projects/indexes/models.tsp @@ -5,13 +5,6 @@ import "@azure-tools/typespec-azure-core"; import "../common/models.tsp"; import "../main.tsp"; -using TypeSpec.OpenAPI; -using TypeSpec.Http; -using TypeSpec.Rest; -using TypeSpec.Versioning; -using Azure.Core; -using Azure.Core.Traits; - namespace Azure.AI.Projects; @doc("Index resource Definition") diff --git a/specification/ai/Azure.AI.Projects/indexes/routes.tsp b/specification/ai/Azure.AI.Projects/indexes/routes.tsp index b339e88895ad..1a320121d95d 100644 --- a/specification/ai/Azure.AI.Projects/indexes/routes.tsp +++ b/specification/ai/Azure.AI.Projects/indexes/routes.tsp @@ -7,11 +7,6 @@ import "../servicepatterns.tsp"; import "../common/models.tsp"; using TypeSpec.Http; -using TypeSpec.Rest; -using TypeSpec.Versioning; -using Azure.Core; -using Azure.Core.Traits; -using Azure.Core.Foundations; namespace Azure.AI.Projects; diff --git a/specification/ai/Azure.AI.Projects/main.tsp b/specification/ai/Azure.AI.Projects/main.tsp index ec1217bee2f8..d6219ed9c012 100644 --- a/specification/ai/Azure.AI.Projects/main.tsp +++ b/specification/ai/Azure.AI.Projects/main.tsp @@ -20,20 +20,16 @@ import "./indexes/routes.tsp"; import "./deployments/routes.tsp"; using TypeSpec.Http; -using TypeSpec.Rest; -using Azure.ResourceManager; -using Azure.ResourceManager.Foundations; using TypeSpec.Versioning; -using Azure.Core; -using Azure.Core.Traits; #suppress "@azure-tools/typespec-azure-core/casing-style" namespace Azure.AI { } +#suppress "@azure-tools/typespec-autorest/unsupported-http-auth-scheme" @useAuth( - OAuth2Auth<[ + BearerAuth | OAuth2Auth<[ { type: OAuth2FlowType.implicit, authorizationUrl: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", From ee7434e9d37ba32b210f27929692c9c458388fe4 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Thu, 27 Mar 2025 14:37:38 -0400 Subject: [PATCH 080/143] Change connectionName to name (#33534) * Fix connectionName to be just name * update swagger --------- Co-authored-by: Neehar Duvvuri --- specification/ai/Azure.AI.Projects/connections/models.tsp | 2 +- .../preview/2025-05-01-preview/azure-ai-projects-1dp.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/connections/models.tsp b/specification/ai/Azure.AI.Projects/connections/models.tsp index ae8f3615236c..000960253525 100644 --- a/specification/ai/Azure.AI.Projects/connections/models.tsp +++ b/specification/ai/Azure.AI.Projects/connections/models.tsp @@ -15,7 +15,7 @@ namespace Azure.AI.Projects; model Connection { @doc("The name of the resource") @visibility(Lifecycle.Read) - @key("connectionName") + @key("name") name: string; @doc("Category of the connection") diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json index ec1097d400e1..0135ef7e34dd 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json @@ -429,7 +429,7 @@ } } }, - "/connections/{connectionName}": { + "/connections/{name}": { "get": { "operationId": "Connections_Get", "description": "Get a connection by name.", @@ -438,7 +438,7 @@ "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "connectionName", + "name": "name", "in": "path", "description": "The name of the resource", "required": true, From c6f364ff08848b2b7accb2f2e17ec75c725ef27b Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Fri, 28 Mar 2025 06:08:05 -0700 Subject: [PATCH 081/143] Fix startPendingUploadAutoIncrement (#33525) --- .../ai/Azure.AI.Projects/datasets/routes.tsp | 2 +- .../ai/Azure.AI.Projects/servicepatterns.tsp | 15 +++++++ specification/ai/cspell.yaml | 1 + .../azure-ai-projects-1dp.json | 41 +------------------ 4 files changed, 18 insertions(+), 41 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/datasets/routes.tsp b/specification/ai/Azure.AI.Projects/datasets/routes.tsp index e111b8ada110..db779a38fd34 100644 --- a/specification/ai/Azure.AI.Projects/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/routes.tsp @@ -47,7 +47,7 @@ interface Datasets @Rest.actionSeparator("/") @Rest.action("startPendingUpload") @Http.post - startPendingUploadAutoIncrement is ServicePatterns.BuildingBlocks.RepeatableCoreOps.ResourceAction< + startPendingUploadAutoIncrement is ServicePatterns.UnversionedResourceAction< DatasetVersion, PendingUploadRequest, PendingUploadResponse diff --git a/specification/ai/Azure.AI.Projects/servicepatterns.tsp b/specification/ai/Azure.AI.Projects/servicepatterns.tsp index e0b0373d594d..f79316dd4434 100644 --- a/specification/ai/Azure.AI.Projects/servicepatterns.tsp +++ b/specification/ai/Azure.AI.Projects/servicepatterns.tsp @@ -114,6 +114,21 @@ namespace Azure.AI.Projects.ServicePatterns { TResponse >; + @Rest.action + op UnversionedResourceAction< + TEntityType extends Reflection.Model, + TParams, + TResponse + > is Azure.Core.Foundations.ResourceOperation< + TEntityType, + { + @doc("Parameters for the action") + @Http.bodyRoot + body: TParams; + }, + TResponse + >; + namespace BuildingBlocks { alias CoreOps = Azure.Core.StandardResourceOperations; alias RepeatableCoreOps = Azure.Core.ResourceOperations Date: Fri, 28 Mar 2025 14:49:31 -0700 Subject: [PATCH 082/143] Address some additional TypeSpec issues (#33566) --- .../Azure.AI.Projects/connections/models.tsp | 23 +++++++ .../ai/Azure.AI.Projects/datasets/routes.tsp | 6 +- .../Azure.AI.Projects/deployments/routes.tsp | 4 -- .../azure-ai-projects-1dp.json | 63 +++++++++++++++---- 4 files changed, 77 insertions(+), 19 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/connections/models.tsp b/specification/ai/Azure.AI.Projects/connections/models.tsp index 000960253525..d2119b8dbea0 100644 --- a/specification/ai/Azure.AI.Projects/connections/models.tsp +++ b/specification/ai/Azure.AI.Projects/connections/models.tsp @@ -26,6 +26,9 @@ model Connection { @visibility(Lifecycle.Read) target: string; + @doc("The authentication type used by the connection") + authType: AuthenticationType; + @doc("Metadata of the connection") metadata: Record; } @@ -56,3 +59,23 @@ union ConnectionType { @doc("Custom Keys") Custom: "CustomKeys", } + +@doc("The authentication type used by the connection") +union AuthenticationType { + string, + + @doc("API Key authentication") + apiKey: "ApiKey", + + @doc("Entra ID authentication (formerly known as AAD)") + entraId: "AAD", + + @doc("Shared Access Signature (SAS) authentication") + SAS: "SAS", + + @doc("Custom authentication") + custom: "CustomKeys", + + @doc("No authentication") + None: "None", +} diff --git a/specification/ai/Azure.AI.Projects/datasets/routes.tsp b/specification/ai/Azure.AI.Projects/datasets/routes.tsp index db779a38fd34..5722831d8609 100644 --- a/specification/ai/Azure.AI.Projects/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/routes.tsp @@ -37,17 +37,17 @@ interface Datasets ListDatasetVersionsParameters > { @doc("Create or start a pending upload of a dataset for a specific version.") - startPendingUpload is ServicePatterns.VersionedResourceAction< + startPendingUploadVersion is ServicePatterns.VersionedResourceAction< DatasetVersion, PendingUploadRequest, PendingUploadResponse >; - @doc("Create or start a pending upload of a dataset. The dataset version will be generated by service.") + @doc("Create or start a pending upload of a dataset. The version id will be generated by the service.") @Rest.actionSeparator("/") @Rest.action("startPendingUpload") @Http.post - startPendingUploadAutoIncrement is ServicePatterns.UnversionedResourceAction< + startPendingUpload is ServicePatterns.UnversionedResourceAction< DatasetVersion, PendingUploadRequest, PendingUploadResponse diff --git a/specification/ai/Azure.AI.Projects/deployments/routes.tsp b/specification/ai/Azure.AI.Projects/deployments/routes.tsp index 39168cdc4729..02eeca896129 100644 --- a/specification/ai/Azure.AI.Projects/deployments/routes.tsp +++ b/specification/ai/Azure.AI.Projects/deployments/routes.tsp @@ -32,10 +32,6 @@ interface Deployments { @query("modelName") modelName?: string; - @doc("Flag to include models from connections in response.") - @query("includeConnectedModels") - includeConnectionModels?: boolean; - ...StandardListQueryParameters; }> >; diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json index 0826798b52a1..e30fccd15274 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json @@ -568,8 +568,8 @@ }, "/datasets/{name}/startPendingUpload": { "post": { - "operationId": "Datasets_StartPendingUploadAutoIncrement", - "description": "Create or start a pending upload of a dataset. The dataset version will be generated by service.", + "operationId": "Datasets_StartPendingUpload", + "description": "Create or start a pending upload of a dataset. The version id will be generated by the service.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -937,9 +937,9 @@ } } }, - "/datasets/{name}/versions/{version}/startPendingUpload": { + "/datasets/{name}/versions/{version}/startPendingUploadVersion": { "post": { - "operationId": "Datasets_StartPendingUpload", + "operationId": "Datasets_StartPendingUploadVersion", "description": "Create or start a pending upload of a dataset for a specific version.", "parameters": [ { @@ -1013,14 +1013,6 @@ "required": false, "type": "string" }, - { - "name": "includeConnectedModels", - "in": "query", - "description": "Flag to include models from connections in response.", - "required": false, - "type": "boolean", - "x-ms-client-name": "includeConnectionModels" - }, { "$ref": "#/parameters/Azure.Core.TopQueryParameter" }, @@ -9708,6 +9700,48 @@ } }, "AssistantsApiResponseFormatOption": {}, + "AuthenticationType": { + "type": "string", + "description": "The authentication type used by the connection", + "enum": [ + "ApiKey", + "AAD", + "SAS", + "CustomKeys", + "None" + ], + "x-ms-enum": { + "name": "AuthenticationType", + "modelAsString": true, + "values": [ + { + "name": "apiKey", + "value": "ApiKey", + "description": "API Key authentication" + }, + { + "name": "entraId", + "value": "AAD", + "description": "Entra ID authentication (formerly known as AAD)" + }, + { + "name": "SAS", + "value": "SAS", + "description": "Shared Access Signature (SAS) authentication" + }, + { + "name": "custom", + "value": "CustomKeys", + "description": "Custom authentication" + }, + { + "name": "None", + "value": "None", + "description": "No authentication" + } + ] + } + }, "Azure.Core.Foundations.Error": { "type": "object", "description": "The error object.", @@ -9850,6 +9884,10 @@ "description": "The connection URL to be used for this service", "readOnly": true }, + "authType": { + "$ref": "#/definitions/AuthenticationType", + "description": "The authentication type used by the connection" + }, "metadata": { "type": "object", "description": "Metadata of the connection", @@ -9862,6 +9900,7 @@ "name", "type", "target", + "authType", "metadata" ] }, From 6aa7a83547387421c2077b82b807730d32297bc8 Mon Sep 17 00:00:00 2001 From: Kayla Seager Date: Fri, 28 Mar 2025 17:45:00 -0700 Subject: [PATCH 083/143] Azure ai projects eval result asset (#33544) * upload API for remote evals * switch to dictionary of outputs * clean-ups * all evaluations will have some output structure * switch to a separate input dto * modeling where we change the input types for create/upload to unify on return types * make optional * remove upload * parity with service changes * align with the rest of assests: note that startpendinguploadincrement is not supported * fix evaluations * realign eval routes * Remove 'outputs' property from JSON schema * Neehars comments * add route * compile errors --- .../evaluation-results/models.tsp | 62 +++++++++++++++++++ .../evaluation-results/routes.tsp | 45 ++++++++++++++ .../Azure.AI.Projects/evaluations/models.tsp | 4 ++ specification/ai/Azure.AI.Projects/main.tsp | 1 + 4 files changed, 112 insertions(+) create mode 100644 specification/ai/Azure.AI.Projects/evaluation-results/models.tsp create mode 100644 specification/ai/Azure.AI.Projects/evaluation-results/routes.tsp diff --git a/specification/ai/Azure.AI.Projects/evaluation-results/models.tsp b/specification/ai/Azure.AI.Projects/evaluation-results/models.tsp new file mode 100644 index 000000000000..c02c3d74cc70 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/evaluation-results/models.tsp @@ -0,0 +1,62 @@ +import "@typespec/rest"; +import "@azure-tools/typespec-autorest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "../common/models.tsp"; +import "../main.tsp"; + +using TypeSpec.OpenAPI; +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.Core.Traits; + +namespace Azure.AI.Projects; + +@doc("Evaluation Result resource Definition") +@Rest.resource("evaluationResult") +model EvaluationResult { + @doc("Type of Evaluation result") + ResultType?: ResultType; + + @doc("Model Name") + ModelName?: string; + + @doc("Model Version") + ModelVersion?: string; + + @doc("Model Asset ID") + ModelAssetId?: string; + + @doc("Dataset Family") + DatasetFamily?: string; + + @doc("Dataset Name") + DatasetName?: string; + + @doc("Metrics") + Metrics?: Record; + + @doc("Blob URI") + BlobUri?: string; + + ...AssetBase; +} + +@doc("Type of Evaluation result") +union ResultType { + string, + + @doc("Benchmark result") + Benchmark: "Benchmark"; + + @doc("Evaluations Result") + Evaluation: "Evaluation"; + + @doc("Red Team Result") + Redteam: "Redteam"; + + @doc("Simulation Result") + Simulation: "Simulation"; +} diff --git a/specification/ai/Azure.AI.Projects/evaluation-results/routes.tsp b/specification/ai/Azure.AI.Projects/evaluation-results/routes.tsp new file mode 100644 index 000000000000..8b1a99de9de7 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/evaluation-results/routes.tsp @@ -0,0 +1,45 @@ +import "@typespec/http"; +import "@typespec/rest"; +import "@azure-tools/typespec-autorest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "../common/models.tsp"; +import "./models.tsp"; +import "../servicepatterns.tsp"; + +using TypeSpec.Http; + +namespace Azure.AI.Projects; + +alias ListEvaluationResultsParameters = { + @doc("Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned") + @query + top?: int32; + + @doc("Continuation token for pagination.") + @query + skip?: string; + + @doc("Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2") + @query + tags?: string; + + @doc("[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.") + @query + listViewType?: ListViewType; +}; + +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "We are using service specific operation templates" +interface EvaluationResults + extends ServicePatterns.VersionedOperations< + EvaluationResult, + ListEvaluationResultsParameters, + ListEvaluationResultsParameters + > { + @doc("Create or start a pending upload of a evaluation results for a specific version.") + startPendingUpload is ServicePatterns.VersionedResourceAction< + EvaluationResult, + PendingUploadRequest, + PendingUploadResponse + >; +} \ No newline at end of file diff --git a/specification/ai/Azure.AI.Projects/evaluations/models.tsp b/specification/ai/Azure.AI.Projects/evaluations/models.tsp index 62279bbf7c01..d7810d061f9a 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/models.tsp @@ -68,4 +68,8 @@ model Evaluation { @doc("Evaluators to be used for the evaluation.") evaluators: Record; + + @doc("Read-only result outputs. Example: { 'evaluationResultId': 'azureai://accounts/{AccountName}/projects/{myproject}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{myproject}/datasets/{dataset-name}/{dataset-version}' }") + @visibility(Lifecycle.Read) + outputs: Record; } diff --git a/specification/ai/Azure.AI.Projects/main.tsp b/specification/ai/Azure.AI.Projects/main.tsp index d6219ed9c012..2b951f51876c 100644 --- a/specification/ai/Azure.AI.Projects/main.tsp +++ b/specification/ai/Azure.AI.Projects/main.tsp @@ -18,6 +18,7 @@ import "./evaluations/routes.tsp"; import "./datasets/routes.tsp"; import "./indexes/routes.tsp"; import "./deployments/routes.tsp"; +import "./evaluation-results/routes.tsp"; using TypeSpec.Http; using TypeSpec.Versioning; From a2cf44d885881e99850cbdb0d86b817c5489def2 Mon Sep 17 00:00:00 2001 From: Kayla Seager Date: Fri, 28 Mar 2025 18:07:54 -0700 Subject: [PATCH 084/143] [Eval Service Team] Red Team Cloud 1DP (#33287) * init red teams for 1dp * edits after review meeting * clean-ups * make outputs read-only * clean-ups * review comments * want to align with evaluations * add route to main * compile errors * json --- specification/ai/Azure.AI.Projects/main.tsp | 1 + .../ai/Azure.AI.Projects/red-teams/client.tsp | 3 + .../ai/Azure.AI.Projects/red-teams/models.tsp | 115 ++ .../ai/Azure.AI.Projects/red-teams/routes.tsp | 45 + .../azure-ai-projects-1dp.json | 1012 ++++++++++++++++- 5 files changed, 1157 insertions(+), 19 deletions(-) create mode 100644 specification/ai/Azure.AI.Projects/red-teams/client.tsp create mode 100644 specification/ai/Azure.AI.Projects/red-teams/models.tsp create mode 100644 specification/ai/Azure.AI.Projects/red-teams/routes.tsp diff --git a/specification/ai/Azure.AI.Projects/main.tsp b/specification/ai/Azure.AI.Projects/main.tsp index 2b951f51876c..b3072f6bbd5e 100644 --- a/specification/ai/Azure.AI.Projects/main.tsp +++ b/specification/ai/Azure.AI.Projects/main.tsp @@ -19,6 +19,7 @@ import "./datasets/routes.tsp"; import "./indexes/routes.tsp"; import "./deployments/routes.tsp"; import "./evaluation-results/routes.tsp"; +import "./red-teams/routes.tsp"; using TypeSpec.Http; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/red-teams/client.tsp b/specification/ai/Azure.AI.Projects/red-teams/client.tsp new file mode 100644 index 000000000000..3ab2f4305518 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/red-teams/client.tsp @@ -0,0 +1,3 @@ +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; diff --git a/specification/ai/Azure.AI.Projects/red-teams/models.tsp b/specification/ai/Azure.AI.Projects/red-teams/models.tsp new file mode 100644 index 000000000000..262ed4cc3b89 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/red-teams/models.tsp @@ -0,0 +1,115 @@ +import "@typespec/http"; +import "@typespec/rest"; +import "@azure-tools/typespec-autorest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@typespec/openapi"; +import "../common/models.tsp"; + +using TypeSpec.OpenAPI; +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.Core.Traits; + +namespace Azure.AI.Projects; + +@doc("Strategies for attacks.") +union AttackStrategy { + string, + + @doc("Represents a default set of easy complexity attacks. Easy complexity attack strategies are defined as attacks that do not require any Large Language Model to convert or orchestrate.") + Easy: "easy", + + @doc("Represents ASCII art, a graphic design technique that uses printable characters.") + AsciiArt: "ascii_art", + + @doc("Represents ASCII smuggling, a technique for encoding or hiding data.") + AsciiSmuggler: "ascii_smuggler", + + @doc("Represents the Atbash cipher, a substitution cipher that reverses the alphabet.") + Atbash: "atbash", + + @doc("Represents Base64 encoding, a method for encoding binary data as text.") + Base64: "base64", + + @doc("Represents binary encoding, a representation of data in binary format.") + Binary: "binary", + + @doc("Represents the Caesar cipher, a substitution cipher that shifts characters.") + Caesar: "caesar", + + @doc("Represents character space manipulation, a technique involving spacing between characters.") + CharacterSpace: "character_space", + + @doc("Represents character swapping, a technique for rearranging characters in text.") + Jailbreak: "jailbreak", +} + +@doc("Risk category for the attack objective.") +union RiskCategory { + string, + @doc("Represents content related to hate or unfairness.") + HateUnfairness: "HateUnfairness", + + @doc("Represents content related to violence.") + Violence: "Violence", + + @doc("Represents content of a sexual nature.") + Sexual: "Sexual", + + @doc("Represents content related to self-harm.") + SelfHarm: "SelfHarm", + + @doc("Represents content involving protected material.") + ProtectedMaterial: "ProtectedMaterial", + + @doc("Represents content related to code vulnerabilities.") + CodeVulnerability: "CodeVulnerability", + + @doc("Represents content with ungrounded attributes.") + UngroundedAttributes: "UngroundedAttributes" +} + + +@doc("Red team details.") +@resource("runs") +model RedTeam { + @doc("Identifier of the red team.") + @key("name") + @visibility(Lifecycle.Read) + id: string; + + @doc("Name of the red-team scan.") + scanName: string; + + @doc("Number of simulation rounds.") + numTurns: int32; + + @doc("List of attack strategies or nested lists of attack strategies.") + attackStrategy: AttackStrategy[]; + + @doc("Simulation-only or Simulation + Evaluation. Default false, if true the scan outputs conversation not evaluation result.") + simulationOnly: boolean; + + @doc("Read-only result outputs. Example: { 'redTeamResultId': 'azureai://accounts/{AccountName}/projects/{myproject}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{myproject}/datasets/{dataset-name}/{dataset-version}' }") + @visibility(Lifecycle.Read) + outputs: Record; + + @doc("List of risk categories to generate attack objectives for.") + riskCategories: RiskCategory[]; + + @doc("Application scenario for the red team operation, to generate scenario specific attacks.") + applicationScenario?: string; + + @doc("Red team's tags. Unlike properties, tags are fully mutable.") + tags?: Record; + + @doc("Red team's properties. Unlike tags, properties are add-only. Once added, a property cannot be removed.") + properties?: Record; + + @doc("Status of the red-team. It is set by service and is read-only.") + @visibility(Lifecycle.Read) + status?: string; +} diff --git a/specification/ai/Azure.AI.Projects/red-teams/routes.tsp b/specification/ai/Azure.AI.Projects/red-teams/routes.tsp new file mode 100644 index 000000000000..54a0834bc748 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/red-teams/routes.tsp @@ -0,0 +1,45 @@ +import "@typespec/rest"; +import "@azure-tools/typespec-autorest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "./models.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.Core.Traits; +using Azure.Core.Foundations; + +namespace Azure.AI.Projects; + +alias RedTeamServiceTraits = SupportsClientRequestId & + NoRepeatableRequests & + NoConditionalRequests; // NoRetryRequests supresses @azure-tools/typespec-azure-core/conditional-requests-trait-missing + +alias RedTeamOperations = Azure.Core.ResourceOperations; + +@route("red-teams") +interface RedTeams { + @doc("Get a redteam by name.") + get is RedTeamOperations.ResourceRead; + + @doc("List a redteam by name.") + list is RedTeamOperations.ResourceList< + RedTeam, + ListQueryParametersTrait + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("Creates a redteam run.") + @route("runs:run") + @post + createRun is Azure.Core.Foundations.Operation< + { + @doc("Redteam to be run") + @body + RedTeam: RedTeam; + }, + RedTeam + >; +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json index e30fccd15274..16c17db149ee 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json @@ -1106,6 +1106,473 @@ } } }, + "/evaluationResult": { + "get": { + "operationId": "EvaluationResults_ListLatest", + "description": "List the latest version of each EvaluationResult", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "top", + "in": "query", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "skip", + "in": "query", + "description": "Continuation token for pagination.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", + "required": false, + "type": "string" + }, + { + "name": "listViewType", + "in": "query", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedEvaluationResult" + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/evaluationResult/{name}/versions": { + "get": { + "operationId": "EvaluationResults_ListVersions", + "description": "List all versions of the given EvaluationResult", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "top", + "in": "query", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "skip", + "in": "query", + "description": "Continuation token for pagination.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", + "required": false, + "type": "string" + }, + { + "name": "listViewType", + "in": "query", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedEvaluationResult" + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + }, + "post": { + "operationId": "EvaluationResults_Create", + "description": "Create a new EvaluationResult. The version id will be generated by the service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the EvaluationResult to create", + "required": true, + "schema": { + "$ref": "#/definitions/EvaluationResult" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/EvaluationResult" + }, + "headers": { + "Repeatability-Result": { + "type": "string", + "description": "Indicates whether the repeatable request was accepted or rejected.", + "enum": [ + "accepted", + "rejected" + ], + "x-ms-enum": { + "name": "RepeatabilityResult", + "modelAsString": false, + "values": [ + { + "name": "accepted", + "value": "accepted", + "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." + }, + { + "name": "rejected", + "value": "rejected", + "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/evaluationResult/{name}/versions/{version}": { + "get": { + "operationId": "EvaluationResults_GetVersion", + "description": "Get the specific version of the EvaluationResult", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the EvaluationResult to retrieve.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/EvaluationResult" + } + }, + "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." + } + } + } + } + }, + "put": { + "operationId": "EvaluationResults_CreateVersion", + "description": "Create a new or replace an existing EvaluationResult with the given version id", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the EvaluationResult to create or replace.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the EvaluationResult to create", + "required": true, + "schema": { + "$ref": "#/definitions/EvaluationResult" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/EvaluationResult" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/EvaluationResult" + } + }, + "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." + } + } + } + } + }, + "delete": { + "operationId": "EvaluationResults_DeleteVersion", + "description": "Delete the specific version of the EvaluationResult", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The version of the EvaluationResult to delete.", + "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." + } + } + } + } + } + }, + "/evaluationResult/{name}/versions/{version}/startPendingUpload": { + "post": { + "operationId": "EvaluationResults_StartPendingUpload", + "description": "Create or start a pending upload of a evaluation results for a specific version.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the EvaluationResult to operate on.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "Parameters for the action", + "required": true, + "schema": { + "$ref": "#/definitions/PendingUploadRequest" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PendingUploadResponse" + } + }, + "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." + } + } + } + } + } + }, "/evaluations/runs": { "get": { "operationId": "Evaluations_List", @@ -1907,7 +2374,148 @@ "201": { "description": "The request has succeeded and a new resource has been created as a result.", "schema": { - "$ref": "#/definitions/Index" + "$ref": "#/definitions/Index" + } + }, + "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." + } + } + } + } + }, + "delete": { + "operationId": "Indexes_DeleteVersion", + "description": "Delete the specific version of the Index", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The version of the Index to delete.", + "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." + } + } + } + } + } + }, + "/red-teams/runs": { + "get": { + "operationId": "RedTeams_List", + "description": "List a redteam by name.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.TopQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.SkipQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedRedTeam" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/red-teams/runs/{name}": { + "get": { + "operationId": "RedTeams_Get", + "description": "Get a redteam by name.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "Identifier of the red team.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/RedTeam" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } } }, "default": { @@ -1923,32 +2531,32 @@ } } } - }, - "delete": { - "operationId": "Indexes_DeleteVersion", - "description": "Delete the specific version of the Index", + } + }, + "/red-teams/runs:run": { + "post": { + "operationId": "RedTeams_CreateRun", + "description": "Creates a redteam run.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The version of the Index to delete.", + "name": "RedTeam", + "in": "body", + "description": "Redteam to be run", "required": true, - "type": "string" + "schema": { + "$ref": "#/definitions/RedTeam" + } } ], "responses": { - "204": { - "description": "There is no content to send for this request, but the headers may be useful." + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/RedTeam" + } }, "default": { "description": "An unexpected error response.", @@ -9700,6 +10308,72 @@ } }, "AssistantsApiResponseFormatOption": {}, + "AttackStrategy": { + "type": "string", + "description": "Strategies for attacks.", + "enum": [ + "easy", + "ascii_art", + "ascii_smuggler", + "atbash", + "base64", + "binary", + "caesar", + "character_space", + "jailbreak" + ], + "x-ms-enum": { + "name": "AttackStrategy", + "modelAsString": true, + "values": [ + { + "name": "Easy", + "value": "easy", + "description": "Represents a default set of easy complexity attacks. Easy complexity attack strategies are defined as attacks that do not require any Large Language Model to convert or orchestrate." + }, + { + "name": "AsciiArt", + "value": "ascii_art", + "description": "Represents ASCII art, a graphic design technique that uses printable characters." + }, + { + "name": "AsciiSmuggler", + "value": "ascii_smuggler", + "description": "Represents ASCII smuggling, a technique for encoding or hiding data." + }, + { + "name": "Atbash", + "value": "atbash", + "description": "Represents the Atbash cipher, a substitution cipher that reverses the alphabet." + }, + { + "name": "Base64", + "value": "base64", + "description": "Represents Base64 encoding, a method for encoding binary data as text." + }, + { + "name": "Binary", + "value": "binary", + "description": "Represents binary encoding, a representation of data in binary format." + }, + { + "name": "Caesar", + "value": "caesar", + "description": "Represents the Caesar cipher, a substitution cipher that shifts characters." + }, + { + "name": "CharacterSpace", + "value": "character_space", + "description": "Represents character space manipulation, a technique involving spacing between characters." + }, + { + "name": "Jailbreak", + "value": "jailbreak", + "description": "Represents character swapping, a technique for rearranging characters in text." + } + ] + } + }, "AuthenticationType": { "type": "string", "description": "The authentication type used by the connection", @@ -10231,12 +10905,102 @@ "additionalProperties": { "$ref": "#/definitions/EvaluatorConfiguration" } + }, + "outputs": { + "type": "object", + "description": "Read-only result outputs. Example: { 'evaluationResultId': 'azureai://accounts/{AccountName}/projects/{myproject}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{myproject}/datasets/{dataset-name}/{dataset-version}' }", + "additionalProperties": { + "type": "string" + }, + "readOnly": true } }, "required": [ "id", "data", - "evaluators" + "evaluators", + "outputs" + ] + }, + "EvaluationResult": { + "type": "object", + "description": "Evaluation Result resource Definition", + "properties": { + "ResultType": { + "$ref": "#/definitions/ResultType", + "description": "Type of Evaluation result" + }, + "ModelName": { + "type": "string", + "description": "Model Name" + }, + "ModelVersion": { + "type": "string", + "description": "Model Version" + }, + "ModelAssetId": { + "type": "string", + "description": "Model Asset ID" + }, + "DatasetFamily": { + "type": "string", + "description": "Dataset Family" + }, + "DatasetName": { + "type": "string", + "description": "Dataset Name" + }, + "Metrics": { + "type": "object", + "description": "Metrics", + "additionalProperties": { + "format": "double", + "type": "number" + } + }, + "BlobUri": { + "type": "string", + "description": "Blob URI" + }, + "stage": { + "type": "string", + "description": "Asset stage", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "id": { + "type": "string", + "description": "A unique identifier for the asset, assetId probably?", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "version": { + "type": "string", + "description": "The version of the resource", + "readOnly": true + }, + "description": { + "type": "string", + "description": "The asset description text." + }, + "tags": { + "type": "object", + "description": "Tag dictionary. Tags can be added, removed, and updated.", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "name", + "version" ] }, "EvaluatorConfiguration": { @@ -10712,6 +11476,27 @@ "value" ] }, + "PagedEvaluationResult": { + "type": "object", + "description": "Paged collection of EvaluationResult items", + "properties": { + "value": { + "type": "array", + "description": "The EvaluationResult items on this page", + "items": { + "$ref": "#/definitions/EvaluationResult" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, "PagedIndex": { "type": "object", "description": "Paged collection of Index items", @@ -10733,6 +11518,27 @@ "value" ] }, + "PagedRedTeam": { + "type": "object", + "description": "Paged collection of RedTeam items", + "properties": { + "value": { + "type": "array", + "description": "The RedTeam items on this page", + "items": { + "$ref": "#/definitions/RedTeam" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, "PendingUploadCredentialType": { "type": "string", "description": "The type of credential used to access the storage account.", @@ -10835,6 +11641,84 @@ ] } }, + "RedTeam": { + "type": "object", + "description": "Red team details.", + "properties": { + "id": { + "type": "string", + "description": "Identifier of the red team.", + "readOnly": true + }, + "scanName": { + "type": "string", + "description": "Name of the red-team scan." + }, + "numTurns": { + "type": "integer", + "format": "int32", + "description": "Number of simulation rounds." + }, + "attackStrategy": { + "type": "array", + "description": "List of attack strategies or nested lists of attack strategies.", + "items": { + "$ref": "#/definitions/AttackStrategy" + } + }, + "simulationOnly": { + "type": "boolean", + "description": "Simulation-only or Simulation + Evaluation. Default false, if true the scan outputs conversation not evaluation result." + }, + "outputs": { + "type": "object", + "description": "Read-only result outputs. Example: { 'redTeamResultId': 'azureai://accounts/{AccountName}/projects/{myproject}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{myproject}/datasets/{dataset-name}/{dataset-version}' }", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + }, + "riskCategories": { + "type": "array", + "description": "List of risk categories to generate attack objectives for.", + "items": { + "$ref": "#/definitions/RiskCategory" + } + }, + "applicationScenario": { + "type": "string", + "description": "Application scenario for the red team operation, to generate scenario specific attacks." + }, + "tags": { + "type": "object", + "description": "Red team's tags. Unlike properties, tags are fully mutable.", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "type": "object", + "description": "Red team's properties. Unlike tags, properties are add-only. Once added, a property cannot be removed.", + "additionalProperties": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the red-team. It is set by service and is read-only.", + "readOnly": true + } + }, + "required": [ + "id", + "scanName", + "numTurns", + "attackStrategy", + "simulationOnly", + "outputs", + "riskCategories" + ] + }, "ReferenceType": { "type": "string", "description": "Enum to determine which reference method to use for an asset.", @@ -10865,6 +11749,96 @@ ] } }, + "ResultType": { + "type": "string", + "description": "Type of Evaluation result", + "enum": [ + "Benchmark", + "Evaluation", + "Redteam", + "Simulation" + ], + "x-ms-enum": { + "name": "ResultType", + "modelAsString": true, + "values": [ + { + "name": "Benchmark", + "value": "Benchmark", + "description": "Benchmark result" + }, + { + "name": "Evaluation", + "value": "Evaluation", + "description": "Evaluations Result" + }, + { + "name": "Redteam", + "value": "Redteam", + "description": "Red Team Result" + }, + { + "name": "Simulation", + "value": "Simulation", + "description": "Simulation Result" + } + ] + } + }, + "RiskCategory": { + "type": "string", + "description": "Risk category for the attack objective.", + "enum": [ + "HateUnfairness", + "Violence", + "Sexual", + "SelfHarm", + "ProtectedMaterial", + "CodeVulnerability", + "UngroundedAttributes" + ], + "x-ms-enum": { + "name": "RiskCategory", + "modelAsString": true, + "values": [ + { + "name": "HateUnfairness", + "value": "HateUnfairness", + "description": "Represents content related to hate or unfairness." + }, + { + "name": "Violence", + "value": "Violence", + "description": "Represents content related to violence." + }, + { + "name": "Sexual", + "value": "Sexual", + "description": "Represents content of a sexual nature." + }, + { + "name": "SelfHarm", + "value": "SelfHarm", + "description": "Represents content related to self-harm." + }, + { + "name": "ProtectedMaterial", + "value": "ProtectedMaterial", + "description": "Represents content involving protected material." + }, + { + "name": "CodeVulnerability", + "value": "CodeVulnerability", + "description": "Represents content related to code vulnerabilities." + }, + { + "name": "UngroundedAttributes", + "value": "UngroundedAttributes", + "description": "Represents content with ungrounded attributes." + } + ] + } + }, "SasCredential": { "type": "object", "description": "SAS Credential definition", From fb20a8ac093b18494b6055c52ad09e81cba20b4c Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Mon, 31 Mar 2025 15:36:16 -0400 Subject: [PATCH 085/143] Remove credentials folder and fix some route names (#33587) Co-authored-by: Neehar Duvvuri --- .../ai/Azure.AI.Projects/common/models.tsp | 12 +- .../Azure.AI.Projects/connections/models.tsp | 3 +- .../Azure.AI.Projects/credentials/models.tsp | 50 -------- .../evaluation-results/models.tsp | 10 +- .../evaluation-results/routes.tsp | 2 +- .../ai/Azure.AI.Projects/red-teams/models.tsp | 94 +++++++------- .../ai/Azure.AI.Projects/red-teams/routes.tsp | 2 +- .../azure-ai-projects-1dp.json | 118 ++++-------------- 8 files changed, 94 insertions(+), 197 deletions(-) delete mode 100644 specification/ai/Azure.AI.Projects/credentials/models.tsp diff --git a/specification/ai/Azure.AI.Projects/common/models.tsp b/specification/ai/Azure.AI.Projects/common/models.tsp index c432a27cfe6a..95d6ed924801 100644 --- a/specification/ai/Azure.AI.Projects/common/models.tsp +++ b/specification/ai/Azure.AI.Projects/common/models.tsp @@ -2,7 +2,6 @@ import "@typespec/rest"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; import "@azure-tools/typespec-azure-resource-manager"; -import "../credentials/models.tsp"; using TypeSpec.Http; @@ -308,6 +307,17 @@ model PendingUploadResponse { pendingUploadType: PendingUploadType.temporaryBlobReference; } +@doc("SAS Credential definition") +model SasCredential { + @doc("SAS uri") + @visibility(Lifecycle.Read) + sasUri: string; + + @visibility(Lifecycle.Read) + @doc("Type of credential") + type: "SAS"; +} + @doc("Represents a reference to a blob for consumption") model BlobReferenceForConsumption { @doc("Blob URI path for client to upload data. Example: https://blob.windows.core.net/Container/Path") diff --git a/specification/ai/Azure.AI.Projects/connections/models.tsp b/specification/ai/Azure.AI.Projects/connections/models.tsp index d2119b8dbea0..2965a0018d47 100644 --- a/specification/ai/Azure.AI.Projects/connections/models.tsp +++ b/specification/ai/Azure.AI.Projects/connections/models.tsp @@ -4,7 +4,6 @@ import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; import "@typespec/openapi"; import "@typespec/versioning"; -import "../credentials/models.tsp"; using TypeSpec.Rest; @@ -27,9 +26,11 @@ model Connection { target: string; @doc("The authentication type used by the connection") + @visibility(Lifecycle.Read) authType: AuthenticationType; @doc("Metadata of the connection") + @visibility(Lifecycle.Read) metadata: Record; } diff --git a/specification/ai/Azure.AI.Projects/credentials/models.tsp b/specification/ai/Azure.AI.Projects/credentials/models.tsp deleted file mode 100644 index 69c8f8d8c056..000000000000 --- a/specification/ai/Azure.AI.Projects/credentials/models.tsp +++ /dev/null @@ -1,50 +0,0 @@ -import "@typespec/rest"; -import "@azure-tools/typespec-autorest"; -import "@typespec/versioning"; -import "@azure-tools/typespec-azure-core"; -import "@typespec/openapi"; - -namespace Azure.AI.Projects; - -@doc("The different Credential types") -union CredentialType { - string, - ApiKey: "ApiKey", - AAD: "AAD", - SAS: "SAS", -} - -@doc("Base Credential definition") -@discriminator("type") -model BaseCredential { - @doc("Type of credential. Possible values are: AAD, SAS, ApiKey") - @visibility(Lifecycle.Read) - type: CredentialType; -} - -@doc("ApiKey Credential definition") -model ApiKeyCredential extends BaseCredential { - @doc("API Key") - @visibility(Lifecycle.Read) - apiKey: string; - - @visibility(Lifecycle.Read) - type: CredentialType.ApiKey; -} - -@doc("AAD Credential definition") -model AadCredential extends BaseCredential { - // No properties need to be stored for this case - @visibility(Lifecycle.Read) - type: CredentialType.AAD; -} - -@doc("SAS Credential definition") -model SasCredential extends BaseCredential { - @doc("SAS Token") - @visibility(Lifecycle.Read) - sasToken: string; - - @visibility(Lifecycle.Read) - type: CredentialType.SAS; -} diff --git a/specification/ai/Azure.AI.Projects/evaluation-results/models.tsp b/specification/ai/Azure.AI.Projects/evaluation-results/models.tsp index c02c3d74cc70..1fd90b10ca87 100644 --- a/specification/ai/Azure.AI.Projects/evaluation-results/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluation-results/models.tsp @@ -15,7 +15,7 @@ using Azure.Core.Traits; namespace Azure.AI.Projects; @doc("Evaluation Result resource Definition") -@Rest.resource("evaluationResult") +@Rest.resource("evaluationResults") model EvaluationResult { @doc("Type of Evaluation result") ResultType?: ResultType; @@ -49,14 +49,14 @@ union ResultType { string, @doc("Benchmark result") - Benchmark: "Benchmark"; + Benchmark: "Benchmark", @doc("Evaluations Result") - Evaluation: "Evaluation"; + Evaluation: "Evaluation", @doc("Red Team Result") - Redteam: "Redteam"; + Redteam: "Redteam", @doc("Simulation Result") - Simulation: "Simulation"; + Simulation: "Simulation", } diff --git a/specification/ai/Azure.AI.Projects/evaluation-results/routes.tsp b/specification/ai/Azure.AI.Projects/evaluation-results/routes.tsp index 8b1a99de9de7..f20385bf34ff 100644 --- a/specification/ai/Azure.AI.Projects/evaluation-results/routes.tsp +++ b/specification/ai/Azure.AI.Projects/evaluation-results/routes.tsp @@ -42,4 +42,4 @@ interface EvaluationResults PendingUploadRequest, PendingUploadResponse >; -} \ No newline at end of file +} diff --git a/specification/ai/Azure.AI.Projects/red-teams/models.tsp b/specification/ai/Azure.AI.Projects/red-teams/models.tsp index 262ed4cc3b89..19b57119aec0 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/models.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/models.tsp @@ -17,39 +17,40 @@ namespace Azure.AI.Projects; @doc("Strategies for attacks.") union AttackStrategy { - string, + string, - @doc("Represents a default set of easy complexity attacks. Easy complexity attack strategies are defined as attacks that do not require any Large Language Model to convert or orchestrate.") - Easy: "easy", + @doc("Represents a default set of easy complexity attacks. Easy complexity attack strategies are defined as attacks that do not require any Large Language Model to convert or orchestrate.") + Easy: "easy", - @doc("Represents ASCII art, a graphic design technique that uses printable characters.") - AsciiArt: "ascii_art", + @doc("Represents ASCII art, a graphic design technique that uses printable characters.") + AsciiArt: "ascii_art", - @doc("Represents ASCII smuggling, a technique for encoding or hiding data.") - AsciiSmuggler: "ascii_smuggler", + @doc("Represents ASCII smuggling, a technique for encoding or hiding data.") + AsciiSmuggler: "ascii_smuggler", - @doc("Represents the Atbash cipher, a substitution cipher that reverses the alphabet.") - Atbash: "atbash", + @doc("Represents the Atbash cipher, a substitution cipher that reverses the alphabet.") + Atbash: "atbash", - @doc("Represents Base64 encoding, a method for encoding binary data as text.") - Base64: "base64", + @doc("Represents Base64 encoding, a method for encoding binary data as text.") + Base64: "base64", - @doc("Represents binary encoding, a representation of data in binary format.") - Binary: "binary", + @doc("Represents binary encoding, a representation of data in binary format.") + Binary: "binary", - @doc("Represents the Caesar cipher, a substitution cipher that shifts characters.") - Caesar: "caesar", + @doc("Represents the Caesar cipher, a substitution cipher that shifts characters.") + Caesar: "caesar", - @doc("Represents character space manipulation, a technique involving spacing between characters.") - CharacterSpace: "character_space", + @doc("Represents character space manipulation, a technique involving spacing between characters.") + CharacterSpace: "character_space", - @doc("Represents character swapping, a technique for rearranging characters in text.") - Jailbreak: "jailbreak", + @doc("Represents character swapping, a technique for rearranging characters in text.") + Jailbreak: "jailbreak", } @doc("Risk category for the attack objective.") union RiskCategory { string, + @doc("Represents content related to hate or unfairness.") HateUnfairness: "HateUnfairness", @@ -69,47 +70,46 @@ union RiskCategory { CodeVulnerability: "CodeVulnerability", @doc("Represents content with ungrounded attributes.") - UngroundedAttributes: "UngroundedAttributes" + UngroundedAttributes: "UngroundedAttributes", } - @doc("Red team details.") @resource("runs") model RedTeam { - @doc("Identifier of the red team.") - @key("name") - @visibility(Lifecycle.Read) - id: string; + @doc("Identifier of the red team.") + @key("name") + @visibility(Lifecycle.Read) + id: string; - @doc("Name of the red-team scan.") - scanName: string; + @doc("Name of the red-team scan.") + scanName: string; - @doc("Number of simulation rounds.") - numTurns: int32; + @doc("Number of simulation rounds.") + numTurns: int32; - @doc("List of attack strategies or nested lists of attack strategies.") - attackStrategy: AttackStrategy[]; + @doc("List of attack strategies or nested lists of attack strategies.") + attackStrategy: AttackStrategy[]; - @doc("Simulation-only or Simulation + Evaluation. Default false, if true the scan outputs conversation not evaluation result.") - simulationOnly: boolean; + @doc("Simulation-only or Simulation + Evaluation. Default false, if true the scan outputs conversation not evaluation result.") + simulationOnly: boolean; - @doc("Read-only result outputs. Example: { 'redTeamResultId': 'azureai://accounts/{AccountName}/projects/{myproject}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{myproject}/datasets/{dataset-name}/{dataset-version}' }") - @visibility(Lifecycle.Read) - outputs: Record; + @doc("Read-only result outputs. Example: { 'redTeamResultId': 'azureai://accounts/{AccountName}/projects/{myproject}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{myproject}/datasets/{dataset-name}/{dataset-version}' }") + @visibility(Lifecycle.Read) + outputs: Record; - @doc("List of risk categories to generate attack objectives for.") - riskCategories: RiskCategory[]; + @doc("List of risk categories to generate attack objectives for.") + riskCategories: RiskCategory[]; - @doc("Application scenario for the red team operation, to generate scenario specific attacks.") - applicationScenario?: string; + @doc("Application scenario for the red team operation, to generate scenario specific attacks.") + applicationScenario?: string; - @doc("Red team's tags. Unlike properties, tags are fully mutable.") - tags?: Record; + @doc("Red team's tags. Unlike properties, tags are fully mutable.") + tags?: Record; - @doc("Red team's properties. Unlike tags, properties are add-only. Once added, a property cannot be removed.") - properties?: Record; + @doc("Red team's properties. Unlike tags, properties are add-only. Once added, a property cannot be removed.") + properties?: Record; - @doc("Status of the red-team. It is set by service and is read-only.") - @visibility(Lifecycle.Read) - status?: string; + @doc("Status of the red-team. It is set by service and is read-only.") + @visibility(Lifecycle.Read) + status?: string; } diff --git a/specification/ai/Azure.AI.Projects/red-teams/routes.tsp b/specification/ai/Azure.AI.Projects/red-teams/routes.tsp index 54a0834bc748..b3d9c62a3824 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/routes.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/routes.tsp @@ -19,7 +19,7 @@ alias RedTeamServiceTraits = SupportsClientRequestId & alias RedTeamOperations = Azure.Core.ResourceOperations; -@route("red-teams") +@route("redTeams") interface RedTeams { @doc("Get a redteam by name.") get is RedTeamOperations.ResourceRead; diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json index 16c17db149ee..597f676bff4e 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json @@ -1106,7 +1106,7 @@ } } }, - "/evaluationResult": { + "/evaluationResults": { "get": { "operationId": "EvaluationResults_ListLatest", "description": "List the latest version of each EvaluationResult", @@ -1195,7 +1195,7 @@ } } }, - "/evaluationResult/{name}/versions": { + "/evaluationResults/{name}/versions": { "get": { "operationId": "EvaluationResults_ListVersions", "description": "List all versions of the given EvaluationResult", @@ -1376,7 +1376,7 @@ } } }, - "/evaluationResult/{name}/versions/{version}": { + "/evaluationResults/{name}/versions/{version}": { "get": { "operationId": "EvaluationResults_GetVersion", "description": "Get the specific version of the EvaluationResult", @@ -1519,7 +1519,7 @@ } } }, - "/evaluationResult/{name}/versions/{version}/startPendingUpload": { + "/evaluationResults/{name}/versions/{version}/startPendingUpload": { "post": { "operationId": "EvaluationResults_StartPendingUpload", "description": "Create or start a pending upload of a evaluation results for a specific version.", @@ -2432,7 +2432,7 @@ } } }, - "/red-teams/runs": { + "/redTeams/runs": { "get": { "operationId": "RedTeams_List", "description": "List a redteam by name.", @@ -2485,7 +2485,7 @@ } } }, - "/red-teams/runs/{name}": { + "/redTeams/runs/{name}": { "get": { "operationId": "RedTeams_Get", "description": "Get a redteam by name.", @@ -2533,7 +2533,7 @@ } } }, - "/red-teams/runs:run": { + "/redTeams/runs:run": { "post": { "operationId": "RedTeams_CreateRun", "description": "Creates a redteam run.", @@ -4660,36 +4660,6 @@ } }, "definitions": { - "AadCredential": { - "type": "object", - "description": "AAD Credential definition", - "allOf": [ - { - "$ref": "#/definitions/BaseCredential" - } - ], - "x-ms-discriminator-value": "AAD" - }, - "ApiKeyCredential": { - "type": "object", - "description": "ApiKey Credential definition", - "properties": { - "apiKey": { - "type": "string", - "description": "API Key", - "readOnly": true - } - }, - "required": [ - "apiKey" - ], - "allOf": [ - { - "$ref": "#/definitions/BaseCredential" - } - ], - "x-ms-discriminator-value": "ApiKey" - }, "ApiResponseFormat": { "type": "string", "description": "Possible API response formats.", @@ -10501,21 +10471,6 @@ ], "x-ms-discriminator-value": "AzureSearch" }, - "BaseCredential": { - "type": "object", - "description": "Base Credential definition", - "properties": { - "type": { - "$ref": "#/definitions/CredentialType", - "description": "Type of credential. Possible values are: AAD, SAS, ApiKey", - "readOnly": true - } - }, - "discriminator": "type", - "required": [ - "type" - ] - }, "BlobReferenceForConsumption": { "type": "object", "description": "Represents a reference to a blob for consumption", @@ -10560,14 +10515,16 @@ }, "authType": { "$ref": "#/definitions/AuthenticationType", - "description": "The authentication type used by the connection" + "description": "The authentication type used by the connection", + "readOnly": true }, "metadata": { "type": "object", "description": "Metadata of the connection", "additionalProperties": { "type": "string" - } + }, + "readOnly": true } }, "required": [ @@ -10666,33 +10623,6 @@ ], "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" }, - "CredentialType": { - "type": "string", - "description": "The different Credential types", - "enum": [ - "ApiKey", - "AAD", - "SAS" - ], - "x-ms-enum": { - "name": "CredentialType", - "modelAsString": true, - "values": [ - { - "name": "ApiKey", - "value": "ApiKey" - }, - { - "name": "AAD", - "value": "AAD" - }, - { - "name": "SAS", - "value": "SAS" - } - ] - } - }, "DataPathAssetReference": { "type": "object", "description": "Reference to an asset via its path in a datastore.", @@ -11843,21 +11773,27 @@ "type": "object", "description": "SAS Credential definition", "properties": { - "sasToken": { + "sasUri": { "type": "string", - "description": "SAS Token", + "description": "SAS uri", + "readOnly": true + }, + "type": { + "type": "string", + "description": "Type of credential", + "enum": [ + "SAS" + ], + "x-ms-enum": { + "modelAsString": false + }, "readOnly": true } }, "required": [ - "sasToken" - ], - "allOf": [ - { - "$ref": "#/definitions/BaseCredential" - } - ], - "x-ms-discriminator-value": "SAS" + "sasUri", + "type" + ] }, "Sku": { "type": "object", From 59765e4d9d153ea0f52a118d5a29c073991b9f40 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Mon, 31 Mar 2025 15:16:33 -0700 Subject: [PATCH 086/143] Create a separate TypeSpec project for Assistants (#33586) --- .../client.tsp | 5 +- .../common/models.tsp | 2 +- .../files/main.tsp | 0 .../files/models.tsp | 2 +- .../files/routes.tsp | 2 +- specification/ai/Azure.AI.Assistants/main.tsp | 54 + .../messages/models.tsp | 2 +- .../messages/routes.tsp | 2 +- .../models.tsp | 4 +- .../routes.tsp | 2 +- .../run_steps/models.tsp | 2 +- .../run_steps/routes.tsp | 2 +- .../runs/models.tsp | 2 +- .../runs/routes.tsp | 2 +- .../streaming/events.tsp | 2 +- .../threads/models.tsp | 2 +- .../threads/routes.tsp | 2 +- .../tools/models.tsp | 2 +- .../tools/tool_resources.tsp | 2 +- .../ai/Azure.AI.Assistants/tspconfig.yaml | 41 + .../vector_stores/common/main.tsp | 2 +- .../vector_stores/file_batches/models.tsp | 2 +- .../vector_stores/file_batches/routes.tsp | 2 +- .../vector_stores/files/models.tsp | 2 +- .../vector_stores/files/routes.tsp | 2 +- .../vector_stores/main.tsp | 0 .../vector_stores/models.tsp | 2 +- .../vector_stores/routes.tsp | 2 +- specification/ai/Azure.AI.Projects/main.tsp | 16 +- .../stable/latest/azure-ai-assistants.json} | 1145 +++-- .../azure-ai-projects-1dp.json | 3721 +++++++++++++++++ 31 files changed, 4404 insertions(+), 626 deletions(-) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/client.tsp (99%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/common/models.tsp (99%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/files/main.tsp (100%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/files/models.tsp (98%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/files/routes.tsp (99%) create mode 100644 specification/ai/Azure.AI.Assistants/main.tsp rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/messages/models.tsp (99%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/messages/routes.tsp (98%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/models.tsp (99%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/routes.tsp (98%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/run_steps/models.tsp (99%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/run_steps/routes.tsp (98%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/runs/models.tsp (99%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/runs/routes.tsp (99%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/streaming/events.tsp (99%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/threads/models.tsp (98%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/threads/routes.tsp (98%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/tools/models.tsp (99%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/tools/tool_resources.tsp (99%) create mode 100644 specification/ai/Azure.AI.Assistants/tspconfig.yaml rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/vector_stores/common/main.tsp (99%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/vector_stores/file_batches/models.tsp (97%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/vector_stores/file_batches/routes.tsp (99%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/vector_stores/files/models.tsp (98%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/vector_stores/files/routes.tsp (99%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/vector_stores/main.tsp (100%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/vector_stores/models.tsp (99%) rename specification/ai/{Azure.AI.Projects/assistants => Azure.AI.Assistants}/vector_stores/routes.tsp (98%) rename specification/ai/data-plane/{Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json => Azure.AI.Assistants/stable/latest/azure-ai-assistants.json} (92%) create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json diff --git a/specification/ai/Azure.AI.Projects/assistants/client.tsp b/specification/ai/Azure.AI.Assistants/client.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/assistants/client.tsp rename to specification/ai/Azure.AI.Assistants/client.tsp index a8d182992910..b668f7b4e31b 100644 --- a/specification/ai/Azure.AI.Projects/assistants/client.tsp +++ b/specification/ai/Azure.AI.Assistants/client.tsp @@ -1,8 +1,11 @@ import "@azure-tools/typespec-client-generator-core"; +import "./main.tsp"; using Azure.ClientGenerator.Core; -namespace Azure.AI.Projects.Assistants { +@@clientName(Azure.AI.Assistants, "AIAssistantClient"); + +namespace Azure.AI.Assistants { // Trivial response value containers should treat these containers as internal details and instead surface a shimmed // operation that exposes the underlying data directly. @@clientName(AgentDeletionStatus, "InternalAgentDeletionStatus", "csharp"); diff --git a/specification/ai/Azure.AI.Projects/assistants/common/models.tsp b/specification/ai/Azure.AI.Assistants/common/models.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/assistants/common/models.tsp rename to specification/ai/Azure.AI.Assistants/common/models.tsp index 3211f783f3ef..bb6b2ea16e1e 100644 --- a/specification/ai/Azure.AI.Projects/assistants/common/models.tsp +++ b/specification/ai/Azure.AI.Assistants/common/models.tsp @@ -4,7 +4,7 @@ import "@typespec/versioning"; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; @doc("The possible values for roles attributed to messages in a thread.") union MessageRole { diff --git a/specification/ai/Azure.AI.Projects/assistants/files/main.tsp b/specification/ai/Azure.AI.Assistants/files/main.tsp similarity index 100% rename from specification/ai/Azure.AI.Projects/assistants/files/main.tsp rename to specification/ai/Azure.AI.Assistants/files/main.tsp diff --git a/specification/ai/Azure.AI.Projects/assistants/files/models.tsp b/specification/ai/Azure.AI.Assistants/files/models.tsp similarity index 98% rename from specification/ai/Azure.AI.Projects/assistants/files/models.tsp rename to specification/ai/Azure.AI.Assistants/files/models.tsp index 1022fdd0f94f..fea3b2b643b1 100644 --- a/specification/ai/Azure.AI.Projects/assistants/files/models.tsp +++ b/specification/ai/Azure.AI.Assistants/files/models.tsp @@ -1,6 +1,6 @@ import "@typespec/versioning"; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp b/specification/ai/Azure.AI.Assistants/files/routes.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/assistants/files/routes.tsp rename to specification/ai/Azure.AI.Assistants/files/routes.tsp index c79524777a3a..031257ba7914 100644 --- a/specification/ai/Azure.AI.Projects/assistants/files/routes.tsp +++ b/specification/ai/Azure.AI.Assistants/files/routes.tsp @@ -9,7 +9,7 @@ using TypeSpec.Http; using TypeSpec.Versioning; using Azure.ClientGenerator.Core; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; /** * Gets a list of previously uploaded files. diff --git a/specification/ai/Azure.AI.Assistants/main.tsp b/specification/ai/Azure.AI.Assistants/main.tsp new file mode 100644 index 000000000000..a8ed1ccbe517 --- /dev/null +++ b/specification/ai/Azure.AI.Assistants/main.tsp @@ -0,0 +1,54 @@ +import "@typespec/http"; +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./routes.tsp"; +import "./threads/routes.tsp"; +import "./messages/routes.tsp"; +import "./runs/routes.tsp"; +import "./run_steps/routes.tsp"; +import "./files/routes.tsp"; +import "./streaming/events.tsp"; +import "./vector_stores/routes.tsp"; +import "./vector_stores/files/routes.tsp"; +import "./vector_stores/file_batches/routes.tsp"; + +using TypeSpec.Http; +using TypeSpec.Versioning; + +#suppress "@azure-tools/typespec-azure-core/casing-style" +namespace Azure.AI { + +} + +#suppress "@azure-tools/typespec-autorest/unsupported-http-auth-scheme" +@useAuth( + BearerAuth | OAuth2Auth<[ + { + type: OAuth2FlowType.implicit, + authorizationUrl: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", + scopes: ["https://cognitiveservices.azure.com/.default"], + } + ]> +) +@service(#{ title: "Azure AI" }) +@server( + "{endpoint}", + "Azure AI", + { + @doc(""" + Project endpoint in the form of: https://.services.ai.azure.com/api/projects/ + """) + endpoint: url, + } +) +@versioned(Versions) +namespace Azure.AI.Assistants { + @doc("Azure AI Assistants API versions") + enum Versions { + @doc("Azure AI API version 2025-05-01-preview.") + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + `latest`, + } +} diff --git a/specification/ai/Azure.AI.Projects/assistants/messages/models.tsp b/specification/ai/Azure.AI.Assistants/messages/models.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/assistants/messages/models.tsp rename to specification/ai/Azure.AI.Assistants/messages/models.tsp index f6c7ad9a5e93..4803c6e8e383 100644 --- a/specification/ai/Azure.AI.Projects/assistants/messages/models.tsp +++ b/specification/ai/Azure.AI.Assistants/messages/models.tsp @@ -2,7 +2,7 @@ import "../tools/models.tsp"; import "@typespec/versioning"; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/assistants/messages/routes.tsp b/specification/ai/Azure.AI.Assistants/messages/routes.tsp similarity index 98% rename from specification/ai/Azure.AI.Projects/assistants/messages/routes.tsp rename to specification/ai/Azure.AI.Assistants/messages/routes.tsp index 853770ff60f6..6b6881aad35a 100644 --- a/specification/ai/Azure.AI.Projects/assistants/messages/routes.tsp +++ b/specification/ai/Azure.AI.Assistants/messages/routes.tsp @@ -12,7 +12,7 @@ using TypeSpec.Versioning; using Azure.Core; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; /** * Creates a new message on a specified thread. diff --git a/specification/ai/Azure.AI.Projects/assistants/models.tsp b/specification/ai/Azure.AI.Assistants/models.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/assistants/models.tsp rename to specification/ai/Azure.AI.Assistants/models.tsp index 684b24a3e230..f4abac5404fd 100644 --- a/specification/ai/Azure.AI.Projects/assistants/models.tsp +++ b/specification/ai/Azure.AI.Assistants/models.tsp @@ -2,12 +2,12 @@ import "@typespec/versioning"; import "./common/models.tsp"; import "./tools/models.tsp"; import "./tools/tool_resources.tsp"; -import "../main.tsp"; +import "./main.tsp"; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; @doc("Represents an agent that can call the model and use tools.") model Agent { diff --git a/specification/ai/Azure.AI.Projects/assistants/routes.tsp b/specification/ai/Azure.AI.Assistants/routes.tsp similarity index 98% rename from specification/ai/Azure.AI.Projects/assistants/routes.tsp rename to specification/ai/Azure.AI.Assistants/routes.tsp index f7220fec9505..4d54977ce66b 100644 --- a/specification/ai/Azure.AI.Projects/assistants/routes.tsp +++ b/specification/ai/Azure.AI.Assistants/routes.tsp @@ -11,7 +11,7 @@ using Azure.Core; using Azure.Core.Traits; using Azure.Core.Foundations; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; /** * Creates a new agent. diff --git a/specification/ai/Azure.AI.Projects/assistants/run_steps/models.tsp b/specification/ai/Azure.AI.Assistants/run_steps/models.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/assistants/run_steps/models.tsp rename to specification/ai/Azure.AI.Assistants/run_steps/models.tsp index bfc57b296e0d..3d2588b0f934 100644 --- a/specification/ai/Azure.AI.Projects/assistants/run_steps/models.tsp +++ b/specification/ai/Azure.AI.Assistants/run_steps/models.tsp @@ -2,7 +2,7 @@ import "@typespec/versioning"; import "../tools/models.tsp"; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/assistants/run_steps/routes.tsp b/specification/ai/Azure.AI.Assistants/run_steps/routes.tsp similarity index 98% rename from specification/ai/Azure.AI.Projects/assistants/run_steps/routes.tsp rename to specification/ai/Azure.AI.Assistants/run_steps/routes.tsp index b6afcea65534..d71cfcec2f37 100644 --- a/specification/ai/Azure.AI.Projects/assistants/run_steps/routes.tsp +++ b/specification/ai/Azure.AI.Assistants/run_steps/routes.tsp @@ -9,7 +9,7 @@ using TypeSpec.Rest; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; /** * Gets a single run step from a thread run. diff --git a/specification/ai/Azure.AI.Projects/assistants/runs/models.tsp b/specification/ai/Azure.AI.Assistants/runs/models.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/assistants/runs/models.tsp rename to specification/ai/Azure.AI.Assistants/runs/models.tsp index 9b0974e14f81..882a4fcc40f2 100644 --- a/specification/ai/Azure.AI.Projects/assistants/runs/models.tsp +++ b/specification/ai/Azure.AI.Assistants/runs/models.tsp @@ -4,7 +4,7 @@ import "../common/models.tsp"; import "../threads/models.tsp"; import "../tools/models.tsp"; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; using TypeSpec.Versioning; using Azure.ClientGenerator.Core; diff --git a/specification/ai/Azure.AI.Projects/assistants/runs/routes.tsp b/specification/ai/Azure.AI.Assistants/runs/routes.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/assistants/runs/routes.tsp rename to specification/ai/Azure.AI.Assistants/runs/routes.tsp index e0ab1d3a951c..c3de678d1436 100644 --- a/specification/ai/Azure.AI.Projects/assistants/runs/routes.tsp +++ b/specification/ai/Azure.AI.Assistants/runs/routes.tsp @@ -10,7 +10,7 @@ using TypeSpec.Rest; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; /** * Creates and starts a new run of the specified thread using the specified agent. diff --git a/specification/ai/Azure.AI.Projects/assistants/streaming/events.tsp b/specification/ai/Azure.AI.Assistants/streaming/events.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/assistants/streaming/events.tsp rename to specification/ai/Azure.AI.Assistants/streaming/events.tsp index 9c88f3150dad..bf1cf3fb801a 100644 --- a/specification/ai/Azure.AI.Projects/assistants/streaming/events.tsp +++ b/specification/ai/Azure.AI.Assistants/streaming/events.tsp @@ -2,7 +2,7 @@ import "@typespec/versioning"; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; @doc(""" Each event in a server-sent events stream has an `event` and `data` property: diff --git a/specification/ai/Azure.AI.Projects/assistants/threads/models.tsp b/specification/ai/Azure.AI.Assistants/threads/models.tsp similarity index 98% rename from specification/ai/Azure.AI.Projects/assistants/threads/models.tsp rename to specification/ai/Azure.AI.Assistants/threads/models.tsp index 4a68a1acda59..0f2e7ae66b1c 100644 --- a/specification/ai/Azure.AI.Projects/assistants/threads/models.tsp +++ b/specification/ai/Azure.AI.Assistants/threads/models.tsp @@ -7,7 +7,7 @@ import "../messages/models.tsp"; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; @doc("Information about a single thread associated with an agent.") model AgentThread { diff --git a/specification/ai/Azure.AI.Projects/assistants/threads/routes.tsp b/specification/ai/Azure.AI.Assistants/threads/routes.tsp similarity index 98% rename from specification/ai/Azure.AI.Projects/assistants/threads/routes.tsp rename to specification/ai/Azure.AI.Assistants/threads/routes.tsp index 1a99918dd561..20935cd613b9 100644 --- a/specification/ai/Azure.AI.Projects/assistants/threads/routes.tsp +++ b/specification/ai/Azure.AI.Assistants/threads/routes.tsp @@ -7,7 +7,7 @@ using TypeSpec.Rest; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; /** * Creates a new thread. Threads contain messages and can be run by agents. diff --git a/specification/ai/Azure.AI.Projects/assistants/tools/models.tsp b/specification/ai/Azure.AI.Assistants/tools/models.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/assistants/tools/models.tsp rename to specification/ai/Azure.AI.Assistants/tools/models.tsp index 67cf55849788..e6d7ee50bfdd 100644 --- a/specification/ai/Azure.AI.Projects/assistants/tools/models.tsp +++ b/specification/ai/Azure.AI.Assistants/tools/models.tsp @@ -4,7 +4,7 @@ import "@typespec/versioning"; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; // // Tool inputs -- definitions used before model evaluation to configure agents, threads, and messages diff --git a/specification/ai/Azure.AI.Projects/assistants/tools/tool_resources.tsp b/specification/ai/Azure.AI.Assistants/tools/tool_resources.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/assistants/tools/tool_resources.tsp rename to specification/ai/Azure.AI.Assistants/tools/tool_resources.tsp index 28b9a96064d6..543fd32d6025 100644 --- a/specification/ai/Azure.AI.Projects/assistants/tools/tool_resources.tsp +++ b/specification/ai/Azure.AI.Assistants/tools/tool_resources.tsp @@ -6,7 +6,7 @@ import "../vector_stores/common/main.tsp"; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; // // Response objects diff --git a/specification/ai/Azure.AI.Assistants/tspconfig.yaml b/specification/ai/Azure.AI.Assistants/tspconfig.yaml new file mode 100644 index 000000000000..dab601f537e6 --- /dev/null +++ b/specification/ai/Azure.AI.Assistants/tspconfig.yaml @@ -0,0 +1,41 @@ +parameters: + "service-dir": + default: "sdk/ai" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + emitter-output-dir: "{project-root}/.." + azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/azure-ai-assistants.json" + "@azure-tools/typespec-python": + package-mode: "dataplane" + package-dir: "azure-ai-assistants" + package-name: "{package-dir}" + flavor: azure + generate-test: false + generate-sample: false + "@azure-tools/typespec-csharp": + package-mode: "dataplane" + package-dir: "Azure.AI.Assistants" + namespace: "{package-dir}" + package-name: "{package-dir}" + model-namespace: false + flavor: azure + generate-test: false + generate-sample: false + "@azure-tools/typespec-ts": + generateTest: true + generateMetadata: false + packageDetails: + name: "@azure/ai-assistant" + flavor: azure +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/data-plane" + disable: + "@azure-tools/typespec-azure-core/casing-style": "Since we have many names in the form XxxxAIXxxx" + "@azure-tools/typespec-azure-core/no-string-discriminator": "Use an extensible union instead of a plain string" + "@azure-tools/typespec-azure-core/bad-record-type": "We do want to use Record, and not Record. But this needs further investigation" + "@azure-tools/typespec-azure-core/use-standard-names": "PUT operations that return 200 should start with 'replace' or 'createOrReplace'" diff --git a/specification/ai/Azure.AI.Projects/assistants/vector_stores/common/main.tsp b/specification/ai/Azure.AI.Assistants/vector_stores/common/main.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/assistants/vector_stores/common/main.tsp rename to specification/ai/Azure.AI.Assistants/vector_stores/common/main.tsp index 2f016ec336e8..ab2f787aa150 100644 --- a/specification/ai/Azure.AI.Projects/assistants/vector_stores/common/main.tsp +++ b/specification/ai/Azure.AI.Assistants/vector_stores/common/main.tsp @@ -4,7 +4,7 @@ import "@typespec/versioning"; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; /** Options to configure a vector store static chunking strategy. */ model VectorStoreStaticChunkingStrategyOptions { diff --git a/specification/ai/Azure.AI.Projects/assistants/vector_stores/file_batches/models.tsp b/specification/ai/Azure.AI.Assistants/vector_stores/file_batches/models.tsp similarity index 97% rename from specification/ai/Azure.AI.Projects/assistants/vector_stores/file_batches/models.tsp rename to specification/ai/Azure.AI.Assistants/vector_stores/file_batches/models.tsp index 4ecab0b89463..6dce544cc057 100644 --- a/specification/ai/Azure.AI.Projects/assistants/vector_stores/file_batches/models.tsp +++ b/specification/ai/Azure.AI.Assistants/vector_stores/file_batches/models.tsp @@ -1,4 +1,4 @@ -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/assistants/vector_stores/file_batches/routes.tsp b/specification/ai/Azure.AI.Assistants/vector_stores/file_batches/routes.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/assistants/vector_stores/file_batches/routes.tsp rename to specification/ai/Azure.AI.Assistants/vector_stores/file_batches/routes.tsp index efdfffd6606e..3f7d9a791265 100644 --- a/specification/ai/Azure.AI.Projects/assistants/vector_stores/file_batches/routes.tsp +++ b/specification/ai/Azure.AI.Assistants/vector_stores/file_batches/routes.tsp @@ -9,7 +9,7 @@ using TypeSpec.Rest; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; /** * Create a vector store file batch. diff --git a/specification/ai/Azure.AI.Projects/assistants/vector_stores/files/models.tsp b/specification/ai/Azure.AI.Assistants/vector_stores/files/models.tsp similarity index 98% rename from specification/ai/Azure.AI.Projects/assistants/vector_stores/files/models.tsp rename to specification/ai/Azure.AI.Assistants/vector_stores/files/models.tsp index 2c434da9f024..fca90715fa1e 100644 --- a/specification/ai/Azure.AI.Projects/assistants/vector_stores/files/models.tsp +++ b/specification/ai/Azure.AI.Assistants/vector_stores/files/models.tsp @@ -1,4 +1,4 @@ -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/assistants/vector_stores/files/routes.tsp b/specification/ai/Azure.AI.Assistants/vector_stores/files/routes.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/assistants/vector_stores/files/routes.tsp rename to specification/ai/Azure.AI.Assistants/vector_stores/files/routes.tsp index 35d1179cdbdf..16b296ce336e 100644 --- a/specification/ai/Azure.AI.Projects/assistants/vector_stores/files/routes.tsp +++ b/specification/ai/Azure.AI.Assistants/vector_stores/files/routes.tsp @@ -9,7 +9,7 @@ using TypeSpec.Rest; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; /** * Returns a list of vector store files. diff --git a/specification/ai/Azure.AI.Projects/assistants/vector_stores/main.tsp b/specification/ai/Azure.AI.Assistants/vector_stores/main.tsp similarity index 100% rename from specification/ai/Azure.AI.Projects/assistants/vector_stores/main.tsp rename to specification/ai/Azure.AI.Assistants/vector_stores/main.tsp diff --git a/specification/ai/Azure.AI.Projects/assistants/vector_stores/models.tsp b/specification/ai/Azure.AI.Assistants/vector_stores/models.tsp similarity index 99% rename from specification/ai/Azure.AI.Projects/assistants/vector_stores/models.tsp rename to specification/ai/Azure.AI.Assistants/vector_stores/models.tsp index ab4f9cae4d7e..1563bfac4f2b 100644 --- a/specification/ai/Azure.AI.Projects/assistants/vector_stores/models.tsp +++ b/specification/ai/Azure.AI.Assistants/vector_stores/models.tsp @@ -1,4 +1,4 @@ -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/assistants/vector_stores/routes.tsp b/specification/ai/Azure.AI.Assistants/vector_stores/routes.tsp similarity index 98% rename from specification/ai/Azure.AI.Projects/assistants/vector_stores/routes.tsp rename to specification/ai/Azure.AI.Assistants/vector_stores/routes.tsp index d63442278a26..515bb521798d 100644 --- a/specification/ai/Azure.AI.Projects/assistants/vector_stores/routes.tsp +++ b/specification/ai/Azure.AI.Assistants/vector_stores/routes.tsp @@ -9,7 +9,7 @@ using TypeSpec.Rest; using TypeSpec.Http; using TypeSpec.Versioning; -namespace Azure.AI.Projects.Assistants; +namespace Azure.AI.Assistants; /** * Returns a list of vector stores. diff --git a/specification/ai/Azure.AI.Projects/main.tsp b/specification/ai/Azure.AI.Projects/main.tsp index b3072f6bbd5e..ccefc6bd51e1 100644 --- a/specification/ai/Azure.AI.Projects/main.tsp +++ b/specification/ai/Azure.AI.Projects/main.tsp @@ -3,16 +3,6 @@ import "@typespec/rest"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; import "@azure-tools/typespec-azure-resource-manager"; -import "./assistants/routes.tsp"; -import "./assistants/threads/routes.tsp"; -import "./assistants/messages/routes.tsp"; -import "./assistants/runs/routes.tsp"; -import "./assistants/run_steps/routes.tsp"; -import "./assistants/files/routes.tsp"; -import "./assistants/streaming/events.tsp"; -import "./assistants/vector_stores/routes.tsp"; -import "./assistants/vector_stores/files/routes.tsp"; -import "./assistants/vector_stores/file_batches/routes.tsp"; import "./connections/routes.tsp"; import "./evaluations/routes.tsp"; import "./datasets/routes.tsp"; @@ -52,10 +42,10 @@ namespace Azure.AI { ) @versioned(Versions) namespace Azure.AI.Projects { - @doc("Azure AI API versions") + @doc("Azure AI Projects API versions") enum Versions { - @doc("Azure AI API version 2025-05-01-preview.") + @doc("Azure AI API version 2025-05-15-preview.") @useDependency(Azure.Core.Versions.v1_0_Preview_2) - `2025-05-01-preview`, + `2025-05-15-preview`, } } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Assistants/stable/latest/azure-ai-assistants.json similarity index 92% rename from specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json rename to specification/ai/data-plane/Azure.AI.Assistants/stable/latest/azure-ai-assistants.json index 597f676bff4e..c1b7438e632f 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-01-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Assistants/stable/latest/azure-ai-assistants.json @@ -2,7 +2,7 @@ "swagger": "2.0", "info": { "title": "Azure AI", - "version": "2025-05-01-preview", + "version": "latest", "x-typespec-generated": [ { "emitter": "@azure-tools/typespec-autorest" @@ -54,7 +54,7 @@ "paths": { "/assistants": { "get": { - "operationId": "Assistants_ListAgents", + "operationId": "ListAgents", "description": "Gets a list of agents that were previously created.", "parameters": [ { @@ -133,7 +133,7 @@ "type": "array", "description": "The requested list of items.", "items": { - "$ref": "#/definitions/Assistants.Agent" + "$ref": "#/definitions/Agent" } }, "first_id": { @@ -176,7 +176,7 @@ } }, "post": { - "operationId": "Assistants_CreateAgent", + "operationId": "CreateAgent", "description": "Creates a new agent.", "parameters": [ { @@ -187,7 +187,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/Assistants.CreateAgentOptions" + "$ref": "#/definitions/CreateAgentOptions" } } ], @@ -195,7 +195,7 @@ "200": { "description": "The new agent instance.", "schema": { - "$ref": "#/definitions/Assistants.Agent" + "$ref": "#/definitions/Agent" } }, "default": { @@ -215,21 +215,21 @@ }, "/assistants/{assistantId}": { "get": { - "operationId": "Assistants_GetAgent", + "operationId": "GetAgent", "description": "Retrieves an existing agent.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/Assistants.GetAgentOptions" + "$ref": "#/parameters/GetAgentOptions" } ], "responses": { "200": { "description": "The requested agent instance.", "schema": { - "$ref": "#/definitions/Assistants.Agent" + "$ref": "#/definitions/Agent" } }, "default": { @@ -247,21 +247,21 @@ } }, "post": { - "operationId": "Assistants_UpdateAgent", + "operationId": "UpdateAgent", "description": "Modifies an existing agent.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/Assistants.UpdateAgentOptions.assistantId" + "$ref": "#/parameters/UpdateAgentOptions.assistantId" }, { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/Assistants.UpdateAgentOptions" + "$ref": "#/definitions/UpdateAgentOptions" } } ], @@ -269,7 +269,7 @@ "200": { "description": "The updated agent instance.", "schema": { - "$ref": "#/definitions/Assistants.Agent" + "$ref": "#/definitions/Agent" } }, "default": { @@ -287,14 +287,14 @@ } }, "delete": { - "operationId": "Assistants_DeleteAgent", + "operationId": "DeleteAgent", "description": "Deletes an agent.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/Assistants.DeleteAgentOptions" + "$ref": "#/parameters/DeleteAgentOptions" } ], "responses": { @@ -1716,7 +1716,7 @@ }, "/files": { "get": { - "operationId": "Assistants_ListFiles", + "operationId": "ListFiles", "description": "Gets a list of previously uploaded files.", "parameters": [ { @@ -1784,7 +1784,7 @@ "200": { "description": "The requested list of files.", "schema": { - "$ref": "#/definitions/Assistants.FileListResponse" + "$ref": "#/definitions/FileListResponse" } }, "default": { @@ -1802,7 +1802,7 @@ } }, "post": { - "operationId": "Assistants_UploadFile", + "operationId": "UploadFile", "description": "Uploads a file for use by other operations.", "consumes": [ "multipart/form-data" @@ -1885,7 +1885,7 @@ "200": { "description": "A representation of the uploaded file.", "schema": { - "$ref": "#/definitions/Assistants.OpenAIFile" + "$ref": "#/definitions/OpenAIFile" } }, "default": { @@ -1905,7 +1905,7 @@ }, "/files/{fileId}": { "get": { - "operationId": "Assistants_GetFile", + "operationId": "GetFile", "description": "Returns information about a specific file. Does not retrieve file content.", "parameters": [ { @@ -1923,7 +1923,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Assistants.OpenAIFile" + "$ref": "#/definitions/OpenAIFile" } }, "default": { @@ -1941,7 +1941,7 @@ } }, "delete": { - "operationId": "Assistants_DeleteFile", + "operationId": "DeleteFile", "description": "Delete a previously uploaded file.", "parameters": [ { @@ -1959,7 +1959,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Assistants.FileDeletionStatus" + "$ref": "#/definitions/FileDeletionStatus" } }, "default": { @@ -1979,7 +1979,7 @@ }, "/files/{fileId}/content": { "get": { - "operationId": "Assistants_GetFileContent", + "operationId": "GetFileContent", "description": "Retrieves the raw content of a specific file.", "produces": [ "application/octet-stream", @@ -2575,7 +2575,7 @@ }, "/threads": { "post": { - "operationId": "Assistants_CreateThread", + "operationId": "CreateThread", "description": "Creates a new thread. Threads contain messages and can be run by agents.", "parameters": [ { @@ -2586,7 +2586,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/Assistants.AgentThreadCreationOptions" + "$ref": "#/definitions/AgentThreadCreationOptions" } } ], @@ -2594,7 +2594,7 @@ "200": { "description": "Information about the newly created thread.", "schema": { - "$ref": "#/definitions/Assistants.AgentThread" + "$ref": "#/definitions/AgentThread" } }, "default": { @@ -2614,7 +2614,7 @@ }, "/threads/{threadId}": { "get": { - "operationId": "Assistants_GetThread", + "operationId": "GetThread", "description": "Gets information about an existing thread.", "parameters": [ { @@ -2632,7 +2632,7 @@ "200": { "description": "Information about the requested thread.", "schema": { - "$ref": "#/definitions/Assistants.AgentThread" + "$ref": "#/definitions/AgentThread" } }, "default": { @@ -2650,21 +2650,21 @@ } }, "post": { - "operationId": "Assistants_UpdateThread", + "operationId": "UpdateThread", "description": "Modifies an existing thread.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/Assistants.UpdateAgentThreadOptions.threadId" + "$ref": "#/parameters/UpdateAgentThreadOptions.threadId" }, { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/Assistants.UpdateAgentThreadOptions" + "$ref": "#/definitions/UpdateAgentThreadOptions" } } ], @@ -2672,7 +2672,7 @@ "200": { "description": "Information about the modified thread.", "schema": { - "$ref": "#/definitions/Assistants.AgentThread" + "$ref": "#/definitions/AgentThread" } }, "default": { @@ -2690,7 +2690,7 @@ } }, "delete": { - "operationId": "Assistants_DeleteThread", + "operationId": "DeleteThread", "description": "Deletes an existing thread.", "parameters": [ { @@ -2708,7 +2708,7 @@ "200": { "description": "Status information about the requested thread deletion operation.", "schema": { - "$ref": "#/definitions/Assistants.ThreadDeletionStatus" + "$ref": "#/definitions/ThreadDeletionStatus" } }, "default": { @@ -2728,7 +2728,7 @@ }, "/threads/{threadId}/messages": { "get": { - "operationId": "Assistants_ListMessages", + "operationId": "ListMessages", "description": "Gets a list of messages that exist on a thread.", "parameters": [ { @@ -2821,7 +2821,7 @@ "type": "array", "description": "The requested list of items.", "items": { - "$ref": "#/definitions/Assistants.ThreadMessage" + "$ref": "#/definitions/ThreadMessage" } }, "first_id": { @@ -2864,7 +2864,7 @@ } }, "post": { - "operationId": "Assistants_CreateMessage", + "operationId": "CreateMessage", "description": "Creates a new message on a specified thread.", "parameters": [ { @@ -2882,7 +2882,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/Assistants.ThreadMessageOptions" + "$ref": "#/definitions/ThreadMessageOptions" } } ], @@ -2890,7 +2890,7 @@ "200": { "description": "A representation of the new message.", "schema": { - "$ref": "#/definitions/Assistants.ThreadMessage" + "$ref": "#/definitions/ThreadMessage" } }, "default": { @@ -2910,7 +2910,7 @@ }, "/threads/{threadId}/messages/{messageId}": { "get": { - "operationId": "Assistants_GetMessage", + "operationId": "GetMessage", "description": "Gets an existing message from an existing thread.", "parameters": [ { @@ -2935,7 +2935,7 @@ "200": { "description": "A representation of the requested message.", "schema": { - "$ref": "#/definitions/Assistants.ThreadMessage" + "$ref": "#/definitions/ThreadMessage" } }, "default": { @@ -2953,7 +2953,7 @@ } }, "post": { - "operationId": "Assistants_UpdateMessage", + "operationId": "UpdateMessage", "description": "Modifies an existing message on an existing thread.", "parameters": [ { @@ -2996,7 +2996,7 @@ "200": { "description": "A representation of the modified message.", "schema": { - "$ref": "#/definitions/Assistants.ThreadMessage" + "$ref": "#/definitions/ThreadMessage" } }, "default": { @@ -3016,7 +3016,7 @@ }, "/threads/{threadId}/runs": { "get": { - "operationId": "Assistants_ListRuns", + "operationId": "ListRuns", "description": "Gets a list of runs for a specified thread.", "parameters": [ { @@ -3102,7 +3102,7 @@ "type": "array", "description": "The requested list of items.", "items": { - "$ref": "#/definitions/Assistants.ThreadRun" + "$ref": "#/definitions/ThreadRun" } }, "first_id": { @@ -3145,7 +3145,7 @@ } }, "post": { - "operationId": "Assistants_CreateRun", + "operationId": "CreateRun", "description": "Creates a new run for an agent thread.", "parameters": [ { @@ -3189,7 +3189,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/Assistants.CreateRunOptions" + "$ref": "#/definitions/CreateRunOptions" } } ], @@ -3197,7 +3197,7 @@ "200": { "description": "Information about the new thread run.", "schema": { - "$ref": "#/definitions/Assistants.ThreadRun" + "$ref": "#/definitions/ThreadRun" } }, "default": { @@ -3217,7 +3217,7 @@ }, "/threads/{threadId}/runs/{runId}": { "get": { - "operationId": "Assistants_GetRun", + "operationId": "GetRun", "description": "Gets an existing run from an existing thread.", "parameters": [ { @@ -3242,7 +3242,7 @@ "200": { "description": "The requested information about the specified thread run.", "schema": { - "$ref": "#/definitions/Assistants.ThreadRun" + "$ref": "#/definitions/ThreadRun" } }, "default": { @@ -3260,7 +3260,7 @@ } }, "post": { - "operationId": "Assistants_UpdateRun", + "operationId": "UpdateRun", "description": "Modifies an existing thread run.", "parameters": [ { @@ -3303,7 +3303,7 @@ "200": { "description": "Information about the modified run.", "schema": { - "$ref": "#/definitions/Assistants.ThreadRun" + "$ref": "#/definitions/ThreadRun" } }, "default": { @@ -3323,7 +3323,7 @@ }, "/threads/{threadId}/runs/{runId}/cancel": { "post": { - "operationId": "Assistants_CancelRun", + "operationId": "CancelRun", "description": "Cancels a run of an in progress thread.", "parameters": [ { @@ -3348,7 +3348,7 @@ "200": { "description": "Updated information about the cancelled run.", "schema": { - "$ref": "#/definitions/Assistants.ThreadRun" + "$ref": "#/definitions/ThreadRun" } }, "default": { @@ -3368,7 +3368,7 @@ }, "/threads/{threadId}/runs/{runId}/steps": { "get": { - "operationId": "Assistants_ListRunSteps", + "operationId": "ListRunSteps", "description": "Gets a list of run steps from a thread run.", "parameters": [ { @@ -3487,7 +3487,7 @@ "type": "array", "description": "The requested list of items.", "items": { - "$ref": "#/definitions/Assistants.RunStep" + "$ref": "#/definitions/RunStep" } }, "first_id": { @@ -3532,7 +3532,7 @@ }, "/threads/{threadId}/runs/{runId}/steps/{stepId}": { "get": { - "operationId": "Assistants_GetRunStep", + "operationId": "GetRunStep", "description": "Gets a single run step from a thread run.", "parameters": [ { @@ -3590,7 +3590,7 @@ "200": { "description": "Information about the requested run step.", "schema": { - "$ref": "#/definitions/Assistants.RunStep" + "$ref": "#/definitions/RunStep" } }, "default": { @@ -3610,7 +3610,7 @@ }, "/threads/{threadId}/runs/{runId}/submit_tool_outputs": { "post": { - "operationId": "Assistants_SubmitToolOutputsToRun", + "operationId": "SubmitToolOutputsToRun", "description": "Submits outputs from tools as requested by tool calls in a run. Runs that need submitted tool outputs will have a status of 'requires_action' with a required_action.type of 'submit_tool_outputs'.", "parameters": [ { @@ -3641,7 +3641,7 @@ "type": "array", "description": "A list of tools for which the outputs are being submitted", "items": { - "$ref": "#/definitions/Assistants.ToolOutput" + "$ref": "#/definitions/ToolOutput" }, "x-ms-client-name": "toolOutputs", "x-ms-identifiers": [] @@ -3662,7 +3662,7 @@ "200": { "description": "Updated information about the run.", "schema": { - "$ref": "#/definitions/Assistants.ThreadRun" + "$ref": "#/definitions/ThreadRun" } }, "default": { @@ -3682,7 +3682,7 @@ }, "/threads/runs": { "post": { - "operationId": "Assistants_CreateThreadAndRun", + "operationId": "CreateThreadAndRun", "description": "Creates a new agent thread and immediately starts a run using that new thread.", "parameters": [ { @@ -3693,7 +3693,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/Assistants.CreateAndRunThreadOptions" + "$ref": "#/definitions/CreateAndRunThreadOptions" } } ], @@ -3701,7 +3701,7 @@ "200": { "description": "Information about the newly created thread.", "schema": { - "$ref": "#/definitions/Assistants.ThreadRun" + "$ref": "#/definitions/ThreadRun" } }, "default": { @@ -3721,7 +3721,7 @@ }, "/vector_stores": { "get": { - "operationId": "Assistants_ListVectorStores", + "operationId": "ListVectorStores", "description": "Returns a list of vector stores.", "parameters": [ { @@ -3800,7 +3800,7 @@ "type": "array", "description": "The requested list of items.", "items": { - "$ref": "#/definitions/Assistants.VectorStore" + "$ref": "#/definitions/VectorStore" } }, "first_id": { @@ -3843,7 +3843,7 @@ } }, "post": { - "operationId": "Assistants_CreateVectorStore", + "operationId": "CreateVectorStore", "description": "Creates a vector store.", "parameters": [ { @@ -3854,7 +3854,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/Assistants.VectorStoreOptions" + "$ref": "#/definitions/VectorStoreOptions" } } ], @@ -3862,7 +3862,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Assistants.VectorStore" + "$ref": "#/definitions/VectorStore" } }, "default": { @@ -3882,7 +3882,7 @@ }, "/vector_stores/{vectorStoreId}": { "get": { - "operationId": "Assistants_GetVectorStore", + "operationId": "GetVectorStore", "description": "Returns the vector store object matching the specified ID.", "parameters": [ { @@ -3900,7 +3900,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Assistants.VectorStore" + "$ref": "#/definitions/VectorStore" } }, "default": { @@ -3918,7 +3918,7 @@ } }, "post": { - "operationId": "Assistants_ModifyVectorStore", + "operationId": "ModifyVectorStore", "description": "The ID of the vector store to modify.", "parameters": [ { @@ -3936,7 +3936,7 @@ "in": "body", "required": true, "schema": { - "$ref": "#/definitions/Assistants.VectorStoreUpdateOptions" + "$ref": "#/definitions/VectorStoreUpdateOptions" } } ], @@ -3944,7 +3944,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Assistants.VectorStore" + "$ref": "#/definitions/VectorStore" } }, "default": { @@ -3962,7 +3962,7 @@ } }, "delete": { - "operationId": "Assistants_DeleteVectorStore", + "operationId": "DeleteVectorStore", "description": "Deletes the vector store object matching the specified ID.", "parameters": [ { @@ -3980,7 +3980,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Assistants.VectorStoreDeletionStatus" + "$ref": "#/definitions/VectorStoreDeletionStatus" } }, "default": { @@ -4000,7 +4000,7 @@ }, "/vector_stores/{vectorStoreId}/file_batches": { "post": { - "operationId": "Assistants_CreateVectorStoreFileBatch", + "operationId": "CreateVectorStoreFileBatch", "description": "Create a vector store file batch.", "parameters": [ { @@ -4036,13 +4036,13 @@ "minItems": 1, "maxItems": 500, "items": { - "$ref": "#/definitions/Assistants.VectorStoreDataSource" + "$ref": "#/definitions/VectorStoreDataSource" }, "x-ms-client-name": "dataSources", "x-ms-identifiers": [] }, "chunking_strategy": { - "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyRequest", + "$ref": "#/definitions/VectorStoreChunkingStrategyRequest", "description": "The chunking strategy used to chunk the file(s). If not set, will use the auto strategy.", "x-ms-client-name": "chunkingStrategy" } @@ -4054,7 +4054,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Assistants.VectorStoreFileBatch" + "$ref": "#/definitions/VectorStoreFileBatch" } }, "default": { @@ -4074,7 +4074,7 @@ }, "/vector_stores/{vectorStoreId}/file_batches/{batchId}": { "get": { - "operationId": "Assistants_GetVectorStoreFileBatch", + "operationId": "GetVectorStoreFileBatch", "description": "Retrieve a vector store file batch.", "parameters": [ { @@ -4099,7 +4099,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Assistants.VectorStoreFileBatch" + "$ref": "#/definitions/VectorStoreFileBatch" } }, "default": { @@ -4119,7 +4119,7 @@ }, "/vector_stores/{vectorStoreId}/file_batches/{batchId}/cancel": { "post": { - "operationId": "Assistants_CancelVectorStoreFileBatch", + "operationId": "CancelVectorStoreFileBatch", "description": "Cancel a vector store file batch. This attempts to cancel the processing of files in this batch as soon as possible.", "parameters": [ { @@ -4144,7 +4144,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Assistants.VectorStoreFileBatch" + "$ref": "#/definitions/VectorStoreFileBatch" } }, "default": { @@ -4164,7 +4164,7 @@ }, "/vector_stores/{vectorStoreId}/file_batches/{batchId}/files": { "get": { - "operationId": "Assistants_ListVectorStoreFileBatchFiles", + "operationId": "ListVectorStoreFileBatchFiles", "description": "Returns a list of vector store files in a batch.", "parameters": [ { @@ -4296,7 +4296,7 @@ "type": "array", "description": "The requested list of items.", "items": { - "$ref": "#/definitions/Assistants.VectorStoreFile" + "$ref": "#/definitions/VectorStoreFile" } }, "first_id": { @@ -4341,7 +4341,7 @@ }, "/vector_stores/{vectorStoreId}/files": { "get": { - "operationId": "Assistants_ListVectorStoreFiles", + "operationId": "ListVectorStoreFiles", "description": "Returns a list of vector store files.", "parameters": [ { @@ -4466,7 +4466,7 @@ "type": "array", "description": "The requested list of items.", "items": { - "$ref": "#/definitions/Assistants.VectorStoreFile" + "$ref": "#/definitions/VectorStoreFile" } }, "first_id": { @@ -4509,7 +4509,7 @@ } }, "post": { - "operationId": "Assistants_CreateVectorStoreFile", + "operationId": "CreateVectorStoreFile", "description": "Create a vector store file by attaching a file to a vector store.", "parameters": [ { @@ -4535,12 +4535,12 @@ "x-ms-client-name": "fileId" }, "data_source": { - "$ref": "#/definitions/Assistants.VectorStoreDataSource", + "$ref": "#/definitions/VectorStoreDataSource", "description": "Azure asset ID.", "x-ms-client-name": "dataSource" }, "chunking_strategy": { - "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyRequest", + "$ref": "#/definitions/VectorStoreChunkingStrategyRequest", "description": "The chunking strategy used to chunk the file(s). If not set, will use the auto strategy.", "x-ms-client-name": "chunkingStrategy" } @@ -4552,7 +4552,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Assistants.VectorStoreFile" + "$ref": "#/definitions/VectorStoreFile" } }, "default": { @@ -4572,7 +4572,7 @@ }, "/vector_stores/{vectorStoreId}/files/{fileId}": { "get": { - "operationId": "Assistants_GetVectorStoreFile", + "operationId": "GetVectorStoreFile", "description": "Retrieves a vector store file.", "parameters": [ { @@ -4597,7 +4597,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Assistants.VectorStoreFile" + "$ref": "#/definitions/VectorStoreFile" } }, "default": { @@ -4615,7 +4615,7 @@ } }, "delete": { - "operationId": "Assistants_DeleteVectorStoreFile", + "operationId": "DeleteVectorStoreFile", "description": "Delete a vector store file. This will remove the file from the vector store but the file itself will not be deleted.\nTo delete the file, use the delete file endpoint.", "parameters": [ { @@ -4640,7 +4640,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/Assistants.VectorStoreFileDeletionStatus" + "$ref": "#/definitions/VectorStoreFileDeletionStatus" } }, "default": { @@ -4713,7 +4713,7 @@ "x-ms-client-name": "indexName" }, "query_type": { - "$ref": "#/definitions/Assistants.AzureAISearchQueryType", + "$ref": "#/definitions/AzureAISearchQueryType", "description": "Type of query in an AIIndexResource attached to this agent.", "x-ms-client-name": "queryType" }, @@ -4733,7 +4733,7 @@ "index_name" ] }, - "Assistants.Agent": { + "Agent": { "type": "object", "description": "Represents an agent that can call the model and use tools.", "properties": { @@ -4781,7 +4781,7 @@ "description": "The collection of tools enabled for the agent.", "default": [], "items": { - "$ref": "#/definitions/Assistants.ToolDefinition" + "$ref": "#/definitions/ToolDefinition" }, "x-ms-identifiers": [] }, @@ -4791,7 +4791,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Assistants.ToolResources" + "$ref": "#/definitions/ToolResources" } ], "x-ms-client-name": "toolResources" @@ -4812,7 +4812,7 @@ "x-ms-client-name": "topP" }, "response_format": { - "$ref": "#/definitions/Assistants.AgentsApiResponseFormatOption", + "$ref": "#/definitions/AgentsApiResponseFormatOption", "description": "The response format of the tool calls used by this agent.", "x-nullable": true, "x-ms-client-name": "responseFormat" @@ -4841,7 +4841,7 @@ "metadata" ] }, - "Assistants.AgentDeletionStatus": { + "AgentDeletionStatus": { "type": "object", "description": "The status of an agent deletion operation.", "properties": { @@ -4870,7 +4870,7 @@ "object" ] }, - "Assistants.AgentStreamEvent": { + "AgentStreamEvent": { "type": "string", "description": "Each event in a server-sent events stream has an `event` and `data` property:\n\n```\nevent: thread.created\ndata: {\"id\": \"thread_123\", \"object\": \"thread\", ...}\n```\n\nWe emit events whenever a new object is created, transitions to a new state, or is being\nstreamed in parts (deltas). For example, we emit `thread.run.created` when a new run\nis created, `thread.run.completed` when a run completes, and so on. When an Agent chooses\nto create a message during a run, we emit a `thread.message.created event`, a\n`thread.message.in_progress` event, many `thread.message.delta` events, and finally a\n`thread.message.completed` event.\n\nWe may add additional events over time, so we recommend handling unknown events gracefully\nin your code.", "enum": [ @@ -5032,7 +5032,7 @@ ] } }, - "Assistants.AgentThread": { + "AgentThread": { "type": "object", "description": "Information about a single thread associated with an agent.", "properties": { @@ -5062,7 +5062,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Assistants.ToolResources" + "$ref": "#/definitions/ToolResources" } ], "x-ms-client-name": "toolResources" @@ -5084,7 +5084,7 @@ "metadata" ] }, - "Assistants.AgentThreadCreationOptions": { + "AgentThreadCreationOptions": { "type": "object", "description": "The details used to create a new agent thread.", "properties": { @@ -5092,7 +5092,7 @@ "type": "array", "description": "The initial messages to associate with the new thread.", "items": { - "$ref": "#/definitions/Assistants.ThreadMessageOptions" + "$ref": "#/definitions/ThreadMessageOptions" }, "x-ms-identifiers": [] }, @@ -5102,7 +5102,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Assistants.ToolResources" + "$ref": "#/definitions/ToolResources" } ], "x-ms-client-name": "toolResources" @@ -5117,7 +5117,7 @@ } } }, - "Assistants.AgentsApiResponseFormat": { + "AgentsApiResponseFormat": { "type": "object", "description": "An object describing the expected output of the model. If `json_object` only `function` type `tools` are allowed to be passed to the Run.\nIf `text` the model can return text or any value needed.", "properties": { @@ -5148,7 +5148,7 @@ } } }, - "Assistants.AgentsApiResponseFormatMode": { + "AgentsApiResponseFormatMode": { "type": "string", "description": "Represents the mode in which the model will handle the return format of a tool call.", "enum": [ @@ -5172,9 +5172,9 @@ ] } }, - "Assistants.AgentsApiResponseFormatOption": {}, - "Assistants.AgentsApiToolChoiceOption": {}, - "Assistants.AgentsApiToolChoiceOptionMode": { + "AgentsApiResponseFormatOption": {}, + "AgentsApiToolChoiceOption": {}, + "AgentsApiToolChoiceOptionMode": { "type": "string", "description": "Specifies how the tool choice will be used", "enum": [ @@ -5198,16 +5198,16 @@ ] } }, - "Assistants.AgentsNamedToolChoice": { + "AgentsNamedToolChoice": { "type": "object", "description": "Specifies a tool the model should use. Use to force the model to call a specific tool.", "properties": { "type": { - "$ref": "#/definitions/Assistants.AgentsNamedToolChoiceType", + "$ref": "#/definitions/AgentsNamedToolChoiceType", "description": "the type of tool. If type is `function`, the function name must be set." }, "function": { - "$ref": "#/definitions/Assistants.FunctionName", + "$ref": "#/definitions/FunctionName", "description": "The name of the function to call" } }, @@ -5215,7 +5215,7 @@ "type" ] }, - "Assistants.AgentsNamedToolChoiceType": { + "AgentsNamedToolChoiceType": { "type": "string", "description": "Available tool types for agents named tools.", "enum": [ @@ -5269,7 +5269,68 @@ ] } }, - "Assistants.AzureAISearchQueryType": { + "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" + }, + "x-ms-identifiers": [] + }, + "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 Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", + "properties": { + "code": { + "type": "string", + "description": "One of a server-defined set of error codes." + }, + "innererror": { + "$ref": "#/definitions/Azure.Core.Foundations.InnerError", + "description": "Inner error." + } + } + }, + "AzureAISearchQueryType": { "type": "string", "description": "Available query types for Azure AI Search tool.", "enum": [ @@ -5311,7 +5372,7 @@ ] } }, - "Assistants.AzureAISearchResource": { + "AzureAISearchResource": { "type": "object", "description": "A set of index resources used by the `azure_ai_search` tool.", "properties": { @@ -5320,24 +5381,24 @@ "description": "The indices attached to this agent. There can be a maximum of 1 index\nresource attached to the agent.", "maxItems": 1, "items": { - "$ref": "#/definitions/Assistants.AISearchIndexResource" + "$ref": "#/definitions/AISearchIndexResource" }, "x-ms-client-name": "indexList", "x-ms-identifiers": [] } } }, - "Assistants.AzureAISearchToolDefinition": { + "AzureAISearchToolDefinition": { "type": "object", "description": "The input definition information for an Azure AI search tool as used to configure an agent.", "allOf": [ { - "$ref": "#/definitions/Assistants.ToolDefinition" + "$ref": "#/definitions/ToolDefinition" } ], "x-ms-discriminator-value": "azure_ai_search" }, - "Assistants.AzureFunctionBinding": { + "AzureFunctionBinding": { "type": "object", "description": "The structure for keeping storage queue name and URI.", "properties": { @@ -5352,7 +5413,7 @@ } }, "storage_queue": { - "$ref": "#/definitions/Assistants.AzureFunctionStorageQueue", + "$ref": "#/definitions/AzureFunctionStorageQueue", "description": "Storage queue.", "x-ms-client-name": "storageQueue" } @@ -5362,21 +5423,21 @@ "storage_queue" ] }, - "Assistants.AzureFunctionDefinition": { + "AzureFunctionDefinition": { "type": "object", "description": "The definition of Azure function.", "properties": { "function": { - "$ref": "#/definitions/Assistants.FunctionDefinition", + "$ref": "#/definitions/FunctionDefinition", "description": "The definition of azure function and its parameters." }, "input_binding": { - "$ref": "#/definitions/Assistants.AzureFunctionBinding", + "$ref": "#/definitions/AzureFunctionBinding", "description": "Input storage queue. The queue storage trigger runs a function as messages are added to it.", "x-ms-client-name": "inputBinding" }, "output_binding": { - "$ref": "#/definitions/Assistants.AzureFunctionBinding", + "$ref": "#/definitions/AzureFunctionBinding", "description": "Output storage queue. The function writes output to this queue when the input items are processed.", "x-ms-client-name": "outputBinding" } @@ -5387,7 +5448,7 @@ "output_binding" ] }, - "Assistants.AzureFunctionStorageQueue": { + "AzureFunctionStorageQueue": { "type": "object", "description": "The structure for keeping storage queue name and URI.", "properties": { @@ -5407,12 +5468,12 @@ "queue_name" ] }, - "Assistants.AzureFunctionToolDefinition": { + "AzureFunctionToolDefinition": { "type": "object", "description": "The input definition information for a azure function tool as used to configure an agent.", "properties": { "azure_function": { - "$ref": "#/definitions/Assistants.AzureFunctionDefinition", + "$ref": "#/definitions/AzureFunctionDefinition", "description": "The definition of the concrete function that the function tool should call.", "x-ms-client-name": "azureFunction" } @@ -5422,17 +5483,17 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.ToolDefinition" + "$ref": "#/definitions/ToolDefinition" } ], "x-ms-discriminator-value": "azure_function" }, - "Assistants.BingGroundingToolDefinition": { + "BingGroundingToolDefinition": { "type": "object", "description": "The input definition information for a bing grounding search tool as used to configure an agent.", "properties": { "bing_grounding": { - "$ref": "#/definitions/Assistants.ToolConnectionList", + "$ref": "#/definitions/ToolConnectionList", "description": "The list of connections used by the bing grounding tool." } }, @@ -5441,22 +5502,22 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.ToolDefinition" + "$ref": "#/definitions/ToolDefinition" } ], "x-ms-discriminator-value": "bing_grounding" }, - "Assistants.CodeInterpreterToolDefinition": { + "CodeInterpreterToolDefinition": { "type": "object", "description": "The input definition information for a code interpreter tool as used to configure an agent.", "allOf": [ { - "$ref": "#/definitions/Assistants.ToolDefinition" + "$ref": "#/definitions/ToolDefinition" } ], "x-ms-discriminator-value": "code_interpreter" }, - "Assistants.CodeInterpreterToolResource": { + "CodeInterpreterToolResource": { "type": "object", "description": "A set of resources that are used by the `code_interpreter` tool.", "properties": { @@ -5475,14 +5536,14 @@ "description": "The data sources to be used. This option is mutually exclusive with the `fileIds` property.", "maxItems": 20, "items": { - "$ref": "#/definitions/Assistants.VectorStoreDataSource" + "$ref": "#/definitions/VectorStoreDataSource" }, "x-ms-client-name": "dataSources", "x-ms-identifiers": [] } } }, - "Assistants.CreateAgentOptions": { + "CreateAgentOptions": { "type": "object", "description": "The request details to use when creating a new agent.", "properties": { @@ -5510,7 +5571,7 @@ "description": "The collection of tools to enable for the new agent.", "default": [], "items": { - "$ref": "#/definitions/Assistants.ToolDefinition" + "$ref": "#/definitions/ToolDefinition" }, "x-ms-identifiers": [] }, @@ -5520,7 +5581,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Assistants.ToolResources" + "$ref": "#/definitions/ToolResources" } ], "x-ms-client-name": "toolResources" @@ -5541,7 +5602,7 @@ "x-ms-client-name": "topP" }, "response_format": { - "$ref": "#/definitions/Assistants.AgentsApiResponseFormatOption", + "$ref": "#/definitions/AgentsApiResponseFormatOption", "description": "The response format of the tool calls used by this agent.", "x-nullable": true, "x-ms-client-name": "responseFormat" @@ -5559,7 +5620,7 @@ "model" ] }, - "Assistants.CreateAndRunThreadOptions": { + "CreateAndRunThreadOptions": { "type": "object", "description": "The details used when creating and immediately running a new agent thread.", "properties": { @@ -5569,7 +5630,7 @@ "x-ms-client-name": "assistantId" }, "thread": { - "$ref": "#/definitions/Assistants.AgentThreadCreationOptions", + "$ref": "#/definitions/AgentThreadCreationOptions", "description": "The details used to create the new thread. If no thread is provided, an empty one will be created." }, "model": { @@ -5587,7 +5648,7 @@ "description": "The overridden list of enabled tools the agent should use to run the thread.", "x-nullable": true, "items": { - "$ref": "#/definitions/Assistants.ToolDefinition" + "$ref": "#/definitions/ToolDefinition" }, "x-ms-identifiers": [] }, @@ -5597,7 +5658,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Assistants.UpdateToolResourcesOptions" + "$ref": "#/definitions/UpdateToolResourcesOptions" } ], "x-ms-client-name": "toolResources" @@ -5641,19 +5702,19 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Assistants.TruncationObject" + "$ref": "#/definitions/TruncationObject" } ], "x-ms-client-name": "truncationStrategy" }, "tool_choice": { - "$ref": "#/definitions/Assistants.AgentsApiToolChoiceOption", + "$ref": "#/definitions/AgentsApiToolChoiceOption", "description": "Controls whether or not and which tool is called by the model.", "x-nullable": true, "x-ms-client-name": "toolChoice" }, "response_format": { - "$ref": "#/definitions/Assistants.AgentsApiResponseFormatOption", + "$ref": "#/definitions/AgentsApiResponseFormatOption", "description": "Specifies the format that the model must output.", "x-nullable": true, "x-ms-client-name": "responseFormat" @@ -5676,7 +5737,7 @@ "assistant_id" ] }, - "Assistants.CreateCodeInterpreterToolResourceOptions": { + "CreateCodeInterpreterToolResourceOptions": { "type": "object", "description": "A set of resources that will be used by the `code_interpreter` tool. Request object.", "properties": { @@ -5692,8 +5753,8 @@ } } }, - "Assistants.CreateFileSearchToolResourceOptions": {}, - "Assistants.CreateFileSearchToolResourceVectorStoreOptions": { + "CreateFileSearchToolResourceOptions": {}, + "CreateFileSearchToolResourceVectorStoreOptions": { "type": "object", "description": "File IDs associated to the vector store to be passed to the helper.", "properties": { @@ -5707,7 +5768,7 @@ "x-ms-client-name": "fileIds" }, "chunking_strategy": { - "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyRequest", + "$ref": "#/definitions/VectorStoreChunkingStrategyRequest", "description": "The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy.", "x-ms-client-name": "chunkingStrategy" }, @@ -5725,7 +5786,7 @@ "chunking_strategy" ] }, - "Assistants.CreateRunOptions": { + "CreateRunOptions": { "type": "object", "description": "The details used when creating a new run of an agent thread.", "properties": { @@ -5755,7 +5816,7 @@ "description": "Adds additional messages to the thread before creating the run.", "x-nullable": true, "items": { - "$ref": "#/definitions/Assistants.ThreadMessageOptions" + "$ref": "#/definitions/ThreadMessageOptions" }, "x-ms-client-name": "additionalMessages", "x-ms-identifiers": [] @@ -5765,7 +5826,7 @@ "description": "The overridden list of enabled tools that the agent should use to run the thread.", "x-nullable": true, "items": { - "$ref": "#/definitions/Assistants.ToolDefinition" + "$ref": "#/definitions/ToolDefinition" }, "x-ms-identifiers": [] }, @@ -5808,19 +5869,19 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Assistants.TruncationObject" + "$ref": "#/definitions/TruncationObject" } ], "x-ms-client-name": "truncationStrategy" }, "tool_choice": { - "$ref": "#/definitions/Assistants.AgentsApiToolChoiceOption", + "$ref": "#/definitions/AgentsApiToolChoiceOption", "description": "Controls whether or not and which tool is called by the model.", "x-nullable": true, "x-ms-client-name": "toolChoice" }, "response_format": { - "$ref": "#/definitions/Assistants.AgentsApiResponseFormatOption", + "$ref": "#/definitions/AgentsApiResponseFormatOption", "description": "Specifies the format that the model must output.", "x-nullable": true, "x-ms-client-name": "responseFormat" @@ -5843,28 +5904,28 @@ "assistant_id" ] }, - "Assistants.CreateToolResourcesOptions": { + "CreateToolResourcesOptions": { "type": "object", "description": "Request object. A set of resources that are used by the agent's tools. The resources are specific to the\ntype of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search`\ntool requires a list of vector store IDs.", "properties": { "code_interpreter": { - "$ref": "#/definitions/Assistants.CreateCodeInterpreterToolResourceOptions", + "$ref": "#/definitions/CreateCodeInterpreterToolResourceOptions", "description": "A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files\nassociated with the tool.", "x-ms-client-name": "codeInterpreter" }, "file_search": { - "$ref": "#/definitions/Assistants.CreateFileSearchToolResourceOptions", + "$ref": "#/definitions/CreateFileSearchToolResourceOptions", "description": "A list of vector stores or their IDs made available to the `file_search` tool.", "x-ms-client-name": "fileSearch" }, "azure_ai_search": { - "$ref": "#/definitions/Assistants.AzureAISearchResource", + "$ref": "#/definitions/AzureAISearchResource", "description": "Resources to be used by the `azure_ai_search` tool consisting of index IDs and names.", "x-ms-client-name": "azureAISearch" } } }, - "Assistants.DoneEvent": { + "DoneEvent": { "type": "string", "description": "Terminal event indicating the successful end of a stream.", "enum": [ @@ -5882,7 +5943,7 @@ ] } }, - "Assistants.ErrorEvent": { + "ErrorEvent": { "type": "string", "description": "Terminal event indicating a server side error while streaming.", "enum": [ @@ -5900,7 +5961,7 @@ ] } }, - "Assistants.FileDeletionStatus": { + "FileDeletionStatus": { "type": "object", "description": "A status response from a file deletion operation.", "properties": { @@ -5929,7 +5990,7 @@ "object" ] }, - "Assistants.FileListResponse": { + "FileListResponse": { "type": "object", "description": "The response data from a file list operation.", "properties": { @@ -5947,7 +6008,7 @@ "type": "array", "description": "The files returned for the request.", "items": { - "$ref": "#/definitions/Assistants.OpenAIFile" + "$ref": "#/definitions/OpenAIFile" } } }, @@ -5956,7 +6017,7 @@ "data" ] }, - "Assistants.FilePurpose": { + "FilePurpose": { "type": "string", "description": "The possible values denoting the intended usage of a file.", "enum": [ @@ -6010,7 +6071,7 @@ ] } }, - "Assistants.FileSearchRankingOptions": { + "FileSearchRankingOptions": { "type": "object", "description": "Ranking options for file search.", "properties": { @@ -6030,7 +6091,7 @@ "score_threshold" ] }, - "Assistants.FileSearchToolCallContent": { + "FileSearchToolCallContent": { "type": "object", "description": "The file search result content object.", "properties": { @@ -6054,24 +6115,24 @@ "text" ] }, - "Assistants.FileSearchToolDefinition": { + "FileSearchToolDefinition": { "type": "object", "description": "The input definition information for a file search tool as used to configure an agent.", "properties": { "file_search": { - "$ref": "#/definitions/Assistants.FileSearchToolDefinitionDetails", + "$ref": "#/definitions/FileSearchToolDefinitionDetails", "description": "Options overrides for the file search tool.", "x-ms-client-name": "fileSearch" } }, "allOf": [ { - "$ref": "#/definitions/Assistants.ToolDefinition" + "$ref": "#/definitions/ToolDefinition" } ], "x-ms-discriminator-value": "file_search" }, - "Assistants.FileSearchToolDefinitionDetails": { + "FileSearchToolDefinitionDetails": { "type": "object", "description": "Options overrides for the file search tool.", "properties": { @@ -6084,13 +6145,13 @@ "x-ms-client-name": "maxNumResults" }, "ranking_options": { - "$ref": "#/definitions/Assistants.FileSearchRankingOptions", + "$ref": "#/definitions/FileSearchRankingOptions", "description": "Ranking options for file search.", "x-ms-client-name": "rankingOptions" } } }, - "Assistants.FileSearchToolResource": { + "FileSearchToolResource": { "type": "object", "description": "A set of resources that are used by the `file_search` tool.", "properties": { @@ -6108,14 +6169,14 @@ "description": "The list of vector store configuration objects from Azure.\nThis list is limited to one element.\nThe only element of this list contains the list of azure asset IDs used by the search tool.", "maxItems": 1, "items": { - "$ref": "#/definitions/Assistants.VectorStoreConfigurations" + "$ref": "#/definitions/VectorStoreConfigurations" }, "x-ms-client-name": "vectorStores", "x-ms-identifiers": [] } } }, - "Assistants.FileState": { + "FileState": { "type": "string", "description": "The state of the file.", "enum": [ @@ -6169,7 +6230,7 @@ ] } }, - "Assistants.FunctionDefinition": { + "FunctionDefinition": { "type": "object", "description": "The input definition information for a function.", "properties": { @@ -6190,7 +6251,7 @@ "parameters" ] }, - "Assistants.FunctionName": { + "FunctionName": { "type": "object", "description": "The function name that will be used, if using the `function` tool", "properties": { @@ -6203,12 +6264,12 @@ "name" ] }, - "Assistants.FunctionToolDefinition": { + "FunctionToolDefinition": { "type": "object", "description": "The input definition information for a function tool as used to configure an agent.", "properties": { "function": { - "$ref": "#/definitions/Assistants.FunctionDefinition", + "$ref": "#/definitions/FunctionDefinition", "description": "The definition of the concrete function that the function tool should call." } }, @@ -6217,12 +6278,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.ToolDefinition" + "$ref": "#/definitions/ToolDefinition" } ], "x-ms-discriminator-value": "function" }, - "Assistants.IncompleteDetailsReason": { + "IncompleteDetailsReason": { "type": "string", "description": "The reason why the run is incomplete. This will point to which specific token limit was reached over the course of the run.", "enum": [ @@ -6246,12 +6307,12 @@ ] } }, - "Assistants.IncompleteRunDetails": { + "IncompleteRunDetails": { "type": "object", "description": "Details on why the run is incomplete. Will be `null` if the run is not incomplete.", "properties": { "reason": { - "$ref": "#/definitions/Assistants.IncompleteDetailsReason", + "$ref": "#/definitions/IncompleteDetailsReason", "description": "The reason why the run is incomplete. This indicates which specific token limit was reached during the run." } }, @@ -6259,7 +6320,7 @@ "reason" ] }, - "Assistants.IndexResource": { + "IndexResource": { "type": "object", "description": "A Index resource.", "properties": { @@ -6279,7 +6340,7 @@ "index_name" ] }, - "Assistants.ListSortOrder": { + "ListSortOrder": { "type": "string", "description": "The available sorting options when requesting a list of response objects.", "enum": [ @@ -6303,7 +6364,7 @@ ] } }, - "Assistants.MessageAttachment": { + "MessageAttachment": { "type": "object", "description": "This describes to which tools a file has been attached.", "properties": { @@ -6313,7 +6374,7 @@ "x-ms-client-name": "fileId" }, "data_source": { - "$ref": "#/definitions/Assistants.VectorStoreDataSource", + "$ref": "#/definitions/VectorStoreDataSource", "description": "Azure asset ID.", "x-ms-client-name": "dataSource" }, @@ -6321,7 +6382,7 @@ "type": "array", "description": "The tools to add to this file.", "items": { - "$ref": "#/definitions/Assistants.MessageAttachmentToolDefinition" + "$ref": "#/definitions/MessageAttachmentToolDefinition" } } }, @@ -6329,10 +6390,10 @@ "tools" ] }, - "Assistants.MessageAttachmentToolDefinition": { + "MessageAttachmentToolDefinition": { "x-nullable": false }, - "Assistants.MessageContent": { + "MessageContent": { "type": "object", "description": "An abstract representation of a single item of thread message content.", "properties": { @@ -6346,19 +6407,19 @@ "type" ] }, - "Assistants.MessageDelta": { + "MessageDelta": { "type": "object", "description": "Represents the typed 'delta' payload within a streaming message delta chunk.", "properties": { "role": { - "$ref": "#/definitions/Assistants.MessageRole", + "$ref": "#/definitions/MessageRole", "description": "The entity that produced the message." }, "content": { "type": "array", "description": "The content of the message as an array of text and/or images.", "items": { - "$ref": "#/definitions/Assistants.MessageDeltaContent" + "$ref": "#/definitions/MessageDeltaContent" }, "x-ms-identifiers": [] } @@ -6368,7 +6429,7 @@ "content" ] }, - "Assistants.MessageDeltaChunk": { + "MessageDeltaChunk": { "type": "object", "description": "Represents a message delta i.e. any changed fields on a message during streaming.", "properties": { @@ -6387,7 +6448,7 @@ } }, "delta": { - "$ref": "#/definitions/Assistants.MessageDelta", + "$ref": "#/definitions/MessageDelta", "description": "The delta containing the fields that have changed on the Message." } }, @@ -6397,7 +6458,7 @@ "delta" ] }, - "Assistants.MessageDeltaContent": { + "MessageDeltaContent": { "type": "object", "description": "The abstract base representation of a partial streamed message content payload.", "properties": { @@ -6417,24 +6478,24 @@ "type" ] }, - "Assistants.MessageDeltaImageFileContent": { + "MessageDeltaImageFileContent": { "type": "object", "description": "Represents a streamed image file content part within a streaming message delta chunk.", "properties": { "image_file": { - "$ref": "#/definitions/Assistants.MessageDeltaImageFileContentObject", + "$ref": "#/definitions/MessageDeltaImageFileContentObject", "description": "The image_file data.", "x-ms-client-name": "imageFile" } }, "allOf": [ { - "$ref": "#/definitions/Assistants.MessageDeltaContent" + "$ref": "#/definitions/MessageDeltaContent" } ], "x-ms-discriminator-value": "image_file" }, - "Assistants.MessageDeltaImageFileContentObject": { + "MessageDeltaImageFileContentObject": { "type": "object", "description": "Represents the 'image_file' payload within streaming image file content.", "properties": { @@ -6445,7 +6506,7 @@ } } }, - "Assistants.MessageDeltaTextAnnotation": { + "MessageDeltaTextAnnotation": { "type": "object", "description": "The abstract base representation of a streamed text content part's text annotation.", "properties": { @@ -6465,23 +6526,23 @@ "type" ] }, - "Assistants.MessageDeltaTextContent": { + "MessageDeltaTextContent": { "type": "object", "description": "Represents a streamed text content part within a streaming message delta chunk.", "properties": { "text": { - "$ref": "#/definitions/Assistants.MessageDeltaTextContentObject", + "$ref": "#/definitions/MessageDeltaTextContentObject", "description": "The text content details." } }, "allOf": [ { - "$ref": "#/definitions/Assistants.MessageDeltaContent" + "$ref": "#/definitions/MessageDeltaContent" } ], "x-ms-discriminator-value": "text" }, - "Assistants.MessageDeltaTextContentObject": { + "MessageDeltaTextContentObject": { "type": "object", "description": "Represents the data of a streamed text content part within a streaming message delta chunk.", "properties": { @@ -6493,18 +6554,18 @@ "type": "array", "description": "Annotations for the text.", "items": { - "$ref": "#/definitions/Assistants.MessageDeltaTextAnnotation" + "$ref": "#/definitions/MessageDeltaTextAnnotation" }, "x-ms-identifiers": [] } } }, - "Assistants.MessageDeltaTextFileCitationAnnotation": { + "MessageDeltaTextFileCitationAnnotation": { "type": "object", "description": "Represents a streamed file citation applied to a streaming text content part.", "properties": { "file_citation": { - "$ref": "#/definitions/Assistants.MessageDeltaTextFileCitationAnnotationObject", + "$ref": "#/definitions/MessageDeltaTextFileCitationAnnotationObject", "description": "The file citation information.", "x-ms-client-name": "fileCitation" }, @@ -6527,12 +6588,12 @@ }, "allOf": [ { - "$ref": "#/definitions/Assistants.MessageDeltaTextAnnotation" + "$ref": "#/definitions/MessageDeltaTextAnnotation" } ], "x-ms-discriminator-value": "file_citation" }, - "Assistants.MessageDeltaTextFileCitationAnnotationObject": { + "MessageDeltaTextFileCitationAnnotationObject": { "type": "object", "description": "Represents the data of a streamed file citation as applied to a streaming text content part.", "properties": { @@ -6547,12 +6608,12 @@ } } }, - "Assistants.MessageDeltaTextFilePathAnnotation": { + "MessageDeltaTextFilePathAnnotation": { "type": "object", "description": "Represents a streamed file path annotation applied to a streaming text content part.", "properties": { "file_path": { - "$ref": "#/definitions/Assistants.MessageDeltaTextFilePathAnnotationObject", + "$ref": "#/definitions/MessageDeltaTextFilePathAnnotationObject", "description": "The file path information.", "x-ms-client-name": "filePath" }, @@ -6575,12 +6636,12 @@ }, "allOf": [ { - "$ref": "#/definitions/Assistants.MessageDeltaTextAnnotation" + "$ref": "#/definitions/MessageDeltaTextAnnotation" } ], "x-ms-discriminator-value": "file_path" }, - "Assistants.MessageDeltaTextFilePathAnnotationObject": { + "MessageDeltaTextFilePathAnnotationObject": { "type": "object", "description": "Represents the data of a streamed file path annotation as applied to a streaming text content part.", "properties": { @@ -6591,12 +6652,12 @@ } } }, - "Assistants.MessageDeltaTextUrlCitationAnnotation": { + "MessageDeltaTextUrlCitationAnnotation": { "type": "object", "description": "A citation within the message that points to a specific URL associated with the message. Generated when the agent uses tools such as 'bing_grounding' to search the Internet.", "properties": { "url_citation": { - "$ref": "#/definitions/Assistants.MessageDeltaTextUrlCitationDetails", + "$ref": "#/definitions/MessageDeltaTextUrlCitationDetails", "description": "The details of the URL citation.", "x-ms-client-name": "urlCitation" }, @@ -6618,12 +6679,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.MessageDeltaTextAnnotation" + "$ref": "#/definitions/MessageDeltaTextAnnotation" } ], "x-ms-discriminator-value": "url_citation" }, - "Assistants.MessageDeltaTextUrlCitationDetails": { + "MessageDeltaTextUrlCitationDetails": { "type": "object", "description": "A representation of a URL citation, as used in text thread message content.", "properties": { @@ -6640,12 +6701,12 @@ "url" ] }, - "Assistants.MessageImageFileContent": { + "MessageImageFileContent": { "type": "object", "description": "A representation of image file content in a thread message.", "properties": { "image_file": { - "$ref": "#/definitions/Assistants.MessageImageFileDetails", + "$ref": "#/definitions/MessageImageFileDetails", "description": "The image file for this thread message content item.", "x-ms-client-name": "imageFile" } @@ -6655,12 +6716,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.MessageContent" + "$ref": "#/definitions/MessageContent" } ], "x-ms-discriminator-value": "image_file" }, - "Assistants.MessageImageFileDetails": { + "MessageImageFileDetails": { "type": "object", "description": "An image reference, as represented in thread message content.", "properties": { @@ -6674,12 +6735,12 @@ "file_id" ] }, - "Assistants.MessageIncompleteDetails": { + "MessageIncompleteDetails": { "type": "object", "description": "Information providing additional detail about a message entering an incomplete status.", "properties": { "reason": { - "$ref": "#/definitions/Assistants.MessageIncompleteDetailsReason", + "$ref": "#/definitions/MessageIncompleteDetailsReason", "description": "The provided reason describing why the message was marked as incomplete." } }, @@ -6687,7 +6748,7 @@ "reason" ] }, - "Assistants.MessageIncompleteDetailsReason": { + "MessageIncompleteDetailsReason": { "type": "string", "description": "A set of reasons describing why a message is marked as incomplete.", "enum": [ @@ -6729,7 +6790,7 @@ ] } }, - "Assistants.MessageRole": { + "MessageRole": { "type": "string", "description": "The possible values for roles attributed to messages in a thread.", "enum": [ @@ -6753,7 +6814,7 @@ ] } }, - "Assistants.MessageStatus": { + "MessageStatus": { "type": "string", "description": "The possible execution status values for a thread message.", "enum": [ @@ -6783,7 +6844,7 @@ ] } }, - "Assistants.MessageStreamEvent": { + "MessageStreamEvent": { "type": "string", "description": "Message operation related streaming events", "enum": [ @@ -6825,7 +6886,7 @@ ] } }, - "Assistants.MessageTextAnnotation": { + "MessageTextAnnotation": { "type": "object", "description": "An abstract representation of an annotation to text thread message content.", "properties": { @@ -6844,12 +6905,12 @@ "text" ] }, - "Assistants.MessageTextContent": { + "MessageTextContent": { "type": "object", "description": "A representation of a textual item of thread message content.", "properties": { "text": { - "$ref": "#/definitions/Assistants.MessageTextDetails", + "$ref": "#/definitions/MessageTextDetails", "description": "The text and associated annotations for this thread message content item." } }, @@ -6858,12 +6919,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.MessageContent" + "$ref": "#/definitions/MessageContent" } ], "x-ms-discriminator-value": "text" }, - "Assistants.MessageTextDetails": { + "MessageTextDetails": { "type": "object", "description": "The text and associated annotations for a single item of agent thread message content.", "properties": { @@ -6875,7 +6936,7 @@ "type": "array", "description": "A list of annotations associated with this text.", "items": { - "$ref": "#/definitions/Assistants.MessageTextAnnotation" + "$ref": "#/definitions/MessageTextAnnotation" }, "x-ms-identifiers": [] } @@ -6885,12 +6946,12 @@ "annotations" ] }, - "Assistants.MessageTextFileCitationAnnotation": { + "MessageTextFileCitationAnnotation": { "type": "object", "description": "A citation within the message that points to a specific quote from a specific File associated with the agent or the message. Generated when the agent uses the 'file_search' tool to search files.", "properties": { "file_citation": { - "$ref": "#/definitions/Assistants.MessageTextFileCitationDetails", + "$ref": "#/definitions/MessageTextFileCitationDetails", "description": "A citation within the message that points to a specific quote from a specific file.\nGenerated when the agent uses the \"file_search\" tool to search files.", "x-ms-client-name": "fileCitation" }, @@ -6912,12 +6973,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.MessageTextAnnotation" + "$ref": "#/definitions/MessageTextAnnotation" } ], "x-ms-discriminator-value": "file_citation" }, - "Assistants.MessageTextFileCitationDetails": { + "MessageTextFileCitationDetails": { "type": "object", "description": "A representation of a file-based text citation, as used in a file-based annotation of text thread message content.", "properties": { @@ -6936,12 +6997,12 @@ "quote" ] }, - "Assistants.MessageTextFilePathAnnotation": { + "MessageTextFilePathAnnotation": { "type": "object", "description": "A citation within the message that points to a file located at a specific path.", "properties": { "file_path": { - "$ref": "#/definitions/Assistants.MessageTextFilePathDetails", + "$ref": "#/definitions/MessageTextFilePathDetails", "description": "A URL for the file that's generated when the agent used the code_interpreter tool to generate a file.", "x-ms-client-name": "filePath" }, @@ -6963,12 +7024,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.MessageTextAnnotation" + "$ref": "#/definitions/MessageTextAnnotation" } ], "x-ms-discriminator-value": "file_path" }, - "Assistants.MessageTextFilePathDetails": { + "MessageTextFilePathDetails": { "type": "object", "description": "An encapsulation of an image file ID, as used by message image content.", "properties": { @@ -6982,12 +7043,12 @@ "file_id" ] }, - "Assistants.MessageTextUrlCitationAnnotation": { + "MessageTextUrlCitationAnnotation": { "type": "object", "description": "A citation within the message that points to a specific URL associated with the message. Generated when the agent uses tools such as 'bing_grounding' to search the Internet.", "properties": { "url_citation": { - "$ref": "#/definitions/Assistants.MessageTextUrlCitationDetails", + "$ref": "#/definitions/MessageTextUrlCitationDetails", "description": "The details of the URL citation.", "x-ms-client-name": "urlCitation" }, @@ -7009,12 +7070,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.MessageTextAnnotation" + "$ref": "#/definitions/MessageTextAnnotation" } ], "x-ms-discriminator-value": "url_citation" }, - "Assistants.MessageTextUrlCitationDetails": { + "MessageTextUrlCitationDetails": { "type": "object", "description": "A representation of a URL citation, as used in text thread message content.", "properties": { @@ -7031,12 +7092,12 @@ "url" ] }, - "Assistants.MicrosoftFabricToolDefinition": { + "MicrosoftFabricToolDefinition": { "type": "object", "description": "The input definition information for a Microsoft Fabric tool as used to configure an agent.", "properties": { "fabric_dataagent": { - "$ref": "#/definitions/Assistants.ToolConnectionList", + "$ref": "#/definitions/ToolConnectionList", "description": "The list of connections used by the Microsoft Fabric tool." } }, @@ -7045,12 +7106,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.ToolDefinition" + "$ref": "#/definitions/ToolDefinition" } ], "x-ms-discriminator-value": "fabric_dataagent" }, - "Assistants.OpenAIFile": { + "OpenAIFile": { "type": "object", "description": "Represents an agent that can call the model and use tools.", "properties": { @@ -7084,11 +7145,11 @@ "x-ms-client-name": "createdAt" }, "purpose": { - "$ref": "#/definitions/Assistants.FilePurpose", + "$ref": "#/definitions/FilePurpose", "description": "The intended purpose of a file." }, "status": { - "$ref": "#/definitions/Assistants.FileState", + "$ref": "#/definitions/FileState", "description": "The state of the file. This field is available in Azure OpenAI only." }, "status_details": { @@ -7106,22 +7167,22 @@ "purpose" ] }, - "Assistants.OpenApiAnonymousAuthDetails": { + "OpenApiAnonymousAuthDetails": { "type": "object", "description": "Security details for OpenApi anonymous authentication", "allOf": [ { - "$ref": "#/definitions/Assistants.OpenApiAuthDetails" + "$ref": "#/definitions/OpenApiAuthDetails" } ], "x-ms-discriminator-value": "anonymous" }, - "Assistants.OpenApiAuthDetails": { + "OpenApiAuthDetails": { "type": "object", "description": "authentication details for OpenApiFunctionDefinition", "properties": { "type": { - "$ref": "#/definitions/Assistants.OpenApiAuthType", + "$ref": "#/definitions/OpenApiAuthType", "description": "The type of authentication, must be anonymous/connection/managed_identity" } }, @@ -7130,7 +7191,7 @@ "type" ] }, - "Assistants.OpenApiAuthType": { + "OpenApiAuthType": { "type": "string", "description": " Authentication type for OpenApi endpoint. Allowed types are:\n - Anonymous (no authentication required)\n - Connection (requires connection_id to endpoint, as setup in AI Foundry)\n - Managed_Identity (requires audience for identity based auth)", "enum": [ @@ -7157,12 +7218,12 @@ ] } }, - "Assistants.OpenApiConnectionAuthDetails": { + "OpenApiConnectionAuthDetails": { "type": "object", "description": "Security details for OpenApi connection authentication", "properties": { "security_scheme": { - "$ref": "#/definitions/Assistants.OpenApiConnectionSecurityScheme", + "$ref": "#/definitions/OpenApiConnectionSecurityScheme", "description": "Connection auth security details" } }, @@ -7171,12 +7232,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.OpenApiAuthDetails" + "$ref": "#/definitions/OpenApiAuthDetails" } ], "x-ms-discriminator-value": "connection" }, - "Assistants.OpenApiConnectionSecurityScheme": { + "OpenApiConnectionSecurityScheme": { "type": "object", "description": "Security scheme for OpenApi managed_identity authentication", "properties": { @@ -7189,7 +7250,7 @@ "connection_id" ] }, - "Assistants.OpenApiFunctionDefinition": { + "OpenApiFunctionDefinition": { "type": "object", "description": "The input definition information for an openapi function.", "properties": { @@ -7205,7 +7266,7 @@ "description": "The openapi function shape, described as a JSON Schema object." }, "auth": { - "$ref": "#/definitions/Assistants.OpenApiAuthDetails", + "$ref": "#/definitions/OpenApiAuthDetails", "description": "Open API authentication details" } }, @@ -7215,12 +7276,12 @@ "auth" ] }, - "Assistants.OpenApiManagedAuthDetails": { + "OpenApiManagedAuthDetails": { "type": "object", "description": "Security details for OpenApi managed_identity authentication", "properties": { "security_scheme": { - "$ref": "#/definitions/Assistants.OpenApiManagedSecurityScheme", + "$ref": "#/definitions/OpenApiManagedSecurityScheme", "description": "Connection auth security details" } }, @@ -7229,12 +7290,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.OpenApiAuthDetails" + "$ref": "#/definitions/OpenApiAuthDetails" } ], "x-ms-discriminator-value": "managed_identity" }, - "Assistants.OpenApiManagedSecurityScheme": { + "OpenApiManagedSecurityScheme": { "type": "object", "description": "Security scheme for OpenApi managed_identity authentication", "properties": { @@ -7247,12 +7308,12 @@ "audience" ] }, - "Assistants.OpenApiToolDefinition": { + "OpenApiToolDefinition": { "type": "object", "description": "The input definition information for an OpenAPI tool as used to configure an agent.", "properties": { "openapi": { - "$ref": "#/definitions/Assistants.OpenApiFunctionDefinition", + "$ref": "#/definitions/OpenApiFunctionDefinition", "description": "The openapi function definition." } }, @@ -7261,12 +7322,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.ToolDefinition" + "$ref": "#/definitions/ToolDefinition" } ], "x-ms-discriminator-value": "openapi" }, - "Assistants.RequiredAction": { + "RequiredAction": { "type": "object", "description": "An abstract representation of a required action for an agent thread run to continue.", "properties": { @@ -7280,12 +7341,12 @@ "type" ] }, - "Assistants.RequiredFunctionToolCall": { + "RequiredFunctionToolCall": { "type": "object", "description": "A representation of a requested call to a function tool, needed by the model to continue evaluation of a run.", "properties": { "function": { - "$ref": "#/definitions/Assistants.RequiredFunctionToolCallDetails", + "$ref": "#/definitions/RequiredFunctionToolCallDetails", "description": "Detailed information about the function to be executed by the tool that includes name and arguments." } }, @@ -7294,12 +7355,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.RequiredToolCall" + "$ref": "#/definitions/RequiredToolCall" } ], "x-ms-discriminator-value": "function" }, - "Assistants.RequiredFunctionToolCallDetails": { + "RequiredFunctionToolCallDetails": { "type": "object", "description": "The detailed information for a function invocation, as provided by a required action invoking a function tool, that includes the name of and arguments to the function.", "properties": { @@ -7317,7 +7378,7 @@ "arguments" ] }, - "Assistants.RequiredToolCall": { + "RequiredToolCall": { "type": "object", "description": "An abstract representation of a tool invocation needed by the model to continue a run.", "properties": { @@ -7336,7 +7397,7 @@ "id" ] }, - "Assistants.ResponseFormat": { + "ResponseFormat": { "type": "string", "description": "Possible API response formats.", "enum": [ @@ -7360,7 +7421,7 @@ ] } }, - "Assistants.ResponseFormatJsonSchema": { + "ResponseFormatJsonSchema": { "type": "object", "description": "A description of what the response format is for, used by the model to determine how to respond in the format.", "properties": { @@ -7381,7 +7442,7 @@ "schema" ] }, - "Assistants.ResponseFormatJsonSchemaType": { + "ResponseFormatJsonSchemaType": { "type": "object", "description": "The type of response format being defined: `json_schema`", "properties": { @@ -7396,7 +7457,7 @@ } }, "json_schema": { - "$ref": "#/definitions/Assistants.ResponseFormatJsonSchema", + "$ref": "#/definitions/ResponseFormatJsonSchema", "description": "The JSON schema, describing response format.", "x-ms-client-name": "jsonSchema" } @@ -7406,7 +7467,7 @@ "json_schema" ] }, - "Assistants.RunAdditionalFieldList": { + "RunAdditionalFieldList": { "type": "string", "description": "A list of additional fields to include in the response.", "enum": [ @@ -7424,7 +7485,7 @@ ] } }, - "Assistants.RunCompletionUsage": { + "RunCompletionUsage": { "type": "object", "description": "Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.).", "properties": { @@ -7453,7 +7514,7 @@ "total_tokens" ] }, - "Assistants.RunError": { + "RunError": { "type": "object", "description": "The details of an error as encountered by an agent thread run.", "properties": { @@ -7471,7 +7532,7 @@ "message" ] }, - "Assistants.RunStatus": { + "RunStatus": { "type": "string", "description": "Possible values for the status of an agent thread run.", "enum": [ @@ -7531,7 +7592,7 @@ ] } }, - "Assistants.RunStep": { + "RunStep": { "type": "object", "description": "Detailed information about a single step of an agent thread run.", "properties": { @@ -7550,7 +7611,7 @@ } }, "type": { - "$ref": "#/definitions/Assistants.RunStepType", + "$ref": "#/definitions/RunStepType", "description": "The type of run step, which can be either message_creation or tool_calls." }, "assistant_id": { @@ -7569,11 +7630,11 @@ "x-ms-client-name": "runId" }, "status": { - "$ref": "#/definitions/Assistants.RunStepStatus", + "$ref": "#/definitions/RunStepStatus", "description": "The status of this run step." }, "step_details": { - "$ref": "#/definitions/Assistants.RunStepDetails", + "$ref": "#/definitions/RunStepDetails", "description": "The details for this run step.", "x-ms-client-name": "stepDetails" }, @@ -7583,7 +7644,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepError" + "$ref": "#/definitions/RunStepError" } ], "x-ms-client-name": "lastError" @@ -7628,7 +7689,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepCompletionUsage" + "$ref": "#/definitions/RunStepCompletionUsage" } ] }, @@ -7659,7 +7720,7 @@ "metadata" ] }, - "Assistants.RunStepAzureAISearchToolCall": { + "RunStepAzureAISearchToolCall": { "type": "object", "description": "A record of a call to an Azure AI Search tool, issued by the model in evaluation of a defined tool, that represents\nexecuted Azure AI search.", "properties": { @@ -7677,12 +7738,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepToolCall" + "$ref": "#/definitions/RunStepToolCall" } ], "x-ms-discriminator-value": "azure_ai_search" }, - "Assistants.RunStepBingGroundingToolCall": { + "RunStepBingGroundingToolCall": { "type": "object", "description": "A record of a call to a bing grounding tool, issued by the model in evaluation of a defined tool, that represents\nexecuted search with bing grounding.", "properties": { @@ -7700,17 +7761,17 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepToolCall" + "$ref": "#/definitions/RunStepToolCall" } ], "x-ms-discriminator-value": "bing_grounding" }, - "Assistants.RunStepCodeInterpreterImageOutput": { + "RunStepCodeInterpreterImageOutput": { "type": "object", "description": "A representation of an image output emitted by a code interpreter tool in response to a tool call by the model.", "properties": { "image": { - "$ref": "#/definitions/Assistants.RunStepCodeInterpreterImageReference", + "$ref": "#/definitions/RunStepCodeInterpreterImageReference", "description": "Referential information for the image associated with this output." } }, @@ -7719,12 +7780,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepCodeInterpreterToolCallOutput" + "$ref": "#/definitions/RunStepCodeInterpreterToolCallOutput" } ], "x-ms-discriminator-value": "image" }, - "Assistants.RunStepCodeInterpreterImageReference": { + "RunStepCodeInterpreterImageReference": { "type": "object", "description": "An image reference emitted by a code interpreter tool in response to a tool call by the model.", "properties": { @@ -7738,7 +7799,7 @@ "file_id" ] }, - "Assistants.RunStepCodeInterpreterLogOutput": { + "RunStepCodeInterpreterLogOutput": { "type": "object", "description": "A representation of a log output emitted by a code interpreter tool in response to a tool call by the model.", "properties": { @@ -7752,17 +7813,17 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepCodeInterpreterToolCallOutput" + "$ref": "#/definitions/RunStepCodeInterpreterToolCallOutput" } ], "x-ms-discriminator-value": "logs" }, - "Assistants.RunStepCodeInterpreterToolCall": { + "RunStepCodeInterpreterToolCall": { "type": "object", "description": "A record of a call to a code interpreter tool, issued by the model in evaluation of a defined tool, that\nrepresents inputs and outputs consumed and emitted by the code interpreter.", "properties": { "code_interpreter": { - "$ref": "#/definitions/Assistants.RunStepCodeInterpreterToolCallDetails", + "$ref": "#/definitions/RunStepCodeInterpreterToolCallDetails", "description": "The details of the tool call to the code interpreter tool.", "x-ms-client-name": "codeInterpreter" } @@ -7772,12 +7833,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepToolCall" + "$ref": "#/definitions/RunStepToolCall" } ], "x-ms-discriminator-value": "code_interpreter" }, - "Assistants.RunStepCodeInterpreterToolCallDetails": { + "RunStepCodeInterpreterToolCallDetails": { "type": "object", "description": "The detailed information about a code interpreter invocation by the model.", "properties": { @@ -7789,7 +7850,7 @@ "type": "array", "description": "The outputs produced by the code interpreter tool back to the model in response to the tool call.", "items": { - "$ref": "#/definitions/Assistants.RunStepCodeInterpreterToolCallOutput" + "$ref": "#/definitions/RunStepCodeInterpreterToolCallOutput" }, "x-ms-identifiers": [] } @@ -7799,7 +7860,7 @@ "outputs" ] }, - "Assistants.RunStepCodeInterpreterToolCallOutput": { + "RunStepCodeInterpreterToolCallOutput": { "type": "object", "description": "An abstract representation of an emitted output from a code interpreter tool.", "properties": { @@ -7813,7 +7874,7 @@ "type" ] }, - "Assistants.RunStepCompletionUsage": { + "RunStepCompletionUsage": { "type": "object", "description": "Usage statistics related to the run step.", "properties": { @@ -7842,18 +7903,18 @@ "total_tokens" ] }, - "Assistants.RunStepDelta": { + "RunStepDelta": { "type": "object", "description": "Represents the delta payload in a streaming run step delta chunk.", "properties": { "step_details": { - "$ref": "#/definitions/Assistants.RunStepDeltaDetail", + "$ref": "#/definitions/RunStepDeltaDetail", "description": "The details of the run step.", "x-ms-client-name": "stepDetails" } } }, - "Assistants.RunStepDeltaChunk": { + "RunStepDeltaChunk": { "type": "object", "description": "Represents a run step delta i.e. any changed fields on a run step during streaming.", "properties": { @@ -7872,7 +7933,7 @@ } }, "delta": { - "$ref": "#/definitions/Assistants.RunStepDelta", + "$ref": "#/definitions/RunStepDelta", "description": "The delta containing the fields that have changed on the run step." } }, @@ -7882,7 +7943,7 @@ "delta" ] }, - "Assistants.RunStepDeltaCodeInterpreterDetailItemObject": { + "RunStepDeltaCodeInterpreterDetailItemObject": { "type": "object", "description": "Represents the Code Interpreter tool call data in a streaming run step's tool calls.", "properties": { @@ -7894,29 +7955,29 @@ "type": "array", "description": "The outputs from the Code Interpreter tool call. Code Interpreter can output one or more\nitems, including text (`logs`) or images (`image`). Each of these are represented by a\ndifferent object type.", "items": { - "$ref": "#/definitions/Assistants.RunStepDeltaCodeInterpreterOutput" + "$ref": "#/definitions/RunStepDeltaCodeInterpreterOutput" }, "x-ms-identifiers": [] } } }, - "Assistants.RunStepDeltaCodeInterpreterImageOutput": { + "RunStepDeltaCodeInterpreterImageOutput": { "type": "object", "description": "Represents an image output as produced the Code interpreter tool and as represented in a streaming run step's delta tool calls collection.", "properties": { "image": { - "$ref": "#/definitions/Assistants.RunStepDeltaCodeInterpreterImageOutputObject", + "$ref": "#/definitions/RunStepDeltaCodeInterpreterImageOutputObject", "description": "The image data for the Code Interpreter tool call output." } }, "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepDeltaCodeInterpreterOutput" + "$ref": "#/definitions/RunStepDeltaCodeInterpreterOutput" } ], "x-ms-discriminator-value": "image" }, - "Assistants.RunStepDeltaCodeInterpreterImageOutputObject": { + "RunStepDeltaCodeInterpreterImageOutputObject": { "type": "object", "description": "Represents the data for a streaming run step's Code Interpreter tool call image output.", "properties": { @@ -7927,7 +7988,7 @@ } } }, - "Assistants.RunStepDeltaCodeInterpreterLogOutput": { + "RunStepDeltaCodeInterpreterLogOutput": { "type": "object", "description": "Represents a log output as produced by the Code Interpreter tool and as represented in a streaming run step's delta tool calls collection.", "properties": { @@ -7938,12 +7999,12 @@ }, "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepDeltaCodeInterpreterOutput" + "$ref": "#/definitions/RunStepDeltaCodeInterpreterOutput" } ], "x-ms-discriminator-value": "logs" }, - "Assistants.RunStepDeltaCodeInterpreterOutput": { + "RunStepDeltaCodeInterpreterOutput": { "type": "object", "description": "The abstract base representation of a streaming run step tool call's Code Interpreter tool output.", "properties": { @@ -7963,24 +8024,24 @@ "type" ] }, - "Assistants.RunStepDeltaCodeInterpreterToolCall": { + "RunStepDeltaCodeInterpreterToolCall": { "type": "object", "description": "Represents a Code Interpreter tool call within a streaming run step's tool call details.", "properties": { "code_interpreter": { - "$ref": "#/definitions/Assistants.RunStepDeltaCodeInterpreterDetailItemObject", + "$ref": "#/definitions/RunStepDeltaCodeInterpreterDetailItemObject", "description": "The Code Interpreter data for the tool call.", "x-ms-client-name": "codeInterpreter" } }, "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepDeltaToolCall" + "$ref": "#/definitions/RunStepDeltaToolCall" } ], "x-ms-discriminator-value": "code_interpreter" }, - "Assistants.RunStepDeltaDetail": { + "RunStepDeltaDetail": { "type": "object", "description": "Represents a single run step detail item in a streaming run step's delta payload.", "properties": { @@ -7994,24 +8055,24 @@ "type" ] }, - "Assistants.RunStepDeltaFileSearchToolCall": { + "RunStepDeltaFileSearchToolCall": { "type": "object", "description": "Represents a file search tool call within a streaming run step's tool call details.", "properties": { "file_search": { - "$ref": "#/definitions/Assistants.RunStepFileSearchToolCallResults", + "$ref": "#/definitions/RunStepFileSearchToolCallResults", "description": "Reserved for future use.", "x-ms-client-name": "fileSearch" } }, "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepDeltaToolCall" + "$ref": "#/definitions/RunStepDeltaToolCall" } ], "x-ms-discriminator-value": "file_search" }, - "Assistants.RunStepDeltaFunction": { + "RunStepDeltaFunction": { "type": "object", "description": "Represents the function data in a streaming run step delta's function tool call.", "properties": { @@ -8030,40 +8091,40 @@ } } }, - "Assistants.RunStepDeltaFunctionToolCall": { + "RunStepDeltaFunctionToolCall": { "type": "object", "description": "Represents a function tool call within a streaming run step's tool call details.", "properties": { "function": { - "$ref": "#/definitions/Assistants.RunStepDeltaFunction", + "$ref": "#/definitions/RunStepDeltaFunction", "description": "The function data for the tool call." } }, "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepDeltaToolCall" + "$ref": "#/definitions/RunStepDeltaToolCall" } ], "x-ms-discriminator-value": "function" }, - "Assistants.RunStepDeltaMessageCreation": { + "RunStepDeltaMessageCreation": { "type": "object", "description": "Represents a message creation within a streaming run step delta.", "properties": { "message_creation": { - "$ref": "#/definitions/Assistants.RunStepDeltaMessageCreationObject", + "$ref": "#/definitions/RunStepDeltaMessageCreationObject", "description": "The message creation data.", "x-ms-client-name": "messageCreation" } }, "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepDeltaDetail" + "$ref": "#/definitions/RunStepDeltaDetail" } ], "x-ms-discriminator-value": "message_creation" }, - "Assistants.RunStepDeltaMessageCreationObject": { + "RunStepDeltaMessageCreationObject": { "type": "object", "description": "Represents the data within a streaming run step message creation response object.", "properties": { @@ -8074,7 +8135,7 @@ } } }, - "Assistants.RunStepDeltaToolCall": { + "RunStepDeltaToolCall": { "type": "object", "description": "The abstract base representation of a single tool call within a streaming run step's delta tool call details.", "properties": { @@ -8099,7 +8160,7 @@ "type" ] }, - "Assistants.RunStepDeltaToolCallObject": { + "RunStepDeltaToolCallObject": { "type": "object", "description": "Represents an invocation of tool calls as part of a streaming run step.", "properties": { @@ -8107,24 +8168,24 @@ "type": "array", "description": "The collection of tool calls for the tool call detail item.", "items": { - "$ref": "#/definitions/Assistants.RunStepDeltaToolCall" + "$ref": "#/definitions/RunStepDeltaToolCall" }, "x-ms-client-name": "toolCalls" } }, "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepDeltaDetail" + "$ref": "#/definitions/RunStepDeltaDetail" } ], "x-ms-discriminator-value": "tool_calls" }, - "Assistants.RunStepDetails": { + "RunStepDetails": { "type": "object", "description": "An abstract representation of the details for a run step.", "properties": { "type": { - "$ref": "#/definitions/Assistants.RunStepType", + "$ref": "#/definitions/RunStepType", "description": "The object type." } }, @@ -8133,12 +8194,12 @@ "type" ] }, - "Assistants.RunStepError": { + "RunStepError": { "type": "object", "description": "The error information associated with a failed run step.", "properties": { "code": { - "$ref": "#/definitions/Assistants.RunStepErrorCode", + "$ref": "#/definitions/RunStepErrorCode", "description": "The error code for this error." }, "message": { @@ -8151,7 +8212,7 @@ "message" ] }, - "Assistants.RunStepErrorCode": { + "RunStepErrorCode": { "type": "string", "description": "Possible error code values attributable to a failed run step.", "enum": [ @@ -8175,7 +8236,7 @@ ] } }, - "Assistants.RunStepFileSearchToolCall": { + "RunStepFileSearchToolCall": { "type": "object", "description": "A record of a call to a file search tool, issued by the model in evaluation of a defined tool, that represents\nexecuted file search.", "properties": { @@ -8184,7 +8245,7 @@ "description": "The ID of the tool call. This ID must be referenced when you submit tool outputs." }, "file_search": { - "$ref": "#/definitions/Assistants.RunStepFileSearchToolCallResults", + "$ref": "#/definitions/RunStepFileSearchToolCallResults", "description": "For now, this is always going to be an empty object.", "x-ms-client-name": "fileSearch" } @@ -8195,12 +8256,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepToolCall" + "$ref": "#/definitions/RunStepToolCall" } ], "x-ms-discriminator-value": "file_search" }, - "Assistants.RunStepFileSearchToolCallResult": { + "RunStepFileSearchToolCallResult": { "type": "object", "description": " File search tool call result.", "properties": { @@ -8225,7 +8286,7 @@ "type": "array", "description": "The content of the result that was found. The content is only included if requested via the include query parameter.", "items": { - "$ref": "#/definitions/Assistants.FileSearchToolCallContent" + "$ref": "#/definitions/FileSearchToolCallContent" }, "x-ms-identifiers": [] } @@ -8236,12 +8297,12 @@ "score" ] }, - "Assistants.RunStepFileSearchToolCallResults": { + "RunStepFileSearchToolCallResults": { "type": "object", "description": "The results of the file search.", "properties": { "ranking_options": { - "$ref": "#/definitions/Assistants.FileSearchRankingOptions", + "$ref": "#/definitions/FileSearchRankingOptions", "description": "Ranking options for file search.", "x-ms-client-name": "rankingOptions" }, @@ -8249,7 +8310,7 @@ "type": "array", "description": "The array of a file search results", "items": { - "$ref": "#/definitions/Assistants.RunStepFileSearchToolCallResult" + "$ref": "#/definitions/RunStepFileSearchToolCallResult" }, "x-ms-identifiers": [] } @@ -8258,12 +8319,12 @@ "results" ] }, - "Assistants.RunStepFunctionToolCall": { + "RunStepFunctionToolCall": { "type": "object", "description": "A record of a call to a function tool, issued by the model in evaluation of a defined tool, that represents the inputs\nand output consumed and emitted by the specified function.", "properties": { "function": { - "$ref": "#/definitions/Assistants.RunStepFunctionToolCallDetails", + "$ref": "#/definitions/RunStepFunctionToolCallDetails", "description": "The detailed information about the function called by the model." } }, @@ -8272,12 +8333,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepToolCall" + "$ref": "#/definitions/RunStepToolCall" } ], "x-ms-discriminator-value": "function" }, - "Assistants.RunStepFunctionToolCallDetails": { + "RunStepFunctionToolCallDetails": { "type": "object", "description": "The detailed information about the function called by the model.", "properties": { @@ -8301,12 +8362,12 @@ "output" ] }, - "Assistants.RunStepMessageCreationDetails": { + "RunStepMessageCreationDetails": { "type": "object", "description": "The detailed information associated with a message creation run step.", "properties": { "message_creation": { - "$ref": "#/definitions/Assistants.RunStepMessageCreationReference", + "$ref": "#/definitions/RunStepMessageCreationReference", "description": "Information about the message creation associated with this run step.", "x-ms-client-name": "messageCreation" } @@ -8316,12 +8377,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepDetails" + "$ref": "#/definitions/RunStepDetails" } ], "x-ms-discriminator-value": "message_creation" }, - "Assistants.RunStepMessageCreationReference": { + "RunStepMessageCreationReference": { "type": "object", "description": "The details of a message created as a part of a run step.", "properties": { @@ -8335,7 +8396,7 @@ "message_id" ] }, - "Assistants.RunStepMicrosoftFabricToolCall": { + "RunStepMicrosoftFabricToolCall": { "type": "object", "description": "A record of a call to a Microsoft Fabric tool, issued by the model in evaluation of a defined tool, that represents\nexecuted Microsoft Fabric operations.", "properties": { @@ -8353,12 +8414,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepToolCall" + "$ref": "#/definitions/RunStepToolCall" } ], "x-ms-discriminator-value": "fabric_dataagent" }, - "Assistants.RunStepSharepointToolCall": { + "RunStepSharepointToolCall": { "type": "object", "description": "A record of a call to a SharePoint tool, issued by the model in evaluation of a defined tool, that represents\nexecuted SharePoint actions.", "properties": { @@ -8376,12 +8437,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepToolCall" + "$ref": "#/definitions/RunStepToolCall" } ], "x-ms-discriminator-value": "sharepoint_grounding" }, - "Assistants.RunStepStatus": { + "RunStepStatus": { "type": "string", "description": "Possible values for the status of a run step.", "enum": [ @@ -8423,7 +8484,7 @@ ] } }, - "Assistants.RunStepStreamEvent": { + "RunStepStreamEvent": { "type": "string", "description": "Run step operation related streaming events", "enum": [ @@ -8477,7 +8538,7 @@ ] } }, - "Assistants.RunStepToolCall": { + "RunStepToolCall": { "type": "object", "description": "An abstract representation of a detailed tool call as recorded within a run step for an existing run.", "properties": { @@ -8496,7 +8557,7 @@ "id" ] }, - "Assistants.RunStepToolCallDetails": { + "RunStepToolCallDetails": { "type": "object", "description": "The detailed information associated with a run step calling tools.", "properties": { @@ -8504,7 +8565,7 @@ "type": "array", "description": "A list of tool call details for this run step.", "items": { - "$ref": "#/definitions/Assistants.RunStepToolCall" + "$ref": "#/definitions/RunStepToolCall" }, "x-ms-client-name": "toolCalls" } @@ -8514,12 +8575,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.RunStepDetails" + "$ref": "#/definitions/RunStepDetails" } ], "x-ms-discriminator-value": "tool_calls" }, - "Assistants.RunStepType": { + "RunStepType": { "type": "string", "description": "The possible types of run steps.", "enum": [ @@ -8543,7 +8604,7 @@ ] } }, - "Assistants.RunStreamEvent": { + "RunStreamEvent": { "type": "string", "description": "Run operation related streaming events", "enum": [ @@ -8615,12 +8676,12 @@ ] } }, - "Assistants.SharepointToolDefinition": { + "SharepointToolDefinition": { "type": "object", "description": "The input definition information for a sharepoint tool as used to configure an agent.", "properties": { "sharepoint_grounding": { - "$ref": "#/definitions/Assistants.ToolConnectionList", + "$ref": "#/definitions/ToolConnectionList", "description": "The list of connections used by the SharePoint tool." } }, @@ -8629,17 +8690,17 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.ToolDefinition" + "$ref": "#/definitions/ToolDefinition" } ], "x-ms-discriminator-value": "sharepoint_grounding" }, - "Assistants.SubmitToolOutputsAction": { + "SubmitToolOutputsAction": { "type": "object", "description": "The details for required tool calls that must be submitted for an agent thread run to continue.", "properties": { "submit_tool_outputs": { - "$ref": "#/definitions/Assistants.SubmitToolOutputsDetails", + "$ref": "#/definitions/SubmitToolOutputsDetails", "description": "The details describing tools that should be called to submit tool outputs.", "x-ms-client-name": "submitToolOutputs" } @@ -8649,12 +8710,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.RequiredAction" + "$ref": "#/definitions/RequiredAction" } ], "x-ms-discriminator-value": "submit_tool_outputs" }, - "Assistants.SubmitToolOutputsDetails": { + "SubmitToolOutputsDetails": { "type": "object", "description": "The details describing tools that should be called to submit tool outputs.", "properties": { @@ -8662,7 +8723,7 @@ "type": "array", "description": "The list of tool calls that must be resolved for the agent thread run to continue.", "items": { - "$ref": "#/definitions/Assistants.RequiredToolCall" + "$ref": "#/definitions/RequiredToolCall" }, "x-ms-client-name": "toolCalls" } @@ -8671,7 +8732,7 @@ "tool_calls" ] }, - "Assistants.ThreadDeletionStatus": { + "ThreadDeletionStatus": { "type": "object", "description": "The status of a thread deletion operation.", "properties": { @@ -8700,7 +8761,7 @@ "object" ] }, - "Assistants.ThreadMessage": { + "ThreadMessage": { "type": "object", "description": "A single, existing message within an agent thread.", "properties": { @@ -8730,7 +8791,7 @@ "x-ms-client-name": "threadId" }, "status": { - "$ref": "#/definitions/Assistants.MessageStatus", + "$ref": "#/definitions/MessageStatus", "description": "The status of the message." }, "incomplete_details": { @@ -8739,7 +8800,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Assistants.MessageIncompleteDetails" + "$ref": "#/definitions/MessageIncompleteDetails" } ], "x-ms-client-name": "incompleteDetails" @@ -8759,14 +8820,14 @@ "x-ms-client-name": "incompleteAt" }, "role": { - "$ref": "#/definitions/Assistants.MessageRole", + "$ref": "#/definitions/MessageRole", "description": "The role associated with the agent thread message." }, "content": { "type": "array", "description": "The list of content items associated with the agent thread message.", "items": { - "$ref": "#/definitions/Assistants.MessageContent" + "$ref": "#/definitions/MessageContent" }, "x-ms-identifiers": [] }, @@ -8787,7 +8848,7 @@ "description": "A list of files attached to the message, and the tools they were added to.", "x-nullable": true, "items": { - "$ref": "#/definitions/Assistants.MessageAttachment" + "$ref": "#/definitions/MessageAttachment" }, "x-ms-identifiers": [] }, @@ -8817,12 +8878,12 @@ "metadata" ] }, - "Assistants.ThreadMessageOptions": { + "ThreadMessageOptions": { "type": "object", "description": "A single message within an agent thread, as provided during that thread's creation for its initial state.", "properties": { "role": { - "$ref": "#/definitions/Assistants.MessageRole", + "$ref": "#/definitions/MessageRole", "description": "The role of the entity that is creating the message. Allowed values include:\n- `user`: Indicates the message is sent by an actual user and should be used in most\ncases to represent user-generated messages.\n- `assistant`: Indicates the message is generated by the agent. Use this value to insert\nmessages from the agent into the\nconversation." }, "content": { @@ -8834,7 +8895,7 @@ "description": "A list of files attached to the message, and the tools they should be added to.", "x-nullable": true, "items": { - "$ref": "#/definitions/Assistants.MessageAttachment" + "$ref": "#/definitions/MessageAttachment" }, "x-ms-identifiers": [] }, @@ -8852,7 +8913,7 @@ "content" ] }, - "Assistants.ThreadRun": { + "ThreadRun": { "type": "object", "description": "Data representing a single evaluation run of an agent thread.", "properties": { @@ -8881,7 +8942,7 @@ "x-ms-client-name": "assistantId" }, "status": { - "$ref": "#/definitions/Assistants.RunStatus", + "$ref": "#/definitions/RunStatus", "description": "The status of the agent thread run." }, "required_action": { @@ -8890,7 +8951,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Assistants.RequiredAction" + "$ref": "#/definitions/RequiredAction" } ], "x-ms-client-name": "requiredAction" @@ -8901,7 +8962,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Assistants.RunError" + "$ref": "#/definitions/RunError" } ], "x-ms-client-name": "lastError" @@ -8919,7 +8980,7 @@ "description": "The overridden enabled tools used for this agent thread run.", "default": [], "items": { - "$ref": "#/definitions/Assistants.ToolDefinition" + "$ref": "#/definitions/ToolDefinition" }, "x-ms-identifiers": [] }, @@ -8970,7 +9031,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Assistants.IncompleteRunDetails" + "$ref": "#/definitions/IncompleteRunDetails" } ], "x-ms-client-name": "incompleteDetails" @@ -8981,7 +9042,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Assistants.RunCompletionUsage" + "$ref": "#/definitions/RunCompletionUsage" } ] }, @@ -9018,19 +9079,19 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Assistants.TruncationObject" + "$ref": "#/definitions/TruncationObject" } ], "x-ms-client-name": "truncationStrategy" }, "tool_choice": { - "$ref": "#/definitions/Assistants.AgentsApiToolChoiceOption", + "$ref": "#/definitions/AgentsApiToolChoiceOption", "description": "Controls whether or not and which tool is called by the model.", "x-nullable": true, "x-ms-client-name": "toolChoice" }, "response_format": { - "$ref": "#/definitions/Assistants.AgentsApiResponseFormatOption", + "$ref": "#/definitions/AgentsApiResponseFormatOption", "description": "The response format of the tool calls used in this run.", "x-nullable": true, "x-ms-client-name": "responseFormat" @@ -9049,7 +9110,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Assistants.UpdateToolResourcesOptions" + "$ref": "#/definitions/UpdateToolResourcesOptions" } ], "x-ms-client-name": "toolResources" @@ -9087,7 +9148,7 @@ "parallel_tool_calls" ] }, - "Assistants.ThreadStreamEvent": { + "ThreadStreamEvent": { "type": "string", "description": "Thread operation related streaming events", "enum": [ @@ -9105,7 +9166,7 @@ ] } }, - "Assistants.ToolConnection": { + "ToolConnection": { "type": "object", "description": "A connection resource.", "properties": { @@ -9119,7 +9180,7 @@ "connection_id" ] }, - "Assistants.ToolConnectionList": { + "ToolConnectionList": { "type": "object", "description": "A set of connection resources currently used by either the `bing_grounding`, `fabric_dataagent`, or `sharepoint_grounding` tools.", "properties": { @@ -9128,14 +9189,14 @@ "description": "The connections attached to this tool. There can be a maximum of 1 connection\nresource attached to the tool.", "maxItems": 1, "items": { - "$ref": "#/definitions/Assistants.ToolConnection" + "$ref": "#/definitions/ToolConnection" }, "x-ms-client-name": "connectionList", "x-ms-identifiers": [] } } }, - "Assistants.ToolDefinition": { + "ToolDefinition": { "type": "object", "description": "An abstract representation of an input tool definition that an agent can use.", "properties": { @@ -9149,7 +9210,7 @@ "type" ] }, - "Assistants.ToolOutput": { + "ToolOutput": { "type": "object", "description": "The data provided during a tool outputs submission to resolve pending tool calls and allow the model to continue.", "properties": { @@ -9164,28 +9225,28 @@ } } }, - "Assistants.ToolResources": { + "ToolResources": { "type": "object", "description": "A set of resources that are used by the agent's tools. The resources are specific to the type of\ntool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search`\ntool requires a list of vector store IDs.", "properties": { "code_interpreter": { - "$ref": "#/definitions/Assistants.CodeInterpreterToolResource", + "$ref": "#/definitions/CodeInterpreterToolResource", "description": "Resources to be used by the `code_interpreter` tool consisting of file IDs.", "x-ms-client-name": "codeInterpreter" }, "file_search": { - "$ref": "#/definitions/Assistants.FileSearchToolResource", + "$ref": "#/definitions/FileSearchToolResource", "description": "Resources to be used by the `file_search` tool consisting of vector store IDs.", "x-ms-client-name": "fileSearch" }, "azure_ai_search": { - "$ref": "#/definitions/Assistants.AzureAISearchResource", + "$ref": "#/definitions/AzureAISearchResource", "description": "Resources to be used by the `azure_ai_search` tool consisting of index IDs and names.", "x-ms-client-name": "azureAISearch" } } }, - "Assistants.TruncationObject": { + "TruncationObject": { "type": "object", "description": "Controls for how a thread will be truncated prior to the run. Use this to control the initial\ncontext window of the run.", "properties": { @@ -9226,7 +9287,7 @@ "type" ] }, - "Assistants.TruncationStrategy": { + "TruncationStrategy": { "type": "string", "description": "Possible truncation strategies for the thread.", "enum": [ @@ -9250,7 +9311,7 @@ ] } }, - "Assistants.UpdateAgentOptions": { + "UpdateAgentOptions": { "type": "object", "description": "The request details to use when modifying an existing agent.", "properties": { @@ -9278,12 +9339,12 @@ "description": "The modified collection of tools to enable for the agent.", "default": [], "items": { - "$ref": "#/definitions/Assistants.ToolDefinition" + "$ref": "#/definitions/ToolDefinition" }, "x-ms-identifiers": [] }, "tool_resources": { - "$ref": "#/definitions/Assistants.ToolResources", + "$ref": "#/definitions/ToolResources", "description": "A set of resources that are used by the agent's tools. The resources are specific to the type of tool. For example,\nthe `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs.", "x-ms-client-name": "toolResources" }, @@ -9303,7 +9364,7 @@ "x-ms-client-name": "topP" }, "response_format": { - "$ref": "#/definitions/Assistants.AgentsApiResponseFormatOption", + "$ref": "#/definitions/AgentsApiResponseFormatOption", "description": "The response format of the tool calls used by this agent.", "x-nullable": true, "x-ms-client-name": "responseFormat" @@ -9318,7 +9379,7 @@ } } }, - "Assistants.UpdateAgentThreadOptions": { + "UpdateAgentThreadOptions": { "type": "object", "description": "The details used to update an existing agent thread", "properties": { @@ -9328,7 +9389,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Assistants.ToolResources" + "$ref": "#/definitions/ToolResources" } ], "x-ms-client-name": "toolResources" @@ -9343,7 +9404,7 @@ } } }, - "Assistants.UpdateCodeInterpreterToolResourceOptions": { + "UpdateCodeInterpreterToolResourceOptions": { "type": "object", "description": "Request object to update `code_interpreted` tool resources.", "properties": { @@ -9358,7 +9419,7 @@ } } }, - "Assistants.UpdateFileSearchToolResourceOptions": { + "UpdateFileSearchToolResourceOptions": { "type": "object", "description": "Request object to update `file_search` tool resources.", "properties": { @@ -9373,28 +9434,28 @@ } } }, - "Assistants.UpdateToolResourcesOptions": { + "UpdateToolResourcesOptions": { "type": "object", "description": "Request object. A set of resources that are used by the agent's tools. The resources are specific to the type of tool.\nFor example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of\nvector store IDs.", "properties": { "code_interpreter": { - "$ref": "#/definitions/Assistants.UpdateCodeInterpreterToolResourceOptions", + "$ref": "#/definitions/UpdateCodeInterpreterToolResourceOptions", "description": "Overrides the list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files\nassociated with the tool.", "x-ms-client-name": "codeInterpreter" }, "file_search": { - "$ref": "#/definitions/Assistants.UpdateFileSearchToolResourceOptions", + "$ref": "#/definitions/UpdateFileSearchToolResourceOptions", "description": "Overrides the vector store attached to this agent. There can be a maximum of 1 vector store attached to the agent.", "x-ms-client-name": "fileSearch" }, "azure_ai_search": { - "$ref": "#/definitions/Assistants.AzureAISearchResource", + "$ref": "#/definitions/AzureAISearchResource", "description": "Overrides the resources to be used by the `azure_ai_search` tool consisting of index IDs and names.", "x-ms-client-name": "azureAISearch" } } }, - "Assistants.VectorStore": { + "VectorStore": { "type": "object", "description": "A vector store is a collection of processed files can be used by the `file_search` tool.", "properties": { @@ -9429,16 +9490,16 @@ "x-ms-client-name": "usageBytes" }, "file_counts": { - "$ref": "#/definitions/Assistants.VectorStoreFileCount", + "$ref": "#/definitions/VectorStoreFileCount", "description": "Files count grouped by status processed or being processed by this vector store.", "x-ms-client-name": "fileCounts" }, "status": { - "$ref": "#/definitions/Assistants.VectorStoreStatus", + "$ref": "#/definitions/VectorStoreStatus", "description": "The status of the vector store, which can be either `expired`, `in_progress`, or `completed`. A status of `completed` indicates that the vector store is ready for use." }, "expires_after": { - "$ref": "#/definitions/Assistants.VectorStoreExpirationPolicy", + "$ref": "#/definitions/VectorStoreExpirationPolicy", "description": "Details on when this vector store expires", "x-ms-client-name": "expiresAfter" }, @@ -9477,32 +9538,32 @@ "metadata" ] }, - "Assistants.VectorStoreAutoChunkingStrategyRequest": { + "VectorStoreAutoChunkingStrategyRequest": { "type": "object", "description": "The default strategy. This strategy currently uses a max_chunk_size_tokens of 800 and chunk_overlap_tokens of 400.", "allOf": [ { - "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyRequest" + "$ref": "#/definitions/VectorStoreChunkingStrategyRequest" } ], "x-ms-discriminator-value": "auto" }, - "Assistants.VectorStoreAutoChunkingStrategyResponse": { + "VectorStoreAutoChunkingStrategyResponse": { "type": "object", "description": "This is returned when the chunking strategy is unknown. Typically, this is because the file was indexed before the chunking_strategy concept was introduced in the API.", "allOf": [ { - "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyResponse" + "$ref": "#/definitions/VectorStoreChunkingStrategyResponse" } ], "x-ms-discriminator-value": "other" }, - "Assistants.VectorStoreChunkingStrategyRequest": { + "VectorStoreChunkingStrategyRequest": { "type": "object", "description": "An abstract representation of a vector store chunking strategy configuration.", "properties": { "type": { - "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyRequestType", + "$ref": "#/definitions/VectorStoreChunkingStrategyRequestType", "description": "The object type." } }, @@ -9511,7 +9572,7 @@ "type" ] }, - "Assistants.VectorStoreChunkingStrategyRequestType": { + "VectorStoreChunkingStrategyRequestType": { "type": "string", "description": "Type of chunking strategy", "enum": [ @@ -9533,12 +9594,12 @@ ] } }, - "Assistants.VectorStoreChunkingStrategyResponse": { + "VectorStoreChunkingStrategyResponse": { "type": "object", "description": "An abstract representation of a vector store chunking strategy configuration.", "properties": { "type": { - "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyResponseType", + "$ref": "#/definitions/VectorStoreChunkingStrategyResponseType", "description": "The object type." } }, @@ -9547,7 +9608,7 @@ "type" ] }, - "Assistants.VectorStoreChunkingStrategyResponseType": { + "VectorStoreChunkingStrategyResponseType": { "type": "string", "description": "Type of chunking strategy", "enum": [ @@ -9569,7 +9630,7 @@ ] } }, - "Assistants.VectorStoreConfiguration": { + "VectorStoreConfiguration": { "type": "object", "description": "Vector storage configuration is the list of data sources, used when multiple\nfiles can be used for the enterprise file search.", "properties": { @@ -9577,7 +9638,7 @@ "type": "array", "description": "Data sources", "items": { - "$ref": "#/definitions/Assistants.VectorStoreDataSource" + "$ref": "#/definitions/VectorStoreDataSource" }, "x-ms-client-name": "dataSources", "x-ms-identifiers": [] @@ -9587,7 +9648,7 @@ "data_sources" ] }, - "Assistants.VectorStoreConfigurations": { + "VectorStoreConfigurations": { "type": "object", "description": "The structure, containing the list of vector storage configurations i.e. the list of azure asset IDs.", "properties": { @@ -9597,7 +9658,7 @@ "x-ms-client-name": "storeName" }, "configuration": { - "$ref": "#/definitions/Assistants.VectorStoreConfiguration", + "$ref": "#/definitions/VectorStoreConfiguration", "description": "Configurations", "x-ms-client-name": "storeConfiguration" } @@ -9607,7 +9668,7 @@ "configuration" ] }, - "Assistants.VectorStoreDataSource": { + "VectorStoreDataSource": { "type": "object", "description": "The structure, containing Azure asset URI path and the asset type of the file used as a data source\nfor the enterprise file search.", "properties": { @@ -9617,7 +9678,7 @@ "x-ms-client-name": "assetIdentifier" }, "type": { - "$ref": "#/definitions/Assistants.VectorStoreDataSourceAssetType", + "$ref": "#/definitions/VectorStoreDataSourceAssetType", "description": "The asset type", "x-ms-client-name": "assetType" } @@ -9627,7 +9688,7 @@ "type" ] }, - "Assistants.VectorStoreDataSourceAssetType": { + "VectorStoreDataSourceAssetType": { "type": "string", "description": "Type of vector storage asset. Asset type may be a uri_asset, in this case it should contain asset URI ID,\nin the case of id_asset it should contain the data ID.", "enum": [ @@ -9651,7 +9712,7 @@ ] } }, - "Assistants.VectorStoreDeletionStatus": { + "VectorStoreDeletionStatus": { "type": "object", "description": "Response object for deleting a vector store.", "properties": { @@ -9680,12 +9741,12 @@ "object" ] }, - "Assistants.VectorStoreExpirationPolicy": { + "VectorStoreExpirationPolicy": { "type": "object", "description": "The expiration policy for a vector store.", "properties": { "anchor": { - "$ref": "#/definitions/Assistants.VectorStoreExpirationPolicyAnchor", + "$ref": "#/definitions/VectorStoreExpirationPolicyAnchor", "description": "Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`." }, "days": { @@ -9701,7 +9762,7 @@ "days" ] }, - "Assistants.VectorStoreExpirationPolicyAnchor": { + "VectorStoreExpirationPolicyAnchor": { "type": "string", "description": "Describes the relationship between the days and the expiration of this vector store", "enum": [ @@ -9719,7 +9780,7 @@ ] } }, - "Assistants.VectorStoreFile": { + "VectorStoreFile": { "type": "object", "description": "Description of a file attached to a vector store.", "properties": { @@ -9755,7 +9816,7 @@ "x-ms-client-name": "vectorStoreId" }, "status": { - "$ref": "#/definitions/Assistants.VectorStoreFileStatus", + "$ref": "#/definitions/VectorStoreFileStatus", "description": "The status of the vector store file, which can be either `in_progress`, `completed`, `cancelled`, or `failed`. The status `completed` indicates that the vector store file is ready for use." }, "last_error": { @@ -9764,13 +9825,13 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Assistants.VectorStoreFileError" + "$ref": "#/definitions/VectorStoreFileError" } ], "x-ms-client-name": "lastError" }, "chunking_strategy": { - "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyResponse", + "$ref": "#/definitions/VectorStoreChunkingStrategyResponse", "description": "The strategy used to chunk the file.", "x-ms-client-name": "chunkingStrategy" } @@ -9786,7 +9847,7 @@ "chunking_strategy" ] }, - "Assistants.VectorStoreFileBatch": { + "VectorStoreFileBatch": { "type": "object", "description": "A batch of files attached to a vector store.", "properties": { @@ -9816,11 +9877,11 @@ "x-ms-client-name": "vectorStoreId" }, "status": { - "$ref": "#/definitions/Assistants.VectorStoreFileBatchStatus", + "$ref": "#/definitions/VectorStoreFileBatchStatus", "description": "The status of the vector store files batch, which can be either `in_progress`, `completed`, `cancelled` or `failed`." }, "file_counts": { - "$ref": "#/definitions/Assistants.VectorStoreFileCount", + "$ref": "#/definitions/VectorStoreFileCount", "description": "Files count grouped by status processed or being processed by this vector store.", "x-ms-client-name": "fileCounts" } @@ -9834,7 +9895,7 @@ "file_counts" ] }, - "Assistants.VectorStoreFileBatchStatus": { + "VectorStoreFileBatchStatus": { "type": "string", "description": "The status of the vector store file batch.", "enum": [ @@ -9870,7 +9931,7 @@ ] } }, - "Assistants.VectorStoreFileCount": { + "VectorStoreFileCount": { "type": "object", "description": "Counts of files processed or being processed by this vector store grouped by status.", "properties": { @@ -9909,7 +9970,7 @@ "total" ] }, - "Assistants.VectorStoreFileDeletionStatus": { + "VectorStoreFileDeletionStatus": { "type": "object", "description": "Response object for deleting a vector store file relationship.", "properties": { @@ -9938,12 +9999,12 @@ "object" ] }, - "Assistants.VectorStoreFileError": { + "VectorStoreFileError": { "type": "object", "description": "Details on the error that may have occurred while processing a file for this vector store", "properties": { "code": { - "$ref": "#/definitions/Assistants.VectorStoreFileErrorCode", + "$ref": "#/definitions/VectorStoreFileErrorCode", "description": "One of `server_error` or `rate_limit_exceeded`." }, "message": { @@ -9956,7 +10017,7 @@ "message" ] }, - "Assistants.VectorStoreFileErrorCode": { + "VectorStoreFileErrorCode": { "type": "string", "description": "Error code variants for vector store file processing", "enum": [ @@ -9986,7 +10047,7 @@ ] } }, - "Assistants.VectorStoreFileStatus": { + "VectorStoreFileStatus": { "type": "string", "description": "Vector store file status", "enum": [ @@ -10022,7 +10083,7 @@ ] } }, - "Assistants.VectorStoreFileStatusFilter": { + "VectorStoreFileStatusFilter": { "type": "string", "description": "Query parameter filter for vector store file retrieval endpoint", "enum": [ @@ -10058,7 +10119,7 @@ ] } }, - "Assistants.VectorStoreOptions": { + "VectorStoreOptions": { "type": "object", "description": "Request object for creating a vector store.", "properties": { @@ -10076,17 +10137,17 @@ "description": "The name of the vector store." }, "configuration": { - "$ref": "#/definitions/Assistants.VectorStoreConfiguration", + "$ref": "#/definitions/VectorStoreConfiguration", "description": "The vector store configuration, used when vector store is created from Azure asset URIs.", "x-ms-client-name": "storeConfiguration" }, "expires_after": { - "$ref": "#/definitions/Assistants.VectorStoreExpirationPolicy", + "$ref": "#/definitions/VectorStoreExpirationPolicy", "description": "Details on when this vector store expires", "x-ms-client-name": "expiresAfter" }, "chunking_strategy": { - "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyRequest", + "$ref": "#/definitions/VectorStoreChunkingStrategyRequest", "description": "The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. Only applicable if file_ids is non-empty.", "x-ms-client-name": "chunkingStrategy" }, @@ -10100,7 +10161,7 @@ } } }, - "Assistants.VectorStoreStaticChunkingStrategyOptions": { + "VectorStoreStaticChunkingStrategyOptions": { "type": "object", "description": "Options to configure a vector store static chunking strategy.", "properties": { @@ -10124,12 +10185,12 @@ "chunk_overlap_tokens" ] }, - "Assistants.VectorStoreStaticChunkingStrategyRequest": { + "VectorStoreStaticChunkingStrategyRequest": { "type": "object", "description": "A statically configured chunking strategy.", "properties": { "static": { - "$ref": "#/definitions/Assistants.VectorStoreStaticChunkingStrategyOptions", + "$ref": "#/definitions/VectorStoreStaticChunkingStrategyOptions", "description": "The options for the static chunking strategy." } }, @@ -10138,17 +10199,17 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyRequest" + "$ref": "#/definitions/VectorStoreChunkingStrategyRequest" } ], "x-ms-discriminator-value": "static" }, - "Assistants.VectorStoreStaticChunkingStrategyResponse": { + "VectorStoreStaticChunkingStrategyResponse": { "type": "object", "description": "A statically configured chunking strategy.", "properties": { "static": { - "$ref": "#/definitions/Assistants.VectorStoreStaticChunkingStrategyOptions", + "$ref": "#/definitions/VectorStoreStaticChunkingStrategyOptions", "description": "The options for the static chunking strategy." } }, @@ -10157,12 +10218,12 @@ ], "allOf": [ { - "$ref": "#/definitions/Assistants.VectorStoreChunkingStrategyResponse" + "$ref": "#/definitions/VectorStoreChunkingStrategyResponse" } ], "x-ms-discriminator-value": "static" }, - "Assistants.VectorStoreStatus": { + "VectorStoreStatus": { "type": "string", "description": "Vector store possible status", "enum": [ @@ -10192,7 +10253,7 @@ ] } }, - "Assistants.VectorStoreUpdateOptions": { + "VectorStoreUpdateOptions": { "type": "object", "description": "Request object for updating a vector store.", "properties": { @@ -10207,7 +10268,7 @@ "x-nullable": true, "allOf": [ { - "$ref": "#/definitions/Assistants.VectorStoreExpirationPolicy" + "$ref": "#/definitions/VectorStoreExpirationPolicy" } ], "x-ms-client-name": "expiresAfter" @@ -10221,39 +10282,14 @@ } } } - }, - "AssistantsApiResponseFormat": { - "type": "object", - "description": "An object describing the expected output of the model. If `json_object` only `function` type `tools` are allowed to be passed to the Run. If `text` the model can return text or any value needed.", - "properties": { - "type": { - "type": "string", - "description": "Must be one of `text` or `json_object`.", - "default": "text", - "enum": [ - "text", - "json_object" - ], - "x-ms-enum": { - "name": "ApiResponseFormat", - "modelAsString": true, - "values": [ - { - "name": "text", - "value": "text", - "description": "`text` format should be used for requests involving any sort of ToolCall." - }, - { - "name": "jsonObject", - "value": "json_object", - "description": "Using `json_object` format will limit the usage of ToolCall to only functions." - } - ] - } - } - } - }, - "AssistantsApiResponseFormatMode": { + } + }, + "parameters": { + "Azure.Core.Foundations.ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, "type": "string", "description": "Represents the mode in which the model will handle the return format of a tool call.", "enum": [ @@ -11839,7 +11875,7 @@ "type": "string", "x-ms-parameter-location": "method" }, - "Assistants.GetAgentOptions": { + "GetAgentOptions": { "name": "assistantId", "in": "path", "description": "Identifier of the agent.", @@ -11847,7 +11883,7 @@ "type": "string", "x-ms-parameter-location": "method" }, - "Assistants.UpdateAgentOptions.assistantId": { + "UpdateAgentOptions.assistantId": { "name": "assistantId", "in": "path", "description": "The ID of the agent to modify.", @@ -11855,80 +11891,13 @@ "type": "string", "x-ms-parameter-location": "method" }, - "Assistants.UpdateAgentThreadOptions.threadId": { + "UpdateAgentThreadOptions.threadId": { "name": "threadId", "in": "path", "description": "The ID of the thread to modify.", "required": true, "type": "string", "x-ms-parameter-location": "method" - }, - "Azure.Core.ClientRequestIdHeader": { - "name": "x-ms-client-request-id", - "in": "header", - "description": "An opaque, globally-unique, client-generated string identifier for the request.", - "required": false, - "type": "string", - "format": "uuid", - "x-ms-parameter-location": "method", - "x-ms-client-name": "clientRequestId" - }, - "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" - }, - "Azure.Core.MaxPageSizeQueryParameter": { - "name": "maxpagesize", - "in": "query", - "description": "The maximum number of result items per page.", - "required": false, - "type": "integer", - "format": "int32", - "x-ms-parameter-location": "method" - }, - "Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent": { - "name": "Repeatability-First-Sent", - "in": "header", - "description": "Specifies the date and time at which the request was first created.", - "required": false, - "type": "string", - "format": "date-time", - "x-ms-parameter-location": "method", - "x-ms-client-name": "repeatabilityFirstSent" - }, - "Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId": { - "name": "Repeatability-Request-ID", - "in": "header", - "description": "An opaque, globally-unique, client-generated string identifier for the request.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "repeatabilityRequestId" - }, - "Azure.Core.SkipQueryParameter": { - "name": "skip", - "in": "query", - "description": "The number of result items to skip.", - "required": false, - "type": "integer", - "format": "int32", - "default": 0, - "x-ms-parameter-location": "method" - }, - "Azure.Core.TopQueryParameter": { - "name": "top", - "in": "query", - "description": "The number of result items to return.", - "required": false, - "type": "integer", - "format": "int32", - "x-ms-parameter-location": "method" } } } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json new file mode 100644 index 000000000000..57e922a516c4 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -0,0 +1,3721 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure AI", + "version": "2025-05-15-preview", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "x-ms-parameterized-host": { + "hostTemplate": "{endpoint}", + "useSchemePrefix": false, + "parameters": [ + { + "name": "endpoint", + "in": "path", + "description": "Project endpoint in the form of: https://.services.ai.azure.com/api/projects/", + "required": true, + "type": "string", + "format": "uri", + "x-ms-skip-url-encoding": true + } + ] + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "OAuth2Auth": [ + "https://cognitiveservices.azure.com/.default" + ] + } + ], + "securityDefinitions": { + "OAuth2Auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", + "scopes": { + "https://cognitiveservices.azure.com/.default": "" + } + } + }, + "tags": [], + "paths": { + "/connections": { + "get": { + "operationId": "Connections_List", + "description": "List all connections in the project", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "connectionType", + "in": "query", + "description": "Specific type of connection to return in list", + "required": false, + "type": "string", + "enum": [ + "AzureOpenAI", + "AzureBlob", + "CognitiveSearch", + "CosmosDB", + "ApiKey", + "AppInsights", + "CustomKeys" + ], + "x-ms-enum": { + "name": "ConnectionType", + "modelAsString": true, + "values": [ + { + "name": "AzureOpenAI", + "value": "AzureOpenAI", + "description": "Azure OpenAI Service" + }, + { + "name": "AzureBlobStorage", + "value": "AzureBlob", + "description": "Azure Blob Storage" + }, + { + "name": "AzureAISearch", + "value": "CognitiveSearch", + "description": "Azure AI Search" + }, + { + "name": "CosmosDB", + "value": "CosmosDB", + "description": "CosmosDB" + }, + { + "name": "APIKey", + "value": "ApiKey", + "description": "Generic connection that uses API Key authentication" + }, + { + "name": "ApplicationInsights", + "value": "AppInsights", + "description": "Application Insights" + }, + { + "name": "Custom", + "value": "CustomKeys", + "description": "Custom Keys" + } + ] + } + }, + { + "$ref": "#/parameters/Azure.Core.TopQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.SkipQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedConnection" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/connections/{name}": { + "get": { + "operationId": "Connections_Get", + "description": "Get a connection by name.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Connection" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/datasets": { + "get": { + "operationId": "Datasets_ListLatest", + "description": "List the latest version of each DatasetVersion", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "top", + "in": "query", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "skip", + "in": "query", + "description": "Continuation token for pagination.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", + "required": false, + "type": "string" + }, + { + "name": "listViewType", + "in": "query", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedDatasetVersion" + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/datasets/{name}/startPendingUpload": { + "post": { + "operationId": "Datasets_StartPendingUpload", + "description": "Create or start a pending upload of a dataset. The version id will be generated by the service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "Parameters for the action", + "required": true, + "schema": { + "$ref": "#/definitions/PendingUploadRequest" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PendingUploadResponse" + } + }, + "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." + } + } + } + } + } + }, + "/datasets/{name}/versions": { + "get": { + "operationId": "Datasets_ListVersions", + "description": "List all versions of the given DatasetVersion", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "top", + "in": "query", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "skip", + "in": "query", + "description": "Continuation token for pagination.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", + "required": false, + "type": "string" + }, + { + "name": "listViewType", + "in": "query", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedDatasetVersion" + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + }, + "post": { + "operationId": "Datasets_Create", + "description": "Create a new DatasetVersion. The version id will be generated by the service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the DatasetVersion to create", + "required": true, + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + }, + "headers": { + "Repeatability-Result": { + "type": "string", + "description": "Indicates whether the repeatable request was accepted or rejected.", + "enum": [ + "accepted", + "rejected" + ], + "x-ms-enum": { + "name": "RepeatabilityResult", + "modelAsString": false, + "values": [ + { + "name": "accepted", + "value": "accepted", + "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." + }, + { + "name": "rejected", + "value": "rejected", + "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/datasets/{name}/versions/{version}": { + "get": { + "operationId": "Datasets_GetVersion", + "description": "Get the specific version of the DatasetVersion", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the DatasetVersion to retrieve.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + }, + "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." + } + } + } + } + }, + "put": { + "operationId": "Datasets_CreateVersion", + "description": "Create a new or replace an existing DatasetVersion with the given version id", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the DatasetVersion to create or replace.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the DatasetVersion to create", + "required": true, + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + }, + "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." + } + } + } + } + }, + "delete": { + "operationId": "Datasets_DeleteVersion", + "description": "Delete the specific version of the DatasetVersion", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The version of the DatasetVersion to delete.", + "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." + } + } + } + } + } + }, + "/datasets/{name}/versions/{version}/startPendingUploadVersion": { + "post": { + "operationId": "Datasets_StartPendingUploadVersion", + "description": "Create or start a pending upload of a dataset for a specific version.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the DatasetVersion to operate on.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "Parameters for the action", + "required": true, + "schema": { + "$ref": "#/definitions/PendingUploadRequest" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PendingUploadResponse" + } + }, + "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." + } + } + } + } + } + }, + "/deployments": { + "get": { + "operationId": "Deployments_List", + "description": "List all deployed models in the project", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "modelPublisher", + "in": "query", + "description": "Model publisher to filter models by", + "required": false, + "type": "string" + }, + { + "name": "modelName", + "in": "query", + "description": "Model name (the publisher specific name) to filter models by", + "required": false, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.TopQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.SkipQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedDeployment" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deployments/{name}": { + "get": { + "operationId": "Deployments_Get", + "description": "Get a deployed model.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "Name of the deployment", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Deployment" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/evaluationResults": { + "get": { + "operationId": "EvaluationResults_ListLatest", + "description": "List the latest version of each EvaluationResult", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "top", + "in": "query", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "skip", + "in": "query", + "description": "Continuation token for pagination.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", + "required": false, + "type": "string" + }, + { + "name": "listViewType", + "in": "query", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedEvaluationResult" + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/evaluationResults/{name}/versions": { + "get": { + "operationId": "EvaluationResults_ListVersions", + "description": "List all versions of the given EvaluationResult", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "top", + "in": "query", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "skip", + "in": "query", + "description": "Continuation token for pagination.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", + "required": false, + "type": "string" + }, + { + "name": "listViewType", + "in": "query", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedEvaluationResult" + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + }, + "post": { + "operationId": "EvaluationResults_Create", + "description": "Create a new EvaluationResult. The version id will be generated by the service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the EvaluationResult to create", + "required": true, + "schema": { + "$ref": "#/definitions/EvaluationResult" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/EvaluationResult" + }, + "headers": { + "Repeatability-Result": { + "type": "string", + "description": "Indicates whether the repeatable request was accepted or rejected.", + "enum": [ + "accepted", + "rejected" + ], + "x-ms-enum": { + "name": "RepeatabilityResult", + "modelAsString": false, + "values": [ + { + "name": "accepted", + "value": "accepted", + "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." + }, + { + "name": "rejected", + "value": "rejected", + "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/evaluationResults/{name}/versions/{version}": { + "get": { + "operationId": "EvaluationResults_GetVersion", + "description": "Get the specific version of the EvaluationResult", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the EvaluationResult to retrieve.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/EvaluationResult" + } + }, + "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." + } + } + } + } + }, + "put": { + "operationId": "EvaluationResults_CreateVersion", + "description": "Create a new or replace an existing EvaluationResult with the given version id", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the EvaluationResult to create or replace.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the EvaluationResult to create", + "required": true, + "schema": { + "$ref": "#/definitions/EvaluationResult" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/EvaluationResult" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/EvaluationResult" + } + }, + "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." + } + } + } + } + }, + "delete": { + "operationId": "EvaluationResults_DeleteVersion", + "description": "Delete the specific version of the EvaluationResult", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The version of the EvaluationResult to delete.", + "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." + } + } + } + } + } + }, + "/evaluationResults/{name}/versions/{version}/startPendingUpload": { + "post": { + "operationId": "EvaluationResults_StartPendingUpload", + "description": "Create or start a pending upload of a evaluation results for a specific version.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the EvaluationResult to operate on.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "Parameters for the action", + "required": true, + "schema": { + "$ref": "#/definitions/PendingUploadRequest" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PendingUploadResponse" + } + }, + "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." + } + } + } + } + } + }, + "/evaluations/runs": { + "get": { + "operationId": "Evaluations_List", + "description": "List evaluation runs", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.TopQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.SkipQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedEvaluation" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/evaluations/runs/{name}": { + "get": { + "operationId": "Evaluations_Get", + "description": "Get an evaluation run by name.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "Identifier of the evaluation.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Evaluation" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/evaluations/runs:run": { + "post": { + "operationId": "Evaluations_CreateRun", + "description": "Creates an evaluation run.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "evaluation", + "in": "body", + "description": "Evaluation to be run", + "required": true, + "schema": { + "$ref": "#/definitions/Evaluation" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Evaluation" + } + }, + "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." + } + } + } + } + } + }, + "/indexes": { + "get": { + "operationId": "Indexes_ListLatest", + "description": "List the latest version of each Index", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "top", + "in": "query", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "skip", + "in": "query", + "description": "Continuation token for pagination.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", + "required": false, + "type": "string" + }, + { + "name": "listViewType", + "in": "query", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedIndex" + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/indexes/{name}/versions": { + "get": { + "operationId": "Indexes_ListVersions", + "description": "List all versions of the given Index", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "top", + "in": "query", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "skip", + "in": "query", + "description": "Continuation token for pagination.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", + "required": false, + "type": "string" + }, + { + "name": "listViewType", + "in": "query", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedIndex" + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + }, + "post": { + "operationId": "Indexes_Create", + "description": "Create a new Index. The version id will be generated by the service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the Index to create", + "required": true, + "schema": { + "$ref": "#/definitions/Index" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Index" + }, + "headers": { + "Repeatability-Result": { + "type": "string", + "description": "Indicates whether the repeatable request was accepted or rejected.", + "enum": [ + "accepted", + "rejected" + ], + "x-ms-enum": { + "name": "RepeatabilityResult", + "modelAsString": false, + "values": [ + { + "name": "accepted", + "value": "accepted", + "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." + }, + { + "name": "rejected", + "value": "rejected", + "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/indexes/{name}/versions/{version}": { + "get": { + "operationId": "Indexes_GetVersion", + "description": "Get the specific version of the Index", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the Index to retrieve.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "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." + } + } + } + } + }, + "put": { + "operationId": "Indexes_CreateVersion", + "description": "Create a new or replace an existing Index with the given version id", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the Index to create or replace.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the Index to create", + "required": true, + "schema": { + "$ref": "#/definitions/Index" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "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." + } + } + } + } + }, + "delete": { + "operationId": "Indexes_DeleteVersion", + "description": "Delete the specific version of the Index", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The version of the Index to delete.", + "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." + } + } + } + } + } + }, + "/redTeams/runs": { + "get": { + "operationId": "RedTeams_List", + "description": "List a redteam by name.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.TopQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.SkipQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedRedTeam" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/redTeams/runs/{name}": { + "get": { + "operationId": "RedTeams_Get", + "description": "Get a redteam by name.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "Identifier of the red team.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/RedTeam" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/redTeams/runs:run": { + "post": { + "operationId": "RedTeams_CreateRun", + "description": "Creates a redteam run.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "RedTeam", + "in": "body", + "description": "Redteam to be run", + "required": true, + "schema": { + "$ref": "#/definitions/RedTeam" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/RedTeam" + } + }, + "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." + } + } + } + } + } + } + }, + "definitions": { + "ApiResponseFormat": { + "type": "string", + "description": "Possible API response formats.", + "enum": [ + "text", + "json_object" + ], + "x-ms-enum": { + "name": "ApiResponseFormat", + "modelAsString": true, + "values": [ + { + "name": "text", + "value": "text", + "description": "`text` format should be used for requests involving any sort of ToolCall." + }, + { + "name": "jsonObject", + "value": "json_object", + "description": "Using `json_object` format will limit the usage of ToolCall to only functions." + } + ] + } + }, + "AssetReferenceBase": { + "type": "object", + "description": "Base definition for asset references.", + "properties": { + "referenceType": { + "$ref": "#/definitions/ReferenceType", + "description": "Asset reference type." + } + }, + "discriminator": "referenceType", + "required": [ + "referenceType" + ] + }, + "AssistantsApiResponseFormat": { + "type": "object", + "description": "An object describing the expected output of the model. If `json_object` only `function` type `tools` are allowed to be passed to the Run. If `text` the model can return text or any value needed.", + "properties": { + "type": { + "type": "string", + "description": "Must be one of `text` or `json_object`.", + "default": "text", + "enum": [ + "text", + "json_object" + ], + "x-ms-enum": { + "name": "ApiResponseFormat", + "modelAsString": true, + "values": [ + { + "name": "text", + "value": "text", + "description": "`text` format should be used for requests involving any sort of ToolCall." + }, + { + "name": "jsonObject", + "value": "json_object", + "description": "Using `json_object` format will limit the usage of ToolCall to only functions." + } + ] + } + } + } + }, + "AssistantsApiResponseFormatMode": { + "type": "string", + "description": "Represents the mode in which the model will handle the return format of a tool call.", + "enum": [ + "auto", + "none" + ], + "x-ms-enum": { + "name": "AssistantsApiResponseFormatMode", + "modelAsString": true, + "values": [ + { + "name": "auto", + "value": "auto", + "description": "Default value. Let the model handle the return format." + }, + { + "name": "none", + "value": "none", + "description": "Setting the value to `none`, will result in a 400 Bad request." + } + ] + } + }, + "AssistantsApiResponseFormatOption": {}, + "AttackStrategy": { + "type": "string", + "description": "Strategies for attacks.", + "enum": [ + "easy", + "ascii_art", + "ascii_smuggler", + "atbash", + "base64", + "binary", + "caesar", + "character_space", + "jailbreak" + ], + "x-ms-enum": { + "name": "AttackStrategy", + "modelAsString": true, + "values": [ + { + "name": "Easy", + "value": "easy", + "description": "Represents a default set of easy complexity attacks. Easy complexity attack strategies are defined as attacks that do not require any Large Language Model to convert or orchestrate." + }, + { + "name": "AsciiArt", + "value": "ascii_art", + "description": "Represents ASCII art, a graphic design technique that uses printable characters." + }, + { + "name": "AsciiSmuggler", + "value": "ascii_smuggler", + "description": "Represents ASCII smuggling, a technique for encoding or hiding data." + }, + { + "name": "Atbash", + "value": "atbash", + "description": "Represents the Atbash cipher, a substitution cipher that reverses the alphabet." + }, + { + "name": "Base64", + "value": "base64", + "description": "Represents Base64 encoding, a method for encoding binary data as text." + }, + { + "name": "Binary", + "value": "binary", + "description": "Represents binary encoding, a representation of data in binary format." + }, + { + "name": "Caesar", + "value": "caesar", + "description": "Represents the Caesar cipher, a substitution cipher that shifts characters." + }, + { + "name": "CharacterSpace", + "value": "character_space", + "description": "Represents character space manipulation, a technique involving spacing between characters." + }, + { + "name": "Jailbreak", + "value": "jailbreak", + "description": "Represents character swapping, a technique for rearranging characters in text." + } + ] + } + }, + "AuthenticationType": { + "type": "string", + "description": "The authentication type used by the connection", + "enum": [ + "ApiKey", + "AAD", + "SAS", + "CustomKeys", + "None" + ], + "x-ms-enum": { + "name": "AuthenticationType", + "modelAsString": true, + "values": [ + { + "name": "apiKey", + "value": "ApiKey", + "description": "API Key authentication" + }, + { + "name": "entraId", + "value": "AAD", + "description": "Entra ID authentication (formerly known as AAD)" + }, + { + "name": "SAS", + "value": "SAS", + "description": "Shared Access Signature (SAS) authentication" + }, + { + "name": "custom", + "value": "CustomKeys", + "description": "Custom authentication" + }, + { + "name": "None", + "value": "None", + "description": "No authentication" + } + ] + } + }, + "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" + }, + "x-ms-identifiers": [] + }, + "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 Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", + "properties": { + "code": { + "type": "string", + "description": "One of a server-defined set of error codes." + }, + "innererror": { + "$ref": "#/definitions/Azure.Core.Foundations.InnerError", + "description": "Inner error." + } + } + }, + "AzureAISearchIndex": { + "type": "object", + "description": "Azure AI Search Index Definition", + "properties": { + "connectionName": { + "type": "string", + "description": "Name of connection to Azure AI Search" + }, + "indexName": { + "type": "string", + "description": "Name of index in Azure AI Search resource to attach" + } + }, + "required": [ + "connectionName", + "indexName" + ], + "allOf": [ + { + "$ref": "#/definitions/Index" + } + ], + "x-ms-discriminator-value": "AzureSearch" + }, + "BlobReferenceForConsumption": { + "type": "object", + "description": "Represents a reference to a blob for consumption", + "properties": { + "blobUri": { + "type": "string", + "description": "Blob URI path for client to upload data. Example: https://blob.windows.core.net/Container/Path" + }, + "storageAccountArmId": { + "type": "string", + "description": "ARM ID of the storage account to use." + }, + "credential": { + "$ref": "#/definitions/SasCredential", + "description": "Credential info to access the storage account." + } + }, + "required": [ + "blobUri", + "storageAccountArmId", + "credential" + ] + }, + "Connection": { + "type": "object", + "description": "Response from the listSecrets operation", + "properties": { + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/ConnectionType", + "description": "Category of the connection", + "readOnly": true + }, + "target": { + "type": "string", + "description": "The connection URL to be used for this service", + "readOnly": true + }, + "authType": { + "$ref": "#/definitions/AuthenticationType", + "description": "The authentication type used by the connection", + "readOnly": true + }, + "metadata": { + "type": "object", + "description": "Metadata of the connection", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + } + }, + "required": [ + "name", + "type", + "target", + "authType", + "metadata" + ] + }, + "ConnectionType": { + "type": "string", + "description": "The Type (or category) of the connection", + "enum": [ + "AzureOpenAI", + "AzureBlob", + "CognitiveSearch", + "CosmosDB", + "ApiKey", + "AppInsights", + "CustomKeys" + ], + "x-ms-enum": { + "name": "ConnectionType", + "modelAsString": true, + "values": [ + { + "name": "AzureOpenAI", + "value": "AzureOpenAI", + "description": "Azure OpenAI Service" + }, + { + "name": "AzureBlobStorage", + "value": "AzureBlob", + "description": "Azure Blob Storage" + }, + { + "name": "AzureAISearch", + "value": "CognitiveSearch", + "description": "Azure AI Search" + }, + { + "name": "CosmosDB", + "value": "CosmosDB", + "description": "CosmosDB" + }, + { + "name": "APIKey", + "value": "ApiKey", + "description": "Generic connection that uses API Key authentication" + }, + { + "name": "ApplicationInsights", + "value": "AppInsights", + "description": "Application Insights" + }, + { + "name": "Custom", + "value": "CustomKeys", + "description": "Custom Keys" + } + ] + } + }, + "CosmosDBIndex": { + "type": "object", + "description": "CosmosDB Vector Store Index Definition", + "properties": { + "connectionName": { + "type": "string", + "description": "Name of connection to CosmosDB" + }, + "databaseName": { + "type": "string", + "description": "Name of the CosmosDB Database" + }, + "containerName": { + "type": "string", + "description": "Name of CosmosDB Container" + }, + "embeddingConfiguration": { + "$ref": "#/definitions/EmbeddingConfiguration", + "description": "Embedding model configuration" + } + }, + "required": [ + "connectionName", + "databaseName", + "containerName", + "embeddingConfiguration" + ], + "allOf": [ + { + "$ref": "#/definitions/Index" + } + ], + "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" + }, + "DataPathAssetReference": { + "type": "object", + "description": "Reference to an asset via its path in a datastore.", + "properties": { + "datastoreId": { + "type": "string", + "description": "ARM resource ID of the datastore where the asset is located." + }, + "path": { + "type": "string", + "description": "The path of the file/directory in the datastore." + } + }, + "allOf": [ + { + "$ref": "#/definitions/AssetReferenceBase" + } + ], + "x-ms-discriminator-value": "DataPath" + }, + "DatasetType": { + "type": "string", + "description": "Enum to determine the type of data.", + "enum": [ + "uri_file", + "uri_folder" + ], + "x-ms-enum": { + "name": "DatasetType", + "modelAsString": true, + "values": [ + { + "name": "uri_file", + "value": "uri_file", + "description": "URI file." + }, + { + "name": "uri_folder", + "value": "uri_folder", + "description": "URI folder." + } + ] + } + }, + "DatasetVersion": { + "type": "object", + "description": "DatasetVersion Definition", + "properties": { + "datasetUri": { + "type": "string", + "description": "[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330", + "minLength": 1, + "pattern": "[a-zA-Z0-9_]", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "type": { + "$ref": "#/definitions/DatasetType", + "description": "Dataset type" + }, + "isReference": { + "type": "boolean", + "description": "Indicates if dataset is reference only or managed by dataset service. If true, the underlying data will be deleted when the dataset version is deleted", + "readOnly": true + }, + "stage": { + "type": "string", + "description": "Asset stage", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "id": { + "type": "string", + "description": "A unique identifier for the asset, assetId probably?", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "version": { + "type": "string", + "description": "The version of the resource", + "readOnly": true + }, + "description": { + "type": "string", + "description": "The asset description text." + }, + "tags": { + "type": "object", + "description": "Tag dictionary. Tags can be added, removed, and updated.", + "additionalProperties": { + "type": "string" + } + } + }, + "discriminator": "type", + "required": [ + "datasetUri", + "type", + "name", + "version" + ] + }, + "Deployment": { + "type": "object", + "description": "Model Deployment Definition", + "properties": { + "type": { + "$ref": "#/definitions/DeploymentType", + "description": "The type of the deployment" + }, + "name": { + "type": "string", + "description": "Name of the deployment", + "readOnly": true + } + }, + "discriminator": "type", + "required": [ + "type", + "name" + ] + }, + "DeploymentType": { + "type": "string", + "enum": [ + "ModelDeployment" + ], + "x-ms-enum": { + "name": "DeploymentType", + "modelAsString": true, + "values": [ + { + "name": "ModelDeployment", + "value": "ModelDeployment", + "description": "Model deployment" + } + ] + } + }, + "EmbeddingConfiguration": { + "type": "object", + "description": "Embedding configuration class", + "properties": { + "modelDeploymentName": { + "type": "string", + "description": "Deployment name of embedding model. It can point to a model deployment either in the parent AIServices or a connection." + }, + "embeddingField": { + "type": "string", + "description": "Embedding field" + } + }, + "required": [ + "modelDeploymentName", + "embeddingField" + ] + }, + "Evaluation": { + "type": "object", + "description": "Evaluation Definition", + "properties": { + "id": { + "type": "string", + "description": "Identifier of the evaluation.", + "readOnly": true + }, + "data": { + "$ref": "#/definitions/InputData", + "description": "Data for evaluation." + }, + "displayName": { + "type": "string", + "description": "Display Name for evaluation. It helps to find the evaluation easily in AI Foundry. It does not need to be unique." + }, + "description": { + "type": "string", + "description": "Description of the evaluation. It can be used to store additional information about the evaluation and is mutable." + }, + "status": { + "type": "string", + "description": "Status of the evaluation. It is set by service and is read-only.", + "readOnly": true + }, + "tags": { + "type": "object", + "description": "Evaluation's tags. Unlike properties, tags are fully mutable.", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "type": "object", + "description": "Evaluation's properties. Unlike tags, properties are add-only. Once added, a property cannot be removed.", + "additionalProperties": { + "type": "string" + } + }, + "evaluators": { + "type": "object", + "description": "Evaluators to be used for the evaluation.", + "additionalProperties": { + "$ref": "#/definitions/EvaluatorConfiguration" + } + }, + "outputs": { + "type": "object", + "description": "Read-only result outputs. Example: { 'evaluationResultId': 'azureai://accounts/{AccountName}/projects/{myproject}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{myproject}/datasets/{dataset-name}/{dataset-version}' }", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + } + }, + "required": [ + "id", + "data", + "evaluators", + "outputs" + ] + }, + "EvaluationResult": { + "type": "object", + "description": "Evaluation Result resource Definition", + "properties": { + "ResultType": { + "$ref": "#/definitions/ResultType", + "description": "Type of Evaluation result" + }, + "ModelName": { + "type": "string", + "description": "Model Name" + }, + "ModelVersion": { + "type": "string", + "description": "Model Version" + }, + "ModelAssetId": { + "type": "string", + "description": "Model Asset ID" + }, + "DatasetFamily": { + "type": "string", + "description": "Dataset Family" + }, + "DatasetName": { + "type": "string", + "description": "Dataset Name" + }, + "Metrics": { + "type": "object", + "description": "Metrics", + "additionalProperties": { + "format": "double", + "type": "number" + } + }, + "BlobUri": { + "type": "string", + "description": "Blob URI" + }, + "stage": { + "type": "string", + "description": "Asset stage", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "id": { + "type": "string", + "description": "A unique identifier for the asset, assetId probably?", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "version": { + "type": "string", + "description": "The version of the resource", + "readOnly": true + }, + "description": { + "type": "string", + "description": "The asset description text." + }, + "tags": { + "type": "object", + "description": "Tag dictionary. Tags can be added, removed, and updated.", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "name", + "version" + ] + }, + "EvaluatorConfiguration": { + "type": "object", + "description": "Evaluator Configuration", + "properties": { + "id": { + "type": "string", + "description": "Identifier of the evaluator." + }, + "initParams": { + "type": "object", + "description": "Initialization parameters of the evaluator.", + "additionalProperties": {} + }, + "dataMapping": { + "type": "object", + "description": "Data parameters of the evaluator.", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id" + ] + }, + "ExtraParameters": { + "type": "string", + "description": "Controls what happens if extra parameters, undefined by the REST API, are passed in the JSON request payload.", + "enum": [ + "error", + "drop", + "pass-through" + ], + "x-ms-enum": { + "name": "ExtraParameters", + "modelAsString": true, + "values": [ + { + "name": "error", + "value": "error", + "description": "The service will error if it detected extra parameters in the request payload. This is the service default." + }, + { + "name": "drop", + "value": "drop", + "description": "The service will ignore (drop) extra parameters in the request payload. It will only pass the known parameters to the back-end AI model." + }, + { + "name": "pass_through", + "value": "pass-through", + "description": "The service will pass extra parameters to the back-end AI model." + } + ] + } + }, + "FileDatasetVersion": { + "type": "object", + "description": "FileDatasetVersion Definition", + "properties": { + "openAIPurpose": { + "type": "string", + "description": "Indicates OpenAI Purpose. FileDatasets created with this field will be compatible with OpenAI-specific features" + } + }, + "required": [ + "openAIPurpose" + ], + "allOf": [ + { + "$ref": "#/definitions/DatasetVersion" + } + ], + "x-ms-discriminator-value": "uri_file" + }, + "FolderDatasetVersion": { + "type": "object", + "description": "FileDatasetVersion Definition", + "allOf": [ + { + "$ref": "#/definitions/DatasetVersion" + } + ], + "x-ms-discriminator-value": "uri_folder" + }, + "IdAssetReference": { + "type": "object", + "description": "Reference to an asset via its ARM resource ID.", + "properties": { + "assetId": { + "type": "string", + "description": "[Required] ARM resource ID of the asset.", + "minLength": 1, + "pattern": "[a-zA-Z0-9_]" + } + }, + "required": [ + "assetId" + ], + "allOf": [ + { + "$ref": "#/definitions/AssetReferenceBase" + } + ], + "x-ms-discriminator-value": "Id" + }, + "Index": { + "type": "object", + "description": "Index resource Definition", + "properties": { + "type": { + "$ref": "#/definitions/IndexType", + "description": "Type of index" + }, + "stage": { + "type": "string", + "description": "Asset stage", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "id": { + "type": "string", + "description": "A unique identifier for the asset, assetId probably?", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "version": { + "type": "string", + "description": "The version of the resource", + "readOnly": true + }, + "description": { + "type": "string", + "description": "The asset description text." + }, + "tags": { + "type": "object", + "description": "Tag dictionary. Tags can be added, removed, and updated.", + "additionalProperties": { + "type": "string" + } + } + }, + "discriminator": "type", + "required": [ + "type", + "name", + "version" + ] + }, + "IndexType": { + "type": "string", + "enum": [ + "AzureSearch", + "CosmosDBNoSqlVectorStore", + "ManagedAzureSearch" + ], + "x-ms-enum": { + "name": "IndexType", + "modelAsString": true, + "values": [ + { + "name": "azureSearch", + "value": "AzureSearch", + "description": "Azure search" + }, + { + "name": "cosmosDB", + "value": "CosmosDBNoSqlVectorStore", + "description": "CosmosDB" + }, + { + "name": "managedAzureSearch", + "value": "ManagedAzureSearch", + "description": "Managed Azure Search" + } + ] + } + }, + "InputData": { + "type": "object", + "description": "Abstract data class.", + "properties": { + "type": { + "type": "string", + "description": "Type of the data" + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, + "InputDataset": { + "type": "object", + "description": "Dataset as source for evaluation.", + "properties": { + "id": { + "type": "string", + "description": "Evaluation input data" + } + }, + "required": [ + "id" + ], + "allOf": [ + { + "$ref": "#/definitions/InputData" + } + ], + "x-ms-discriminator-value": "dataset" + }, + "ListSortOrder": { + "type": "string", + "description": "The available sorting options when requesting a list of response objects.", + "enum": [ + "asc", + "desc" + ], + "x-ms-enum": { + "name": "ListSortOrder", + "modelAsString": true, + "values": [ + { + "name": "ascending", + "value": "asc", + "description": "Specifies an ascending sort order." + }, + { + "name": "descending", + "value": "desc", + "description": "Specifies a descending sort order." + } + ] + } + }, + "ListViewType": { + "type": "string", + "description": "List View Type Definition", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + }, + "ManagedAzureAISearchIndex": { + "type": "object", + "description": "Managed Azure AI Search Index Definition", + "properties": { + "vectorStoreId": { + "type": "string", + "description": "Vector store id of managed index" + } + }, + "required": [ + "vectorStoreId" + ], + "allOf": [ + { + "$ref": "#/definitions/Index" + } + ], + "x-ms-discriminator-value": "ManagedAzureSearch" + }, + "MessageRole": { + "type": "string", + "description": "The possible values for roles attributed to messages in a thread.", + "enum": [ + "user", + "assistant" + ], + "x-ms-enum": { + "name": "MessageRole", + "modelAsString": true, + "values": [ + { + "name": "user", + "value": "user", + "description": "The role representing the end-user." + }, + { + "name": "assistant", + "value": "assistant", + "description": "The role representing the assistant." + } + ] + } + }, + "ModelDeployment": { + "type": "object", + "description": "Model Deployment Definition", + "properties": { + "modelName": { + "type": "string", + "description": "Publisher-specific name of the deployed model", + "readOnly": true + }, + "modelVersion": { + "type": "string", + "description": "Publisher-specific version of the deployed model", + "readOnly": true + }, + "modelPublisher": { + "type": "string", + "description": "Name of the deployed model's publisher", + "readOnly": true + }, + "capabilities": { + "type": "object", + "description": "Capabilities of deployed model", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + }, + "sku": { + "$ref": "#/definitions/Sku", + "description": "Sku of the model deployment", + "readOnly": true + }, + "connectionName": { + "type": "string", + "description": "Name of the connection the deployment comes from", + "readOnly": true + } + }, + "required": [ + "modelName", + "modelVersion", + "modelPublisher", + "capabilities", + "sku" + ], + "allOf": [ + { + "$ref": "#/definitions/Deployment" + } + ], + "x-ms-discriminator-value": "ModelDeployment" + }, + "OutputPathAssetReference": { + "type": "object", + "description": "Reference to an asset via its path in a job output.", + "properties": { + "jobId": { + "type": "string", + "description": "ARM resource ID of the job." + }, + "path": { + "type": "string", + "description": "The path of the file/directory in the job output." + } + }, + "allOf": [ + { + "$ref": "#/definitions/AssetReferenceBase" + } + ], + "x-ms-discriminator-value": "OutputPath" + }, + "PagedConnection": { + "type": "object", + "description": "Paged collection of Connection items", + "properties": { + "value": { + "type": "array", + "description": "The Connection items on this page", + "items": { + "$ref": "#/definitions/Connection" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PagedDatasetVersion": { + "type": "object", + "description": "Paged collection of DatasetVersion items", + "properties": { + "value": { + "type": "array", + "description": "The DatasetVersion items on this page", + "items": { + "$ref": "#/definitions/DatasetVersion" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PagedDeployment": { + "type": "object", + "description": "Paged collection of Deployment items", + "properties": { + "value": { + "type": "array", + "description": "The Deployment items on this page", + "items": { + "$ref": "#/definitions/Deployment" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PagedEvaluation": { + "type": "object", + "description": "Paged collection of Evaluation items", + "properties": { + "value": { + "type": "array", + "description": "The Evaluation items on this page", + "items": { + "$ref": "#/definitions/Evaluation" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PagedEvaluationResult": { + "type": "object", + "description": "Paged collection of EvaluationResult items", + "properties": { + "value": { + "type": "array", + "description": "The EvaluationResult items on this page", + "items": { + "$ref": "#/definitions/EvaluationResult" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PagedIndex": { + "type": "object", + "description": "Paged collection of Index items", + "properties": { + "value": { + "type": "array", + "description": "The Index items on this page", + "items": { + "$ref": "#/definitions/Index" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PagedRedTeam": { + "type": "object", + "description": "Paged collection of RedTeam items", + "properties": { + "value": { + "type": "array", + "description": "The RedTeam items on this page", + "items": { + "$ref": "#/definitions/RedTeam" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PendingUploadCredentialType": { + "type": "string", + "description": "The type of credential used to access the storage account.", + "enum": [ + "SAS" + ], + "x-ms-enum": { + "name": "PendingUploadCredentialType", + "modelAsString": true, + "values": [ + { + "name": "sas", + "value": "SAS", + "description": "SAS credential type." + } + ] + } + }, + "PendingUploadRequest": { + "type": "object", + "description": "Represents a request for a pending upload.", + "properties": { + "pendingUploadId": { + "type": "string", + "description": "If PendingUploadId is not provided, a random GUID will be used." + }, + "connectionName": { + "type": "string", + "description": "Name of Azure blob storage connection to use for generating temporary SAS token" + }, + "pendingUploadType": { + "type": "string", + "description": "TemporaryBlobReference is the only supported type.", + "enum": [ + "TemporaryBlobReference" + ], + "x-ms-enum": { + "modelAsString": false + } + } + }, + "required": [ + "pendingUploadType" + ] + }, + "PendingUploadResponse": { + "type": "object", + "description": "Represents the response for a pending upload request", + "properties": { + "blobReferenceForConsumption": { + "$ref": "#/definitions/BlobReferenceForConsumption", + "description": "Container-level read, write, list SAS." + }, + "pendingUploadId": { + "type": "string", + "description": "ID for this upload request." + }, + "datasetVersion": { + "type": "string", + "description": "Version of dataset to be created if user did not specify version when initially creating upload" + }, + "pendingUploadType": { + "type": "string", + "description": "TemporaryBlobReference is the only supported type", + "enum": [ + "TemporaryBlobReference" + ], + "x-ms-enum": { + "modelAsString": false + } + } + }, + "required": [ + "blobReferenceForConsumption", + "pendingUploadId", + "pendingUploadType" + ] + }, + "PendingUploadType": { + "type": "string", + "description": "The type of pending upload.", + "enum": [ + "None", + "TemporaryBlobReference" + ], + "x-ms-enum": { + "name": "PendingUploadType", + "modelAsString": true, + "values": [ + { + "name": "none", + "value": "None", + "description": "No pending upload." + }, + { + "name": "temporaryBlobReference", + "value": "TemporaryBlobReference", + "description": "Temporary Blob Reference is the only supported type." + } + ] + } + }, + "RedTeam": { + "type": "object", + "description": "Red team details.", + "properties": { + "id": { + "type": "string", + "description": "Identifier of the red team.", + "readOnly": true + }, + "scanName": { + "type": "string", + "description": "Name of the red-team scan." + }, + "numTurns": { + "type": "integer", + "format": "int32", + "description": "Number of simulation rounds." + }, + "attackStrategy": { + "type": "array", + "description": "List of attack strategies or nested lists of attack strategies.", + "items": { + "$ref": "#/definitions/AttackStrategy" + } + }, + "simulationOnly": { + "type": "boolean", + "description": "Simulation-only or Simulation + Evaluation. Default false, if true the scan outputs conversation not evaluation result." + }, + "outputs": { + "type": "object", + "description": "Read-only result outputs. Example: { 'redTeamResultId': 'azureai://accounts/{AccountName}/projects/{myproject}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{myproject}/datasets/{dataset-name}/{dataset-version}' }", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + }, + "riskCategories": { + "type": "array", + "description": "List of risk categories to generate attack objectives for.", + "items": { + "$ref": "#/definitions/RiskCategory" + } + }, + "applicationScenario": { + "type": "string", + "description": "Application scenario for the red team operation, to generate scenario specific attacks." + }, + "tags": { + "type": "object", + "description": "Red team's tags. Unlike properties, tags are fully mutable.", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "type": "object", + "description": "Red team's properties. Unlike tags, properties are add-only. Once added, a property cannot be removed.", + "additionalProperties": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the red-team. It is set by service and is read-only.", + "readOnly": true + } + }, + "required": [ + "id", + "scanName", + "numTurns", + "attackStrategy", + "simulationOnly", + "outputs", + "riskCategories" + ] + }, + "ReferenceType": { + "type": "string", + "description": "Enum to determine which reference method to use for an asset.", + "enum": [ + "Id", + "DataPath", + "OutputPath" + ], + "x-ms-enum": { + "name": "ReferenceType", + "modelAsString": true, + "values": [ + { + "name": "Id", + "value": "Id", + "description": "Id" + }, + { + "name": "DataPath", + "value": "DataPath", + "description": "DataPath" + }, + { + "name": "OutputPath", + "value": "OutputPath", + "description": "OutputPath" + } + ] + } + }, + "ResultType": { + "type": "string", + "description": "Type of Evaluation result", + "enum": [ + "Benchmark", + "Evaluation", + "Redteam", + "Simulation" + ], + "x-ms-enum": { + "name": "ResultType", + "modelAsString": true, + "values": [ + { + "name": "Benchmark", + "value": "Benchmark", + "description": "Benchmark result" + }, + { + "name": "Evaluation", + "value": "Evaluation", + "description": "Evaluations Result" + }, + { + "name": "Redteam", + "value": "Redteam", + "description": "Red Team Result" + }, + { + "name": "Simulation", + "value": "Simulation", + "description": "Simulation Result" + } + ] + } + }, + "RiskCategory": { + "type": "string", + "description": "Risk category for the attack objective.", + "enum": [ + "HateUnfairness", + "Violence", + "Sexual", + "SelfHarm", + "ProtectedMaterial", + "CodeVulnerability", + "UngroundedAttributes" + ], + "x-ms-enum": { + "name": "RiskCategory", + "modelAsString": true, + "values": [ + { + "name": "HateUnfairness", + "value": "HateUnfairness", + "description": "Represents content related to hate or unfairness." + }, + { + "name": "Violence", + "value": "Violence", + "description": "Represents content related to violence." + }, + { + "name": "Sexual", + "value": "Sexual", + "description": "Represents content of a sexual nature." + }, + { + "name": "SelfHarm", + "value": "SelfHarm", + "description": "Represents content related to self-harm." + }, + { + "name": "ProtectedMaterial", + "value": "ProtectedMaterial", + "description": "Represents content involving protected material." + }, + { + "name": "CodeVulnerability", + "value": "CodeVulnerability", + "description": "Represents content related to code vulnerabilities." + }, + { + "name": "UngroundedAttributes", + "value": "UngroundedAttributes", + "description": "Represents content with ungrounded attributes." + } + ] + } + }, + "SasCredential": { + "type": "object", + "description": "SAS Credential definition", + "properties": { + "sasUri": { + "type": "string", + "description": "SAS uri", + "readOnly": true + }, + "type": { + "type": "string", + "description": "Type of credential", + "enum": [ + "SAS" + ], + "x-ms-enum": { + "modelAsString": false + }, + "readOnly": true + } + }, + "required": [ + "sasUri", + "type" + ] + }, + "Sku": { + "type": "object", + "description": "Sku information", + "properties": { + "capacity": { + "type": "integer", + "format": "int64", + "description": "Sku capacity" + }, + "family": { + "type": "string", + "description": "Sku family" + }, + "name": { + "type": "string", + "description": "Sku name" + }, + "size": { + "type": "string", + "description": "Sku size" + }, + "tier": { + "type": "string", + "description": "Sku tier" + } + }, + "required": [ + "capacity", + "family", + "name", + "size", + "tier" + ] + } + }, + "parameters": { + "Azure.Core.ClientRequestIdHeader": { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "method", + "x-ms-client-name": "clientRequestId" + }, + "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" + }, + "Azure.Core.MaxPageSizeQueryParameter": { + "name": "maxpagesize", + "in": "query", + "description": "The maximum number of result items per page.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-parameter-location": "method" + }, + "Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent": { + "name": "Repeatability-First-Sent", + "in": "header", + "description": "Specifies the date and time at which the request was first created.", + "required": false, + "type": "string", + "format": "date-time", + "x-ms-parameter-location": "method", + "x-ms-client-name": "repeatabilityFirstSent" + }, + "Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId": { + "name": "Repeatability-Request-ID", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "repeatabilityRequestId" + }, + "Azure.Core.SkipQueryParameter": { + "name": "skip", + "in": "query", + "description": "The number of result items to skip.", + "required": false, + "type": "integer", + "format": "int32", + "default": 0, + "x-ms-parameter-location": "method" + }, + "Azure.Core.TopQueryParameter": { + "name": "top", + "in": "query", + "description": "The number of result items to return.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-parameter-location": "method" + } + } +} From 146de83bbf88ee10272170163b0449ce782a3433 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Mon, 31 Mar 2025 16:01:01 -0700 Subject: [PATCH 087/143] Remove Azure.AI.Assistant TypeSpec from this branch --- .../ai/Azure.AI.Assistants/client.tsp | 303 - .../ai/Azure.AI.Assistants/common/models.tsp | 176 - .../ai/Azure.AI.Assistants/files/main.tsp | 0 .../ai/Azure.AI.Assistants/files/models.tsp | 121 - .../ai/Azure.AI.Assistants/files/routes.tsp | 125 - specification/ai/Azure.AI.Assistants/main.tsp | 54 - .../Azure.AI.Assistants/messages/models.tsp | 472 - .../Azure.AI.Assistants/messages/routes.tsp | 119 - .../ai/Azure.AI.Assistants/models.tsp | 218 - .../ai/Azure.AI.Assistants/routes.tsp | 113 - .../Azure.AI.Assistants/run_steps/models.tsp | 351 - .../Azure.AI.Assistants/run_steps/routes.tsp | 85 - .../ai/Azure.AI.Assistants/runs/models.tsp | 482 - .../ai/Azure.AI.Assistants/runs/routes.tsp | 205 - .../Azure.AI.Assistants/streaming/events.tsp | 139 - .../ai/Azure.AI.Assistants/threads/models.tsp | 78 - .../ai/Azure.AI.Assistants/threads/routes.tsp | 95 - .../ai/Azure.AI.Assistants/tools/models.tsp | 610 - .../tools/tool_resources.tsp | 264 - .../ai/Azure.AI.Assistants/tspconfig.yaml | 41 - .../vector_stores/common/main.tsp | 143 - .../vector_stores/file_batches/models.tsp | 45 - .../vector_stores/file_batches/routes.tsp | 122 - .../vector_stores/files/models.tsp | 106 - .../vector_stores/files/routes.tsp | 114 - .../vector_stores/main.tsp | 6 - .../vector_stores/models.tsp | 161 - .../vector_stores/routes.tsp | 105 - .../stable/latest/azure-ai-assistants.json | 11903 ---------------- 29 files changed, 16756 deletions(-) delete mode 100644 specification/ai/Azure.AI.Assistants/client.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/common/models.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/files/main.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/files/models.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/files/routes.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/main.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/messages/models.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/messages/routes.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/models.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/routes.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/run_steps/models.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/run_steps/routes.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/runs/models.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/runs/routes.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/streaming/events.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/threads/models.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/threads/routes.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/tools/models.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/tools/tool_resources.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/tspconfig.yaml delete mode 100644 specification/ai/Azure.AI.Assistants/vector_stores/common/main.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/vector_stores/file_batches/models.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/vector_stores/file_batches/routes.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/vector_stores/files/models.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/vector_stores/files/routes.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/vector_stores/main.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/vector_stores/models.tsp delete mode 100644 specification/ai/Azure.AI.Assistants/vector_stores/routes.tsp delete mode 100644 specification/ai/data-plane/Azure.AI.Assistants/stable/latest/azure-ai-assistants.json diff --git a/specification/ai/Azure.AI.Assistants/client.tsp b/specification/ai/Azure.AI.Assistants/client.tsp deleted file mode 100644 index b668f7b4e31b..000000000000 --- a/specification/ai/Azure.AI.Assistants/client.tsp +++ /dev/null @@ -1,303 +0,0 @@ -import "@azure-tools/typespec-client-generator-core"; -import "./main.tsp"; - -using Azure.ClientGenerator.Core; - -@@clientName(Azure.AI.Assistants, "AIAssistantClient"); - -namespace Azure.AI.Assistants { - // Trivial response value containers should treat these containers as internal details and instead surface a shimmed - // operation that exposes the underlying data directly. - @@clientName(AgentDeletionStatus, "InternalAgentDeletionStatus", "csharp"); - @@access(deleteAgent, Access.internal, "csharp"); - @@clientName(deleteAgent, "InternalDeleteAgent", "csharp"); - @@access(deleteThread, Access.internal, "csharp"); - @@clientName(deleteThread, "InternalDeleteThread", "csharp"); - @@access(listAgents, Access.internal, "csharp"); - @@clientName(listAgents, "InternalGetAgents", "csharp"); - @@access(listRunSteps, Access.internal, "csharp"); - @@clientName(listRunSteps, "InternalGetRunSteps", "csharp"); - @@access(listMessages, Access.internal, "csharp"); - @@clientName(listMessages, "InternalGetMessages", "csharp"); - @@access(listRuns, Access.internal, "csharp"); - @@clientName(listRuns, "InternalGetRuns", "csharp"); - @@access(FileListResponse, Access.internal, "csharp"); - @@clientName(FileListResponse, "InternalFileListResponse", "csharp"); - @@access(listFiles, Access.internal, "csharp"); - @@clientName(listFiles, "InternalListFiles", "csharp"); - @@access(FileDeletionStatus, Access.internal, "csharp"); - @@clientName(FileDeletionStatus, "InternalFileDeletionStatus", "csharp"); - @@access(deleteFile, Access.internal, "csharp"); - @@clientName(deleteFile, "InternalDeleteFile", "csharp"); - - // In addition to top-level response value containers, trivial intermediate structure -- levels of single-use model - // hierarchy that don't convey explanatory or functional benefit to consumers of the surface -- should also be - // internalized and merged into the more useful top-level type. - - // FunctionToolDefinition: merge FunctionDefinition structure to recast e.g. toolDefinition.function.name into - // toolDefinition.name - - @@access(FunctionDefinition, Access.internal); - @@clientName(FunctionDefinition, "InternalFunctionDefinition", "csharp"); - @@clientName(FunctionToolDefinition.function, "InternalFunction", "csharp"); - - // Make AzureFunctionDefinition internal in C#. - @@access(AzureFunctionDefinition, Access.internal); - @@clientName(AzureFunctionDefinition, - "InternalAzureFunctionDefinition", - "csharp" - ); - @@clientName(AzureFunctionToolDefinition.azureFunction, - "InternalAzureFunction", - "csharp" - ); - @@access(AzureFunctionBinding, Access.public); - - // SubmitToolOutputsAction: include .tool_calls directly rather than via an intermediate .details. - - @@access(SubmitToolOutputsDetails, Access.internal); - @@clientName(SubmitToolOutputsDetails, - "InternalSubmitToolOutputsDetails", - "csharp" - ); - @@clientName(SubmitToolOutputsAction.submitToolOutputs, - "InternalDetails", - "csharp" - ); - - // RequiredFunctionToolCall, RunStepFunctionToolCall: include name/arguments/output directly - - @@access(RunStepFunctionToolCallDetails, Access.internal); - @@clientName(RunStepFunctionToolCallDetails, - "InternalRunStepFunctionToolCallDetails", - "csharp" - ); - @@clientName(RequiredFunctionToolCall.function, "InternalDetails", "csharp"); - @@access(RequiredFunctionToolCallDetails, Access.internal); - @@clientName(RequiredFunctionToolCallDetails, - "InternalRequiredFunctionToolCallDetails", - "csharp" - ); - @@clientName(RunStepFunctionToolCall.function, "InternalDetails", "csharp"); - - // RunStepCodeInterpreterToolCall: include input/outputs directly - - @@access(RunStepCodeInterpreterToolCallDetails, Access.internal); - @@clientName(RunStepCodeInterpreterToolCallDetails, - "InternalCodeInterpreterToolCallDetails", - "csharp" - ); - @@clientName(RunStepCodeInterpreterToolCall.codeInterpreter, - "InternalDetails", - "csharp" - ); - - // MessageTextContent: text/annotations can also merge - - @@access(MessageTextDetails, Access.internal); - @@clientName(MessageTextDetails, "InternalMessageTextDetails", "csharp"); - @@clientName(MessageTextContent.text, "InternalDetails", "csharp"); - - // MessageTextFileCitationAnnotation: file_id/quote don't need another type - - @@access(MessageTextFileCitationDetails, Access.internal); - @@clientName(MessageTextFileCitationDetails, - "InternalMessageTextFileCitationDetails", - "csharp" - ); - @@clientName(MessageTextFileCitationAnnotation.fileCitation, - "InternalDetails", - "csharp" - ); - - // MessageTextFilePathAnnotation: file_id doesn't need a separate details client type - - @@access(MessageTextFilePathDetails, Access.internal); - @@clientName(MessageTextFilePathDetails, - "InternalMessageTextFilePathDetails", - "csharp" - ); - @@clientName(MessageTextFilePathAnnotation.filePath, - "InternalDetails", - "csharp" - ); - - // MessageImageFileContent: *two* levels of intermediate structure can be squashed to bring file_id to the parent - // type. Per earlier precedent with image generation, even the introduction of more image file representations (e.g. - // base64) are better accomplished via another approach at the client layer. - - @@access(MessageImageFileDetails, Access.internal); - @@clientName(MessageImageFileDetails, - "InternalMessageImageFileDetails", - "csharp" - ); - @@clientName(MessageImageFileContent.imageFile, "InternalDetails", "csharp"); - @@clientName(MessageImageFileDetails.fileId, "InternalDetails", "csharp"); - - // Several of the content item types are not intended to be used as input - - @@usage(MessageTextContent, Usage.output); - @@usage(MessageImageFileContent, Usage.output); - @@usage(MessageTextContent, Usage.output); - @@usage(MessageTextFileCitationAnnotation, Usage.output); - @@usage(MessageTextFilePathAnnotation, Usage.output); - - // Ensure some shared types remain public despite interaction with previously internalized details - - // Ensure generator inclusion of streaming "leaf" types not yet referenced by a route - - @@usage(MessageDeltaTextFileCitationAnnotation, Usage.output); - @@access(MessageDeltaTextFileCitationAnnotation, Access.public); - - @@usage(MessageDeltaTextFileCitationAnnotationObject, Usage.output); - @@access(MessageDeltaTextFileCitationAnnotationObject, Access.public); - - @@usage(MessageDeltaTextFilePathAnnotation, Usage.output); - @@access(MessageDeltaTextFilePathAnnotation, Access.public); - - @@usage(MessageDeltaTextFilePathAnnotationObject, Usage.output); - @@access(MessageDeltaTextFilePathAnnotationObject, Access.public); - - @@usage(MessageDeltaImageFileContent, Usage.output); - @@access(MessageDeltaImageFileContent, Access.public); - - @@usage(MessageDeltaImageFileContentObject, Usage.output); - @@access(MessageDeltaImageFileContentObject, Access.public); - - @@usage(MessageDeltaTextContent, Usage.output); - @@access(MessageDeltaTextContent, Access.public); - - @@usage(MessageDeltaTextContentObject, Usage.output); - @@access(MessageDeltaTextContentObject, Access.public); - - @@usage(RunStepDeltaMessageCreationObject, Usage.output); - @@access(RunStepDeltaMessageCreationObject, Access.public); - - @@usage(RunStepDeltaFunction, Usage.output); - @@access(RunStepDeltaFunction, Access.public); - - @@usage(RunStepDeltaCodeInterpreterLogOutput, Usage.output); - @@access(RunStepDeltaCodeInterpreterLogOutput, Access.public); - - @@usage(RunStepDeltaCodeInterpreterImageOutputObject, Usage.output); - @@access(RunStepDeltaCodeInterpreterImageOutputObject, Access.public); - - @@usage(RunStepDeltaChunk, Usage.output); - @@access(RunStepDeltaChunk, Access.public); - - @@usage(MessageDeltaChunk, Usage.output); - @@access(MessageDeltaChunk, Access.public); - - @@usage(MessageDelta, Usage.output); - @@access(MessageDelta, Access.public); - - @@usage(MessageDeltaContent, Usage.output); - @@access(MessageDeltaContent, Access.public); - - // Stream events : made public to expose documentation and make class casting for strongly typed languages easier - - @@usage(AgentStreamEvent, Usage.output); - @@access(AgentStreamEvent, Access.public); - - @@usage(ThreadStreamEvent, Usage.output); - @@access(ThreadStreamEvent, Access.public); - - @@usage(RunStreamEvent, Usage.output); - @@access(RunStreamEvent, Access.public); - - @@usage(RunStepStreamEvent, Usage.output); - @@access(RunStepStreamEvent, Access.public); - - @@usage(MessageStreamEvent, Usage.output); - @@access(MessageStreamEvent, Access.public); - - @@usage(ErrorEvent, Usage.output); - @@access(ErrorEvent, Access.public); - - @@usage(DoneEvent, Usage.output); - @@access(DoneEvent, Access.public); - - // Tool resources - @@usage(ToolResources, Usage.output); - @@access(ToolResources, Access.public); - - @@usage(CodeInterpreterToolResource, Usage.output); - @@access(CodeInterpreterToolResource, Access.public); - - @@usage(FileSearchToolResource, Usage.output); - @@access(FileSearchToolResource, Access.public); - - // Ensure some shared types remain public despite interaction with previously internalized details - @@access(MessageTextFilePathAnnotation, Access.public); - @@access(MessageTextFileCitationAnnotation, Access.public); - @@access(ListSortOrder, Access.public); - @@access(RequiredToolCall, Access.public); - @@usage(FilePurpose, Usage.input | Usage.output); - @@usage(ListSortOrder, Usage.input | Usage.output); - - // Make getFileContent internal method in Python (override with get_file_content_stream) - @@access(getFileContent, Access.internal, "python"); - - // Additional, language-specific idiomatic renames - - @@clientName(OpenAIFile, "OpenAIFile", "csharp"); - @@clientName(OpenAIFile.bytes, "Size", "csharp"); - @@clientName(FilePurpose, "OpenAIFilePurpose", "csharp"); - @@clientName(ThreadMessage.content, "ContentItems", "csharp"); - @@clientName(MessageTextDetails.value, "Text", "csharp"); - @@clientName(CreateRunOptions.`model`, "OverrideModelName", "csharp"); - @@clientName(CreateRunOptions.instructions, "OverrideInstructions", "csharp"); - @@clientName(CreateRunOptions.tools, "OverrideTools", "csharp"); - @@clientName(CreateAndRunThreadOptions.`model`, - "OverrideModelName", - "csharp" - ); - @@clientName(CreateAndRunThreadOptions.instructions, - "OverrideInstructions", - "csharp" - ); - @@clientName(CreateAndRunThreadOptions.tools, "OverrideTools", "csharp"); - - // Override until final decision made on assistants vs agents naming - @@clientName(ThreadMessage.assistantId, "agentId", "python"); - @@clientName(GetAgentOptions.assistantId, "agentId", "python"); - @@clientName(UpdateAgentOptions.assistantId, "agentId", "python"); - @@clientName(DeleteAgentOptions.assistantId, "agentId", "python"); - @@clientName(RunStep.assistantId, "agentId", "python"); - @@clientName(ThreadRun.assistantId, "agentId", "python"); - @@clientName(CreateRunOptions.assistantId, "agentId", "python"); - @@clientName(CreateAndRunThreadOptions.assistantId, "agentId", "python"); - // From https://platform.openai.com/docs/agents/how-it-works - // "Note that deleting an AgentFile doesn’t delete the original File object, it simply deletes the association - // between that File and the Agent." - - //@override(Azure.AI.Agents.createAgent, "java") - //op createAgentCustomization(createAgentOptions: CreateAgentOptions): Agent; - - //@@clientName(updateAgent::parameters.body, - // "updateAgentOptions", - // "java" - //); - //@@clientName(createThreadAndRun::parameters.body, - // "createAndRunThreadOptions", - // "java" - //); - //@@clientName(createThread::parameters.body, - // "agentThreadCreationOptions", - // "java" - //); - ///@@clientName(updateThread::parameters.body, - // "updateAgentThreadOptions", - // "java" - //); - //@@clientName(createVectorStore::parameters.body, - // "vectorStoreOptions", - // "java" - //); - //@@clientName(modifyVectorStore::parameters.body, - // "vectorStoreUpdateOptions", - // "java" - //); - //@@clientName(createRun::parameters.body, "createRunOptions", "java"); - //@@clientName(createMessage::parameters.body, "threadMessageOptions", "java"); -} diff --git a/specification/ai/Azure.AI.Assistants/common/models.tsp b/specification/ai/Azure.AI.Assistants/common/models.tsp deleted file mode 100644 index bb6b2ea16e1e..000000000000 --- a/specification/ai/Azure.AI.Assistants/common/models.tsp +++ /dev/null @@ -1,176 +0,0 @@ -import "@typespec/http"; -import "@typespec/versioning"; - -using TypeSpec.Http; -using TypeSpec.Versioning; - -namespace Azure.AI.Assistants; - -@doc("The possible values for roles attributed to messages in a thread.") -union MessageRole { - string, - - @doc("The role representing the end-user.") - user: "user", - - @doc("The role representing the agent.") - agent: "assistant", -} - -@doc("The available sorting options when requesting a list of response objects.") -union ListSortOrder { - string, - - @doc("Specifies an ascending sort order.") - ascending: "asc", - - @doc("Specifies a descending sort order.") - descending: "desc", -} - -alias OpenAIListRequestOptions = { - @doc("A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.") - @query - limit?: int32 = 20; - - @doc("Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.") - @query - order?: ListSortOrder = ListSortOrder.descending; - - @doc("A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.") - @query - after?: string; - - @doc("A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.") - @query - before?: string; -}; - -#suppress "@azure-tools/typespec-azure-core/casing-style" "OpenAI is a case-sensitive name" -@doc("The response data for a requested list of items.") -model OpenAIPageableListOf { - @doc("The object type, which is always list.") - object: "list"; - - @doc("The requested list of items.") - data: T[]; - - @encodedName("application/json", "first_id") - @doc("The first ID represented in this list.") - firstId: string; - - @encodedName("application/json", "last_id") - @doc("The last ID represented in this list.") - lastId: string; - - @encodedName("application/json", "has_more") - @doc("A value indicating whether there are additional values available not captured in this list.") - hasMore: boolean; -} - -alias DeletionStatus = { - @doc("The ID of the resource specified for deletion.") - id: string; - - @doc("A value indicating whether deletion was successful.") - deleted: boolean; -}; - -alias RequiredNullableMetadata = { - /** - * A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - metadata: Record | null; -}; - -alias OptionalNullableMetadata = { - /** - * A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - metadata?: Record | null; -}; - -/** - * Specifies the format that the model must output. Compatible with GPT-4 Turbo and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. - * - * Setting to `{ "type": "json_object" }` enables JSON mode, which guarantees the message the model generates is valid JSON. - * - * **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. - * Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, - * resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off - * if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. - */ -#suppress "@azure-tools/typespec-autorest/union-unsupported" "This union is defined according to the OpenAI API" -union AgentsApiResponseFormatOption { - string, - - /** The model will handle the return format. */ - AgentsApiResponseFormatMode, - - /** Sets the format of the output of the model when a ToolCall is returned. */ - AgentsApiResponseFormat, - - /** Using `json_schema` format will provide a description of what the response format is for. */ - ResponseFormatJsonSchemaType, -} - -/** Represents the mode in which the model will handle the return format of a tool call. */ -union AgentsApiResponseFormatMode { - string, - - /** Default value. Let the model handle the return format. */ - "auto", - - /** Setting the value to `none`, will result in a 400 Bad request. */ - "none", -} - -/** - * An object describing the expected output of the model. If `json_object` only `function` type `tools` are allowed to be passed to the Run. - * If `text` the model can return text or any value needed. - */ -model AgentsApiResponseFormat { - /** Must be one of `text` or `json_object`. */ - type?: ResponseFormat = ResponseFormat.text; -} - -/** Possible API response formats. */ -#suppress "@azure-tools/typespec-autorest/union-unsupported" "OpenAPI v2 support deferred" -union ResponseFormat { - string, - - /** `text` format should be used for requests involving any sort of ToolCall. */ - text: "text", - - /** Using `json_object` format will limit the usage of ToolCall to only functions. */ - jsonObject: "json_object", -} - -/** - * The type of response format being defined: `json_schema` - */ -model ResponseFormatJsonSchemaType { - /** Type */ - type: "json_schema"; - - /** The JSON schema, describing response format. */ - @encodedName("application/json", "json_schema") - jsonSchema: ResponseFormatJsonSchema; -} - -/** - * A description of what the response format is for, used by the model to determine how to respond in the format. - */ -#suppress "@azure-tools/typespec-azure-core/no-unknown" "JSON schema takes an arbitrary json" -model ResponseFormatJsonSchema { - /** A description of what the response format is for, used by the model to determine how to respond in the format. */ - description?: string; - - /** The name of a schema. */ - name: string; - - /** The JSON schema object, describing the response format. */ - schema: unknown; -} diff --git a/specification/ai/Azure.AI.Assistants/files/main.tsp b/specification/ai/Azure.AI.Assistants/files/main.tsp deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/specification/ai/Azure.AI.Assistants/files/models.tsp b/specification/ai/Azure.AI.Assistants/files/models.tsp deleted file mode 100644 index fea3b2b643b1..000000000000 --- a/specification/ai/Azure.AI.Assistants/files/models.tsp +++ /dev/null @@ -1,121 +0,0 @@ -import "@typespec/versioning"; - -namespace Azure.AI.Assistants; - -using TypeSpec.Versioning; - -#suppress "@azure-tools/typespec-azure-core/casing-style" "OpenAI is a case-sensitive name" -@doc("Represents an agent that can call the model and use tools.") -model OpenAIFile { - @doc("The object type, which is always 'file'.") - object: "file"; - - @doc("The identifier, which can be referenced in API endpoints.") - id: string; - - @doc("The size of the file, in bytes.") - bytes: int32; - - @doc("The name of the file.") - filename: string; - - @encodedName("application/json", "created_at") - @encode(DateTimeKnownEncoding.unixTimestamp, int32) - @doc("The Unix timestamp, in seconds, representing when this object was created.") - createdAt: utcDateTime; - - @doc("The intended purpose of a file.") - purpose: FilePurpose; - - /** The state of the file. This field is available in Azure OpenAI only. */ - status?: FileState; - - /** The error message with details in case processing of this file failed. This field is available in Azure OpenAI only. */ - @encodedName("application/json", "status_details") - statusDetails?: string; -} - -/** The state of the file. */ -union FileState { - string, - - /** - * The file has been uploaded but it's not yet processed. This state is not returned by Azure OpenAI and exposed only for - * compatibility. It can be categorized as an inactive state. - */ - uploaded: "uploaded", - - /** - * The operation was created and is not queued to be processed in the future. It can be categorized as an inactive state. - */ - pending: "pending", - - /** The operation has started to be processed. It can be categorized as an active state. */ - running: "running", - - /** - * The operation has successfully processed and is ready for consumption. It can be categorized as a terminal state. - */ - processed: "processed", - - /** - * The operation has completed processing with a failure and cannot be further consumed. It can be categorized as a terminal state. - */ - error: "error", - - /** - * The entity is in the process to be deleted. This state is not returned by Azure OpenAI and exposed only for compatibility. - * It can be categorized as an active state. - */ - deleting: "deleting", - - /** - * The entity has been deleted but may still be referenced by other entities predating the deletion. It can be categorized as a - * terminal state. - */ - deleted: "deleted", -} - -/** The possible values denoting the intended usage of a file. */ -union FilePurpose { - string, - - /** Indicates a file is used for fine tuning input. */ - fineTune: "fine-tune", - - /** Indicates a file is used for fine tuning results. */ - fineTuneResults: "fine-tune-results", - - /** Indicates a file is used as input to agents. */ - agents: "assistants", - - /** Indicates a file is used as output by agents. */ - agentsOutput: "assistants_output", - - /** Indicates a file is used as input to . */ - batch: "batch", - - /** Indicates a file is used as output by a vector store batch operation. */ - batchOutput: "batch_output", - - /** Indicates a file is used as input to a vision operation. */ - vision: "vision", -} - -@doc("The response data from a file list operation.") -model FileListResponse { - @doc("The object type, which is always 'list'.") - object: "list"; - - @doc("The files returned for the request.") - data: OpenAIFile[]; -} - -#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "https://github.com/Azure/autorest.csharp/issues/4041" -@doc("A status response from a file deletion operation.") -model FileDeletionStatus { - ...DeletionStatus; - - @doc("The object type, which is always 'file'.") - object: "file"; -} diff --git a/specification/ai/Azure.AI.Assistants/files/routes.tsp b/specification/ai/Azure.AI.Assistants/files/routes.tsp deleted file mode 100644 index 031257ba7914..000000000000 --- a/specification/ai/Azure.AI.Assistants/files/routes.tsp +++ /dev/null @@ -1,125 +0,0 @@ -import "@typespec/rest"; -import "@typespec/http"; -import "@typespec/versioning"; -import "@azure-tools/typespec-client-generator-core"; -import "./models.tsp"; - -using TypeSpec.Rest; -using TypeSpec.Http; -using TypeSpec.Versioning; -using Azure.ClientGenerator.Core; - -namespace Azure.AI.Assistants; - -/** - * Gets a list of previously uploaded files. - * - * @param purpose A value that, when provided, limits list results to files matching the corresponding purpose. - * @returns The requested list of files. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@get -@route("/files") -op listFiles is Azure.Core.Foundations.Operation< - { - @doc("The purpose of the file.") - @query - purpose?: FilePurpose; - }, - FileListResponse ->; - -/** - * Uploads a file for use by other operations. - * - * @param contentType The 'content-type' header value, always 'multipart/format-data' for this operation. - * @param file The file data (not filename) to upload. - * @param purpose The intended purpose of the file. - * @param filename A filename to associate with the uploaded data. - * @returns A representation of the uploaded file. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -#suppress "@azure-tools/typespec-azure-core/byos" "mirrored API" -@post -@route("/files") -op uploadFile is Azure.Core.Foundations.Operation< - { - @doc("The name of the file to upload.") - @header - contentType: "multipart/form-data"; - - /** Multipart body */ - @multipartBody body: { - @doc("The file data, in bytes.") - @clientName("Data", "csharp") - file: HttpPart; - - @doc("The intended purpose of the uploaded file. Use `assistants` for Agents and Message files, `vision` for Agents image file inputs, `batch` for Batch API, and `fine-tune` for Fine-tuning.") - purpose: HttpPart; - - /* - * Spec note: filename is not documented as a distinct option but functionally should be one. The value is encoded - * in the multipart Content-Disposition header for the data section and can be provided independently of - * any specific data source like a file. It can be inferred in some circumstances (as when using direct - * file input, like curl does) but should remain configurable when using a stream or other data source - * lacking an a priori name. - */ - @doc("The name of the file.") - filename?: HttpPart; - }; - }, - OpenAIFile ->; - -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@delete -@doc("Delete a previously uploaded file.") -@route("/files/{fileId}") -op deleteFile is Azure.Core.Foundations.Operation< - { - @doc("The ID of the file to delete.") - @encodedName("application/json", "file_id") - @path - fileId: string; - }, - FileDeletionStatus ->; - -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API name parity" -@get -@route("/files/{fileId}") -@doc("Returns information about a specific file. Does not retrieve file content.") -op getFile is Azure.Core.Foundations.Operation< - { - @doc("The ID of the file to retrieve.") - @path - @encodedName("application/json", "file_id") - fileId: string; - }, - OpenAIFile ->; - -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@get -@route("/files/{fileId}/content") -@doc("Retrieves the raw content of a specific file.") -op getFileContent is Azure.Core.Foundations.Operation< - { - @doc("The ID of the file to retrieve.") - @path - @encodedName("application/json", "file_id") - fileId: string; - }, - bytes ->; diff --git a/specification/ai/Azure.AI.Assistants/main.tsp b/specification/ai/Azure.AI.Assistants/main.tsp deleted file mode 100644 index a8ed1ccbe517..000000000000 --- a/specification/ai/Azure.AI.Assistants/main.tsp +++ /dev/null @@ -1,54 +0,0 @@ -import "@typespec/http"; -import "@typespec/rest"; -import "@typespec/versioning"; -import "@azure-tools/typespec-azure-core"; -import "@azure-tools/typespec-azure-resource-manager"; -import "./routes.tsp"; -import "./threads/routes.tsp"; -import "./messages/routes.tsp"; -import "./runs/routes.tsp"; -import "./run_steps/routes.tsp"; -import "./files/routes.tsp"; -import "./streaming/events.tsp"; -import "./vector_stores/routes.tsp"; -import "./vector_stores/files/routes.tsp"; -import "./vector_stores/file_batches/routes.tsp"; - -using TypeSpec.Http; -using TypeSpec.Versioning; - -#suppress "@azure-tools/typespec-azure-core/casing-style" -namespace Azure.AI { - -} - -#suppress "@azure-tools/typespec-autorest/unsupported-http-auth-scheme" -@useAuth( - BearerAuth | OAuth2Auth<[ - { - type: OAuth2FlowType.implicit, - authorizationUrl: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", - scopes: ["https://cognitiveservices.azure.com/.default"], - } - ]> -) -@service(#{ title: "Azure AI" }) -@server( - "{endpoint}", - "Azure AI", - { - @doc(""" - Project endpoint in the form of: https://.services.ai.azure.com/api/projects/ - """) - endpoint: url, - } -) -@versioned(Versions) -namespace Azure.AI.Assistants { - @doc("Azure AI Assistants API versions") - enum Versions { - @doc("Azure AI API version 2025-05-01-preview.") - @useDependency(Azure.Core.Versions.v1_0_Preview_2) - `latest`, - } -} diff --git a/specification/ai/Azure.AI.Assistants/messages/models.tsp b/specification/ai/Azure.AI.Assistants/messages/models.tsp deleted file mode 100644 index 4803c6e8e383..000000000000 --- a/specification/ai/Azure.AI.Assistants/messages/models.tsp +++ /dev/null @@ -1,472 +0,0 @@ -import "../tools/models.tsp"; - -import "@typespec/versioning"; - -namespace Azure.AI.Assistants; - -using TypeSpec.Versioning; - -/** A single message within an agent thread, as provided during that thread's creation for its initial state. */ -model ThreadMessageOptions { - /** - * The role of the entity that is creating the message. Allowed values include: - * - `user`: Indicates the message is sent by an actual user and should be used in most - * cases to represent user-generated messages. - * - `assistant`: Indicates the message is generated by the agent. Use this value to insert - * messages from the agent into the - * conversation. - */ - role: MessageRole; - - /** The textual content of the initial message. Currently, robust input including images and annotated text may only be provided via - * a separate call to the create message API. - */ - content: string; - - /** A list of files attached to the message, and the tools they should be added to. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - attachments?: MessageAttachment[] | null; - - ...OptionalNullableMetadata; -} - -@doc("A single, existing message within an agent thread.") -model ThreadMessage { - @doc("The identifier, which can be referenced in API endpoints.") - id: string; - - @doc("The object type, which is always 'thread.message'.") - object: "thread.message"; - - @encodedName("application/json", "created_at") - @encode(DateTimeKnownEncoding.unixTimestamp, int32) - @doc("The Unix timestamp, in seconds, representing when this object was created.") - createdAt: utcDateTime; - - @encodedName("application/json", "thread_id") - @doc("The ID of the thread that this message belongs to.") - threadId: string; - - /** The status of the message. */ - status: MessageStatus; - - /** On an incomplete message, details about why the message is incomplete. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "incomplete_details") - incompleteDetails: MessageIncompleteDetails | null; - - /** The Unix timestamp (in seconds) for when the message was completed. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encode(DateTimeKnownEncoding.unixTimestamp, int32) - @encodedName("application/json", "completed_at") - completedAt: utcDateTime | null; - - /** The Unix timestamp (in seconds) for when the message was marked as incomplete. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encode(DateTimeKnownEncoding.unixTimestamp, int32) - @encodedName("application/json", "incomplete_at") - incompleteAt: utcDateTime | null; - - @doc("The role associated with the agent thread message.") - role: MessageRole; - - @doc("The list of content items associated with the agent thread message.") - content: MessageContent[]; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "assistant_id") - @doc("If applicable, the ID of the agent that authored this message.") - assistantId: string | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "run_id") - @doc("If applicable, the ID of the run associated with the authoring of this message.") - runId: string | null; - - /** A list of files attached to the message, and the tools they were added to. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - attachments: MessageAttachment[] | null; - - ...RequiredNullableMetadata; -} - -/** This describes to which tools a file has been attached. */ -model MessageAttachment { - /** The ID of the file to attach to the message. */ - @encodedName("application/json", "file_id") - fileId?: string; - - /** The data source to be used. This option is mutually exclusive with fileId. */ - @doc("Azure asset ID.") - @encodedName("application/json", "data_source") - dataSource?: VectorStoreDataSource; - - /** The tools to add to this file. */ - tools: MessageAttachmentToolDefinition[]; -} - -/** The possible tools to which files will be added by this message */ -#suppress "@azure-tools/typespec-autorest/union-unsupported" "This union is defined according to the OpenAI API" -union MessageAttachmentToolDefinition { - CodeInterpreterToolDefinition | FileSearchToolDefinition, -} - -// Message content types: "text" | "image_file" - -@discriminator("type") -@doc("An abstract representation of a single item of thread message content.") -model MessageContent { - #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" - @doc("The object type.") - type: string; -} - -@doc("A representation of a textual item of thread message content.") -model MessageTextContent extends MessageContent { - @doc("The object type, which is always 'text'.") - type: "text"; - - @doc("The text and associated annotations for this thread message content item.") - text: MessageTextDetails; -} - -@doc("A representation of image file content in a thread message.") -model MessageImageFileContent extends MessageContent { - @doc("The object type, which is always 'image_file'.") - type: "image_file"; - - @encodedName("application/json", "image_file") - @doc("The image file for this thread message content item.") - imageFile: MessageImageFileDetails; -} - -// Text content details - -@doc("The text and associated annotations for a single item of agent thread message content.") -model MessageTextDetails { - @doc("The text data.") - value: string; - - @doc("A list of annotations associated with this text.") - annotations: MessageTextAnnotation[]; -} - -// Annotations, used by text content: "file_citation" | "file_path" | "url_citation" - -@discriminator("type") -@doc("An abstract representation of an annotation to text thread message content.") -model MessageTextAnnotation { - #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" - @doc("The object type.") - type: string; - - @doc("The textual content associated with this text annotation item.") - text: string; -} - -// URL citation annotation + details - -@doc("A citation within the message that points to a specific URL associated with the message. Generated when the agent uses tools such as 'bing_grounding' to search the Internet.") -model MessageTextUrlCitationAnnotation extends MessageTextAnnotation { - @doc("The object type, which is always 'url_citation'.") - type: "url_citation"; - - @encodedName("application/json", "url_citation") - @doc("The details of the URL citation.") - urlCitation: MessageTextUrlCitationDetails; - - @encodedName("application/json", "start_index") - @doc("The first text index associated with this text annotation.") - startIndex?: int32; - - @encodedName("application/json", "end_index") - @doc("The last text index associated with this text annotation.") - endIndex?: int32; -} - -@doc("A representation of a URL citation, as used in text thread message content.") -model MessageTextUrlCitationDetails { - @doc("The URL associated with this citation.") - url: string; - - @doc("The title of the URL.") - title?: string; -} - -// File citation annotation + details - -@doc("A citation within the message that points to a specific quote from a specific File associated with the agent or the message. Generated when the agent uses the 'file_search' tool to search files.") -model MessageTextFileCitationAnnotation extends MessageTextAnnotation { - @doc("The object type, which is always 'file_citation'.") - type: "file_citation"; - - @encodedName("application/json", "file_citation") - @doc(""" - A citation within the message that points to a specific quote from a specific file. - Generated when the agent uses the "file_search" tool to search files. - """) - fileCitation: MessageTextFileCitationDetails; - - @encodedName("application/json", "start_index") - @doc("The first text index associated with this text annotation.") - startIndex?: int32; - - @encodedName("application/json", "end_index") - @doc("The last text index associated with this text annotation.") - endIndex?: int32; -} - -@doc("A representation of a file-based text citation, as used in a file-based annotation of text thread message content.") -model MessageTextFileCitationDetails { - @encodedName("application/json", "file_id") - @doc("The ID of the file associated with this citation.") - fileId: string; - - @doc("The specific quote cited in the associated file.") - quote: string; -} - -// File path annotation + details - -@doc("A citation within the message that points to a file located at a specific path.") -model MessageTextFilePathAnnotation extends MessageTextAnnotation { - @doc("The object type, which is always 'file_path'.") - type: "file_path"; - - @encodedName("application/json", "file_path") - @doc("A URL for the file that's generated when the agent used the code_interpreter tool to generate a file.") - filePath: MessageTextFilePathDetails; - - @encodedName("application/json", "start_index") - @doc("The first text index associated with this text annotation.") - startIndex?: int32; - - @encodedName("application/json", "end_index") - @doc("The last text index associated with this text annotation.") - endIndex?: int32; -} - -@doc("An encapsulation of an image file ID, as used by message image content.") -model MessageTextFilePathDetails { - @doc("The ID of the specific file that the citation is from.") - @encodedName("application/json", "file_id") - fileId: string; -} - -// Image file content details - -@doc("An image reference, as represented in thread message content.") -model MessageImageFileDetails { - @encodedName("application/json", "file_id") - @doc("The ID for the file associated with this image.") - fileId: string; -} - -/** The possible execution status values for a thread message. */ -union MessageStatus { - string, - - /** A run is currently creating this message. */ - inProgress: "in_progress", - - /** This message is incomplete. See incomplete_details for more information. */ - incomplete: "incomplete", - - /** This message was successfully completed by a run. */ - completed: "completed", -} - -/** Information providing additional detail about a message entering an incomplete status. */ -model MessageIncompleteDetails { - /** The provided reason describing why the message was marked as incomplete. */ - reason: MessageIncompleteDetailsReason; -} - -/** A set of reasons describing why a message is marked as incomplete. */ -union MessageIncompleteDetailsReason { - string, - - /** The run generating the message was terminated due to content filter flagging. */ - contentFilter: "content_filter", - - /** The run generating the message exhausted available tokens before completion. */ - maxTokens: "max_tokens", - - /** The run generating the message was cancelled before completion. */ - runCancelled: "run_cancelled", - - /** The run generating the message failed. */ - runFailed: "run_failed", - - /** The run generating the message expired. */ - runExpired: "run_expired", -} - -// -// These types are specifically used for streaming. -// - -/** Represents a message delta i.e. any changed fields on a message during streaming. */ -model MessageDeltaChunk { - /** The identifier of the message, which can be referenced in API endpoints. */ - id: string; - - /** The object type, which is always `thread.message.delta`. */ - object: "thread.message.delta"; - - /** The delta containing the fields that have changed on the Message. */ - delta: MessageDelta; -} - -/** Represents the typed 'delta' payload within a streaming message delta chunk. */ -model MessageDelta { - /** The entity that produced the message. */ - role: MessageRole; - - /** The content of the message as an array of text and/or images. */ - content: MessageDeltaContent[]; -} - -/** The abstract base representation of a partial streamed message content payload. */ -@discriminator("type") -model MessageDeltaContent { - /** The index of the content part of the message. */ - index: int32; - - /** The type of content for this content part. */ - #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" - type: string; -} - -/** Represents a streamed image file content part within a streaming message delta chunk. */ -model MessageDeltaImageFileContent extends MessageDeltaContent { - /** The type of content for this content part, which is always "image_file." */ - type: "image_file"; - - /** The image_file data. */ - @encodedName("application/json", "image_file") - imageFile?: MessageDeltaImageFileContentObject; -} - -/** Represents the 'image_file' payload within streaming image file content. */ -model MessageDeltaImageFileContentObject { - /** The file ID of the image in the message content. */ - @encodedName("application/json", "file_id") - fileId?: string; -} - -/** Represents a streamed text content part within a streaming message delta chunk. */ -model MessageDeltaTextContent extends MessageDeltaContent { - /** The type of content for this content part, which is always "text." */ - type: "text"; - - /** The text content details. */ - text?: MessageDeltaTextContentObject; -} - -/** Represents the data of a streamed text content part within a streaming message delta chunk. */ -model MessageDeltaTextContentObject { - /** The data that makes up the text. */ - value?: string; - - /** Annotations for the text. */ - annotations?: MessageDeltaTextAnnotation[]; -} - -/** The abstract base representation of a streamed text content part's text annotation. */ -@discriminator("type") -model MessageDeltaTextAnnotation { - /** The index of the annotation within a text content part. */ - index: int32; - - /** The type of the text content annotation. */ - #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" - type: string; -} - -@doc("A citation within the message that points to a specific URL associated with the message. Generated when the agent uses tools such as 'bing_grounding' to search the Internet.") -model MessageDeltaTextUrlCitationAnnotation extends MessageDeltaTextAnnotation { - @doc("The object type, which is always 'url_citation'.") - type: "url_citation"; - - @encodedName("application/json", "url_citation") - @doc("The details of the URL citation.") - urlCitation: MessageDeltaTextUrlCitationDetails; - - @encodedName("application/json", "start_index") - @doc("The first text index associated with this text annotation.") - startIndex?: int32; - - @encodedName("application/json", "end_index") - @doc("The last text index associated with this text annotation.") - endIndex?: int32; -} - -@doc("A representation of a URL citation, as used in text thread message content.") -model MessageDeltaTextUrlCitationDetails { - @doc("The URL associated with this citation.") - url: string; - - @doc("The title of the URL.") - title?: string; -} - -/** Represents a streamed file citation applied to a streaming text content part. */ -model MessageDeltaTextFileCitationAnnotation - extends MessageDeltaTextAnnotation { - /** The type of the text content annotation, which is always "file_citation." */ - type: "file_citation"; - - /** The file citation information. */ - @encodedName("application/json", "file_citation") - fileCitation?: MessageDeltaTextFileCitationAnnotationObject; - - /** The text in the message content that needs to be replaced */ - text?: string; - - /** The start index of this annotation in the content text. */ - @encodedName("application/json", "start_index") - startIndex?: int32; - - /** The end index of this annotation in the content text. */ - @encodedName("application/json", "end_index") - endIndex?: int32; -} - -/** Represents the data of a streamed file citation as applied to a streaming text content part. */ -model MessageDeltaTextFileCitationAnnotationObject { - /** The ID of the specific file the citation is from. */ - @encodedName("application/json", "file_id") - fileId?: string; - - /** The specific quote in the cited file. */ - quote?: string; -} - -/** Represents a streamed file path annotation applied to a streaming text content part. */ -model MessageDeltaTextFilePathAnnotation extends MessageDeltaTextAnnotation { - /** The type of the text content annotation, which is always "file_path." */ - type: "file_path"; - - /** The file path information. */ - @encodedName("application/json", "file_path") - filePath?: MessageDeltaTextFilePathAnnotationObject; - - /** The start index of this annotation in the content text. */ - @encodedName("application/json", "start_index") - startIndex?: int32; - - /** The end index of this annotation in the content text. */ - @encodedName("application/json", "end_index") - endIndex?: int32; - - /** The text in the message content that needs to be replaced */ - text?: string; -} - -/** Represents the data of a streamed file path annotation as applied to a streaming text content part. */ -model MessageDeltaTextFilePathAnnotationObject { - /** The file ID for the annotation. */ - @encodedName("application/json", "file_id") - fileId?: string; -} diff --git a/specification/ai/Azure.AI.Assistants/messages/routes.tsp b/specification/ai/Azure.AI.Assistants/messages/routes.tsp deleted file mode 100644 index 6b6881aad35a..000000000000 --- a/specification/ai/Azure.AI.Assistants/messages/routes.tsp +++ /dev/null @@ -1,119 +0,0 @@ -import "@azure-tools/typespec-azure-core"; -import "@typespec/rest"; -import "@typespec/http"; -import "@typespec/versioning"; - -import "../common/models.tsp"; -import "./models.tsp"; - -using TypeSpec.Rest; -using TypeSpec.Http; -using TypeSpec.Versioning; - -using Azure.Core; - -namespace Azure.AI.Assistants; - -/** - * Creates a new message on a specified thread. - * - * @param threadId The ID of the thread to create the new message on. - * @returns A representation of the new message. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@post -@route("/threads/{threadId}/messages") -op createMessage is Azure.Core.Foundations.Operation< - { - @doc("Identifier of the thread.") - @path - threadId: string; - - /** A single message within an agent thread, as provided during that thread's creation for its initial state. */ - ...ThreadMessageOptions; - }, - ThreadMessage ->; - -/** - * Gets a list of messages that exist on a thread. - * - * @param threadId The ID of the thread to list messages from. - * @returns The requested list of messages. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@get -@route("/threads/{threadId}/messages") -op listMessages is Azure.Core.Foundations.Operation< - { - @doc("Identifier of the thread.") - @path - threadId: string; - - /** Filter messages by the run ID that generated them. */ - @query - runId?: string; - - ...OpenAIListRequestOptions; - }, - OpenAIPageableListOf ->; - -/** - * Gets an existing message from an existing thread. - * - * @param threadId The ID of the thread to retrieve the specified message from. - * @param messageId The ID of the message to retrieve from the specified thread. - * @returns A representation of the requested message. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API name parity" -@get -@route("/threads/{threadId}/messages/{messageId}") -op getMessage is Azure.Core.Foundations.Operation< - { - @doc("Identifier of the thread.") - @path - threadId: string; - - @doc("Identifier of the message.") - @path - messageId: string; - }, - ThreadMessage ->; - -/** - * Modifies an existing message on an existing thread. - * - * @param threadId The ID of the thread containing the specified message to modify. - * @param messageId The ID of the message to modify on the specified thread. - * @returns A representation of the modified message. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@post -@route("/threads/{threadId}/messages/{messageId}") -op updateMessage is Azure.Core.Foundations.Operation< - { - @doc("Identifier of the thread.") - @path - threadId: string; - - @doc("Identifier of the message.") - @path - messageId: string; - - ...OptionalNullableMetadata; - }, - ThreadMessage ->; diff --git a/specification/ai/Azure.AI.Assistants/models.tsp b/specification/ai/Azure.AI.Assistants/models.tsp deleted file mode 100644 index f4abac5404fd..000000000000 --- a/specification/ai/Azure.AI.Assistants/models.tsp +++ /dev/null @@ -1,218 +0,0 @@ -import "@typespec/versioning"; -import "./common/models.tsp"; -import "./tools/models.tsp"; -import "./tools/tool_resources.tsp"; -import "./main.tsp"; - -using TypeSpec.Http; -using TypeSpec.Versioning; - -namespace Azure.AI.Assistants; - -@doc("Represents an agent that can call the model and use tools.") -model Agent { - @doc("The identifier, which can be referenced in API endpoints.") - id: string; - - @doc("The object type, which is always assistant.") - object: "assistant"; - - @encodedName("application/json", "created_at") - @encode(DateTimeKnownEncoding.unixTimestamp, int32) - @doc("The Unix timestamp, in seconds, representing when this object was created.") - createdAt: utcDateTime; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("The name of the agent.") - name: string | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("The description of the agent.") - description: string | null; - - @doc("The ID of the model to use.") - `model`: string; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("The system instructions for the agent to use.") - instructions: string | null; - - @doc("The collection of tools enabled for the agent.") - tools: ToolDefinition[] = #[]; - - /** - * A set of resources that are used by the agent's tools. The resources are specific to the type of tool. For example, the `code_interpreter` - * tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "tool_resources") - toolResources: ToolResources | null; - - /** - * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, - * while lower values like 0.2 will make it more focused and deterministic. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @minValue(0) - @maxValue(2) - temperature: float32 | null = 1; - - /** - * An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. - * So 0.1 means only the tokens comprising the top 10% probability mass are considered. - * - * We generally recommend altering this or temperature but not both. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @minValue(0) - @maxValue(1) - @encodedName("application/json", "top_p") - topP: float32 | null = 1; - - /** The response format of the tool calls used by this agent. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "response_format") - responseFormat?: AgentsApiResponseFormatOption | null; - - ...RequiredNullableMetadata; -} - -@doc("The request details to use when creating a new agent.") -model CreateAgentOptions { - @doc("The ID of the model to use.") - `model`: string; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("The name of the new agent.") - name?: string | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("The description of the new agent.") - description?: string | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("The system instructions for the new agent to use.") - instructions?: string | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("The collection of tools to enable for the new agent.") - tools?: ToolDefinition[] = #[]; - - /** - * A set of resources that are used by the agent's tools. The resources are specific to the type of tool. For example, the `code_interpreter` - * tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "tool_resources") - toolResources?: ToolResources | null; - - /** - * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, - * while lower values like 0.2 will make it more focused and deterministic. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @minValue(0) - @maxValue(2) - temperature?: float32 | null = 1; - - /** - * An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. - * So 0.1 means only the tokens comprising the top 10% probability mass are considered. - * - * We generally recommend altering this or temperature but not both. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @minValue(0) - @maxValue(1) - @encodedName("application/json", "top_p") - topP?: float32 | null = 1; - - /** The response format of the tool calls used by this agent. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "response_format") - responseFormat?: AgentsApiResponseFormatOption | null; - - ...OptionalNullableMetadata; -} - -@doc("The request details to use when modifying an existing agent.") -model UpdateAgentOptions { - @path - @doc("The ID of the agent to modify.") - assistantId: string; - - @doc("The ID of the model to use.") - `model`?: string; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("The modified name for the agent to use.") - name?: string | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("The modified description for the agent to use.") - description?: string | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("The modified system instructions for the new agent to use.") - instructions?: string | null; - - @doc("The modified collection of tools to enable for the agent.") - tools?: ToolDefinition[] = #[]; - - /** - * A set of resources that are used by the agent's tools. The resources are specific to the type of tool. For example, - * the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. - */ - @encodedName("application/json", "tool_resources") - toolResources?: ToolResources; - - /** - * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, - * while lower values like 0.2 will make it more focused and deterministic. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @minValue(0) - @maxValue(2) - temperature?: float32 | null = 1; - - /** - * An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. - * So 0.1 means only the tokens comprising the top 10% probability mass are considered. - * - * We generally recommend altering this or temperature but not both. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @minValue(0) - @maxValue(1) - @encodedName("application/json", "top_p") - topP?: float32 | null = 1; - - /** The response format of the tool calls used by this agent. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "response_format") - responseFormat?: AgentsApiResponseFormatOption | null; - - ...OptionalNullableMetadata; -} - -@doc("The status of an agent deletion operation.") -model AgentDeletionStatus { - ...DeletionStatus; - - @doc("The object type, which is always 'assistant.deleted'.") - object: "assistant.deleted"; -} - -@doc("The request details to use when retrieving an agent.") -model GetAgentOptions { - @doc("Identifier of the agent.") - @path - assistantId: string; -} - -@doc("The request details to use when deleting an agent.") -model DeleteAgentOptions { - @doc("Identifier of the agent.") - @path - assistantId: string; -} diff --git a/specification/ai/Azure.AI.Assistants/routes.tsp b/specification/ai/Azure.AI.Assistants/routes.tsp deleted file mode 100644 index 4d54977ce66b..000000000000 --- a/specification/ai/Azure.AI.Assistants/routes.tsp +++ /dev/null @@ -1,113 +0,0 @@ -import "@typespec/rest"; -import "@azure-tools/typespec-autorest"; -import "@typespec/versioning"; -import "@azure-tools/typespec-azure-core"; -import "./models.tsp"; - -using TypeSpec.Http; -using TypeSpec.Rest; -using TypeSpec.Versioning; -using Azure.Core; -using Azure.Core.Traits; -using Azure.Core.Foundations; - -namespace Azure.AI.Assistants; - -/** - * Creates a new agent. - * - * @returns The new agent instance. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@post -@route("/assistants") -op createAgent is Azure.Core.Foundations.Operation< - { - ...CreateAgentOptions; - }, - Agent ->; - -/** - * Gets a list of agents that were previously created. - * - * @returns The requested list of agents. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@get -@route("/assistants") -op listAgents is Azure.Core.Foundations.Operation< - { - ...OpenAIListRequestOptions; - }, - OpenAIPageableListOf ->; - -/** - * Retrieves an existing agent. - * - * @param assistantId The ID of the agent to retrieve. - * @returns The requested agent instance. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API name parity" -@get -@route("/assistants/{assistantId}") -op getAgent is Azure.Core.Foundations.Operation< - { - /** - * The request details to use when retrieving an agent. - */ - ...GetAgentOptions; - }, - Agent ->; - -/** - * Modifies an existing agent. - * - * @param updateAgentOptions The details of the modification to perform on a specified agent. - * @returns The updated agent instance. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@post -@route("/assistants/{assistantId}") -op updateAgent is Azure.Core.Foundations.Operation< - { - /** - * The request details to use when modifying an existing agent. - */ - ...UpdateAgentOptions; - }, - Agent ->; - -/** - * Deletes an agent. - * - * @param assistantId The ID of the agent to delete. - * @returns Status information about the requested deletion operation. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@delete -@route("/assistants/{assistantId}") -op deleteAgent is Azure.Core.Foundations.Operation< - { - /** - * The request details to use when deleting an agent. - */ - ...DeleteAgentOptions; - }, - AgentDeletionStatus ->; diff --git a/specification/ai/Azure.AI.Assistants/run_steps/models.tsp b/specification/ai/Azure.AI.Assistants/run_steps/models.tsp deleted file mode 100644 index 3d2588b0f934..000000000000 --- a/specification/ai/Azure.AI.Assistants/run_steps/models.tsp +++ /dev/null @@ -1,351 +0,0 @@ -import "@typespec/versioning"; - -import "../tools/models.tsp"; - -namespace Azure.AI.Assistants; - -using TypeSpec.Versioning; - -@doc("Detailed information about a single step of an agent thread run.") -model RunStep { - @doc("The identifier, which can be referenced in API endpoints.") - id: string; - - @doc("The object type, which is always 'thread.run.step'.") - object: "thread.run.step"; - - @doc("The type of run step, which can be either message_creation or tool_calls.") - type: RunStepType; - - @encodedName("application/json", "assistant_id") - @doc("The ID of the agent associated with the run step.") - assistantId: string; - - @encodedName("application/json", "thread_id") - @doc("The ID of the thread that was run.") - threadId: string; - - @encodedName("application/json", "run_id") - @doc("The ID of the run that this run step is a part of.") - runId: string; - - @doc("The status of this run step.") - status: RunStepStatus; - - @encodedName("application/json", "step_details") - @doc("The details for this run step.") - stepDetails: RunStepDetails; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "last_error") - @doc("If applicable, information about the last error encountered by this run step.") - lastError: RunStepError | null; - - @encodedName("application/json", "created_at") - @encode(DateTimeKnownEncoding.unixTimestamp, int32) - @doc("The Unix timestamp, in seconds, representing when this object was created.") - createdAt: utcDateTime; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "expired_at") - @encode(DateTimeKnownEncoding.unixTimestamp, int32) - @doc("The Unix timestamp, in seconds, representing when this item expired.") - expiredAt: utcDateTime | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "completed_at") - @encode(DateTimeKnownEncoding.unixTimestamp, int32) - @doc("The Unix timestamp, in seconds, representing when this completed.") - completedAt: utcDateTime | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "cancelled_at") - @encode(DateTimeKnownEncoding.unixTimestamp, int32) - @doc("The Unix timestamp, in seconds, representing when this was cancelled.") - cancelledAt: utcDateTime | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "failed_at") - @encode(DateTimeKnownEncoding.unixTimestamp, int32) - @doc("The Unix timestamp, in seconds, representing when this failed.") - failedAt: utcDateTime | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`.") - usage?: RunStepCompletionUsage | null; // required in OpenAI, not present in AOpenAI - - ...RequiredNullableMetadata; -} - -@doc("Usage statistics related to the run step.") -model RunStepCompletionUsage { - @doc("Number of completion tokens used over the course of the run step.") - @encodedName("application/json", "completion_tokens") - completionTokens: int64; - - @doc("Number of prompt tokens used over the course of the run step.") - @encodedName("application/json", "prompt_tokens") - promptTokens: int64; - - @doc("Total number of tokens used (prompt + completion).") - @encodedName("application/json", "total_tokens") - totalTokens: int64; -} - -@doc("The possible types of run steps.") -union RunStepType { - string, - - @doc("Represents a run step to create a message.") - messageCreation: "message_creation", - - @doc("Represents a run step that calls tools.") - toolCalls: "tool_calls", -} - -@discriminator("type") -@doc("An abstract representation of the details for a run step.") -model RunStepDetails { - @doc("The object type.") - type: RunStepType; -} - -@doc("The detailed information associated with a message creation run step.") -model RunStepMessageCreationDetails extends RunStepDetails { - @doc("The object type, which is always 'message_creation'.") - type: RunStepType.messageCreation; - - @encodedName("application/json", "message_creation") - @doc("Information about the message creation associated with this run step.") - messageCreation: RunStepMessageCreationReference; -} - -@doc("The detailed information associated with a run step calling tools.") -model RunStepToolCallDetails extends RunStepDetails { - @doc("The object type, which is always 'tool_calls'.") - type: RunStepType.toolCalls; - - @encodedName("application/json", "tool_calls") - @doc("A list of tool call details for this run step.") - toolCalls: RunStepToolCall[]; -} - -@doc("The details of a message created as a part of a run step.") -model RunStepMessageCreationReference { - @encodedName("application/json", "message_id") - @doc("The ID of the message created by this run step.") - messageId: string; -} - -@doc("Possible values for the status of a run step.") -union RunStepStatus { - string, - - @doc("Represents a run step still in progress.") - inProgress: "in_progress", - - @doc("Represents a run step that was cancelled.") - cancelled: "cancelled", - - @doc("Represents a run step that failed.") - failed: "failed", - - @doc("Represents a run step that successfully completed.") - completed: "completed", - - @doc("Represents a run step that expired before otherwise finishing.") - expired: "expired", -} - -@doc("Possible error code values attributable to a failed run step.") -union RunStepErrorCode { - string, - - @doc("Represents a server error.") - serverError: "server_error", - - @doc("Represents an error indicating configured rate limits were exceeded.") - rateLimitExceeded: "rate_limit_exceeded", -} - -@doc("The error information associated with a failed run step.") -model RunStepError { - @doc("The error code for this error.") - code: RunStepErrorCode; - - @doc("The human-readable text associated with this error.") - message: string; -} - -// -// The following types facilitate streaming use. -// - -/** Represents a run step delta i.e. any changed fields on a run step during streaming. */ -model RunStepDeltaChunk { - /** The identifier of the run step, which can be referenced in API endpoints. */ - id: string; - - /** The object type, which is always `thread.run.step.delta`. */ - object: "thread.run.step.delta"; - - /** The delta containing the fields that have changed on the run step. */ - delta: RunStepDelta; -} - -/** Represents the delta payload in a streaming run step delta chunk. */ -model RunStepDelta { - /** The details of the run step. */ - @encodedName("application/json", "step_details") - stepDetails?: RunStepDeltaDetail; -} - -/** Represents a single run step detail item in a streaming run step's delta payload. */ -@discriminator("type") -model RunStepDeltaDetail { - /** The object type for the run step detail object. */ - #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" - type: string; -} - -/** Represents a message creation within a streaming run step delta. */ -model RunStepDeltaMessageCreation extends RunStepDeltaDetail { - /** The object type, which is always "message_creation." */ - type: "message_creation"; - - /** The message creation data. */ - @encodedName("application/json", "message_creation") - messageCreation?: RunStepDeltaMessageCreationObject; -} - -/** Represents the data within a streaming run step message creation response object. */ -model RunStepDeltaMessageCreationObject { - /** The ID of the newly-created message. */ - @encodedName("application/json", "message_id") - messageId?: string; -} - -/** Represents an invocation of tool calls as part of a streaming run step. */ -model RunStepDeltaToolCallObject extends RunStepDeltaDetail { - /** The object type, which is always "tool_calls." */ - type: "tool_calls"; - - /** The collection of tool calls for the tool call detail item. */ - @encodedName("application/json", "tool_calls") - toolCalls?: RunStepDeltaToolCall[]; -} - -/** The abstract base representation of a single tool call within a streaming run step's delta tool call details. */ -@discriminator("type") -model RunStepDeltaToolCall { - /** The index of the tool call detail in the run step's tool_calls array. */ - index: int32; - - /** The ID of the tool call, used when submitting outputs to the run. */ - id: string; - - /** The type of the tool call detail item in a streaming run step's details. */ - #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" - type: string; -} - -/** Represents a function tool call within a streaming run step's tool call details. */ -model RunStepDeltaFunctionToolCall extends RunStepDeltaToolCall { - /** The object type, which is always "function." */ - type: "function"; - - /** The function data for the tool call. */ - function?: RunStepDeltaFunction; -} - -/** Represents a file search tool call within a streaming run step's tool call details. */ -model RunStepDeltaFileSearchToolCall extends RunStepDeltaToolCall { - /** The object type, which is always "file_search." */ - type: "file_search"; - - /** Reserved for future use. */ - @encodedName("application/json", "file_search") - fileSearch?: RunStepFileSearchToolCallResults; -} - -/** Represents a Code Interpreter tool call within a streaming run step's tool call details. */ -model RunStepDeltaCodeInterpreterToolCall extends RunStepDeltaToolCall { - /** The object type, which is always "code_interpreter." */ - type: "code_interpreter"; - - /** The Code Interpreter data for the tool call. */ - @encodedName("application/json", "code_interpreter") - codeInterpreter?: RunStepDeltaCodeInterpreterDetailItemObject; -} - -/** Represents the function data in a streaming run step delta's function tool call. */ -model RunStepDeltaFunction { - /** The name of the function. */ - name?: string; - - /** The arguments passed to the function as input. */ - arguments?: string; - - /** The output of the function, null if outputs have not yet been submitted. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - output?: string | null; -} - -/** Represents the Code Interpreter tool call data in a streaming run step's tool calls. */ -model RunStepDeltaCodeInterpreterDetailItemObject { - /** The input into the Code Interpreter tool call. */ - input?: string; - - /** - * The outputs from the Code Interpreter tool call. Code Interpreter can output one or more - * items, including text (`logs`) or images (`image`). Each of these are represented by a - * different object type. - */ - outputs?: RunStepDeltaCodeInterpreterOutput[]; -} - -/** The abstract base representation of a streaming run step tool call's Code Interpreter tool output. */ -@discriminator("type") -model RunStepDeltaCodeInterpreterOutput { - /** The index of the output in the streaming run step tool call's Code Interpreter outputs array. */ - index: int32; - - /** The type of the streaming run step tool call's Code Interpreter output. */ - #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" - type: string; -} - -/** Represents a log output as produced by the Code Interpreter tool and as represented in a streaming run step's delta tool calls collection. */ -model RunStepDeltaCodeInterpreterLogOutput - extends RunStepDeltaCodeInterpreterOutput { - /** The type of the object, which is always "logs." */ - type: "logs"; - - /** The text output from the Code Interpreter tool call. */ - logs?: string; -} - -/** Represents an image output as produced the Code interpreter tool and as represented in a streaming run step's delta tool calls collection. */ -model RunStepDeltaCodeInterpreterImageOutput - extends RunStepDeltaCodeInterpreterOutput { - /** The object type, which is always "image." */ - type: "image"; - - /** The image data for the Code Interpreter tool call output. */ - image?: RunStepDeltaCodeInterpreterImageOutputObject; -} - -/** Represents the data for a streaming run step's Code Interpreter tool call image output. */ -model RunStepDeltaCodeInterpreterImageOutputObject { - /** The file ID for the image. */ - @encodedName("application/json", "file_id") - fileId?: string; -} - -/** A list of additional fields to include in the response. */ -union RunAdditionalFieldList { - string, - - /** File search result content. */ - FileSearchContents: "step_details.tool_calls[*].file_search.results[*].content", -} diff --git a/specification/ai/Azure.AI.Assistants/run_steps/routes.tsp b/specification/ai/Azure.AI.Assistants/run_steps/routes.tsp deleted file mode 100644 index d71cfcec2f37..000000000000 --- a/specification/ai/Azure.AI.Assistants/run_steps/routes.tsp +++ /dev/null @@ -1,85 +0,0 @@ -import "@typespec/rest"; -import "@typespec/http"; -import "@typespec/versioning"; - -import "./models.tsp"; -import "../common/models.tsp"; - -using TypeSpec.Rest; -using TypeSpec.Http; -using TypeSpec.Versioning; - -namespace Azure.AI.Assistants; - -/** - * Gets a single run step from a thread run. - * - * @param threadId The ID of the thread that was run. - * @param runId The ID of the specific run to retrieve the step from. - * @param stepId The ID of the step to retrieve information about. - * @returns Information about the requested run step. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API name parity" -@get -@route("/threads/{threadId}/runs/{runId}/steps/{stepId}") -op getRunStep is Azure.Core.Foundations.Operation< - { - @doc("Identifier of the thread.") - @path - threadId: string; - - @doc("Identifier of the run.") - @path - runId: string; - - @doc("Identifier of the run step.") - @path - stepId: string; - - @doc(""" - A list of additional fields to include in the response. - Currently the only supported value is `step_details.tool_calls[*].file_search.results[*].content` to fetch the file search result content. - """) - @query("include[]") - include?: RunAdditionalFieldList[]; - }, - RunStep ->; - -/** - * Gets a list of run steps from a thread run. - * - * @param threadId The ID of the thread that was run. - * @param runId The ID of the run to list steps from. - * @returns The requested list of run steps. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@get -@route("/threads/{threadId}/runs/{runId}/steps") -op listRunSteps is Azure.Core.Foundations.Operation< - { - @doc("Identifier of the thread.") - @path - threadId: string; - - @doc("Identifier of the run.") - @path - runId: string; - - @doc(""" - A list of additional fields to include in the response. - Currently the only supported value is `step_details.tool_calls[*].file_search.results[*].content` to fetch the file search result content. - """) - @query("include[]") - include?: RunAdditionalFieldList[]; - - ...OpenAIListRequestOptions; - }, - OpenAIPageableListOf ->; diff --git a/specification/ai/Azure.AI.Assistants/runs/models.tsp b/specification/ai/Azure.AI.Assistants/runs/models.tsp deleted file mode 100644 index 882a4fcc40f2..000000000000 --- a/specification/ai/Azure.AI.Assistants/runs/models.tsp +++ /dev/null @@ -1,482 +0,0 @@ -import "@typespec/versioning"; -import "@azure-tools/typespec-client-generator-core"; -import "../common/models.tsp"; -import "../threads/models.tsp"; -import "../tools/models.tsp"; - -namespace Azure.AI.Assistants; - -using TypeSpec.Versioning; -using Azure.ClientGenerator.Core; - -@doc("Data representing a single evaluation run of an agent thread.") -model ThreadRun { - @doc("The identifier, which can be referenced in API endpoints.") - id: string; - - @doc("The object type, which is always 'thread.run'.") - object: "thread.run"; - - @encodedName("application/json", "thread_id") - @doc("The ID of the thread associated with this run.") - threadId: string; - - @encodedName("application/json", "assistant_id") - @doc("The ID of the agent associated with the thread this run was performed against.") - assistantId: string; - - @doc("The status of the agent thread run.") - status: RunStatus; - - // Internal note: API reference describes this as nullable and the spec explicitly defines it as required and - // nullable, but actual test traffic confirms that runs without tool calls do not present - // required_action on their responses. We split the difference to be optional and nullable. - // https://platform.openai.com/docs/api-reference/runs/object#runs/object-expires_at - // https://github.com/openai/openai-openapi/blob/master/openapi.yaml#L8245 - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "required_action") - @doc("The details of the action required for the agent thread run to continue.") - requiredAction?: RequiredAction | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "last_error") - @doc("The last error, if any, encountered by this agent thread run.") - lastError: RunError | null; - - @doc("The ID of the model to use.") - `model`: string; - - @doc("The overridden system instructions used for this agent thread run.") - instructions: string; - - @doc("The overridden enabled tools used for this agent thread run.") - tools: ToolDefinition[] = #[]; - - @encodedName("application/json", "created_at") - @encode(DateTimeKnownEncoding.unixTimestamp, int32) - @doc("The Unix timestamp, in seconds, representing when this object was created.") - createdAt: utcDateTime; - - // Internal note: API reference describes this as non-nullable, but retrieveThreadRun gets a null expiresAt - // for completed runs. - // https://platform.openai.com/docs/api-reference/runs/object#runs/object-expires_at - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "expires_at") - @encode(DateTimeKnownEncoding.unixTimestamp, int32) - @doc("The Unix timestamp, in seconds, representing when this item expires.") - expiresAt: utcDateTime | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "started_at") - @encode(DateTimeKnownEncoding.unixTimestamp, int32) - @doc("The Unix timestamp, in seconds, representing when this item was started.") - startedAt: utcDateTime | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "completed_at") - @encode(DateTimeKnownEncoding.unixTimestamp, int32) - @doc("The Unix timestamp, in seconds, representing when this completed.") - completedAt: utcDateTime | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "cancelled_at") - @encode(DateTimeKnownEncoding.unixTimestamp, int32) - @doc("The Unix timestamp, in seconds, representing when this was cancelled.") - cancelledAt: utcDateTime | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "failed_at") - @encode(DateTimeKnownEncoding.unixTimestamp, int32) - @doc("The Unix timestamp, in seconds, representing when this failed.") - failedAt: utcDateTime | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "incomplete_details") - @doc("Details on why the run is incomplete. Will be `null` if the run is not incomplete.") - incompleteDetails: IncompleteRunDetails | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.).") - usage: RunCompletionUsage | null; - - /** The sampling temperature used for this run. If not set, defaults to 1. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - temperature?: float32 | null; - - /** The nucleus sampling value used for this run. If not set, defaults to 1. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "top_p") - topP?: float32 | null; - - /** The maximum number of prompt tokens specified to have been used over the course of the run. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "max_prompt_tokens") - @minValue(256) - maxPromptTokens: int32 | null; - - /** The maximum number of completion tokens specified to have been used over the course of the run. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "max_completion_tokens") - @minValue(256) - maxCompletionTokens: int32 | null; - - /** The strategy to use for dropping messages as the context windows moves forward. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "truncation_strategy") - truncationStrategy: TruncationObject | null; - - /** Controls whether or not and which tool is called by the model. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "tool_choice") - toolChoice: AgentsApiToolChoiceOption | null; - - /** The response format of the tool calls used in this run. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "response_format") - responseFormat: AgentsApiResponseFormatOption | null; - - ...RequiredNullableMetadata; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("Override the tools the agent can use for this run. This is useful for modifying the behavior on a per-run basis") - @encodedName("application/json", "tool_resources") - toolResources?: UpdateToolResourcesOptions | null; - - @doc("Determines if tools can be executed in parallel within the run.") - @encodedName("application/json", "parallel_tool_calls") - parallelToolCalls: boolean; -} - -/** - * Details on why the run is incomplete. Will be `null` if the run is not incomplete. - */ -model IncompleteRunDetails { - @doc("The reason why the run is incomplete. This indicates which specific token limit was reached during the run.") - reason: IncompleteDetailsReason; -} - -/** The reason why the run is incomplete. This will point to which specific token limit was reached over the course of the run. */ -union IncompleteDetailsReason { - string, - - /** Maximum completion tokens exceeded */ - maxCompletionTokens: "max_completion_tokens", - - /** Maximum prompt tokens exceeded */ - maxPromptTokens: "max_prompt_tokens", -} - -/** - * Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). - */ -model RunCompletionUsage { - @doc("Number of completion tokens used over the course of the run.") - @encodedName("application/json", "completion_tokens") - completionTokens: int64; - - @doc("Number of prompt tokens used over the course of the run.") - @encodedName("application/json", "prompt_tokens") - promptTokens: int64; - - @doc("Total number of tokens used (prompt + completion).") - @encodedName("application/json", "total_tokens") - totalTokens: int64; -} - -@doc("The details used when creating a new run of an agent thread.") -model CreateRunOptions { - @doc("The ID of the agent that should run the thread.") - @encodedName("application/json", "assistant_id") - assistantId: string; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("The overridden model name that the agent should use to run the thread.") - `model`?: string | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("The overridden system instructions that the agent should use to run the thread.") - instructions?: string | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "additional_instructions") - @doc(""" - Additional instructions to append at the end of the instructions for the run. This is useful for modifying the behavior - on a per-run basis without overriding other instructions. - """) - additionalInstructions?: string | null; - - /** Adds additional messages to the thread before creating the run. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "additional_messages") - additionalMessages?: ThreadMessageOptions[] | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("The overridden list of enabled tools that the agent should use to run the thread.") - tools?: ToolDefinition[] | null; - - /** - * If `true`, returns a stream of events that happen during the Run as server-sent events, - * terminating when the Run enters a terminal state with a `data: [DONE]` message. - */ - stream?: boolean; - - /** - * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output - * more random, while lower values like 0.2 will make it more focused and deterministic. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @minValue(0) - @maxValue(2) - temperature?: float32 | null = 1; - - /** - * An alternative to sampling with temperature, called nucleus sampling, where the model - * considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens - * comprising the top 10% probability mass are considered. - * - * We generally recommend altering this or temperature but not both. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @minValue(0) - @maxValue(1) - @encodedName("application/json", "top_p") - topP?: float32 | null = 1; - - /** - * The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only - * the number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified, - * the run will end with status `incomplete`. See `incomplete_details` for more info. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @minValue(256) - @encodedName("application/json", "max_prompt_tokens") - maxPromptTokens?: int32 | null; - - /** - * The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort - * to use only the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of - * completion tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @minValue(256) - @encodedName("application/json", "max_completion_tokens") - maxCompletionTokens?: int32 | null; - - /** The strategy to use for dropping messages as the context windows moves forward. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "truncation_strategy") - truncationStrategy?: TruncationObject | null; - - /** Controls whether or not and which tool is called by the model. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "tool_choice") - toolChoice?: AgentsApiToolChoiceOption | null; - - /** Specifies the format that the model must output. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "response_format") - responseFormat?: AgentsApiResponseFormatOption | null; - - /** If `true` functions will run in parallel during tool use. */ - @encodedName("application/json", "parallel_tool_calls") - parallelToolCalls?: boolean; - - ...OptionalNullableMetadata; -} - -@doc("The details of an error as encountered by an agent thread run.") -model RunError { - @doc("The status for the error.") - code: string; - - @doc("The human-readable text associated with the error.") - message: string; -} - -@doc("Possible values for the status of an agent thread run.") -union RunStatus { - string, - - @doc("Represents a run that is queued to start.") - queued: "queued", - - @doc("Represents a run that is in progress.") - inProgress: "in_progress", - - @doc("Represents a run that needs another operation, such as tool output submission, to continue.") - requiresAction: "requires_action", - - @doc("Represents a run that is in the process of cancellation.") - cancelling: "cancelling", - - @doc("Represents a run that has been cancelled.") - cancelled: "cancelled", - - @doc("Represents a run that failed.") - failed: "failed", - - @doc("Represents a run that successfully completed.") - completed: "completed", - - @doc("Represents a run that expired before it could otherwise finish.") - expired: "expired", -} - -@discriminator("type") -@doc("An abstract representation of a required action for an agent thread run to continue.") -model RequiredAction { - #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" - @doc("The object type.") - type: string; -} - -@doc("The details for required tool calls that must be submitted for an agent thread run to continue.") -model SubmitToolOutputsAction extends RequiredAction { - @doc("The object type, which is always 'submit_tool_outputs'.") - type: "submit_tool_outputs"; - - @encodedName("application/json", "submit_tool_outputs") - @doc("The details describing tools that should be called to submit tool outputs.") - submitToolOutputs: SubmitToolOutputsDetails; -} - -@doc("The details describing tools that should be called to submit tool outputs.") -model SubmitToolOutputsDetails { - @encodedName("application/json", "tool_calls") - @doc("The list of tool calls that must be resolved for the agent thread run to continue.") - toolCalls: RequiredToolCall[]; -} - -@doc("The details used when creating and immediately running a new agent thread.") -model CreateAndRunThreadOptions { - @encodedName("application/json", "assistant_id") - @doc("The ID of the agent for which the thread should be created.") - assistantId: string; - - @doc("The details used to create the new thread. If no thread is provided, an empty one will be created.") - thread?: AgentThreadCreationOptions; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("The overridden model that the agent should use to run the thread.") - @clientName("overrideModelName", "csharp") - `model`?: string | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("The overridden system instructions the agent should use to run the thread.") - @clientName("overrideInstructions", "csharp") - instructions?: string | null; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("The overridden list of enabled tools the agent should use to run the thread.") - @clientName("overrideTools", "csharp") - tools?: ToolDefinition[] | null; - - /** Override the tools the agent can use for this run. This is useful for modifying the behavior on a per-run basis. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("Override the tools the agent can use for this run. This is useful for modifying the behavior on a per-run basis") - @encodedName("application/json", "tool_resources") - toolResources?: UpdateToolResourcesOptions | null; - - /** - * If `true`, returns a stream of events that happen during the Run as server-sent events, - * terminating when the Run enters a terminal state with a `data: [DONE]` message. - */ - stream?: boolean; - - /** - * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output - * more random, while lower values like 0.2 will make it more focused and deterministic. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @minValue(0) - @maxValue(2) - temperature?: float32 | null = 1; - - /** - * An alternative to sampling with temperature, called nucleus sampling, where the model - * considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens - * comprising the top 10% probability mass are considered. - * - * We generally recommend altering this or temperature but not both. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @minValue(0) - @maxValue(1) - @encodedName("application/json", "top_p") - topP?: float32 | null = 1; - - /** - * The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only - * the number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified, - * the run will end with status `incomplete`. See `incomplete_details` for more info. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @minValue(256) - @encodedName("application/json", "max_prompt_tokens") - maxPromptTokens?: int32 | null; - - /** - * The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort to use only - * the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of completion tokens - * specified, the run will end with status `incomplete`. See `incomplete_details` for more info. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @minValue(256) - @encodedName("application/json", "max_completion_tokens") - maxCompletionTokens?: int32 | null; - - /** The strategy to use for dropping messages as the context windows moves forward. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "truncation_strategy") - truncationStrategy?: TruncationObject | null; - - /** Controls whether or not and which tool is called by the model. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "tool_choice") - toolChoice?: AgentsApiToolChoiceOption | null; - - /** Specifies the format that the model must output. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "response_format") - responseFormat?: AgentsApiResponseFormatOption | null; - - /** If `true` functions will run in parallel during tool use. */ - @encodedName("application/json", "parallel_tool_calls") - parallelToolCalls?: boolean; - - ...OptionalNullableMetadata; -} - -/** - * Controls for how a thread will be truncated prior to the run. Use this to control the initial - * context window of the run. - */ -model TruncationObject { - /** - * The truncation strategy to use for the thread. The default is `auto`. If set to `last_messages`, the thread will - * be truncated to the `lastMessages` count most recent messages in the thread. When set to `auto`, messages in the middle of the thread - * will be dropped to fit the context length of the model, `max_prompt_tokens`. - */ - type: TruncationStrategy = TruncationStrategy.auto; - - /** - * The number of most recent messages from the thread when constructing the context for the run. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @minValue(1) - @encodedName("application/json", "last_messages") - lastMessages?: int32 | null; -} - -/** - * Possible truncation strategies for the thread. - */ -union TruncationStrategy { - string, - - /** Default value. Messages in the middle of the thread will be dropped to fit the context length of the model. */ - auto: "auto", - - /** The thread will truncate to the `lastMessages` count of recent messages. */ - lastMessages: "last_messages", -} diff --git a/specification/ai/Azure.AI.Assistants/runs/routes.tsp b/specification/ai/Azure.AI.Assistants/runs/routes.tsp deleted file mode 100644 index c3de678d1436..000000000000 --- a/specification/ai/Azure.AI.Assistants/runs/routes.tsp +++ /dev/null @@ -1,205 +0,0 @@ -import "@typespec/rest"; -import "@typespec/http"; -import "@typespec/versioning"; - -import "../threads/models.tsp"; -import "../runs/models.tsp"; -import "./models.tsp"; - -using TypeSpec.Rest; -using TypeSpec.Http; -using TypeSpec.Versioning; - -namespace Azure.AI.Assistants; - -/** - * Creates and starts a new run of the specified thread using the specified agent. - * - * @param threadId The ID of the thread to run. - * @param createRunOptions The details for the run to create. - * - * @returns Information about the new thread run. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@post -@route("/threads/{threadId}/runs") -@doc("Creates a new run for an agent thread.") -op createRun is Azure.Core.Foundations.Operation< - { - @doc("Identifier of the thread.") - @path - threadId: string; - - @doc(""" - A list of additional fields to include in the response. - Currently the only supported value is `step_details.tool_calls[*].file_search.results[*].content` to fetch the file search result content. - """) - @query("include[]") - include?: RunAdditionalFieldList[]; - - /** - * The details used when creating a new run of an agent thread. - */ - ...CreateRunOptions; - }, - ThreadRun ->; - -/** - * Gets a list of runs for a specified thread. - * - * @param threadId The ID of the thread to list runs from. - * @returns The requested list of thread runs. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@get -@route("/threads/{threadId}/runs") -op listRuns is Azure.Core.Foundations.Operation< - { - @doc("Identifier of the thread.") - @path - threadId: string; - - ...OpenAIListRequestOptions; - }, - OpenAIPageableListOf ->; - -/** - * Gets an existing run from an existing thread. - * - * @param threadId The ID of the thread to retrieve run information from. - * @param runId The ID of the thread to retrieve information about. - * @returns The requested information about the specified thread run. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API name parity" -@get -@route("/threads/{threadId}/runs/{runId}") -op getRun is Azure.Core.Foundations.Operation< - { - @doc("Identifier of the thread.") - @path - threadId: string; - - @doc("Identifier of the run.") - @path - runId: string; - }, - ThreadRun ->; - -/** - * Modifies an existing thread run. - * - * @param threadId The ID of the thread associated with the specified run. - * @param runId The ID of the run to modify. - * @returns Information about the modified run. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@post -@route("/threads/{threadId}/runs/{runId}") -op updateRun is Azure.Core.Foundations.Operation< - { - @doc("Identifier of the thread.") - @path - threadId: string; - - @doc("Identifier of the run.") - @path - runId: string; - - ...OptionalNullableMetadata; - }, - ThreadRun ->; - -/** - * Submits outputs from tools as requested by tool calls in a run. Runs that need submitted tool outputs will have a status of 'requires_action' with a required_action.type of 'submit_tool_outputs'. - * - * @param threadId The ID of the thread that was run. - * @param runId The ID of the run that requires tool outputs. - * @param toolOutputs A list of tools for which the outputs are being submitted. - * @param stream If `true`, returns a stream of events that happen during the Run as server-sent events, terminating when the Run enters a terminal state with a `data: [DONE]` message. - * @returns Updated information about the run. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@post -@route("/threads/{threadId}/runs/{runId}/submit_tool_outputs") -op submitToolOutputsToRun is Azure.Core.Foundations.Operation< - { - @doc("Identifier of the thread.") - @path - threadId: string; - - @doc("Identifier of the run.") - @path - runId: string; - - @doc("A list of tools for which the outputs are being submitted") - @encodedName("application/json", "tool_outputs") - toolOutputs: ToolOutput[]; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("If true, returns a stream of events that happen during the Run as server-sent events, terminating when the run enters a terminal state.") - stream?: boolean | null; - }, - ThreadRun ->; - -/** - * Cancels a run of an in progress thread. - * - * @param threadId The ID of the thread being run. - * @param runId The ID of the run to cancel. - * @returns Updated information about the cancelled run. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@post -@route("/threads/{threadId}/runs/{runId}/cancel") -op cancelRun is Azure.Core.Foundations.Operation< - { - @doc("Identifier of the thread.") - @path - threadId: string; - - @doc("Identifier of the run.") - @path - runId: string; - }, - ThreadRun ->; - -/** - * Creates a new thread and immediately starts a run of that thread. - * - * @returns Information about the newly created thread. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@post -@route("/threads/runs") -@doc("Creates a new agent thread and immediately starts a run using that new thread.") -op createThreadAndRun is Azure.Core.Foundations.Operation< - { - /** - * The details used when creating and immediately running a new agent thread. - */ - ...CreateAndRunThreadOptions; - }, - ThreadRun ->; diff --git a/specification/ai/Azure.AI.Assistants/streaming/events.tsp b/specification/ai/Azure.AI.Assistants/streaming/events.tsp deleted file mode 100644 index bf1cf3fb801a..000000000000 --- a/specification/ai/Azure.AI.Assistants/streaming/events.tsp +++ /dev/null @@ -1,139 +0,0 @@ -import "@typespec/versioning"; - -using TypeSpec.Versioning; - -namespace Azure.AI.Assistants; - -@doc(""" - Each event in a server-sent events stream has an `event` and `data` property: - - ``` - event: thread.created - data: {"id": "thread_123", "object": "thread", ...} - ``` - - We emit events whenever a new object is created, transitions to a new state, or is being - streamed in parts (deltas). For example, we emit `thread.run.created` when a new run - is created, `thread.run.completed` when a run completes, and so on. When an Agent chooses - to create a message during a run, we emit a `thread.message.created event`, a - `thread.message.in_progress` event, many `thread.message.delta` events, and finally a - `thread.message.completed` event. - - We may add additional events over time, so we recommend handling unknown events gracefully - in your code. - """) -union AgentStreamEvent { - string, - - | ThreadStreamEvent - | RunStreamEvent - | RunStepStreamEvent - | MessageStreamEvent - | ErrorEvent - | DoneEvent, -} - -/** Thread operation related streaming events */ -union ThreadStreamEvent { - string, - - /** Event sent when a new thread is created. The data of this event is of type AgentThread */ - ThreadCreated: "thread.created", -} - -/** Run operation related streaming events */ -union RunStreamEvent { - string, - - /** Event sent when a new run is created. The data of this event is of type ThreadRun */ - ThreadRunCreated: "thread.run.created", - - /** Event sent when a run moves to `queued` status. The data of this event is of type ThreadRun */ - ThreadRunQueued: "thread.run.queued", - - /** Event sent when a run moves to `in_progress` status. The data of this event is of type ThreadRun */ - ThreadRunInProgress: "thread.run.in_progress", - - /** Event sent when a run moves to `requires_action` status. The data of this event is of type ThreadRun */ - ThreadRunRequiresAction: "thread.run.requires_action", - - /** Event sent when a run is completed. The data of this event is of type ThreadRun */ - ThreadRunCompleted: "thread.run.completed", - - /** Event sent when a run ends incomplete. The data of this event is of type ThreadRun */ - ThreadRunIncomplete: "thread.run.incomplete", - - /** Event sent when a run fails. The data of this event is of type ThreadRun */ - ThreadRunFailed: "thread.run.failed", - - /** Event sent when a run moves to `cancelling` status. The data of this event is of type ThreadRun */ - ThreadRunCancelling: "thread.run.cancelling", - - /** Event sent when a run is cancelled. The data of this event is of type ThreadRun */ - ThreadRunCancelled: "thread.run.cancelled", - - /** Event sent when a run is expired. The data of this event is of type ThreadRun */ - ThreadRunExpired: "thread.run.expired", -} - -/** Run step operation related streaming events */ -union RunStepStreamEvent { - string, - - /** Event sent when a new thread run step is created. The data of this event is of type RunStep */ - ThreadRunStepCreated: "thread.run.step.created", - - /** Event sent when a run step moves to `in_progress` status. The data of this event is of type RunStep */ - ThreadRunStepInProgress: "thread.run.step.in_progress", - - /** Event sent when a run step is being streamed. The data of this event is of type RunStepDeltaChunk */ - ThreadRunStepDelta: "thread.run.step.delta", - - /** Event sent when a run step is completed. The data of this event is of type RunStep */ - ThreadRunStepCompleted: "thread.run.step.completed", - - /** Event sent when a run step fails. The data of this event is of type RunStep */ - ThreadRunStepFailed: "thread.run.step.failed", - - /** Event sent when a run step is cancelled. The data of this event is of type RunStep */ - ThreadRunStepCancelled: "thread.run.step.cancelled", - - /** Event sent when a run step is expired. The data of this event is of type RunStep */ - ThreadRunStepExpired: "thread.run.step.expired", -} - -/** Message operation related streaming events */ -union MessageStreamEvent { - string, - - /** Event sent when a new message is created. The data of this event is of type ThreadMessage */ - ThreadMessageCreated: "thread.message.created", - - /** Event sent when a message moves to `in_progress` status. The data of this event is of type ThreadMessage */ - ThreadMessageInProgress: "thread.message.in_progress", - - /** Event sent when a message is being streamed. The data of this event is of type MessageDeltaChunk */ - ThreadMessageDelta: "thread.message.delta", - - /** Event sent when a message is completed. The data of this event is of type ThreadMessage */ - ThreadMessageCompleted: "thread.message.completed", - - /** Event sent before a message is completed. The data of this event is of type ThreadMessage */ - ThreadMessageIncomplete: "thread.message.incomplete", -} - -/** Terminal event indicating a server side error while streaming. */ -union ErrorEvent { - string, - - /** Event sent when an error occurs, such as an internal server error or a timeout. */ - Error: "error", -} - -/** Terminal event indicating the successful end of a stream. */ -union DoneEvent { - string, - - /** Event sent when the stream is done. */ - Done: "done", -} diff --git a/specification/ai/Azure.AI.Assistants/threads/models.tsp b/specification/ai/Azure.AI.Assistants/threads/models.tsp deleted file mode 100644 index 0f2e7ae66b1c..000000000000 --- a/specification/ai/Azure.AI.Assistants/threads/models.tsp +++ /dev/null @@ -1,78 +0,0 @@ -import "@typespec/versioning"; - -import "../tools/tool_resources.tsp"; -import "../common/models.tsp"; -import "../messages/models.tsp"; - -using TypeSpec.Http; -using TypeSpec.Versioning; - -namespace Azure.AI.Assistants; - -@doc("Information about a single thread associated with an agent.") -model AgentThread { - @doc("The identifier, which can be referenced in API endpoints.") - id: string; - - @doc("The object type, which is always 'thread'.") - object: "thread"; - - @encodedName("application/json", "created_at") - @encode(DateTimeKnownEncoding.unixTimestamp, int32) - @doc("The Unix timestamp, in seconds, representing when this object was created.") - createdAt: utcDateTime; - - /** - * A set of resources that are made available to the agent's tools in this thread. The resources are specific to the type - * of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list - * of vector store IDs. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "tool_resources") - toolResources: ToolResources | null; - - ...RequiredNullableMetadata; -} - -/** The details used to create a new agent thread. */ -model AgentThreadCreationOptions { - /** The initial messages to associate with the new thread. */ - messages?: ThreadMessageOptions[]; - - /** - * A set of resources that are made available to the agent's tools in this thread. The resources are specific to the - * type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires - * a list of vector store IDs. - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "tool_resources") - toolResources?: ToolResources | null; - - ...OptionalNullableMetadata; -} - -/** The details used to update an existing agent thread */ -model UpdateAgentThreadOptions { - /** The ID of the thread to modify. */ - @path threadId: string; - - /** - * A set of resources that are made available to the agent's tools in this thread. The resources are specific to the - * type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires - * a list of vector store IDs - */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "tool_resources") - toolResources?: ToolResources | null; - - ...OptionalNullableMetadata; -} - -#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "https://github.com/Azure/autorest.csharp/issues/4041" -@doc("The status of a thread deletion operation.") -model ThreadDeletionStatus { - ...DeletionStatus; - - @doc("The object type, which is always 'thread.deleted'.") - object: "thread.deleted"; -} diff --git a/specification/ai/Azure.AI.Assistants/threads/routes.tsp b/specification/ai/Azure.AI.Assistants/threads/routes.tsp deleted file mode 100644 index 20935cd613b9..000000000000 --- a/specification/ai/Azure.AI.Assistants/threads/routes.tsp +++ /dev/null @@ -1,95 +0,0 @@ -import "@typespec/rest"; -import "@typespec/http"; -import "@typespec/versioning"; -import "./models.tsp"; - -using TypeSpec.Rest; -using TypeSpec.Http; -using TypeSpec.Versioning; - -namespace Azure.AI.Assistants; - -/** - * Creates a new thread. Threads contain messages and can be run by agents. - * - * @returns Information about the newly created thread. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@post -@route("/threads") -op createThread is Azure.Core.Foundations.Operation< - { - /** - * The details used to create a new agent thread. - */ - ...AgentThreadCreationOptions; - }, - AgentThread ->; - -// list threads? - -/** - * Gets information about an existing thread. - * - * @param threadId The ID of the thread to retrieve information about. - * @returns Information about the requested thread. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API name parity" -@get -@route("/threads/{threadId}") -op getThread is Azure.Core.Foundations.Operation< - { - @doc("Identifier of the thread.") - @path - threadId: string; - }, - AgentThread ->; - -/** - * Modifies an existing thread. - * - * @param threadId The ID of the thread to modify. - * @param updateAgentThreadOptions The details of the modification to perform on a specified thread. - * @returns Information about the modified thread. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@post -@route("/threads/{threadId}") -op updateThread is Azure.Core.Foundations.Operation< - { - /** - * The details used to update an existing agent thread. - */ - ...UpdateAgentThreadOptions; - }, - AgentThread ->; - -/** - * Deletes an existing thread. - * - * @param threadId The ID of the thread to delete. - * @returns Status information about the requested thread deletion operation. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@delete -@route("/threads/{threadId}") -op deleteThread is Azure.Core.Foundations.Operation< - { - @doc("Identifier of the thread.") - @path - threadId: string; - }, - ThreadDeletionStatus ->; diff --git a/specification/ai/Azure.AI.Assistants/tools/models.tsp b/specification/ai/Azure.AI.Assistants/tools/models.tsp deleted file mode 100644 index e6d7ee50bfdd..000000000000 --- a/specification/ai/Azure.AI.Assistants/tools/models.tsp +++ /dev/null @@ -1,610 +0,0 @@ -import "@typespec/http"; -import "@typespec/versioning"; - -using TypeSpec.Http; -using TypeSpec.Versioning; - -namespace Azure.AI.Assistants; - -// -// Tool inputs -- definitions used before model evaluation to configure agents, threads, and messages -// - -@doc("An abstract representation of an input tool definition that an agent can use.") -@discriminator("type") -model ToolDefinition { - #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" - @doc("The object type.") - type: string; -} - -@doc("The input definition information for a code interpreter tool as used to configure an agent.") -model CodeInterpreterToolDefinition extends ToolDefinition { - @doc("The object type, which is always 'code_interpreter'.") - type: "code_interpreter"; -} - -@doc("The input definition information for a file search tool as used to configure an agent.") -model FileSearchToolDefinition extends ToolDefinition { - @doc("The object type, which is always 'file_search'.") - type: "file_search"; - - /** - * Options overrides for the file search tool. - */ - @encodedName("application/json", "file_search") - fileSearch?: FileSearchToolDefinitionDetails; -} - -@doc("The input definition information for a function tool as used to configure an agent.") -model FunctionToolDefinition extends ToolDefinition { - @doc("The object type, which is always 'function'.") - type: "function"; - - @doc("The definition of the concrete function that the function tool should call.") - function: FunctionDefinition; -} - -// Azure Custom Tools - -@doc("The input definition information for a bing grounding search tool as used to configure an agent.") -model BingGroundingToolDefinition extends ToolDefinition { - @doc("The object type, which is always 'bing_grounding'.") - type: "bing_grounding"; - - @doc("The list of connections used by the bing grounding tool.") - bing_grounding: ToolConnectionList; -} - -@doc("The input definition information for a Microsoft Fabric tool as used to configure an agent.") -model MicrosoftFabricToolDefinition extends ToolDefinition { - @doc("The object type, which is always 'fabric_dataagent'.") - type: "fabric_dataagent"; - - @doc("The list of connections used by the Microsoft Fabric tool.") - fabric_dataagent: ToolConnectionList; -} - -@doc("The input definition information for a sharepoint tool as used to configure an agent.") -model SharepointToolDefinition extends ToolDefinition { - @doc("The object type, which is always 'sharepoint_grounding'.") - type: "sharepoint_grounding"; - - @doc("The list of connections used by the SharePoint tool.") - sharepoint_grounding: ToolConnectionList; -} - -@doc("The input definition information for an Azure AI search tool as used to configure an agent.") -model AzureAISearchToolDefinition extends ToolDefinition { - @doc("The object type, which is always 'azure_ai_search'.") - type: "azure_ai_search"; -} - -@doc("The input definition information for an OpenAPI tool as used to configure an agent.") -model OpenApiToolDefinition extends ToolDefinition { - @doc("The object type, which is always 'openapi'.") - type: "openapi"; - - @doc("The openapi function definition.") - openapi: OpenApiFunctionDefinition; -} - -// Definition details: File Search - -/** - * Options overrides for the file search tool. - */ -model FileSearchToolDefinitionDetails { - /** - * The maximum number of results the file search tool should output. The default is 20 for gpt-4* models and 5 for gpt-3.5-turbo. This number should be between 1 and 50 inclusive. - * - * Note that the file search tool may output fewer than `max_num_results` results. See the file search tool documentation for more information. - */ - @encodedName("application/json", "max_num_results") - @minValue(1) - @maxValue(50) - maxNumResults?: int32; - - /** - * Ranking options for file search. - */ - @encodedName("application/json", "ranking_options") - rankingOptions?: FileSearchRankingOptions; -} - -@doc("The input definition information for a azure function tool as used to configure an agent.") -model AzureFunctionToolDefinition extends ToolDefinition { - @doc("The object type, which is always 'azure_function'.") - type: "azure_function"; - - @doc("The definition of the concrete function that the function tool should call.") - @encodedName("application/json", "azure_function") - azureFunction: AzureFunctionDefinition; -} - -/** - * Ranking options for file search. - */ -model FileSearchRankingOptions { - @doc("File search ranker.") - ranker: string; - - @doc("Ranker search threshold.") - @encodedName("application/json", "score_threshold") - scoreThreshold: float32; -} - -// Definition details: Functions - -@doc("The input definition information for a function.") -model FunctionDefinition { - @doc("The name of the function to be called.") - name: string; - - @doc("A description of what the function does, used by the model to choose when and how to call the function.") - description?: string; - - #suppress "@azure-tools/typespec-azure-core/no-unknown" "External API shape takes an arbitrary json" - @doc("The parameters the functions accepts, described as a JSON Schema object.") - parameters: unknown; -} - -@doc("The definition of Azure function.") -model AzureFunctionDefinition { - @doc("The definition of azure function and its parameters.") - function: FunctionDefinition; - - @doc("Input storage queue. The queue storage trigger runs a function as messages are added to it.") - @encodedName("application/json", "input_binding") - inputBinding: AzureFunctionBinding; - - @doc("Output storage queue. The function writes output to this queue when the input items are processed.") - @encodedName("application/json", "output_binding") - outputBinding: AzureFunctionBinding; -} - -// Definition details: OpenAPI - -@doc("The input definition information for an openapi function.") -model OpenApiFunctionDefinition { - @doc("The name of the function to be called.") - name: string; - - @doc("A description of what the function does, used by the model to choose when and how to call the function.") - description?: string; - - #suppress "@azure-tools/typespec-azure-core/no-unknown" "External API shape takes an arbitrary json" - @doc("The openapi function shape, described as a JSON Schema object.") - spec: unknown; - - @doc("Open API authentication details") - auth: OpenApiAuthDetails; -} - -@doc(""" - Authentication type for OpenApi endpoint. Allowed types are: - - Anonymous (no authentication required) - - Connection (requires connection_id to endpoint, as setup in AI Foundry) - - Managed_Identity (requires audience for identity based auth) - """) -union OpenApiAuthType { - anonymous: "anonymous", - connection: "connection", - managedIdentity: "managed_identity", - string, -} - -@doc("authentication details for OpenApiFunctionDefinition") -@discriminator("type") -model OpenApiAuthDetails { - @doc("The type of authentication, must be anonymous/connection/managed_identity") - type: OpenApiAuthType; -} - -@doc("Security details for OpenApi anonymous authentication") -model OpenApiAnonymousAuthDetails extends OpenApiAuthDetails { - @doc("The object type, which is always 'anonymous'.") - type: OpenApiAuthType.anonymous; -} - -@doc("Security details for OpenApi connection authentication") -model OpenApiConnectionAuthDetails extends OpenApiAuthDetails { - @doc("The object type, which is always 'connection'.") - type: OpenApiAuthType.connection; - - @doc("Connection auth security details") - security_scheme: OpenApiConnectionSecurityScheme; -} - -@doc("Security details for OpenApi managed_identity authentication") -model OpenApiManagedAuthDetails extends OpenApiAuthDetails { - @doc("The object type, which is always 'managed_identity'.") - type: OpenApiAuthType.managedIdentity; - - @doc("Connection auth security details") - security_scheme: OpenApiManagedSecurityScheme; -} - -@doc("Security scheme for OpenApi managed_identity authentication") -model OpenApiManagedSecurityScheme { - @doc("Authentication scope for managed_identity auth type") - audience: string; -} - -@doc("Security scheme for OpenApi managed_identity authentication") -model OpenApiConnectionSecurityScheme { - @doc("Connection id for Connection auth type") - connection_id: string; -} - -// -// Required tool calls -- provided on a run and represent tools that need outputs submitted for the run to continue -// - -@discriminator("type") -@doc(""" - An abstract representation of a tool invocation needed by the model to continue a run. - """) -model RequiredToolCall { - #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" - @doc("The object type for the required tool call.") - type: string; - - @doc("The ID of the tool call. This ID must be referenced when submitting tool outputs.") - id: string; -} - -@doc("A representation of a requested call to a function tool, needed by the model to continue evaluation of a run.") -model RequiredFunctionToolCall extends RequiredToolCall { - @doc("The object type of the required tool call. Always 'function' for function tools.") - type: "function"; - - @doc("Detailed information about the function to be executed by the tool that includes name and arguments.") - function: RequiredFunctionToolCallDetails; -} - -@doc("The detailed information for a function invocation, as provided by a required action invoking a function tool, that includes the name of and arguments to the function.") -model RequiredFunctionToolCallDetails { - @doc("The name of the function.") - name: string; - - @doc("The arguments to use when invoking the named function, as provided by the model. Arguments are presented as a JSON document that should be validated and parsed for evaluation.") - arguments: string; -} - -// -// Tool calls -- present in run steps and provide information about tool execution -// - -@discriminator("type") -@doc("An abstract representation of a detailed tool call as recorded within a run step for an existing run.") -model RunStepToolCall { - #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" - @doc("The object type.") - type: string; - - @doc("The ID of the tool call. This ID must be referenced when you submit tool outputs.") - id: string; -} - -@doc(""" - A record of a call to a code interpreter tool, issued by the model in evaluation of a defined tool, that - represents inputs and outputs consumed and emitted by the code interpreter. - """) -model RunStepCodeInterpreterToolCall extends RunStepToolCall { - @doc("The object type, which is always 'code_interpreter'.") - type: "code_interpreter"; - - @encodedName("application/json", "code_interpreter") - @doc("The details of the tool call to the code interpreter tool.") - codeInterpreter: RunStepCodeInterpreterToolCallDetails; -} - -@doc(""" - A record of a call to a file search tool, issued by the model in evaluation of a defined tool, that represents - executed file search. - """) -model RunStepFileSearchToolCall extends RunStepToolCall { - @doc("The object type, which is always 'file_search'.") - type: "file_search"; - - @doc("The ID of the tool call. This ID must be referenced when you submit tool outputs.") - id: string; - - @doc("For now, this is always going to be an empty object.") - @encodedName("application/json", "file_search") - fileSearch: RunStepFileSearchToolCallResults; -} - -@doc("The results of the file search.") -model RunStepFileSearchToolCallResults { - @doc("Ranking options for file search.") - @encodedName("application/json", "ranking_options") - rankingOptions?: FileSearchRankingOptions; - - @doc("The array of a file search results") - results: RunStepFileSearchToolCallResult[]; -} - -@doc(""" - File search tool call result. - """) -model RunStepFileSearchToolCallResult { - @doc("The ID of the file that result was found in.") - @encodedName("application/json", "file_id") - fileId: string; - - @doc("The name of the file that result was found in.") - @encodedName("application/json", "file_name") - fileName: string; - - @doc("The score of the result. All values must be a floating point number between 0 and 1.") - @minValue(0) - @maxValue(1) - score: float32; - - @doc("The content of the result that was found. The content is only included if requested via the include query parameter.") - content?: FileSearchToolCallContent[]; -} - -@doc("The file search result content object.") -model FileSearchToolCallContent { - @doc("The type of the content.") - type: "text"; - - @doc("The text content of the file.") - text: string; -} - -@doc(""" - A record of a call to a bing grounding tool, issued by the model in evaluation of a defined tool, that represents - executed search with bing grounding. - """) -model RunStepBingGroundingToolCall extends RunStepToolCall { - @doc("The object type, which is always 'bing_grounding'.") - type: "bing_grounding"; - - @doc("Reserved for future use.") - @encodedName("application/json", "bing_grounding") - bingGrounding: Record; -} - -@doc(""" - A record of a call to an Azure AI Search tool, issued by the model in evaluation of a defined tool, that represents - executed Azure AI search. - """) -model RunStepAzureAISearchToolCall extends RunStepToolCall { - @doc("The object type, which is always 'azure_ai_search'.") - type: "azure_ai_search"; - - @doc("Reserved for future use.") - @encodedName("application/json", "azure_ai_search") - azureAISearch: Record; -} - -@doc(""" - A record of a call to a SharePoint tool, issued by the model in evaluation of a defined tool, that represents - executed SharePoint actions. - """) -model RunStepSharepointToolCall extends RunStepToolCall { - @doc("The object type, which is always 'sharepoint_grounding'.") - type: "sharepoint_grounding"; - - @doc("Reserved for future use.") - @encodedName("application/json", "sharepoint_grounding") - sharePoint: Record; -} - -@doc(""" - A record of a call to a Microsoft Fabric tool, issued by the model in evaluation of a defined tool, that represents - executed Microsoft Fabric operations. - """) -model RunStepMicrosoftFabricToolCall extends RunStepToolCall { - @doc("The object type, which is always 'fabric_dataagent'.") - type: "fabric_dataagent"; - - @doc("Reserved for future use.") - @encodedName("application/json", "fabric_dataagent") - microsoftFabric: Record; -} - -@doc(""" - A record of a call to a function tool, issued by the model in evaluation of a defined tool, that represents the inputs - and output consumed and emitted by the specified function. - """) -model RunStepFunctionToolCall extends RunStepToolCall { - @doc("The object type, which is always 'function'.") - type: "function"; - - @doc("The detailed information about the function called by the model.") - function: RunStepFunctionToolCallDetails; -} - -// Call details: Code Interpreter - -@doc("The detailed information about a code interpreter invocation by the model.") -model RunStepCodeInterpreterToolCallDetails { - @doc("The input provided by the model to the code interpreter tool.") - input: string; - - @doc("The outputs produced by the code interpreter tool back to the model in response to the tool call.") - outputs: RunStepCodeInterpreterToolCallOutput[]; -} - -@discriminator("type") -@doc("An abstract representation of an emitted output from a code interpreter tool.") -model RunStepCodeInterpreterToolCallOutput { - #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" - @doc("The object type.") - type: string; -} - -@doc("A representation of a log output emitted by a code interpreter tool in response to a tool call by the model.") -model RunStepCodeInterpreterLogOutput - extends RunStepCodeInterpreterToolCallOutput { - @doc("The object type, which is always 'logs'.") - type: "logs"; - - @doc("The serialized log output emitted by the code interpreter.") - logs: string; -} - -@doc("A representation of an image output emitted by a code interpreter tool in response to a tool call by the model.") -model RunStepCodeInterpreterImageOutput - extends RunStepCodeInterpreterToolCallOutput { - @doc("The object type, which is always 'image'.") - type: "image"; - - @doc("Referential information for the image associated with this output.") - image: RunStepCodeInterpreterImageReference; -} - -@doc("An image reference emitted by a code interpreter tool in response to a tool call by the model.") -model RunStepCodeInterpreterImageReference { - @encodedName("application/json", "file_id") - @doc("The ID of the file associated with this image.") - fileId: string; -} - -// Call details: Functions - -@doc("The detailed information about the function called by the model.") -model RunStepFunctionToolCallDetails { - @doc("The name of the function.") - name: string; - - @doc("The arguments that the model requires are provided to the named function.") - arguments: string; - - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("The output of the function, only populated for function calls that have already have had their outputs submitted.") - output: string | null; -} - -// -// Tool outputs -- structured data that provides requested information from tools back to the model -// - -@doc("The data provided during a tool outputs submission to resolve pending tool calls and allow the model to continue.") -model ToolOutput { - @doc("The ID of the tool call being resolved, as provided in the tool calls of a required action from a run.") - @encodedName("application/json", "tool_call_id") - toolCallId?: string; - - @doc("The output from the tool to be submitted.") - output?: string; -} - -/** - * Controls which (if any) tool is called by the model. - * - `none` means the model will not call any tools and instead generates a message. - * - `auto` is the default value and means the model can pick between generating a message or calling a tool. - * Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` - * forces the model to call that tool. - */ -#suppress "@azure-tools/typespec-autorest/union-unsupported" "This union is defined according to the OpenAI API" -union AgentsApiToolChoiceOption { - string, - - /** Specifies how the tool choice will be used */ - AgentsApiToolChoiceOptionMode, - - /** Specifies a tool the model should use. Use to force the model to call a specific tool. */ - AgentsNamedToolChoice, -} - -/** Specifies how the tool choice will be used */ -union AgentsApiToolChoiceOptionMode { - string, - - /** The model will not call a function and instead generates a message. */ - none: "none", - - /** The model can pick between generating a message or calling a function. */ - auto: "auto", -} -/** Specifies a tool the model should use. Use to force the model to call a specific tool. */ -model AgentsNamedToolChoice { - /** the type of tool. If type is `function`, the function name must be set. */ - type: AgentsNamedToolChoiceType; - - /** The name of the function to call */ - function?: FunctionName; -} - -/** Available tool types for agents named tools. */ -union AgentsNamedToolChoiceType { - string, - - /** Tool type `function` */ - function: "function", - - /** Tool type `code_interpreter` */ - codeInterpreter: "code_interpreter", - - /** Tool type `file_search` */ - fileSearch: "file_search", - - /** Tool type `bing_grounding` */ - bingGrounding: "bing_grounding", - - /** Tool type `fabric_dataagent` */ - microsoftFabric: "fabric_dataagent", - - /** Tool type `sharepoint_grounding` */ - sharepoint: "sharepoint_grounding", - - /** Tool type `azure_ai_search` */ - azureAISearch: "azure_ai_search", -} - -/** The function name that will be used, if using the `function` tool */ -model FunctionName { - /** The name of the function to call */ - name: string; -} - -/** - * A set of connection resources currently used by either the `bing_grounding`, `fabric_dataagent`, or `sharepoint_grounding` tools. - */ -model ToolConnectionList { - /** - * The connections attached to this tool. There can be a maximum of 1 connection - * resource attached to the tool. - */ - @maxItems(1) - @encodedName("application/json", "connections") - connectionList?: ToolConnection[]; -} - -/** - * A connection resource. - */ -model ToolConnection { - /** - * A connection in a ToolConnectionList attached to this tool. - */ - @encodedName("application/json", "connection_id") - connectionId: string; -} - -@doc("The structure for keeping storage queue name and URI.") -model AzureFunctionBinding { - @doc("The type of binding, which is always 'storage_queue'.") - type: "storage_queue"; - - @doc("Storage queue.") - @encodedName("application/json", "storage_queue") - storageQueue: AzureFunctionStorageQueue; -} - -@doc("The structure for keeping storage queue name and URI.") -model AzureFunctionStorageQueue { - @doc("URI to the Azure Storage Queue service allowing you to manipulate a queue.") - @encodedName("application/json", "queue_service_endpoint") - storageServiceEndpoint: string; - - @doc("The name of an Azure function storage queue.") - @encodedName("application/json", "queue_name") - queueName: string; -} diff --git a/specification/ai/Azure.AI.Assistants/tools/tool_resources.tsp b/specification/ai/Azure.AI.Assistants/tools/tool_resources.tsp deleted file mode 100644 index 543fd32d6025..000000000000 --- a/specification/ai/Azure.AI.Assistants/tools/tool_resources.tsp +++ /dev/null @@ -1,264 +0,0 @@ -import "@typespec/http"; -import "@typespec/versioning"; - -import "../vector_stores/common/main.tsp"; - -using TypeSpec.Http; -using TypeSpec.Versioning; - -namespace Azure.AI.Assistants; - -// -// Response objects -// - -/** - * A set of resources that are used by the agent's tools. The resources are specific to the type of - * tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` - * tool requires a list of vector store IDs. - */ -model ToolResources { - /** Resources to be used by the `code_interpreter` tool consisting of file IDs. */ - @encodedName("application/json", "code_interpreter") - codeInterpreter?: CodeInterpreterToolResource; - - /** Resources to be used by the `file_search` tool consisting of vector store IDs. */ - @encodedName("application/json", "file_search") - fileSearch?: FileSearchToolResource; - - /** Resources to be used by the `azure_ai_search` tool consisting of index IDs and names. */ - @encodedName("application/json", "azure_ai_search") - azureAISearch?: AzureAISearchResource; -} - -/** - * A set of resources that are used by the `code_interpreter` tool. - */ -model CodeInterpreterToolResource { - /** - * A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files - * associated with the tool. - */ - @encodedName("application/json", "file_ids") - @maxItems(20) - fileIds?: string[] = #[]; - - /** The data sources to be used. This option is mutually exclusive with the `fileIds` property. */ - @maxItems(20) - @encodedName("application/json", "data_sources") - dataSources?: VectorStoreDataSource[]; -} - -/** - * A set of resources that are used by the `file_search` tool. - */ -model FileSearchToolResource { - /** - * The ID of the vector store attached to this agent. There can be a maximum of 1 vector - * store attached to the agent. - */ - @maxItems(1) - @encodedName("application/json", "vector_store_ids") - vectorStoreIds?: string[]; - - /** - * The list of vector store configuration objects from Azure. - * This list is limited to one element. - * The only element of this list contains the list of azure asset IDs used by the search tool. - */ - @maxItems(1) - @encodedName("application/json", "vector_stores") - vectorStores?: VectorStoreConfigurations[]; -} - -/** - * A set of index resources used by the `azure_ai_search` tool. - */ -model AzureAISearchResource { - /** - * The indices attached to this agent. There can be a maximum of 1 index - * resource attached to the agent. - */ - @maxItems(1) - @encodedName("application/json", "indexes") - indexList?: AISearchIndexResource[]; -} - -/** - * A Index resource. - */ -model IndexResource { - /** - * An index connection id in an IndexResource attached to this agent. - */ - @encodedName("application/json", "index_connection_id") - indexConnectionId: string; - - /** - * The name of an index in an IndexResource attached to this agent. - */ - @encodedName("application/json", "index_name") - indexName: string; -} - -/** - * A AI Search Index resource. - */ -model AISearchIndexResource { - ...IndexResource; - - /** - * Type of query in an AIIndexResource attached to this agent. - */ - @encodedName("application/json", "query_type") - queryType?: AzureAISearchQueryType; - - /** - * Number of documents to retrieve from search and present to the model. - */ - @encodedName("application/json", "top_k") - topK?: int32; - - /** - * Odata filter string for search resource. - */ - filter?: string; -} - -// -// Creation request objects -// - -/** - * Request object. A set of resources that are used by the agent's tools. The resources are specific to the - * type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` - * tool requires a list of vector store IDs. - */ -model CreateToolResourcesOptions { - /** - * A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files - * associated with the tool. - */ - @encodedName("application/json", "code_interpreter") - codeInterpreter?: CreateCodeInterpreterToolResourceOptions; - - /** A list of vector stores or their IDs made available to the `file_search` tool. */ - @encodedName("application/json", "file_search") - fileSearch?: CreateFileSearchToolResourceOptions; - - /** Resources to be used by the `azure_ai_search` tool consisting of index IDs and names. */ - @encodedName("application/json", "azure_ai_search") - azureAISearch?: AzureAISearchToolResourceOptions; -} - -alias AzureAISearchToolResourceOptions = AzureAISearchResource; - -/** - * A set of resources that will be used by the `code_interpreter` tool. Request object. - */ -model CreateCodeInterpreterToolResourceOptions { - /** A list of file IDs made available to the `code_interpreter` tool. */ - @maxItems(20) - @encodedName("application/json", "file_ids") - fileIds?: string[] = #[]; -} - -/** - * A set of resources that are used by the agent's tools. The resources are specific to the type of tool. - * For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires - * a list of vector store IDs. - */ -#suppress "@azure-tools/typespec-autorest/union-unsupported" "This union is defined according to the OpenAI API" -union CreateFileSearchToolResourceOptions { - /** The vector store attached to this agent. There can be a maximum of 1 vector store attached to the agent. */ - @encodedName("application/json", "vector_store_ids") - // @maxItems(1) // this can't be applied to string[] - vectorStoreIds: string[], - - /** A helper to create a vector store with file_ids and attach it to this agent. There can be a maximum of 1 vector - * store attached to the agent. */ - @encodedName("application/json", "vector_stores") - // @maxItems(1) // this can't be applied to string[] - vectorStores: CreateFileSearchToolResourceVectorStoreOptions[], -} - -/** File IDs associated to the vector store to be passed to the helper. */ -model CreateFileSearchToolResourceVectorStoreOptions { - /** A list of file IDs to add to the vector store. There can be a maximum of 10000 files in a vector store. */ - @encodedName("application/json", "file_ids") - @maxItems(10000) - fileIds: string[]; - - /** The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy. */ - @encodedName("application/json", "chunking_strategy") - chunkingStrategy: VectorStoreChunkingStrategyRequest; - - /** - * Set of up to 16 key-value pairs that can be attached to a vector store. This can be useful for storing additional - * information about the vector store in a structured format. Keys can be a maximum of 64 characters long and - * values can be a maximum of 512 characters long. - */ - ...OptionalNullableMetadata; -} - -// -// Update request objects -// - -/** - * Request object. A set of resources that are used by the agent's tools. The resources are specific to the type of tool. - * For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of - * vector store IDs. - */ -model UpdateToolResourcesOptions { - /** - * Overrides the list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files - * associated with the tool. - */ - @encodedName("application/json", "code_interpreter") - codeInterpreter?: UpdateCodeInterpreterToolResourceOptions; - - /** Overrides the vector store attached to this agent. There can be a maximum of 1 vector store attached to the agent. */ - @encodedName("application/json", "file_search") - fileSearch?: UpdateFileSearchToolResourceOptions; - - /** Overrides the resources to be used by the `azure_ai_search` tool consisting of index IDs and names. */ - @encodedName("application/json", "azure_ai_search") - azureAISearch?: AzureAISearchToolResourceOptions; -} - -/** Request object to update `code_interpreted` tool resources. */ -model UpdateCodeInterpreterToolResourceOptions { - /** A list of file IDs to override the current list of the agent. */ - @encodedName("application/json", "file_ids") - @maxItems(20) - fileIds?: string[]; -} - -/** Request object to update `file_search` tool resources. */ -model UpdateFileSearchToolResourceOptions { - /** A list of vector store IDs to override the current list of the agent. */ - @maxItems(1) - @encodedName("application/json", "vector_store_ids") - vectorStoreIds?: string[]; -} - -/** Available query types for Azure AI Search tool. */ -union AzureAISearchQueryType { - string, - - /** Query type `simple` */ - simple: "simple", - - /** Query type `semantic` */ - semantic: "semantic", - - /** Query type `vector` */ - vector: "vector", - - /** Query type `vector_simple_hybrid` */ - vector_simple_hybrid: "vector_simple_hybrid", - - /** Query type `vector_semantic_hybrid` */ - vector_semantic_hybrid: "vector_semantic_hybrid", -} diff --git a/specification/ai/Azure.AI.Assistants/tspconfig.yaml b/specification/ai/Azure.AI.Assistants/tspconfig.yaml deleted file mode 100644 index dab601f537e6..000000000000 --- a/specification/ai/Azure.AI.Assistants/tspconfig.yaml +++ /dev/null @@ -1,41 +0,0 @@ -parameters: - "service-dir": - default: "sdk/ai" -emit: - - "@azure-tools/typespec-autorest" -options: - "@azure-tools/typespec-autorest": - emitter-output-dir: "{project-root}/.." - azure-resource-provider-folder: "data-plane" - emit-lro-options: "none" - output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/azure-ai-assistants.json" - "@azure-tools/typespec-python": - package-mode: "dataplane" - package-dir: "azure-ai-assistants" - package-name: "{package-dir}" - flavor: azure - generate-test: false - generate-sample: false - "@azure-tools/typespec-csharp": - package-mode: "dataplane" - package-dir: "Azure.AI.Assistants" - namespace: "{package-dir}" - package-name: "{package-dir}" - model-namespace: false - flavor: azure - generate-test: false - generate-sample: false - "@azure-tools/typespec-ts": - generateTest: true - generateMetadata: false - packageDetails: - name: "@azure/ai-assistant" - flavor: azure -linter: - extends: - - "@azure-tools/typespec-azure-rulesets/data-plane" - disable: - "@azure-tools/typespec-azure-core/casing-style": "Since we have many names in the form XxxxAIXxxx" - "@azure-tools/typespec-azure-core/no-string-discriminator": "Use an extensible union instead of a plain string" - "@azure-tools/typespec-azure-core/bad-record-type": "We do want to use Record, and not Record. But this needs further investigation" - "@azure-tools/typespec-azure-core/use-standard-names": "PUT operations that return 200 should start with 'replace' or 'createOrReplace'" diff --git a/specification/ai/Azure.AI.Assistants/vector_stores/common/main.tsp b/specification/ai/Azure.AI.Assistants/vector_stores/common/main.tsp deleted file mode 100644 index ab2f787aa150..000000000000 --- a/specification/ai/Azure.AI.Assistants/vector_stores/common/main.tsp +++ /dev/null @@ -1,143 +0,0 @@ -import "@typespec/http"; -import "@typespec/versioning"; - -using TypeSpec.Http; -using TypeSpec.Versioning; - -namespace Azure.AI.Assistants; - -/** Options to configure a vector store static chunking strategy. */ -model VectorStoreStaticChunkingStrategyOptions { - /** The maximum number of tokens in each chunk. The default value is 800. The minimum value is 100 and the maximum value is 4096. */ - @encodedName("application/json", "max_chunk_size_tokens") - @minValue(100) - @maxValue(4096) - maxChunkSizeTokens: int32; - - /** - * The number of tokens that overlap between chunks. The default value is 400. - * Note that the overlap must not exceed half of max_chunk_size_tokens. - */ - @encodedName("application/json", "chunk_overlap_tokens") - chunkOverlapTokens: int32; -} - -/** Type of chunking strategy */ -union VectorStoreChunkingStrategyRequestType { - auto: "auto", - static: "static", - string, -} - -/** An abstract representation of a vector store chunking strategy configuration. */ -@discriminator("type") -model VectorStoreChunkingStrategyRequest { - /** The object type. */ - type: VectorStoreChunkingStrategyRequestType; -} - -/** - * The default strategy. This strategy currently uses a max_chunk_size_tokens of 800 and chunk_overlap_tokens of 400. - */ -model VectorStoreAutoChunkingStrategyRequest - extends VectorStoreChunkingStrategyRequest { - /** The object type, which is always 'auto'. */ - type: VectorStoreChunkingStrategyRequestType.auto; -} - -/** A statically configured chunking strategy. */ -model VectorStoreStaticChunkingStrategyRequest - extends VectorStoreChunkingStrategyRequest { - /** The object type, which is always 'static'. */ - type: VectorStoreChunkingStrategyRequestType.static; - - /** The options for the static chunking strategy. */ - static: VectorStoreStaticChunkingStrategyOptions; -} - -/** Type of chunking strategy */ -union VectorStoreChunkingStrategyResponseType { - other: "other", - static: "static", - string, -} - -/** An abstract representation of a vector store chunking strategy configuration. */ -@discriminator("type") -model VectorStoreChunkingStrategyResponse { - /** The object type. */ - type: VectorStoreChunkingStrategyResponseType; -} - -/** - * This is returned when the chunking strategy is unknown. Typically, this is because the file was indexed before the chunking_strategy concept was introduced in the API. - */ -model VectorStoreAutoChunkingStrategyResponse - extends VectorStoreChunkingStrategyResponse { - /** The object type, which is always 'other'. */ - type: VectorStoreChunkingStrategyResponseType.other; -} - -/** A statically configured chunking strategy. */ -model VectorStoreStaticChunkingStrategyResponse - extends VectorStoreChunkingStrategyResponse { - /** The object type, which is always 'static'. */ - type: VectorStoreChunkingStrategyResponseType.static; - - /** The options for the static chunking strategy. */ - static: VectorStoreStaticChunkingStrategyOptions; -} - -/** Type of vector storage asset. Asset type may be a uri_asset, in this case it should contain asset URI ID, - * in the case of id_asset it should contain the data ID. - */ -union VectorStoreDataSourceAssetType { - /** - * Azure URI - */ - uri_asset: "uri_asset", - - /** - * The data ID - */ - id_asset: "id_asset", - - string, -} - -/** - * The structure, containing Azure asset URI path and the asset type of the file used as a data source - * for the enterprise file search. - */ -model VectorStoreDataSource { - /** Asset URI. */ - @encodedName("application/json", "uri") - assetIdentifier: string; - - /** The asset type */ - @encodedName("application/json", "type") - assetType: VectorStoreDataSourceAssetType; -} - -/** - * Vector storage configuration is the list of data sources, used when multiple - * files can be used for the enterprise file search. - */ -model VectorStoreConfiguration { - /** Data sources */ - @encodedName("application/json", "data_sources") - dataSources: VectorStoreDataSource[]; -} - -/** - * The structure, containing the list of vector storage configurations i.e. the list of azure asset IDs. - */ -model VectorStoreConfigurations { - /** Name */ - @encodedName("application/json", "name") - storeName: string; - - /** Configurations */ - @encodedName("application/json", "configuration") - storeConfiguration: VectorStoreConfiguration; -} diff --git a/specification/ai/Azure.AI.Assistants/vector_stores/file_batches/models.tsp b/specification/ai/Azure.AI.Assistants/vector_stores/file_batches/models.tsp deleted file mode 100644 index 6dce544cc057..000000000000 --- a/specification/ai/Azure.AI.Assistants/vector_stores/file_batches/models.tsp +++ /dev/null @@ -1,45 +0,0 @@ -namespace Azure.AI.Assistants; - -using TypeSpec.Versioning; - -/** The status of the vector store file batch. */ -union VectorStoreFileBatchStatus { - string, - - /** The vector store is still processing this file batch. */ - inProgress: "in_progress", - - /** the vector store file batch is ready for use. */ - completed: "completed", - - /** The vector store file batch was cancelled. */ - cancelled: "cancelled", - - /** The vector store file batch failed to process. */ - failed: "failed", -} - -/** A batch of files attached to a vector store. */ -model VectorStoreFileBatch { - /** The identifier, which can be referenced in API endpoints. */ - id: string; - - /** The object type, which is always `vector_store.file_batch`. */ - object: "vector_store.files_batch"; - - /** The Unix timestamp (in seconds) for when the vector store files batch was created. */ - @encode("unixTimestamp", int32) - @encodedName("application/json", "created_at") - createdAt: utcDateTime; - - /** The ID of the vector store that the file is attached to. */ - @encodedName("application/json", "vector_store_id") - vectorStoreId: string; - - /** The status of the vector store files batch, which can be either `in_progress`, `completed`, `cancelled` or `failed`. */ - status: VectorStoreFileBatchStatus; - - /** Files count grouped by status processed or being processed by this vector store. */ - @encodedName("application/json", "file_counts") - fileCounts: VectorStoreFileCount; -} diff --git a/specification/ai/Azure.AI.Assistants/vector_stores/file_batches/routes.tsp b/specification/ai/Azure.AI.Assistants/vector_stores/file_batches/routes.tsp deleted file mode 100644 index 3f7d9a791265..000000000000 --- a/specification/ai/Azure.AI.Assistants/vector_stores/file_batches/routes.tsp +++ /dev/null @@ -1,122 +0,0 @@ -import "@typespec/rest"; -import "@typespec/http"; -import "@typespec/versioning"; - -import "./models.tsp"; -import "../../common/models.tsp"; - -using TypeSpec.Rest; -using TypeSpec.Http; -using TypeSpec.Versioning; - -namespace Azure.AI.Assistants; - -/** - * Create a vector store file batch. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@post -@route("/vector_stores/{vectorStoreId}/file_batches") -op createVectorStoreFileBatch is Azure.Core.Foundations.Operation< - { - /** The ID of the vector store for which to create a File Batch. */ - @doc("Identifier of the vector store.") - @path - vectorStoreId: string; - - /** A list of File IDs that the vector store should use. Useful for tools like `file_search` that can access files. */ - @minItems(1) - @maxItems(500) - @encodedName("application/json", "file_ids") - @doc("List of file identifiers.") - fileIds?: string[]; - - /** The data sources to be used. This option is mutually exclusive with fileIds. */ - @minItems(1) - @maxItems(500) - @encodedName("application/json", "data_sources") - @doc("List of Azure assets.") - dataSources?: VectorStoreDataSource[]; - - /** The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. */ - @encodedName("application/json", "chunking_strategy") - chunkingStrategy?: VectorStoreChunkingStrategyRequest; - }, - VectorStoreFileBatch ->; - -/** - * Retrieve a vector store file batch. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@get -@route("/vector_stores/{vectorStoreId}/file_batches/{batchId}") -op getVectorStoreFileBatch is Azure.Core.Foundations.Operation< - { - /** The ID of the vector store that the file batch belongs to. */ - @doc("Identifier of the vector store.") - @path - vectorStoreId: string; - - /** The ID of the file batch being retrieved. */ - @doc("Identifier of the file batch.") - @path - batchId: string; - }, - VectorStoreFileBatch ->; - -/** - * Cancel a vector store file batch. This attempts to cancel the processing of files in this batch as soon as possible. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@post -@route("/vector_stores/{vectorStoreId}/file_batches/{batchId}/cancel") -op cancelVectorStoreFileBatch is Azure.Core.Foundations.Operation< - { - /** The ID of the vector store that the file batch belongs to. */ - @doc("Identifier of the vector store.") - @path - vectorStoreId: string; - - /** The ID of the file batch to cancel. */ - @doc("Identifier of the file batch.") - @path - batchId: string; - }, - VectorStoreFileBatch ->; - -/** - * Returns a list of vector store files in a batch. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@get -@route("/vector_stores/{vectorStoreId}/file_batches/{batchId}/files") -op listVectorStoreFileBatchFiles is Azure.Core.Foundations.Operation< - { - /** The ID of the vector store that the file batch belongs to. */ - @doc("Identifier of the vector store.") - @path - vectorStoreId: string; - - /** The ID of the file batch that the files belong to. */ - @doc("Identifier of the file batch.") - @path - batchId: string; - - /** Filter by file status. */ - @query filter?: VectorStoreFileStatusFilter; - - ...OpenAIListRequestOptions; - }, - OpenAIPageableListOf ->; diff --git a/specification/ai/Azure.AI.Assistants/vector_stores/files/models.tsp b/specification/ai/Azure.AI.Assistants/vector_stores/files/models.tsp deleted file mode 100644 index fca90715fa1e..000000000000 --- a/specification/ai/Azure.AI.Assistants/vector_stores/files/models.tsp +++ /dev/null @@ -1,106 +0,0 @@ -namespace Azure.AI.Assistants; - -using TypeSpec.Versioning; - -/** Query parameter filter for vector store file retrieval endpoint */ -union VectorStoreFileStatusFilter { - string, - - /** Retrieve only files that are currently being processed */ - inProgress: "in_progress", - - /** Retrieve only files that have been successfully processed */ - completed: "completed", - - /** Retrieve only files that have failed to process */ - failed: "failed", - - /** Retrieve only files that were cancelled */ - cancelled: "cancelled", -} - -/** Vector store file status */ -union VectorStoreFileStatus { - string, - - /** The file is currently being processed. */ - inProgress: "in_progress", - - /** The file has been successfully processed. */ - completed: "completed", - - /** The file has failed to process. */ - failed: "failed", - - /** The file was cancelled. */ - cancelled: "cancelled", -} - -/** Error code variants for vector store file processing */ -union VectorStoreFileErrorCode { - string, - - /** An server error occurred. */ - serverError: "server_error", - - /** The file is not valid. */ - invalidFile: "invalid_file", - - /** The file is of unsupported type. */ - unsupportedFile: "unsupported_file", -} - -/** Details on the error that may have occurred while processing a file for this vector store */ -model VectorStoreFileError { - /** One of `server_error` or `rate_limit_exceeded`. */ - code: VectorStoreFileErrorCode; - - /** A human-readable description of the error. */ - message: string; -} - -/** Description of a file attached to a vector store. */ -model VectorStoreFile { - /** The identifier, which can be referenced in API endpoints. */ - id: string; - - /** The object type, which is always `vector_store.file`. */ - object: "vector_store.file"; - - /** - * The total vector store usage in bytes. Note that this may be different from the original file - * size. - */ - @encodedName("application/json", "usage_bytes") - usageBytes: int32; - - // Tool customization: _at and created are Unix encoded utcDateTime - /** The Unix timestamp (in seconds) for when the vector store file was created. */ - @encodedName("application/json", "created_at") - @encode("unixTimestamp", int32) - createdAt: utcDateTime; - - /** The ID of the vector store that the file is attached to. */ - @encodedName("application/json", "vector_store_id") - vectorStoreId: string; - - /** The status of the vector store file, which can be either `in_progress`, `completed`, `cancelled`, or `failed`. The status `completed` indicates that the vector store file is ready for use. */ - status: VectorStoreFileStatus; - - /** The last error associated with this vector store file. Will be `null` if there are no errors. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "last_error") - lastError: VectorStoreFileError | null; - - /** The strategy used to chunk the file. */ - @encodedName("application/json", "chunking_strategy") - chunkingStrategy: VectorStoreChunkingStrategyResponse; -} - -/** Response object for deleting a vector store file relationship. */ -model VectorStoreFileDeletionStatus { - ...DeletionStatus; - - /** The object type, which is always 'vector_store.deleted'. */ - object: "vector_store.file.deleted"; -} diff --git a/specification/ai/Azure.AI.Assistants/vector_stores/files/routes.tsp b/specification/ai/Azure.AI.Assistants/vector_stores/files/routes.tsp deleted file mode 100644 index 16b296ce336e..000000000000 --- a/specification/ai/Azure.AI.Assistants/vector_stores/files/routes.tsp +++ /dev/null @@ -1,114 +0,0 @@ -import "@typespec/rest"; -import "@typespec/http"; -import "@typespec/versioning"; - -import "./models.tsp"; -import "../../common/models.tsp"; - -using TypeSpec.Rest; -using TypeSpec.Http; -using TypeSpec.Versioning; - -namespace Azure.AI.Assistants; - -/** - * Returns a list of vector store files. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@get -@route("/vector_stores/{vectorStoreId}/files") -op listVectorStoreFiles is Azure.Core.Foundations.Operation< - { - /** The ID of the vector store that the files belong to. */ - @doc("Identifier of the vector store.") - @path - vectorStoreId: string; - - /** Filter by file status. */ - @query filter?: VectorStoreFileStatusFilter; - - ...OpenAIListRequestOptions; - }, - OpenAIPageableListOf ->; - -/** - * Create a vector store file by attaching a file to a vector store. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@post -@route("/vector_stores/{vectorStoreId}/files") -op createVectorStoreFile is Azure.Core.Foundations.Operation< - { - /** The ID of the vector store for which to create a File. */ - @doc("Identifier of the vector store.") - @path - vectorStoreId: string; - - /** A File ID that the vector store should use. Useful for tools like `file_search` that can access files. */ - @doc("Identifier of the file.") - @encodedName("application/json", "file_id") - fileId?: string; - - /** The data sources to be used. This option is mutually exclusive with fileId. */ - @doc("Azure asset ID.") - @encodedName("application/json", "data_source") - dataSource?: VectorStoreDataSource; - - /** The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. */ - @encodedName("application/json", "chunking_strategy") - chunkingStrategy?: VectorStoreChunkingStrategyRequest; - }, - VectorStoreFile ->; - -/** - * Retrieves a vector store file. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@get -@route("/vector_stores/{vectorStoreId}/files/{fileId}") -op getVectorStoreFile is Azure.Core.Foundations.Operation< - { - /** The ID of the vector store that the file belongs to. */ - @doc("Identifier of the vector store.") - @path - vectorStoreId: string; - - /** The ID of the file being retrieved. */ - @doc("Identifier of the file.") - @path - fileId: string; - }, - VectorStoreFile ->; - -/** - * Delete a vector store file. This will remove the file from the vector store but the file itself will not be deleted. - * To delete the file, use the delete file endpoint. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@delete -@route("/vector_stores/{vectorStoreId}/files/{fileId}") -op deleteVectorStoreFile is Azure.Core.Foundations.Operation< - { - /** The ID of the vector store that the file belongs to. */ - @doc("Identifier of the vector store.") - @path - vectorStoreId: string; - - /** The ID of the file to delete its relationship to the vector store. */ - @doc("Identifier of the file.") - @path - fileId: string; - }, - VectorStoreFileDeletionStatus ->; diff --git a/specification/ai/Azure.AI.Assistants/vector_stores/main.tsp b/specification/ai/Azure.AI.Assistants/vector_stores/main.tsp deleted file mode 100644 index 3f4e26565998..000000000000 --- a/specification/ai/Azure.AI.Assistants/vector_stores/main.tsp +++ /dev/null @@ -1,6 +0,0 @@ -import "./models.tsp"; -import "./routes.tsp"; - -import "./common/main.tsp"; -import "./files/main.tsp"; -import "./file_batches/main.tsp"; diff --git a/specification/ai/Azure.AI.Assistants/vector_stores/models.tsp b/specification/ai/Azure.AI.Assistants/vector_stores/models.tsp deleted file mode 100644 index 1563bfac4f2b..000000000000 --- a/specification/ai/Azure.AI.Assistants/vector_stores/models.tsp +++ /dev/null @@ -1,161 +0,0 @@ -namespace Azure.AI.Assistants; - -using TypeSpec.Versioning; - -/** The expiration policy for a vector store. */ -model VectorStoreExpirationPolicy { - /** Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`. */ - anchor: VectorStoreExpirationPolicyAnchor; - - /** The anchor timestamp after which the expiration policy applies. */ - @minValue(1) - @maxValue(365) - days: int32; -} - -/** Describes the relationship between the days and the expiration of this vector store */ -union VectorStoreExpirationPolicyAnchor { - string, - - /** The expiration policy is based on the last time the vector store was active. */ - lastActiveAt: "last_active_at", -} - -/** Vector store possible status */ -union VectorStoreStatus { - string, - - /** expired status indicates that this vector store has expired and is no longer available for use. */ - expired: "expired", - - /** in_progress status indicates that this vector store is still processing files. */ - inProgress: "in_progress", - - /** completed status indicates that this vector store is ready for use. */ - completed: "completed", -} - -/** Counts of files processed or being processed by this vector store grouped by status. */ -model VectorStoreFileCount { - /** The number of files that are currently being processed. */ - @encodedName("application/json", "in_progress") - inProgress: int32; - - /** The number of files that have been successfully processed. */ - completed: int32; - - /** The number of files that have failed to process. */ - failed: int32; - - /** The number of files that were cancelled. */ - cancelled: int32; - - /** The total number of files. */ - total: int32; -} - -/** - * A vector store is a collection of processed files can be used by the `file_search` tool. - */ -model VectorStore { - /** The identifier, which can be referenced in API endpoints. */ - id: string; - - /** The object type, which is always `vector_store` */ - object: "vector_store"; - - // Tool customization: _at and created are Unix encoded utcDateTime - /** The Unix timestamp (in seconds) for when the vector store was created. */ - @encode("unixTimestamp", int32) - @encodedName("application/json", "created_at") - createdAt: utcDateTime; - - /** The name of the vector store. */ - name: string; - - /** The total number of bytes used by the files in the vector store. */ - @encodedName("application/json", "usage_bytes") - usageBytes: int32; - - /** Files count grouped by status processed or being processed by this vector store. */ - @encodedName("application/json", "file_counts") - fileCounts: VectorStoreFileCount; - - /** The status of the vector store, which can be either `expired`, `in_progress`, or `completed`. A status of `completed` indicates that the vector store is ready for use. */ - status: VectorStoreStatus; - - /** Details on when this vector store expires */ - @encodedName("application/json", "expires_after") - expiresAfter?: VectorStoreExpirationPolicy; - - /** The Unix timestamp (in seconds) for when the vector store will expire. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encode("unixTimestamp", int32) - @encodedName("application/json", "expires_at") - expiresAt?: utcDateTime | null; - - /** The Unix timestamp (in seconds) for when the vector store was last active. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encode("unixTimestamp", int32) - @encodedName("application/json", "last_active_at") - lastActiveAt: utcDateTime | null; - - /** - * Set of 16 key-value pairs that can be attached to an object. This can be useful for storing - * additional information about the object in a structured format. Keys can be a maximum of 64 - * characters long and values can be a maximum of 512 characters long. - */ - ...RequiredNullableMetadata; -} - -/** Request object for creating a vector store. */ -model VectorStoreOptions { - /** A list of file IDs that the vector store should use. Useful for tools like `file_search` that can access files. */ - @maxItems(500) - @encodedName("application/json", "file_ids") - fileIds?: string[]; - - /** The name of the vector store. */ - name?: string; - - /** The vector store configuration, used when vector store is created from Azure asset URIs. */ - @encodedName("application/json", "configuration") - storeConfiguration?: VectorStoreConfiguration; - - /** Details on when this vector store expires */ - @encodedName("application/json", "expires_after") - expiresAfter?: VectorStoreExpirationPolicy; - - /** The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. Only applicable if file_ids is non-empty. */ - @encodedName("application/json", "chunking_strategy") - chunkingStrategy?: VectorStoreChunkingStrategyRequest; - - ...OptionalNullableMetadata; -} - -/** Request object for updating a vector store. */ -model VectorStoreUpdateOptions { - /** The name of the vector store. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - name?: string | null; - - /** Details on when this vector store expires */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @encodedName("application/json", "expires_after") - expiresAfter?: VectorStoreExpirationPolicy | null; - - /** - * Set of 16 key-value pairs that can be attached to an object. This can be useful for storing - * additional information about the object in a structured format. Keys can be a maximum of 64 - * characters long and values can be a maximum of 512 characters long. - */ - ...OptionalNullableMetadata; -} - -/** Response object for deleting a vector store. */ -model VectorStoreDeletionStatus { - ...DeletionStatus; - - /** The object type, which is always 'vector_store.deleted'. */ - object: "vector_store.deleted"; -} diff --git a/specification/ai/Azure.AI.Assistants/vector_stores/routes.tsp b/specification/ai/Azure.AI.Assistants/vector_stores/routes.tsp deleted file mode 100644 index 515bb521798d..000000000000 --- a/specification/ai/Azure.AI.Assistants/vector_stores/routes.tsp +++ /dev/null @@ -1,105 +0,0 @@ -import "@typespec/rest"; -import "@typespec/http"; -import "@typespec/versioning"; - -import "./models.tsp"; -import "../common/models.tsp"; - -using TypeSpec.Rest; -using TypeSpec.Http; -using TypeSpec.Versioning; - -namespace Azure.AI.Assistants; - -/** - * Returns a list of vector stores. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/no-operation-id" "non-standard operations" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@get -@route("/vector_stores") -op listVectorStores is Azure.Core.Foundations.Operation< - { - ...OpenAIListRequestOptions; - }, - OpenAIPageableListOf ->; - -/** - * Creates a vector store. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@post -@route("/vector_stores") -op createVectorStore is Azure.Core.Foundations.Operation< - { - /** - * Request object for creating a vector store. - */ - ...VectorStoreOptions; - }, - VectorStore ->; - -/** - * Returns the vector store object matching the specified ID. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@get -@route("/vector_stores/{vectorStoreId}") -op getVectorStore is Azure.Core.Foundations.Operation< - { - /** The ID of the vector store to retrieve. */ - @doc("Identifier of the vector store.") - @path - vectorStoreId: string; - }, - VectorStore ->; - -/** - * The ID of the vector store to modify. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@post -@route("/vector_stores/{vectorStoreId}") -op modifyVectorStore is Azure.Core.Foundations.Operation< - { - /** The ID of the vector store to modify. */ - @doc("Identifier of the vector store.") - @path - vectorStoreId: string; - - /** - * Request object for updating a vector store. - */ - ...VectorStoreUpdateOptions; - }, - VectorStore ->; - -/** - * Deletes the vector store object matching the specified ID. - */ -#suppress "@azure-tools/typespec-azure-core/use-standard-names" "mirrored API responds with a container" -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "not yet an Azure operation" -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "not yet versioned" -@delete -@route("/vector_stores/{vectorStoreId}") -op deleteVectorStore is Azure.Core.Foundations.Operation< - { - /** The ID of the vector store to delete. */ - @doc("Identifier of the vector store.") - @path - vectorStoreId: string; - }, - VectorStoreDeletionStatus ->; diff --git a/specification/ai/data-plane/Azure.AI.Assistants/stable/latest/azure-ai-assistants.json b/specification/ai/data-plane/Azure.AI.Assistants/stable/latest/azure-ai-assistants.json deleted file mode 100644 index c1b7438e632f..000000000000 --- a/specification/ai/data-plane/Azure.AI.Assistants/stable/latest/azure-ai-assistants.json +++ /dev/null @@ -1,11903 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "Azure AI", - "version": "latest", - "x-typespec-generated": [ - { - "emitter": "@azure-tools/typespec-autorest" - } - ] - }, - "schemes": [ - "https" - ], - "x-ms-parameterized-host": { - "hostTemplate": "{endpoint}", - "useSchemePrefix": false, - "parameters": [ - { - "name": "endpoint", - "in": "path", - "description": "Project endpoint in the form of: https://.services.ai.azure.com/api/projects/", - "required": true, - "type": "string", - "format": "uri", - "x-ms-skip-url-encoding": true - } - ] - }, - "produces": [ - "application/json" - ], - "consumes": [ - "application/json" - ], - "security": [ - { - "OAuth2Auth": [ - "https://cognitiveservices.azure.com/.default" - ] - } - ], - "securityDefinitions": { - "OAuth2Auth": { - "type": "oauth2", - "flow": "implicit", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", - "scopes": { - "https://cognitiveservices.azure.com/.default": "" - } - } - }, - "tags": [], - "paths": { - "/assistants": { - "get": { - "operationId": "ListAgents", - "description": "Gets a list of agents that were previously created.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "limit", - "in": "query", - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", - "required": false, - "type": "integer", - "format": "int32", - "default": 20 - }, - { - "name": "order", - "in": "query", - "description": "Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.", - "required": false, - "type": "string", - "default": "desc", - "enum": [ - "asc", - "desc" - ], - "x-ms-enum": { - "name": "ListSortOrder", - "modelAsString": true, - "values": [ - { - "name": "ascending", - "value": "asc", - "description": "Specifies an ascending sort order." - }, - { - "name": "descending", - "value": "desc", - "description": "Specifies a descending sort order." - } - ] - } - }, - { - "name": "after", - "in": "query", - "description": "A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.", - "required": false, - "type": "string" - }, - { - "name": "before", - "in": "query", - "description": "A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The requested list of agents.", - "schema": { - "type": "object", - "description": "The response data for a requested list of items.", - "properties": { - "object": { - "type": "string", - "description": "The object type, which is always list.", - "enum": [ - "list" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "data": { - "type": "array", - "description": "The requested list of items.", - "items": { - "$ref": "#/definitions/Agent" - } - }, - "first_id": { - "type": "string", - "description": "The first ID represented in this list.", - "x-ms-client-name": "firstId" - }, - "last_id": { - "type": "string", - "description": "The last ID represented in this list.", - "x-ms-client-name": "lastId" - }, - "has_more": { - "type": "boolean", - "description": "A value indicating whether there are additional values available not captured in this list.", - "x-ms-client-name": "hasMore" - } - }, - "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" - ] - } - }, - "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." - } - } - } - } - }, - "post": { - "operationId": "CreateAgent", - "description": "Creates a new agent.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateAgentOptions" - } - } - ], - "responses": { - "200": { - "description": "The new agent instance.", - "schema": { - "$ref": "#/definitions/Agent" - } - }, - "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." - } - } - } - } - } - }, - "/assistants/{assistantId}": { - "get": { - "operationId": "GetAgent", - "description": "Retrieves an existing agent.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "$ref": "#/parameters/GetAgentOptions" - } - ], - "responses": { - "200": { - "description": "The requested agent instance.", - "schema": { - "$ref": "#/definitions/Agent" - } - }, - "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." - } - } - } - } - }, - "post": { - "operationId": "UpdateAgent", - "description": "Modifies an existing agent.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "$ref": "#/parameters/UpdateAgentOptions.assistantId" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/UpdateAgentOptions" - } - } - ], - "responses": { - "200": { - "description": "The updated agent instance.", - "schema": { - "$ref": "#/definitions/Agent" - } - }, - "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." - } - } - } - } - }, - "delete": { - "operationId": "DeleteAgent", - "description": "Deletes an agent.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "$ref": "#/parameters/DeleteAgentOptions" - } - ], - "responses": { - "200": { - "description": "Status information about the requested deletion operation.", - "schema": { - "$ref": "#/definitions/Assistants.AgentDeletionStatus" - } - }, - "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." - } - } - } - } - } - }, - "/connections": { - "get": { - "operationId": "Connections_List", - "description": "List all connections in the project", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "connectionType", - "in": "query", - "description": "Specific type of connection to return in list", - "required": false, - "type": "string", - "enum": [ - "AzureOpenAI", - "AzureBlob", - "CognitiveSearch", - "CosmosDB", - "ApiKey", - "AppInsights", - "CustomKeys" - ], - "x-ms-enum": { - "name": "ConnectionType", - "modelAsString": true, - "values": [ - { - "name": "AzureOpenAI", - "value": "AzureOpenAI", - "description": "Azure OpenAI Service" - }, - { - "name": "AzureBlobStorage", - "value": "AzureBlob", - "description": "Azure Blob Storage" - }, - { - "name": "AzureAISearch", - "value": "CognitiveSearch", - "description": "Azure AI Search" - }, - { - "name": "CosmosDB", - "value": "CosmosDB", - "description": "CosmosDB" - }, - { - "name": "APIKey", - "value": "ApiKey", - "description": "Generic connection that uses API Key authentication" - }, - { - "name": "ApplicationInsights", - "value": "AppInsights", - "description": "Application Insights" - }, - { - "name": "Custom", - "value": "CustomKeys", - "description": "Custom Keys" - } - ] - } - }, - { - "$ref": "#/parameters/Azure.Core.TopQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.SkipQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PagedConnection" - }, - "headers": { - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/connections/{name}": { - "get": { - "operationId": "Connections_Get", - "description": "Get a connection by name.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/Connection" - }, - "headers": { - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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." - } - } - } - } - } - }, - "/datasets": { - "get": { - "operationId": "Datasets_ListLatest", - "description": "List the latest version of each DatasetVersion", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PagedDatasetVersion" - } - }, - "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-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/datasets/{name}/startPendingUpload": { - "post": { - "operationId": "Datasets_StartPendingUpload", - "description": "Create or start a pending upload of a dataset. The version id will be generated by the service.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "Parameters for the action", - "required": true, - "schema": { - "$ref": "#/definitions/PendingUploadRequest" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PendingUploadResponse" - } - }, - "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." - } - } - } - } - } - }, - "/datasets/{name}/versions": { - "get": { - "operationId": "Datasets_ListVersions", - "description": "List all versions of the given DatasetVersion", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PagedDatasetVersion" - } - }, - "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-pageable": { - "nextLinkName": "nextLink" - } - }, - "post": { - "operationId": "Datasets_Create", - "description": "Create a new DatasetVersion. The version id will be generated by the service.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the DatasetVersion to create", - "required": true, - "schema": { - "$ref": "#/definitions/DatasetVersion" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/DatasetVersion" - }, - "headers": { - "Repeatability-Result": { - "type": "string", - "description": "Indicates whether the repeatable request was accepted or rejected.", - "enum": [ - "accepted", - "rejected" - ], - "x-ms-enum": { - "name": "RepeatabilityResult", - "modelAsString": false, - "values": [ - { - "name": "accepted", - "value": "accepted", - "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." - }, - { - "name": "rejected", - "value": "rejected", - "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." - } - ] - } - }, - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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." - } - } - } - } - } - }, - "/datasets/{name}/versions/{version}": { - "get": { - "operationId": "Datasets_GetVersion", - "description": "Get the specific version of the DatasetVersion", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The specific version id of the DatasetVersion to retrieve.", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/DatasetVersion" - } - }, - "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." - } - } - } - } - }, - "put": { - "operationId": "Datasets_CreateVersion", - "description": "Create a new or replace an existing DatasetVersion with the given version id", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The specific version id of the DatasetVersion to create or replace.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the DatasetVersion to create", - "required": true, - "schema": { - "$ref": "#/definitions/DatasetVersion" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/DatasetVersion" - } - }, - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", - "schema": { - "$ref": "#/definitions/DatasetVersion" - } - }, - "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." - } - } - } - } - }, - "delete": { - "operationId": "Datasets_DeleteVersion", - "description": "Delete the specific version of the DatasetVersion", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The version of the DatasetVersion to delete.", - "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." - } - } - } - } - } - }, - "/datasets/{name}/versions/{version}/startPendingUploadVersion": { - "post": { - "operationId": "Datasets_StartPendingUploadVersion", - "description": "Create or start a pending upload of a dataset for a specific version.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The specific version id of the DatasetVersion to operate on.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "Parameters for the action", - "required": true, - "schema": { - "$ref": "#/definitions/PendingUploadRequest" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PendingUploadResponse" - } - }, - "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." - } - } - } - } - } - }, - "/deployments": { - "get": { - "operationId": "Deployments_List", - "description": "List all deployed models in the project", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "modelPublisher", - "in": "query", - "description": "Model publisher to filter models by", - "required": false, - "type": "string" - }, - { - "name": "modelName", - "in": "query", - "description": "Model name (the publisher specific name) to filter models by", - "required": false, - "type": "string" - }, - { - "$ref": "#/parameters/Azure.Core.TopQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.SkipQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PagedDeployment" - }, - "headers": { - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/deployments/{name}": { - "get": { - "operationId": "Deployments_Get", - "description": "Get a deployed model.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "Name of the deployment", - "required": true, - "type": "string" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/Deployment" - }, - "headers": { - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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." - } - } - } - } - } - }, - "/evaluationResults": { - "get": { - "operationId": "EvaluationResults_ListLatest", - "description": "List the latest version of each EvaluationResult", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PagedEvaluationResult" - } - }, - "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-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/evaluationResults/{name}/versions": { - "get": { - "operationId": "EvaluationResults_ListVersions", - "description": "List all versions of the given EvaluationResult", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PagedEvaluationResult" - } - }, - "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-pageable": { - "nextLinkName": "nextLink" - } - }, - "post": { - "operationId": "EvaluationResults_Create", - "description": "Create a new EvaluationResult. The version id will be generated by the service.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the EvaluationResult to create", - "required": true, - "schema": { - "$ref": "#/definitions/EvaluationResult" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/EvaluationResult" - }, - "headers": { - "Repeatability-Result": { - "type": "string", - "description": "Indicates whether the repeatable request was accepted or rejected.", - "enum": [ - "accepted", - "rejected" - ], - "x-ms-enum": { - "name": "RepeatabilityResult", - "modelAsString": false, - "values": [ - { - "name": "accepted", - "value": "accepted", - "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." - }, - { - "name": "rejected", - "value": "rejected", - "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." - } - ] - } - }, - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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." - } - } - } - } - } - }, - "/evaluationResults/{name}/versions/{version}": { - "get": { - "operationId": "EvaluationResults_GetVersion", - "description": "Get the specific version of the EvaluationResult", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The specific version id of the EvaluationResult to retrieve.", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/EvaluationResult" - } - }, - "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." - } - } - } - } - }, - "put": { - "operationId": "EvaluationResults_CreateVersion", - "description": "Create a new or replace an existing EvaluationResult with the given version id", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The specific version id of the EvaluationResult to create or replace.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the EvaluationResult to create", - "required": true, - "schema": { - "$ref": "#/definitions/EvaluationResult" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/EvaluationResult" - } - }, - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", - "schema": { - "$ref": "#/definitions/EvaluationResult" - } - }, - "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." - } - } - } - } - }, - "delete": { - "operationId": "EvaluationResults_DeleteVersion", - "description": "Delete the specific version of the EvaluationResult", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The version of the EvaluationResult to delete.", - "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." - } - } - } - } - } - }, - "/evaluationResults/{name}/versions/{version}/startPendingUpload": { - "post": { - "operationId": "EvaluationResults_StartPendingUpload", - "description": "Create or start a pending upload of a evaluation results for a specific version.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The specific version id of the EvaluationResult to operate on.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "Parameters for the action", - "required": true, - "schema": { - "$ref": "#/definitions/PendingUploadRequest" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PendingUploadResponse" - } - }, - "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." - } - } - } - } - } - }, - "/evaluations/runs": { - "get": { - "operationId": "Evaluations_List", - "description": "List evaluation runs", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.Core.TopQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.SkipQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PagedEvaluation" - }, - "headers": { - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/evaluations/runs/{name}": { - "get": { - "operationId": "Evaluations_Get", - "description": "Get an evaluation run by name.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "Identifier of the evaluation.", - "required": true, - "type": "string" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/Evaluation" - }, - "headers": { - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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." - } - } - } - } - } - }, - "/evaluations/runs:run": { - "post": { - "operationId": "Evaluations_CreateRun", - "description": "Creates an evaluation run.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "evaluation", - "in": "body", - "description": "Evaluation to be run", - "required": true, - "schema": { - "$ref": "#/definitions/Evaluation" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/Evaluation" - } - }, - "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." - } - } - } - } - } - }, - "/files": { - "get": { - "operationId": "ListFiles", - "description": "Gets a list of previously uploaded files.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "purpose", - "in": "query", - "description": "The purpose of the file.", - "required": false, - "type": "string", - "enum": [ - "fine-tune", - "fine-tune-results", - "assistants", - "assistants_output", - "batch", - "batch_output", - "vision" - ], - "x-ms-enum": { - "name": "FilePurpose", - "modelAsString": true, - "values": [ - { - "name": "fineTune", - "value": "fine-tune", - "description": "Indicates a file is used for fine tuning input." - }, - { - "name": "fineTuneResults", - "value": "fine-tune-results", - "description": "Indicates a file is used for fine tuning results." - }, - { - "name": "agents", - "value": "assistants", - "description": "Indicates a file is used as input to agents." - }, - { - "name": "agentsOutput", - "value": "assistants_output", - "description": "Indicates a file is used as output by agents." - }, - { - "name": "batch", - "value": "batch", - "description": "Indicates a file is used as input to ." - }, - { - "name": "batchOutput", - "value": "batch_output", - "description": "Indicates a file is used as output by a vector store batch operation." - }, - { - "name": "vision", - "value": "vision", - "description": "Indicates a file is used as input to a vision operation." - } - ] - } - } - ], - "responses": { - "200": { - "description": "The requested list of files.", - "schema": { - "$ref": "#/definitions/FileListResponse" - } - }, - "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." - } - } - } - } - }, - "post": { - "operationId": "UploadFile", - "description": "Uploads a file for use by other operations.", - "consumes": [ - "multipart/form-data" - ], - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "file", - "in": "formData", - "required": true, - "type": "file" - }, - { - "name": "purpose", - "in": "formData", - "description": "The possible values denoting the intended usage of a file.", - "required": true, - "type": "string", - "enum": [ - "fine-tune", - "fine-tune-results", - "assistants", - "assistants_output", - "batch", - "batch_output", - "vision" - ], - "x-ms-enum": { - "name": "FilePurpose", - "modelAsString": true, - "values": [ - { - "name": "fineTune", - "value": "fine-tune", - "description": "Indicates a file is used for fine tuning input." - }, - { - "name": "fineTuneResults", - "value": "fine-tune-results", - "description": "Indicates a file is used for fine tuning results." - }, - { - "name": "agents", - "value": "assistants", - "description": "Indicates a file is used as input to agents." - }, - { - "name": "agentsOutput", - "value": "assistants_output", - "description": "Indicates a file is used as output by agents." - }, - { - "name": "batch", - "value": "batch", - "description": "Indicates a file is used as input to ." - }, - { - "name": "batchOutput", - "value": "batch_output", - "description": "Indicates a file is used as output by a vector store batch operation." - }, - { - "name": "vision", - "value": "vision", - "description": "Indicates a file is used as input to a vision operation." - } - ] - } - }, - { - "name": "filename", - "in": "formData", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "A representation of the uploaded file.", - "schema": { - "$ref": "#/definitions/OpenAIFile" - } - }, - "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." - } - } - } - } - } - }, - "/files/{fileId}": { - "get": { - "operationId": "GetFile", - "description": "Returns information about a specific file. Does not retrieve file content.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "fileId", - "in": "path", - "description": "The ID of the file to retrieve.", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/OpenAIFile" - } - }, - "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." - } - } - } - } - }, - "delete": { - "operationId": "DeleteFile", - "description": "Delete a previously uploaded file.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "fileId", - "in": "path", - "description": "The ID of the file to delete.", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/FileDeletionStatus" - } - }, - "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." - } - } - } - } - } - }, - "/files/{fileId}/content": { - "get": { - "operationId": "GetFileContent", - "description": "Retrieves the raw content of a specific file.", - "produces": [ - "application/octet-stream", - "application/json" - ], - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "fileId", - "in": "path", - "description": "The ID of the file to retrieve.", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "type": "file" - } - }, - "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." - } - } - } - } - } - }, - "/indexes": { - "get": { - "operationId": "Indexes_ListLatest", - "description": "List the latest version of each Index", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PagedIndex" - } - }, - "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-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/indexes/{name}/versions": { - "get": { - "operationId": "Indexes_ListVersions", - "description": "List all versions of the given Index", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PagedIndex" - } - }, - "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-pageable": { - "nextLinkName": "nextLink" - } - }, - "post": { - "operationId": "Indexes_Create", - "description": "Create a new Index. The version id will be generated by the service.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the Index to create", - "required": true, - "schema": { - "$ref": "#/definitions/Index" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/Index" - }, - "headers": { - "Repeatability-Result": { - "type": "string", - "description": "Indicates whether the repeatable request was accepted or rejected.", - "enum": [ - "accepted", - "rejected" - ], - "x-ms-enum": { - "name": "RepeatabilityResult", - "modelAsString": false, - "values": [ - { - "name": "accepted", - "value": "accepted", - "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." - }, - { - "name": "rejected", - "value": "rejected", - "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." - } - ] - } - }, - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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." - } - } - } - } - } - }, - "/indexes/{name}/versions/{version}": { - "get": { - "operationId": "Indexes_GetVersion", - "description": "Get the specific version of the Index", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The specific version id of the Index to retrieve.", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/Index" - } - }, - "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." - } - } - } - } - }, - "put": { - "operationId": "Indexes_CreateVersion", - "description": "Create a new or replace an existing Index with the given version id", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The specific version id of the Index to create or replace.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the Index to create", - "required": true, - "schema": { - "$ref": "#/definitions/Index" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/Index" - } - }, - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", - "schema": { - "$ref": "#/definitions/Index" - } - }, - "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." - } - } - } - } - }, - "delete": { - "operationId": "Indexes_DeleteVersion", - "description": "Delete the specific version of the Index", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The version of the Index to delete.", - "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." - } - } - } - } - } - }, - "/redTeams/runs": { - "get": { - "operationId": "RedTeams_List", - "description": "List a redteam by name.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.Core.TopQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.SkipQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PagedRedTeam" - }, - "headers": { - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/redTeams/runs/{name}": { - "get": { - "operationId": "RedTeams_Get", - "description": "Get a redteam by name.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "Identifier of the red team.", - "required": true, - "type": "string" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/RedTeam" - }, - "headers": { - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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." - } - } - } - } - } - }, - "/redTeams/runs:run": { - "post": { - "operationId": "RedTeams_CreateRun", - "description": "Creates a redteam run.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "RedTeam", - "in": "body", - "description": "Redteam to be run", - "required": true, - "schema": { - "$ref": "#/definitions/RedTeam" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/RedTeam" - } - }, - "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." - } - } - } - } - } - }, - "/threads": { - "post": { - "operationId": "CreateThread", - "description": "Creates a new thread. Threads contain messages and can be run by agents.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/AgentThreadCreationOptions" - } - } - ], - "responses": { - "200": { - "description": "Information about the newly created thread.", - "schema": { - "$ref": "#/definitions/AgentThread" - } - }, - "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." - } - } - } - } - } - }, - "/threads/{threadId}": { - "get": { - "operationId": "GetThread", - "description": "Gets information about an existing thread.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "threadId", - "in": "path", - "description": "Identifier of the thread.", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "Information about the requested thread.", - "schema": { - "$ref": "#/definitions/AgentThread" - } - }, - "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." - } - } - } - } - }, - "post": { - "operationId": "UpdateThread", - "description": "Modifies an existing thread.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "$ref": "#/parameters/UpdateAgentThreadOptions.threadId" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/UpdateAgentThreadOptions" - } - } - ], - "responses": { - "200": { - "description": "Information about the modified thread.", - "schema": { - "$ref": "#/definitions/AgentThread" - } - }, - "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." - } - } - } - } - }, - "delete": { - "operationId": "DeleteThread", - "description": "Deletes an existing thread.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "threadId", - "in": "path", - "description": "Identifier of the thread.", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "Status information about the requested thread deletion operation.", - "schema": { - "$ref": "#/definitions/ThreadDeletionStatus" - } - }, - "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." - } - } - } - } - } - }, - "/threads/{threadId}/messages": { - "get": { - "operationId": "ListMessages", - "description": "Gets a list of messages that exist on a thread.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "threadId", - "in": "path", - "description": "Identifier of the thread.", - "required": true, - "type": "string" - }, - { - "name": "runId", - "in": "query", - "description": "Filter messages by the run ID that generated them.", - "required": false, - "type": "string" - }, - { - "name": "limit", - "in": "query", - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", - "required": false, - "type": "integer", - "format": "int32", - "default": 20 - }, - { - "name": "order", - "in": "query", - "description": "Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.", - "required": false, - "type": "string", - "default": "desc", - "enum": [ - "asc", - "desc" - ], - "x-ms-enum": { - "name": "ListSortOrder", - "modelAsString": true, - "values": [ - { - "name": "ascending", - "value": "asc", - "description": "Specifies an ascending sort order." - }, - { - "name": "descending", - "value": "desc", - "description": "Specifies a descending sort order." - } - ] - } - }, - { - "name": "after", - "in": "query", - "description": "A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.", - "required": false, - "type": "string" - }, - { - "name": "before", - "in": "query", - "description": "A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The requested list of messages.", - "schema": { - "type": "object", - "description": "The response data for a requested list of items.", - "properties": { - "object": { - "type": "string", - "description": "The object type, which is always list.", - "enum": [ - "list" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "data": { - "type": "array", - "description": "The requested list of items.", - "items": { - "$ref": "#/definitions/ThreadMessage" - } - }, - "first_id": { - "type": "string", - "description": "The first ID represented in this list.", - "x-ms-client-name": "firstId" - }, - "last_id": { - "type": "string", - "description": "The last ID represented in this list.", - "x-ms-client-name": "lastId" - }, - "has_more": { - "type": "boolean", - "description": "A value indicating whether there are additional values available not captured in this list.", - "x-ms-client-name": "hasMore" - } - }, - "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" - ] - } - }, - "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." - } - } - } - } - }, - "post": { - "operationId": "CreateMessage", - "description": "Creates a new message on a specified thread.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "threadId", - "in": "path", - "description": "Identifier of the thread.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ThreadMessageOptions" - } - } - ], - "responses": { - "200": { - "description": "A representation of the new message.", - "schema": { - "$ref": "#/definitions/ThreadMessage" - } - }, - "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." - } - } - } - } - } - }, - "/threads/{threadId}/messages/{messageId}": { - "get": { - "operationId": "GetMessage", - "description": "Gets an existing message from an existing thread.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "threadId", - "in": "path", - "description": "Identifier of the thread.", - "required": true, - "type": "string" - }, - { - "name": "messageId", - "in": "path", - "description": "Identifier of the message.", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "A representation of the requested message.", - "schema": { - "$ref": "#/definitions/ThreadMessage" - } - }, - "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." - } - } - } - } - }, - "post": { - "operationId": "UpdateMessage", - "description": "Modifies an existing message on an existing thread.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "threadId", - "in": "path", - "description": "Identifier of the thread.", - "required": true, - "type": "string" - }, - { - "name": "messageId", - "in": "path", - "description": "Identifier of the message.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "metadata": { - "type": "object", - "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - } - } - } - } - ], - "responses": { - "200": { - "description": "A representation of the modified message.", - "schema": { - "$ref": "#/definitions/ThreadMessage" - } - }, - "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." - } - } - } - } - } - }, - "/threads/{threadId}/runs": { - "get": { - "operationId": "ListRuns", - "description": "Gets a list of runs for a specified thread.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "threadId", - "in": "path", - "description": "Identifier of the thread.", - "required": true, - "type": "string" - }, - { - "name": "limit", - "in": "query", - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", - "required": false, - "type": "integer", - "format": "int32", - "default": 20 - }, - { - "name": "order", - "in": "query", - "description": "Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.", - "required": false, - "type": "string", - "default": "desc", - "enum": [ - "asc", - "desc" - ], - "x-ms-enum": { - "name": "ListSortOrder", - "modelAsString": true, - "values": [ - { - "name": "ascending", - "value": "asc", - "description": "Specifies an ascending sort order." - }, - { - "name": "descending", - "value": "desc", - "description": "Specifies a descending sort order." - } - ] - } - }, - { - "name": "after", - "in": "query", - "description": "A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.", - "required": false, - "type": "string" - }, - { - "name": "before", - "in": "query", - "description": "A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The requested list of thread runs.", - "schema": { - "type": "object", - "description": "The response data for a requested list of items.", - "properties": { - "object": { - "type": "string", - "description": "The object type, which is always list.", - "enum": [ - "list" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "data": { - "type": "array", - "description": "The requested list of items.", - "items": { - "$ref": "#/definitions/ThreadRun" - } - }, - "first_id": { - "type": "string", - "description": "The first ID represented in this list.", - "x-ms-client-name": "firstId" - }, - "last_id": { - "type": "string", - "description": "The last ID represented in this list.", - "x-ms-client-name": "lastId" - }, - "has_more": { - "type": "boolean", - "description": "A value indicating whether there are additional values available not captured in this list.", - "x-ms-client-name": "hasMore" - } - }, - "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" - ] - } - }, - "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." - } - } - } - } - }, - "post": { - "operationId": "CreateRun", - "description": "Creates a new run for an agent thread.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "threadId", - "in": "path", - "description": "Identifier of the thread.", - "required": true, - "type": "string" - }, - { - "name": "include[]", - "in": "query", - "description": "A list of additional fields to include in the response.\nCurrently the only supported value is `step_details.tool_calls[*].file_search.results[*].content` to fetch the file search result content.", - "required": false, - "type": "array", - "items": { - "type": "string", - "enum": [ - "step_details.tool_calls[*].file_search.results[*].content" - ], - "x-ms-enum": { - "name": "RunAdditionalFieldList", - "modelAsString": true, - "values": [ - { - "name": "FileSearchContents", - "value": "step_details.tool_calls[*].file_search.results[*].content", - "description": "File search result content." - } - ] - } - }, - "collectionFormat": "csv", - "x-ms-client-name": "include" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateRunOptions" - } - } - ], - "responses": { - "200": { - "description": "Information about the new thread run.", - "schema": { - "$ref": "#/definitions/ThreadRun" - } - }, - "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." - } - } - } - } - } - }, - "/threads/{threadId}/runs/{runId}": { - "get": { - "operationId": "GetRun", - "description": "Gets an existing run from an existing thread.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "threadId", - "in": "path", - "description": "Identifier of the thread.", - "required": true, - "type": "string" - }, - { - "name": "runId", - "in": "path", - "description": "Identifier of the run.", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The requested information about the specified thread run.", - "schema": { - "$ref": "#/definitions/ThreadRun" - } - }, - "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." - } - } - } - } - }, - "post": { - "operationId": "UpdateRun", - "description": "Modifies an existing thread run.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "threadId", - "in": "path", - "description": "Identifier of the thread.", - "required": true, - "type": "string" - }, - { - "name": "runId", - "in": "path", - "description": "Identifier of the run.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "metadata": { - "type": "object", - "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - } - } - } - } - ], - "responses": { - "200": { - "description": "Information about the modified run.", - "schema": { - "$ref": "#/definitions/ThreadRun" - } - }, - "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." - } - } - } - } - } - }, - "/threads/{threadId}/runs/{runId}/cancel": { - "post": { - "operationId": "CancelRun", - "description": "Cancels a run of an in progress thread.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "threadId", - "in": "path", - "description": "Identifier of the thread.", - "required": true, - "type": "string" - }, - { - "name": "runId", - "in": "path", - "description": "Identifier of the run.", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "Updated information about the cancelled run.", - "schema": { - "$ref": "#/definitions/ThreadRun" - } - }, - "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." - } - } - } - } - } - }, - "/threads/{threadId}/runs/{runId}/steps": { - "get": { - "operationId": "ListRunSteps", - "description": "Gets a list of run steps from a thread run.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "threadId", - "in": "path", - "description": "Identifier of the thread.", - "required": true, - "type": "string" - }, - { - "name": "runId", - "in": "path", - "description": "Identifier of the run.", - "required": true, - "type": "string" - }, - { - "name": "include[]", - "in": "query", - "description": "A list of additional fields to include in the response.\nCurrently the only supported value is `step_details.tool_calls[*].file_search.results[*].content` to fetch the file search result content.", - "required": false, - "type": "array", - "items": { - "type": "string", - "enum": [ - "step_details.tool_calls[*].file_search.results[*].content" - ], - "x-ms-enum": { - "name": "RunAdditionalFieldList", - "modelAsString": true, - "values": [ - { - "name": "FileSearchContents", - "value": "step_details.tool_calls[*].file_search.results[*].content", - "description": "File search result content." - } - ] - } - }, - "collectionFormat": "csv", - "x-ms-client-name": "include" - }, - { - "name": "limit", - "in": "query", - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", - "required": false, - "type": "integer", - "format": "int32", - "default": 20 - }, - { - "name": "order", - "in": "query", - "description": "Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.", - "required": false, - "type": "string", - "default": "desc", - "enum": [ - "asc", - "desc" - ], - "x-ms-enum": { - "name": "ListSortOrder", - "modelAsString": true, - "values": [ - { - "name": "ascending", - "value": "asc", - "description": "Specifies an ascending sort order." - }, - { - "name": "descending", - "value": "desc", - "description": "Specifies a descending sort order." - } - ] - } - }, - { - "name": "after", - "in": "query", - "description": "A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.", - "required": false, - "type": "string" - }, - { - "name": "before", - "in": "query", - "description": "A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The requested list of run steps.", - "schema": { - "type": "object", - "description": "The response data for a requested list of items.", - "properties": { - "object": { - "type": "string", - "description": "The object type, which is always list.", - "enum": [ - "list" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "data": { - "type": "array", - "description": "The requested list of items.", - "items": { - "$ref": "#/definitions/RunStep" - } - }, - "first_id": { - "type": "string", - "description": "The first ID represented in this list.", - "x-ms-client-name": "firstId" - }, - "last_id": { - "type": "string", - "description": "The last ID represented in this list.", - "x-ms-client-name": "lastId" - }, - "has_more": { - "type": "boolean", - "description": "A value indicating whether there are additional values available not captured in this list.", - "x-ms-client-name": "hasMore" - } - }, - "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" - ] - } - }, - "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." - } - } - } - } - } - }, - "/threads/{threadId}/runs/{runId}/steps/{stepId}": { - "get": { - "operationId": "GetRunStep", - "description": "Gets a single run step from a thread run.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "threadId", - "in": "path", - "description": "Identifier of the thread.", - "required": true, - "type": "string" - }, - { - "name": "runId", - "in": "path", - "description": "Identifier of the run.", - "required": true, - "type": "string" - }, - { - "name": "stepId", - "in": "path", - "description": "Identifier of the run step.", - "required": true, - "type": "string" - }, - { - "name": "include[]", - "in": "query", - "description": "A list of additional fields to include in the response.\nCurrently the only supported value is `step_details.tool_calls[*].file_search.results[*].content` to fetch the file search result content.", - "required": false, - "type": "array", - "items": { - "type": "string", - "enum": [ - "step_details.tool_calls[*].file_search.results[*].content" - ], - "x-ms-enum": { - "name": "RunAdditionalFieldList", - "modelAsString": true, - "values": [ - { - "name": "FileSearchContents", - "value": "step_details.tool_calls[*].file_search.results[*].content", - "description": "File search result content." - } - ] - } - }, - "collectionFormat": "csv", - "x-ms-client-name": "include" - } - ], - "responses": { - "200": { - "description": "Information about the requested run step.", - "schema": { - "$ref": "#/definitions/RunStep" - } - }, - "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." - } - } - } - } - } - }, - "/threads/{threadId}/runs/{runId}/submit_tool_outputs": { - "post": { - "operationId": "SubmitToolOutputsToRun", - "description": "Submits outputs from tools as requested by tool calls in a run. Runs that need submitted tool outputs will have a status of 'requires_action' with a required_action.type of 'submit_tool_outputs'.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "threadId", - "in": "path", - "description": "Identifier of the thread.", - "required": true, - "type": "string" - }, - { - "name": "runId", - "in": "path", - "description": "Identifier of the run.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "tool_outputs": { - "type": "array", - "description": "A list of tools for which the outputs are being submitted", - "items": { - "$ref": "#/definitions/ToolOutput" - }, - "x-ms-client-name": "toolOutputs", - "x-ms-identifiers": [] - }, - "stream": { - "type": "boolean", - "description": "If true, returns a stream of events that happen during the Run as server-sent events, terminating when the run enters a terminal state.", - "x-nullable": true - } - }, - "required": [ - "tool_outputs" - ] - } - } - ], - "responses": { - "200": { - "description": "Updated information about the run.", - "schema": { - "$ref": "#/definitions/ThreadRun" - } - }, - "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." - } - } - } - } - } - }, - "/threads/runs": { - "post": { - "operationId": "CreateThreadAndRun", - "description": "Creates a new agent thread and immediately starts a run using that new thread.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CreateAndRunThreadOptions" - } - } - ], - "responses": { - "200": { - "description": "Information about the newly created thread.", - "schema": { - "$ref": "#/definitions/ThreadRun" - } - }, - "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." - } - } - } - } - } - }, - "/vector_stores": { - "get": { - "operationId": "ListVectorStores", - "description": "Returns a list of vector stores.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "limit", - "in": "query", - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", - "required": false, - "type": "integer", - "format": "int32", - "default": 20 - }, - { - "name": "order", - "in": "query", - "description": "Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.", - "required": false, - "type": "string", - "default": "desc", - "enum": [ - "asc", - "desc" - ], - "x-ms-enum": { - "name": "ListSortOrder", - "modelAsString": true, - "values": [ - { - "name": "ascending", - "value": "asc", - "description": "Specifies an ascending sort order." - }, - { - "name": "descending", - "value": "desc", - "description": "Specifies a descending sort order." - } - ] - } - }, - { - "name": "after", - "in": "query", - "description": "A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.", - "required": false, - "type": "string" - }, - { - "name": "before", - "in": "query", - "description": "A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "type": "object", - "description": "The response data for a requested list of items.", - "properties": { - "object": { - "type": "string", - "description": "The object type, which is always list.", - "enum": [ - "list" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "data": { - "type": "array", - "description": "The requested list of items.", - "items": { - "$ref": "#/definitions/VectorStore" - } - }, - "first_id": { - "type": "string", - "description": "The first ID represented in this list.", - "x-ms-client-name": "firstId" - }, - "last_id": { - "type": "string", - "description": "The last ID represented in this list.", - "x-ms-client-name": "lastId" - }, - "has_more": { - "type": "boolean", - "description": "A value indicating whether there are additional values available not captured in this list.", - "x-ms-client-name": "hasMore" - } - }, - "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" - ] - } - }, - "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." - } - } - } - } - }, - "post": { - "operationId": "CreateVectorStore", - "description": "Creates a vector store.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/VectorStoreOptions" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/VectorStore" - } - }, - "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." - } - } - } - } - } - }, - "/vector_stores/{vectorStoreId}": { - "get": { - "operationId": "GetVectorStore", - "description": "Returns the vector store object matching the specified ID.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "vectorStoreId", - "in": "path", - "description": "Identifier of the vector store.", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/VectorStore" - } - }, - "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." - } - } - } - } - }, - "post": { - "operationId": "ModifyVectorStore", - "description": "The ID of the vector store to modify.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "vectorStoreId", - "in": "path", - "description": "Identifier of the vector store.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/VectorStoreUpdateOptions" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/VectorStore" - } - }, - "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." - } - } - } - } - }, - "delete": { - "operationId": "DeleteVectorStore", - "description": "Deletes the vector store object matching the specified ID.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "vectorStoreId", - "in": "path", - "description": "Identifier of the vector store.", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/VectorStoreDeletionStatus" - } - }, - "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." - } - } - } - } - } - }, - "/vector_stores/{vectorStoreId}/file_batches": { - "post": { - "operationId": "CreateVectorStoreFileBatch", - "description": "Create a vector store file batch.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "vectorStoreId", - "in": "path", - "description": "Identifier of the vector store.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "file_ids": { - "type": "array", - "description": "List of file identifiers.", - "minItems": 1, - "maxItems": 500, - "items": { - "type": "string" - }, - "x-ms-client-name": "fileIds" - }, - "data_sources": { - "type": "array", - "description": "List of Azure assets.", - "minItems": 1, - "maxItems": 500, - "items": { - "$ref": "#/definitions/VectorStoreDataSource" - }, - "x-ms-client-name": "dataSources", - "x-ms-identifiers": [] - }, - "chunking_strategy": { - "$ref": "#/definitions/VectorStoreChunkingStrategyRequest", - "description": "The chunking strategy used to chunk the file(s). If not set, will use the auto strategy.", - "x-ms-client-name": "chunkingStrategy" - } - } - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/VectorStoreFileBatch" - } - }, - "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." - } - } - } - } - } - }, - "/vector_stores/{vectorStoreId}/file_batches/{batchId}": { - "get": { - "operationId": "GetVectorStoreFileBatch", - "description": "Retrieve a vector store file batch.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "vectorStoreId", - "in": "path", - "description": "Identifier of the vector store.", - "required": true, - "type": "string" - }, - { - "name": "batchId", - "in": "path", - "description": "Identifier of the file batch.", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/VectorStoreFileBatch" - } - }, - "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." - } - } - } - } - } - }, - "/vector_stores/{vectorStoreId}/file_batches/{batchId}/cancel": { - "post": { - "operationId": "CancelVectorStoreFileBatch", - "description": "Cancel a vector store file batch. This attempts to cancel the processing of files in this batch as soon as possible.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "vectorStoreId", - "in": "path", - "description": "Identifier of the vector store.", - "required": true, - "type": "string" - }, - { - "name": "batchId", - "in": "path", - "description": "Identifier of the file batch.", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/VectorStoreFileBatch" - } - }, - "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." - } - } - } - } - } - }, - "/vector_stores/{vectorStoreId}/file_batches/{batchId}/files": { - "get": { - "operationId": "ListVectorStoreFileBatchFiles", - "description": "Returns a list of vector store files in a batch.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "vectorStoreId", - "in": "path", - "description": "Identifier of the vector store.", - "required": true, - "type": "string" - }, - { - "name": "batchId", - "in": "path", - "description": "Identifier of the file batch.", - "required": true, - "type": "string" - }, - { - "name": "filter", - "in": "query", - "description": "Filter by file status.", - "required": false, - "type": "string", - "enum": [ - "in_progress", - "completed", - "failed", - "cancelled" - ], - "x-ms-enum": { - "name": "VectorStoreFileStatusFilter", - "modelAsString": true, - "values": [ - { - "name": "inProgress", - "value": "in_progress", - "description": "Retrieve only files that are currently being processed" - }, - { - "name": "completed", - "value": "completed", - "description": "Retrieve only files that have been successfully processed" - }, - { - "name": "failed", - "value": "failed", - "description": "Retrieve only files that have failed to process" - }, - { - "name": "cancelled", - "value": "cancelled", - "description": "Retrieve only files that were cancelled" - } - ] - } - }, - { - "name": "limit", - "in": "query", - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", - "required": false, - "type": "integer", - "format": "int32", - "default": 20 - }, - { - "name": "order", - "in": "query", - "description": "Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.", - "required": false, - "type": "string", - "default": "desc", - "enum": [ - "asc", - "desc" - ], - "x-ms-enum": { - "name": "ListSortOrder", - "modelAsString": true, - "values": [ - { - "name": "ascending", - "value": "asc", - "description": "Specifies an ascending sort order." - }, - { - "name": "descending", - "value": "desc", - "description": "Specifies a descending sort order." - } - ] - } - }, - { - "name": "after", - "in": "query", - "description": "A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.", - "required": false, - "type": "string" - }, - { - "name": "before", - "in": "query", - "description": "A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "type": "object", - "description": "The response data for a requested list of items.", - "properties": { - "object": { - "type": "string", - "description": "The object type, which is always list.", - "enum": [ - "list" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "data": { - "type": "array", - "description": "The requested list of items.", - "items": { - "$ref": "#/definitions/VectorStoreFile" - } - }, - "first_id": { - "type": "string", - "description": "The first ID represented in this list.", - "x-ms-client-name": "firstId" - }, - "last_id": { - "type": "string", - "description": "The last ID represented in this list.", - "x-ms-client-name": "lastId" - }, - "has_more": { - "type": "boolean", - "description": "A value indicating whether there are additional values available not captured in this list.", - "x-ms-client-name": "hasMore" - } - }, - "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" - ] - } - }, - "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." - } - } - } - } - } - }, - "/vector_stores/{vectorStoreId}/files": { - "get": { - "operationId": "ListVectorStoreFiles", - "description": "Returns a list of vector store files.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "vectorStoreId", - "in": "path", - "description": "Identifier of the vector store.", - "required": true, - "type": "string" - }, - { - "name": "filter", - "in": "query", - "description": "Filter by file status.", - "required": false, - "type": "string", - "enum": [ - "in_progress", - "completed", - "failed", - "cancelled" - ], - "x-ms-enum": { - "name": "VectorStoreFileStatusFilter", - "modelAsString": true, - "values": [ - { - "name": "inProgress", - "value": "in_progress", - "description": "Retrieve only files that are currently being processed" - }, - { - "name": "completed", - "value": "completed", - "description": "Retrieve only files that have been successfully processed" - }, - { - "name": "failed", - "value": "failed", - "description": "Retrieve only files that have failed to process" - }, - { - "name": "cancelled", - "value": "cancelled", - "description": "Retrieve only files that were cancelled" - } - ] - } - }, - { - "name": "limit", - "in": "query", - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", - "required": false, - "type": "integer", - "format": "int32", - "default": 20 - }, - { - "name": "order", - "in": "query", - "description": "Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.", - "required": false, - "type": "string", - "default": "desc", - "enum": [ - "asc", - "desc" - ], - "x-ms-enum": { - "name": "ListSortOrder", - "modelAsString": true, - "values": [ - { - "name": "ascending", - "value": "asc", - "description": "Specifies an ascending sort order." - }, - { - "name": "descending", - "value": "desc", - "description": "Specifies a descending sort order." - } - ] - } - }, - { - "name": "after", - "in": "query", - "description": "A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.", - "required": false, - "type": "string" - }, - { - "name": "before", - "in": "query", - "description": "A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "type": "object", - "description": "The response data for a requested list of items.", - "properties": { - "object": { - "type": "string", - "description": "The object type, which is always list.", - "enum": [ - "list" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "data": { - "type": "array", - "description": "The requested list of items.", - "items": { - "$ref": "#/definitions/VectorStoreFile" - } - }, - "first_id": { - "type": "string", - "description": "The first ID represented in this list.", - "x-ms-client-name": "firstId" - }, - "last_id": { - "type": "string", - "description": "The last ID represented in this list.", - "x-ms-client-name": "lastId" - }, - "has_more": { - "type": "boolean", - "description": "A value indicating whether there are additional values available not captured in this list.", - "x-ms-client-name": "hasMore" - } - }, - "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" - ] - } - }, - "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." - } - } - } - } - }, - "post": { - "operationId": "CreateVectorStoreFile", - "description": "Create a vector store file by attaching a file to a vector store.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "vectorStoreId", - "in": "path", - "description": "Identifier of the vector store.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "file_id": { - "type": "string", - "description": "Identifier of the file.", - "x-ms-client-name": "fileId" - }, - "data_source": { - "$ref": "#/definitions/VectorStoreDataSource", - "description": "Azure asset ID.", - "x-ms-client-name": "dataSource" - }, - "chunking_strategy": { - "$ref": "#/definitions/VectorStoreChunkingStrategyRequest", - "description": "The chunking strategy used to chunk the file(s). If not set, will use the auto strategy.", - "x-ms-client-name": "chunkingStrategy" - } - } - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/VectorStoreFile" - } - }, - "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." - } - } - } - } - } - }, - "/vector_stores/{vectorStoreId}/files/{fileId}": { - "get": { - "operationId": "GetVectorStoreFile", - "description": "Retrieves a vector store file.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "vectorStoreId", - "in": "path", - "description": "Identifier of the vector store.", - "required": true, - "type": "string" - }, - { - "name": "fileId", - "in": "path", - "description": "Identifier of the file.", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/VectorStoreFile" - } - }, - "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." - } - } - } - } - }, - "delete": { - "operationId": "DeleteVectorStoreFile", - "description": "Delete a vector store file. This will remove the file from the vector store but the file itself will not be deleted.\nTo delete the file, use the delete file endpoint.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "vectorStoreId", - "in": "path", - "description": "Identifier of the vector store.", - "required": true, - "type": "string" - }, - { - "name": "fileId", - "in": "path", - "description": "Identifier of the file.", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/VectorStoreFileDeletionStatus" - } - }, - "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." - } - } - } - } - } - } - }, - "definitions": { - "ApiResponseFormat": { - "type": "string", - "description": "Possible API response formats.", - "enum": [ - "text", - "json_object" - ], - "x-ms-enum": { - "name": "ApiResponseFormat", - "modelAsString": true, - "values": [ - { - "name": "text", - "value": "text", - "description": "`text` format should be used for requests involving any sort of ToolCall." - }, - { - "name": "jsonObject", - "value": "json_object", - "description": "Using `json_object` format will limit the usage of ToolCall to only functions." - } - ] - } - }, - "AssetReferenceBase": { - "type": "object", - "description": "Base definition for asset references.", - "properties": { - "referenceType": { - "$ref": "#/definitions/ReferenceType", - "description": "Asset reference type." - } - }, - "discriminator": "referenceType", - "required": [ - "referenceType" - ] - }, - "Assistants.AISearchIndexResource": { - "type": "object", - "description": "A AI Search Index resource.", - "properties": { - "index_connection_id": { - "type": "string", - "description": "An index connection id in an IndexResource attached to this agent.", - "x-ms-client-name": "indexConnectionId" - }, - "index_name": { - "type": "string", - "description": "The name of an index in an IndexResource attached to this agent.", - "x-ms-client-name": "indexName" - }, - "query_type": { - "$ref": "#/definitions/AzureAISearchQueryType", - "description": "Type of query in an AIIndexResource attached to this agent.", - "x-ms-client-name": "queryType" - }, - "top_k": { - "type": "integer", - "format": "int32", - "description": "Number of documents to retrieve from search and present to the model.", - "x-ms-client-name": "topK" - }, - "filter": { - "type": "string", - "description": "Odata filter string for search resource." - } - }, - "required": [ - "index_connection_id", - "index_name" - ] - }, - "Agent": { - "type": "object", - "description": "Represents an agent that can call the model and use tools.", - "properties": { - "id": { - "type": "string", - "description": "The identifier, which can be referenced in API endpoints." - }, - "object": { - "type": "string", - "description": "The object type, which is always assistant.", - "enum": [ - "assistant" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp, in seconds, representing when this object was created.", - "x-ms-client-name": "createdAt" - }, - "name": { - "type": "string", - "description": "The name of the agent.", - "x-nullable": true - }, - "description": { - "type": "string", - "description": "The description of the agent.", - "x-nullable": true - }, - "model": { - "type": "string", - "description": "The ID of the model to use." - }, - "instructions": { - "type": "string", - "description": "The system instructions for the agent to use.", - "x-nullable": true - }, - "tools": { - "type": "array", - "description": "The collection of tools enabled for the agent.", - "default": [], - "items": { - "$ref": "#/definitions/ToolDefinition" - }, - "x-ms-identifiers": [] - }, - "tool_resources": { - "type": "object", - "description": "A set of resources that are used by the agent's tools. The resources are specific to the type of tool. For example, the `code_interpreter`\ntool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs.", - "x-nullable": true, - "allOf": [ - { - "$ref": "#/definitions/ToolResources" - } - ], - "x-ms-client-name": "toolResources" - }, - "temperature": { - "type": "number", - "format": "float", - "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.", - "default": 1, - "x-nullable": true - }, - "top_p": { - "type": "number", - "format": "float", - "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\n\nWe generally recommend altering this or temperature but not both.", - "default": 1, - "x-nullable": true, - "x-ms-client-name": "topP" - }, - "response_format": { - "$ref": "#/definitions/AgentsApiResponseFormatOption", - "description": "The response format of the tool calls used by this agent.", - "x-nullable": true, - "x-ms-client-name": "responseFormat" - }, - "metadata": { - "type": "object", - "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "id", - "object", - "created_at", - "name", - "description", - "model", - "instructions", - "tools", - "tool_resources", - "temperature", - "top_p", - "metadata" - ] - }, - "AgentDeletionStatus": { - "type": "object", - "description": "The status of an agent deletion operation.", - "properties": { - "id": { - "type": "string", - "description": "The ID of the resource specified for deletion." - }, - "deleted": { - "type": "boolean", - "description": "A value indicating whether deletion was successful." - }, - "object": { - "type": "string", - "description": "The object type, which is always 'assistant.deleted'.", - "enum": [ - "assistant.deleted" - ], - "x-ms-enum": { - "modelAsString": false - } - } - }, - "required": [ - "id", - "deleted", - "object" - ] - }, - "AgentStreamEvent": { - "type": "string", - "description": "Each event in a server-sent events stream has an `event` and `data` property:\n\n```\nevent: thread.created\ndata: {\"id\": \"thread_123\", \"object\": \"thread\", ...}\n```\n\nWe emit events whenever a new object is created, transitions to a new state, or is being\nstreamed in parts (deltas). For example, we emit `thread.run.created` when a new run\nis created, `thread.run.completed` when a run completes, and so on. When an Agent chooses\nto create a message during a run, we emit a `thread.message.created event`, a\n`thread.message.in_progress` event, many `thread.message.delta` events, and finally a\n`thread.message.completed` event.\n\nWe may add additional events over time, so we recommend handling unknown events gracefully\nin your code.", - "enum": [ - "thread.created", - "thread.run.created", - "thread.run.queued", - "thread.run.in_progress", - "thread.run.requires_action", - "thread.run.completed", - "thread.run.incomplete", - "thread.run.failed", - "thread.run.cancelling", - "thread.run.cancelled", - "thread.run.expired", - "thread.run.step.created", - "thread.run.step.in_progress", - "thread.run.step.delta", - "thread.run.step.completed", - "thread.run.step.failed", - "thread.run.step.cancelled", - "thread.run.step.expired", - "thread.message.created", - "thread.message.in_progress", - "thread.message.delta", - "thread.message.completed", - "thread.message.incomplete", - "error", - "done" - ], - "x-ms-enum": { - "name": "AgentStreamEvent", - "modelAsString": true, - "values": [ - { - "name": "ThreadCreated", - "value": "thread.created", - "description": "Event sent when a new thread is created. The data of this event is of type AgentThread" - }, - { - "name": "ThreadRunCreated", - "value": "thread.run.created", - "description": "Event sent when a new run is created. The data of this event is of type ThreadRun" - }, - { - "name": "ThreadRunQueued", - "value": "thread.run.queued", - "description": "Event sent when a run moves to `queued` status. The data of this event is of type ThreadRun" - }, - { - "name": "ThreadRunInProgress", - "value": "thread.run.in_progress", - "description": "Event sent when a run moves to `in_progress` status. The data of this event is of type ThreadRun" - }, - { - "name": "ThreadRunRequiresAction", - "value": "thread.run.requires_action", - "description": "Event sent when a run moves to `requires_action` status. The data of this event is of type ThreadRun" - }, - { - "name": "ThreadRunCompleted", - "value": "thread.run.completed", - "description": "Event sent when a run is completed. The data of this event is of type ThreadRun" - }, - { - "name": "ThreadRunIncomplete", - "value": "thread.run.incomplete", - "description": "Event sent when a run ends incomplete. The data of this event is of type ThreadRun" - }, - { - "name": "ThreadRunFailed", - "value": "thread.run.failed", - "description": "Event sent when a run fails. The data of this event is of type ThreadRun" - }, - { - "name": "ThreadRunCancelling", - "value": "thread.run.cancelling", - "description": "Event sent when a run moves to `cancelling` status. The data of this event is of type ThreadRun" - }, - { - "name": "ThreadRunCancelled", - "value": "thread.run.cancelled", - "description": "Event sent when a run is cancelled. The data of this event is of type ThreadRun" - }, - { - "name": "ThreadRunExpired", - "value": "thread.run.expired", - "description": "Event sent when a run is expired. The data of this event is of type ThreadRun" - }, - { - "name": "ThreadRunStepCreated", - "value": "thread.run.step.created", - "description": "Event sent when a new thread run step is created. The data of this event is of type RunStep" - }, - { - "name": "ThreadRunStepInProgress", - "value": "thread.run.step.in_progress", - "description": "Event sent when a run step moves to `in_progress` status. The data of this event is of type RunStep" - }, - { - "name": "ThreadRunStepDelta", - "value": "thread.run.step.delta", - "description": "Event sent when a run step is being streamed. The data of this event is of type RunStepDeltaChunk" - }, - { - "name": "ThreadRunStepCompleted", - "value": "thread.run.step.completed", - "description": "Event sent when a run step is completed. The data of this event is of type RunStep" - }, - { - "name": "ThreadRunStepFailed", - "value": "thread.run.step.failed", - "description": "Event sent when a run step fails. The data of this event is of type RunStep" - }, - { - "name": "ThreadRunStepCancelled", - "value": "thread.run.step.cancelled", - "description": "Event sent when a run step is cancelled. The data of this event is of type RunStep" - }, - { - "name": "ThreadRunStepExpired", - "value": "thread.run.step.expired", - "description": "Event sent when a run step is expired. The data of this event is of type RunStep" - }, - { - "name": "ThreadMessageCreated", - "value": "thread.message.created", - "description": "Event sent when a new message is created. The data of this event is of type ThreadMessage" - }, - { - "name": "ThreadMessageInProgress", - "value": "thread.message.in_progress", - "description": "Event sent when a message moves to `in_progress` status. The data of this event is of type ThreadMessage" - }, - { - "name": "ThreadMessageDelta", - "value": "thread.message.delta", - "description": "Event sent when a message is being streamed. The data of this event is of type MessageDeltaChunk" - }, - { - "name": "ThreadMessageCompleted", - "value": "thread.message.completed", - "description": "Event sent when a message is completed. The data of this event is of type ThreadMessage" - }, - { - "name": "ThreadMessageIncomplete", - "value": "thread.message.incomplete", - "description": "Event sent before a message is completed. The data of this event is of type ThreadMessage" - }, - { - "name": "Error", - "value": "error", - "description": "Event sent when an error occurs, such as an internal server error or a timeout." - }, - { - "name": "Done", - "value": "done", - "description": "Event sent when the stream is done." - } - ] - } - }, - "AgentThread": { - "type": "object", - "description": "Information about a single thread associated with an agent.", - "properties": { - "id": { - "type": "string", - "description": "The identifier, which can be referenced in API endpoints." - }, - "object": { - "type": "string", - "description": "The object type, which is always 'thread'.", - "enum": [ - "thread" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp, in seconds, representing when this object was created.", - "x-ms-client-name": "createdAt" - }, - "tool_resources": { - "type": "object", - "description": "A set of resources that are made available to the agent's tools in this thread. The resources are specific to the type\nof tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list\nof vector store IDs.", - "x-nullable": true, - "allOf": [ - { - "$ref": "#/definitions/ToolResources" - } - ], - "x-ms-client-name": "toolResources" - }, - "metadata": { - "type": "object", - "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "id", - "object", - "created_at", - "tool_resources", - "metadata" - ] - }, - "AgentThreadCreationOptions": { - "type": "object", - "description": "The details used to create a new agent thread.", - "properties": { - "messages": { - "type": "array", - "description": "The initial messages to associate with the new thread.", - "items": { - "$ref": "#/definitions/ThreadMessageOptions" - }, - "x-ms-identifiers": [] - }, - "tool_resources": { - "type": "object", - "description": "A set of resources that are made available to the agent's tools in this thread. The resources are specific to the\ntype of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires\na list of vector store IDs.", - "x-nullable": true, - "allOf": [ - { - "$ref": "#/definitions/ToolResources" - } - ], - "x-ms-client-name": "toolResources" - }, - "metadata": { - "type": "object", - "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - } - } - }, - "AgentsApiResponseFormat": { - "type": "object", - "description": "An object describing the expected output of the model. If `json_object` only `function` type `tools` are allowed to be passed to the Run.\nIf `text` the model can return text or any value needed.", - "properties": { - "type": { - "type": "string", - "description": "Must be one of `text` or `json_object`.", - "default": "text", - "enum": [ - "text", - "json_object" - ], - "x-ms-enum": { - "name": "ResponseFormat", - "modelAsString": true, - "values": [ - { - "name": "text", - "value": "text", - "description": "`text` format should be used for requests involving any sort of ToolCall." - }, - { - "name": "jsonObject", - "value": "json_object", - "description": "Using `json_object` format will limit the usage of ToolCall to only functions." - } - ] - } - } - } - }, - "AgentsApiResponseFormatMode": { - "type": "string", - "description": "Represents the mode in which the model will handle the return format of a tool call.", - "enum": [ - "auto", - "none" - ], - "x-ms-enum": { - "name": "AgentsApiResponseFormatMode", - "modelAsString": true, - "values": [ - { - "name": "auto", - "value": "auto", - "description": "Default value. Let the model handle the return format." - }, - { - "name": "none", - "value": "none", - "description": "Setting the value to `none`, will result in a 400 Bad request." - } - ] - } - }, - "AgentsApiResponseFormatOption": {}, - "AgentsApiToolChoiceOption": {}, - "AgentsApiToolChoiceOptionMode": { - "type": "string", - "description": "Specifies how the tool choice will be used", - "enum": [ - "none", - "auto" - ], - "x-ms-enum": { - "name": "AgentsApiToolChoiceOptionMode", - "modelAsString": true, - "values": [ - { - "name": "none", - "value": "none", - "description": "The model will not call a function and instead generates a message." - }, - { - "name": "auto", - "value": "auto", - "description": "The model can pick between generating a message or calling a function." - } - ] - } - }, - "AgentsNamedToolChoice": { - "type": "object", - "description": "Specifies a tool the model should use. Use to force the model to call a specific tool.", - "properties": { - "type": { - "$ref": "#/definitions/AgentsNamedToolChoiceType", - "description": "the type of tool. If type is `function`, the function name must be set." - }, - "function": { - "$ref": "#/definitions/FunctionName", - "description": "The name of the function to call" - } - }, - "required": [ - "type" - ] - }, - "AgentsNamedToolChoiceType": { - "type": "string", - "description": "Available tool types for agents named tools.", - "enum": [ - "function", - "code_interpreter", - "file_search", - "bing_grounding", - "fabric_dataagent", - "sharepoint_grounding", - "azure_ai_search" - ], - "x-ms-enum": { - "name": "AgentsNamedToolChoiceType", - "modelAsString": true, - "values": [ - { - "name": "function", - "value": "function", - "description": "Tool type `function`" - }, - { - "name": "codeInterpreter", - "value": "code_interpreter", - "description": "Tool type `code_interpreter`" - }, - { - "name": "fileSearch", - "value": "file_search", - "description": "Tool type `file_search`" - }, - { - "name": "bingGrounding", - "value": "bing_grounding", - "description": "Tool type `bing_grounding`" - }, - { - "name": "microsoftFabric", - "value": "fabric_dataagent", - "description": "Tool type `fabric_dataagent`" - }, - { - "name": "sharepoint", - "value": "sharepoint_grounding", - "description": "Tool type `sharepoint_grounding`" - }, - { - "name": "azureAISearch", - "value": "azure_ai_search", - "description": "Tool type `azure_ai_search`" - } - ] - } - }, - "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" - }, - "x-ms-identifiers": [] - }, - "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 Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", - "properties": { - "code": { - "type": "string", - "description": "One of a server-defined set of error codes." - }, - "innererror": { - "$ref": "#/definitions/Azure.Core.Foundations.InnerError", - "description": "Inner error." - } - } - }, - "AzureAISearchQueryType": { - "type": "string", - "description": "Available query types for Azure AI Search tool.", - "enum": [ - "simple", - "semantic", - "vector", - "vector_simple_hybrid", - "vector_semantic_hybrid" - ], - "x-ms-enum": { - "name": "AzureAISearchQueryType", - "modelAsString": true, - "values": [ - { - "name": "simple", - "value": "simple", - "description": "Query type `simple`" - }, - { - "name": "semantic", - "value": "semantic", - "description": "Query type `semantic`" - }, - { - "name": "vector", - "value": "vector", - "description": "Query type `vector`" - }, - { - "name": "vector_simple_hybrid", - "value": "vector_simple_hybrid", - "description": "Query type `vector_simple_hybrid`" - }, - { - "name": "vector_semantic_hybrid", - "value": "vector_semantic_hybrid", - "description": "Query type `vector_semantic_hybrid`" - } - ] - } - }, - "AzureAISearchResource": { - "type": "object", - "description": "A set of index resources used by the `azure_ai_search` tool.", - "properties": { - "indexes": { - "type": "array", - "description": "The indices attached to this agent. There can be a maximum of 1 index\nresource attached to the agent.", - "maxItems": 1, - "items": { - "$ref": "#/definitions/AISearchIndexResource" - }, - "x-ms-client-name": "indexList", - "x-ms-identifiers": [] - } - } - }, - "AzureAISearchToolDefinition": { - "type": "object", - "description": "The input definition information for an Azure AI search tool as used to configure an agent.", - "allOf": [ - { - "$ref": "#/definitions/ToolDefinition" - } - ], - "x-ms-discriminator-value": "azure_ai_search" - }, - "AzureFunctionBinding": { - "type": "object", - "description": "The structure for keeping storage queue name and URI.", - "properties": { - "type": { - "type": "string", - "description": "The type of binding, which is always 'storage_queue'.", - "enum": [ - "storage_queue" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "storage_queue": { - "$ref": "#/definitions/AzureFunctionStorageQueue", - "description": "Storage queue.", - "x-ms-client-name": "storageQueue" - } - }, - "required": [ - "type", - "storage_queue" - ] - }, - "AzureFunctionDefinition": { - "type": "object", - "description": "The definition of Azure function.", - "properties": { - "function": { - "$ref": "#/definitions/FunctionDefinition", - "description": "The definition of azure function and its parameters." - }, - "input_binding": { - "$ref": "#/definitions/AzureFunctionBinding", - "description": "Input storage queue. The queue storage trigger runs a function as messages are added to it.", - "x-ms-client-name": "inputBinding" - }, - "output_binding": { - "$ref": "#/definitions/AzureFunctionBinding", - "description": "Output storage queue. The function writes output to this queue when the input items are processed.", - "x-ms-client-name": "outputBinding" - } - }, - "required": [ - "function", - "input_binding", - "output_binding" - ] - }, - "AzureFunctionStorageQueue": { - "type": "object", - "description": "The structure for keeping storage queue name and URI.", - "properties": { - "queue_service_endpoint": { - "type": "string", - "description": "URI to the Azure Storage Queue service allowing you to manipulate a queue.", - "x-ms-client-name": "storageServiceEndpoint" - }, - "queue_name": { - "type": "string", - "description": "The name of an Azure function storage queue.", - "x-ms-client-name": "queueName" - } - }, - "required": [ - "queue_service_endpoint", - "queue_name" - ] - }, - "AzureFunctionToolDefinition": { - "type": "object", - "description": "The input definition information for a azure function tool as used to configure an agent.", - "properties": { - "azure_function": { - "$ref": "#/definitions/AzureFunctionDefinition", - "description": "The definition of the concrete function that the function tool should call.", - "x-ms-client-name": "azureFunction" - } - }, - "required": [ - "azure_function" - ], - "allOf": [ - { - "$ref": "#/definitions/ToolDefinition" - } - ], - "x-ms-discriminator-value": "azure_function" - }, - "BingGroundingToolDefinition": { - "type": "object", - "description": "The input definition information for a bing grounding search tool as used to configure an agent.", - "properties": { - "bing_grounding": { - "$ref": "#/definitions/ToolConnectionList", - "description": "The list of connections used by the bing grounding tool." - } - }, - "required": [ - "bing_grounding" - ], - "allOf": [ - { - "$ref": "#/definitions/ToolDefinition" - } - ], - "x-ms-discriminator-value": "bing_grounding" - }, - "CodeInterpreterToolDefinition": { - "type": "object", - "description": "The input definition information for a code interpreter tool as used to configure an agent.", - "allOf": [ - { - "$ref": "#/definitions/ToolDefinition" - } - ], - "x-ms-discriminator-value": "code_interpreter" - }, - "CodeInterpreterToolResource": { - "type": "object", - "description": "A set of resources that are used by the `code_interpreter` tool.", - "properties": { - "file_ids": { - "type": "array", - "description": "A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files\nassociated with the tool.", - "default": [], - "maxItems": 20, - "items": { - "type": "string" - }, - "x-ms-client-name": "fileIds" - }, - "data_sources": { - "type": "array", - "description": "The data sources to be used. This option is mutually exclusive with the `fileIds` property.", - "maxItems": 20, - "items": { - "$ref": "#/definitions/VectorStoreDataSource" - }, - "x-ms-client-name": "dataSources", - "x-ms-identifiers": [] - } - } - }, - "CreateAgentOptions": { - "type": "object", - "description": "The request details to use when creating a new agent.", - "properties": { - "model": { - "type": "string", - "description": "The ID of the model to use." - }, - "name": { - "type": "string", - "description": "The name of the new agent.", - "x-nullable": true - }, - "description": { - "type": "string", - "description": "The description of the new agent.", - "x-nullable": true - }, - "instructions": { - "type": "string", - "description": "The system instructions for the new agent to use.", - "x-nullable": true - }, - "tools": { - "type": "array", - "description": "The collection of tools to enable for the new agent.", - "default": [], - "items": { - "$ref": "#/definitions/ToolDefinition" - }, - "x-ms-identifiers": [] - }, - "tool_resources": { - "type": "object", - "description": "A set of resources that are used by the agent's tools. The resources are specific to the type of tool. For example, the `code_interpreter`\ntool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs.", - "x-nullable": true, - "allOf": [ - { - "$ref": "#/definitions/ToolResources" - } - ], - "x-ms-client-name": "toolResources" - }, - "temperature": { - "type": "number", - "format": "float", - "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.", - "default": 1, - "x-nullable": true - }, - "top_p": { - "type": "number", - "format": "float", - "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\n\nWe generally recommend altering this or temperature but not both.", - "default": 1, - "x-nullable": true, - "x-ms-client-name": "topP" - }, - "response_format": { - "$ref": "#/definitions/AgentsApiResponseFormatOption", - "description": "The response format of the tool calls used by this agent.", - "x-nullable": true, - "x-ms-client-name": "responseFormat" - }, - "metadata": { - "type": "object", - "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "model" - ] - }, - "CreateAndRunThreadOptions": { - "type": "object", - "description": "The details used when creating and immediately running a new agent thread.", - "properties": { - "assistant_id": { - "type": "string", - "description": "The ID of the agent for which the thread should be created.", - "x-ms-client-name": "assistantId" - }, - "thread": { - "$ref": "#/definitions/AgentThreadCreationOptions", - "description": "The details used to create the new thread. If no thread is provided, an empty one will be created." - }, - "model": { - "type": "string", - "description": "The overridden model that the agent should use to run the thread.", - "x-nullable": true - }, - "instructions": { - "type": "string", - "description": "The overridden system instructions the agent should use to run the thread.", - "x-nullable": true - }, - "tools": { - "type": "array", - "description": "The overridden list of enabled tools the agent should use to run the thread.", - "x-nullable": true, - "items": { - "$ref": "#/definitions/ToolDefinition" - }, - "x-ms-identifiers": [] - }, - "tool_resources": { - "type": "object", - "description": "Override the tools the agent can use for this run. This is useful for modifying the behavior on a per-run basis", - "x-nullable": true, - "allOf": [ - { - "$ref": "#/definitions/UpdateToolResourcesOptions" - } - ], - "x-ms-client-name": "toolResources" - }, - "stream": { - "type": "boolean", - "description": "If `true`, returns a stream of events that happen during the Run as server-sent events,\nterminating when the Run enters a terminal state with a `data: [DONE]` message." - }, - "temperature": { - "type": "number", - "format": "float", - "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output\nmore random, while lower values like 0.2 will make it more focused and deterministic.", - "default": 1, - "x-nullable": true - }, - "top_p": { - "type": "number", - "format": "float", - "description": "An alternative to sampling with temperature, called nucleus sampling, where the model\nconsiders the results of the tokens with top_p probability mass. So 0.1 means only the tokens\ncomprising the top 10% probability mass are considered.\n\nWe generally recommend altering this or temperature but not both.", - "default": 1, - "x-nullable": true, - "x-ms-client-name": "topP" - }, - "max_prompt_tokens": { - "type": "integer", - "format": "int32", - "description": "The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only\nthe number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified,\nthe run will end with status `incomplete`. See `incomplete_details` for more info.", - "x-nullable": true, - "x-ms-client-name": "maxPromptTokens" - }, - "max_completion_tokens": { - "type": "integer", - "format": "int32", - "description": "The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort to use only\nthe number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of completion tokens\nspecified, the run will end with status `incomplete`. See `incomplete_details` for more info.", - "x-nullable": true, - "x-ms-client-name": "maxCompletionTokens" - }, - "truncation_strategy": { - "type": "object", - "description": "The strategy to use for dropping messages as the context windows moves forward.", - "x-nullable": true, - "allOf": [ - { - "$ref": "#/definitions/TruncationObject" - } - ], - "x-ms-client-name": "truncationStrategy" - }, - "tool_choice": { - "$ref": "#/definitions/AgentsApiToolChoiceOption", - "description": "Controls whether or not and which tool is called by the model.", - "x-nullable": true, - "x-ms-client-name": "toolChoice" - }, - "response_format": { - "$ref": "#/definitions/AgentsApiResponseFormatOption", - "description": "Specifies the format that the model must output.", - "x-nullable": true, - "x-ms-client-name": "responseFormat" - }, - "parallel_tool_calls": { - "type": "boolean", - "description": "If `true` functions will run in parallel during tool use.", - "x-ms-client-name": "parallelToolCalls" - }, - "metadata": { - "type": "object", - "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "assistant_id" - ] - }, - "CreateCodeInterpreterToolResourceOptions": { - "type": "object", - "description": "A set of resources that will be used by the `code_interpreter` tool. Request object.", - "properties": { - "file_ids": { - "type": "array", - "description": "A list of file IDs made available to the `code_interpreter` tool.", - "default": [], - "maxItems": 20, - "items": { - "type": "string" - }, - "x-ms-client-name": "fileIds" - } - } - }, - "CreateFileSearchToolResourceOptions": {}, - "CreateFileSearchToolResourceVectorStoreOptions": { - "type": "object", - "description": "File IDs associated to the vector store to be passed to the helper.", - "properties": { - "file_ids": { - "type": "array", - "description": "A list of file IDs to add to the vector store. There can be a maximum of 10000 files in a vector store.", - "maxItems": 10000, - "items": { - "type": "string" - }, - "x-ms-client-name": "fileIds" - }, - "chunking_strategy": { - "$ref": "#/definitions/VectorStoreChunkingStrategyRequest", - "description": "The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy.", - "x-ms-client-name": "chunkingStrategy" - }, - "metadata": { - "type": "object", - "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "file_ids", - "chunking_strategy" - ] - }, - "CreateRunOptions": { - "type": "object", - "description": "The details used when creating a new run of an agent thread.", - "properties": { - "assistant_id": { - "type": "string", - "description": "The ID of the agent that should run the thread.", - "x-ms-client-name": "assistantId" - }, - "model": { - "type": "string", - "description": "The overridden model name that the agent should use to run the thread.", - "x-nullable": true - }, - "instructions": { - "type": "string", - "description": "The overridden system instructions that the agent should use to run the thread.", - "x-nullable": true - }, - "additional_instructions": { - "type": "string", - "description": "Additional instructions to append at the end of the instructions for the run. This is useful for modifying the behavior\non a per-run basis without overriding other instructions.", - "x-nullable": true, - "x-ms-client-name": "additionalInstructions" - }, - "additional_messages": { - "type": "array", - "description": "Adds additional messages to the thread before creating the run.", - "x-nullable": true, - "items": { - "$ref": "#/definitions/ThreadMessageOptions" - }, - "x-ms-client-name": "additionalMessages", - "x-ms-identifiers": [] - }, - "tools": { - "type": "array", - "description": "The overridden list of enabled tools that the agent should use to run the thread.", - "x-nullable": true, - "items": { - "$ref": "#/definitions/ToolDefinition" - }, - "x-ms-identifiers": [] - }, - "stream": { - "type": "boolean", - "description": "If `true`, returns a stream of events that happen during the Run as server-sent events,\nterminating when the Run enters a terminal state with a `data: [DONE]` message." - }, - "temperature": { - "type": "number", - "format": "float", - "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output\nmore random, while lower values like 0.2 will make it more focused and deterministic.", - "default": 1, - "x-nullable": true - }, - "top_p": { - "type": "number", - "format": "float", - "description": "An alternative to sampling with temperature, called nucleus sampling, where the model\nconsiders the results of the tokens with top_p probability mass. So 0.1 means only the tokens\ncomprising the top 10% probability mass are considered.\n\nWe generally recommend altering this or temperature but not both.", - "default": 1, - "x-nullable": true, - "x-ms-client-name": "topP" - }, - "max_prompt_tokens": { - "type": "integer", - "format": "int32", - "description": "The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only\nthe number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified,\nthe run will end with status `incomplete`. See `incomplete_details` for more info.", - "x-nullable": true, - "x-ms-client-name": "maxPromptTokens" - }, - "max_completion_tokens": { - "type": "integer", - "format": "int32", - "description": "The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort\nto use only the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of\ncompletion tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info.", - "x-nullable": true, - "x-ms-client-name": "maxCompletionTokens" - }, - "truncation_strategy": { - "type": "object", - "description": "The strategy to use for dropping messages as the context windows moves forward.", - "x-nullable": true, - "allOf": [ - { - "$ref": "#/definitions/TruncationObject" - } - ], - "x-ms-client-name": "truncationStrategy" - }, - "tool_choice": { - "$ref": "#/definitions/AgentsApiToolChoiceOption", - "description": "Controls whether or not and which tool is called by the model.", - "x-nullable": true, - "x-ms-client-name": "toolChoice" - }, - "response_format": { - "$ref": "#/definitions/AgentsApiResponseFormatOption", - "description": "Specifies the format that the model must output.", - "x-nullable": true, - "x-ms-client-name": "responseFormat" - }, - "parallel_tool_calls": { - "type": "boolean", - "description": "If `true` functions will run in parallel during tool use.", - "x-ms-client-name": "parallelToolCalls" - }, - "metadata": { - "type": "object", - "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "assistant_id" - ] - }, - "CreateToolResourcesOptions": { - "type": "object", - "description": "Request object. A set of resources that are used by the agent's tools. The resources are specific to the\ntype of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search`\ntool requires a list of vector store IDs.", - "properties": { - "code_interpreter": { - "$ref": "#/definitions/CreateCodeInterpreterToolResourceOptions", - "description": "A list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files\nassociated with the tool.", - "x-ms-client-name": "codeInterpreter" - }, - "file_search": { - "$ref": "#/definitions/CreateFileSearchToolResourceOptions", - "description": "A list of vector stores or their IDs made available to the `file_search` tool.", - "x-ms-client-name": "fileSearch" - }, - "azure_ai_search": { - "$ref": "#/definitions/AzureAISearchResource", - "description": "Resources to be used by the `azure_ai_search` tool consisting of index IDs and names.", - "x-ms-client-name": "azureAISearch" - } - } - }, - "DoneEvent": { - "type": "string", - "description": "Terminal event indicating the successful end of a stream.", - "enum": [ - "done" - ], - "x-ms-enum": { - "name": "DoneEvent", - "modelAsString": true, - "values": [ - { - "name": "Done", - "value": "done", - "description": "Event sent when the stream is done." - } - ] - } - }, - "ErrorEvent": { - "type": "string", - "description": "Terminal event indicating a server side error while streaming.", - "enum": [ - "error" - ], - "x-ms-enum": { - "name": "ErrorEvent", - "modelAsString": true, - "values": [ - { - "name": "Error", - "value": "error", - "description": "Event sent when an error occurs, such as an internal server error or a timeout." - } - ] - } - }, - "FileDeletionStatus": { - "type": "object", - "description": "A status response from a file deletion operation.", - "properties": { - "id": { - "type": "string", - "description": "The ID of the resource specified for deletion." - }, - "deleted": { - "type": "boolean", - "description": "A value indicating whether deletion was successful." - }, - "object": { - "type": "string", - "description": "The object type, which is always 'file'.", - "enum": [ - "file" - ], - "x-ms-enum": { - "modelAsString": false - } - } - }, - "required": [ - "id", - "deleted", - "object" - ] - }, - "FileListResponse": { - "type": "object", - "description": "The response data from a file list operation.", - "properties": { - "object": { - "type": "string", - "description": "The object type, which is always 'list'.", - "enum": [ - "list" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "data": { - "type": "array", - "description": "The files returned for the request.", - "items": { - "$ref": "#/definitions/OpenAIFile" - } - } - }, - "required": [ - "object", - "data" - ] - }, - "FilePurpose": { - "type": "string", - "description": "The possible values denoting the intended usage of a file.", - "enum": [ - "fine-tune", - "fine-tune-results", - "assistants", - "assistants_output", - "batch", - "batch_output", - "vision" - ], - "x-ms-enum": { - "name": "FilePurpose", - "modelAsString": true, - "values": [ - { - "name": "fineTune", - "value": "fine-tune", - "description": "Indicates a file is used for fine tuning input." - }, - { - "name": "fineTuneResults", - "value": "fine-tune-results", - "description": "Indicates a file is used for fine tuning results." - }, - { - "name": "agents", - "value": "assistants", - "description": "Indicates a file is used as input to agents." - }, - { - "name": "agentsOutput", - "value": "assistants_output", - "description": "Indicates a file is used as output by agents." - }, - { - "name": "batch", - "value": "batch", - "description": "Indicates a file is used as input to ." - }, - { - "name": "batchOutput", - "value": "batch_output", - "description": "Indicates a file is used as output by a vector store batch operation." - }, - { - "name": "vision", - "value": "vision", - "description": "Indicates a file is used as input to a vision operation." - } - ] - } - }, - "FileSearchRankingOptions": { - "type": "object", - "description": "Ranking options for file search.", - "properties": { - "ranker": { - "type": "string", - "description": "File search ranker." - }, - "score_threshold": { - "type": "number", - "format": "float", - "description": "Ranker search threshold.", - "x-ms-client-name": "scoreThreshold" - } - }, - "required": [ - "ranker", - "score_threshold" - ] - }, - "FileSearchToolCallContent": { - "type": "object", - "description": "The file search result content object.", - "properties": { - "type": { - "type": "string", - "description": "The type of the content.", - "enum": [ - "text" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "text": { - "type": "string", - "description": "The text content of the file." - } - }, - "required": [ - "type", - "text" - ] - }, - "FileSearchToolDefinition": { - "type": "object", - "description": "The input definition information for a file search tool as used to configure an agent.", - "properties": { - "file_search": { - "$ref": "#/definitions/FileSearchToolDefinitionDetails", - "description": "Options overrides for the file search tool.", - "x-ms-client-name": "fileSearch" - } - }, - "allOf": [ - { - "$ref": "#/definitions/ToolDefinition" - } - ], - "x-ms-discriminator-value": "file_search" - }, - "FileSearchToolDefinitionDetails": { - "type": "object", - "description": "Options overrides for the file search tool.", - "properties": { - "max_num_results": { - "type": "integer", - "format": "int32", - "description": "The maximum number of results the file search tool should output. The default is 20 for gpt-4* models and 5 for gpt-3.5-turbo. This number should be between 1 and 50 inclusive.\n\nNote that the file search tool may output fewer than `max_num_results` results. See the file search tool documentation for more information.", - "minimum": 1, - "maximum": 50, - "x-ms-client-name": "maxNumResults" - }, - "ranking_options": { - "$ref": "#/definitions/FileSearchRankingOptions", - "description": "Ranking options for file search.", - "x-ms-client-name": "rankingOptions" - } - } - }, - "FileSearchToolResource": { - "type": "object", - "description": "A set of resources that are used by the `file_search` tool.", - "properties": { - "vector_store_ids": { - "type": "array", - "description": "The ID of the vector store attached to this agent. There can be a maximum of 1 vector\nstore attached to the agent.", - "maxItems": 1, - "items": { - "type": "string" - }, - "x-ms-client-name": "vectorStoreIds" - }, - "vector_stores": { - "type": "array", - "description": "The list of vector store configuration objects from Azure.\nThis list is limited to one element.\nThe only element of this list contains the list of azure asset IDs used by the search tool.", - "maxItems": 1, - "items": { - "$ref": "#/definitions/VectorStoreConfigurations" - }, - "x-ms-client-name": "vectorStores", - "x-ms-identifiers": [] - } - } - }, - "FileState": { - "type": "string", - "description": "The state of the file.", - "enum": [ - "uploaded", - "pending", - "running", - "processed", - "error", - "deleting", - "deleted" - ], - "x-ms-enum": { - "name": "FileState", - "modelAsString": true, - "values": [ - { - "name": "uploaded", - "value": "uploaded", - "description": "The file has been uploaded but it's not yet processed. This state is not returned by Azure OpenAI and exposed only for\ncompatibility. It can be categorized as an inactive state." - }, - { - "name": "pending", - "value": "pending", - "description": "The operation was created and is not queued to be processed in the future. It can be categorized as an inactive state." - }, - { - "name": "running", - "value": "running", - "description": "The operation has started to be processed. It can be categorized as an active state." - }, - { - "name": "processed", - "value": "processed", - "description": "The operation has successfully processed and is ready for consumption. It can be categorized as a terminal state." - }, - { - "name": "error", - "value": "error", - "description": "The operation has completed processing with a failure and cannot be further consumed. It can be categorized as a terminal state." - }, - { - "name": "deleting", - "value": "deleting", - "description": "The entity is in the process to be deleted. This state is not returned by Azure OpenAI and exposed only for compatibility.\nIt can be categorized as an active state." - }, - { - "name": "deleted", - "value": "deleted", - "description": "The entity has been deleted but may still be referenced by other entities predating the deletion. It can be categorized as a\nterminal state." - } - ] - } - }, - "FunctionDefinition": { - "type": "object", - "description": "The input definition information for a function.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does, used by the model to choose when and how to call the function." - }, - "parameters": { - "description": "The parameters the functions accepts, described as a JSON Schema object." - } - }, - "required": [ - "name", - "parameters" - ] - }, - "FunctionName": { - "type": "object", - "description": "The function name that will be used, if using the `function` tool", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to call" - } - }, - "required": [ - "name" - ] - }, - "FunctionToolDefinition": { - "type": "object", - "description": "The input definition information for a function tool as used to configure an agent.", - "properties": { - "function": { - "$ref": "#/definitions/FunctionDefinition", - "description": "The definition of the concrete function that the function tool should call." - } - }, - "required": [ - "function" - ], - "allOf": [ - { - "$ref": "#/definitions/ToolDefinition" - } - ], - "x-ms-discriminator-value": "function" - }, - "IncompleteDetailsReason": { - "type": "string", - "description": "The reason why the run is incomplete. This will point to which specific token limit was reached over the course of the run.", - "enum": [ - "max_completion_tokens", - "max_prompt_tokens" - ], - "x-ms-enum": { - "name": "IncompleteDetailsReason", - "modelAsString": true, - "values": [ - { - "name": "maxCompletionTokens", - "value": "max_completion_tokens", - "description": "Maximum completion tokens exceeded" - }, - { - "name": "maxPromptTokens", - "value": "max_prompt_tokens", - "description": "Maximum prompt tokens exceeded" - } - ] - } - }, - "IncompleteRunDetails": { - "type": "object", - "description": "Details on why the run is incomplete. Will be `null` if the run is not incomplete.", - "properties": { - "reason": { - "$ref": "#/definitions/IncompleteDetailsReason", - "description": "The reason why the run is incomplete. This indicates which specific token limit was reached during the run." - } - }, - "required": [ - "reason" - ] - }, - "IndexResource": { - "type": "object", - "description": "A Index resource.", - "properties": { - "index_connection_id": { - "type": "string", - "description": "An index connection id in an IndexResource attached to this agent.", - "x-ms-client-name": "indexConnectionId" - }, - "index_name": { - "type": "string", - "description": "The name of an index in an IndexResource attached to this agent.", - "x-ms-client-name": "indexName" - } - }, - "required": [ - "index_connection_id", - "index_name" - ] - }, - "ListSortOrder": { - "type": "string", - "description": "The available sorting options when requesting a list of response objects.", - "enum": [ - "asc", - "desc" - ], - "x-ms-enum": { - "name": "ListSortOrder", - "modelAsString": true, - "values": [ - { - "name": "ascending", - "value": "asc", - "description": "Specifies an ascending sort order." - }, - { - "name": "descending", - "value": "desc", - "description": "Specifies a descending sort order." - } - ] - } - }, - "MessageAttachment": { - "type": "object", - "description": "This describes to which tools a file has been attached.", - "properties": { - "file_id": { - "type": "string", - "description": "The ID of the file to attach to the message.", - "x-ms-client-name": "fileId" - }, - "data_source": { - "$ref": "#/definitions/VectorStoreDataSource", - "description": "Azure asset ID.", - "x-ms-client-name": "dataSource" - }, - "tools": { - "type": "array", - "description": "The tools to add to this file.", - "items": { - "$ref": "#/definitions/MessageAttachmentToolDefinition" - } - } - }, - "required": [ - "tools" - ] - }, - "MessageAttachmentToolDefinition": { - "x-nullable": false - }, - "MessageContent": { - "type": "object", - "description": "An abstract representation of a single item of thread message content.", - "properties": { - "type": { - "type": "string", - "description": "The object type." - } - }, - "discriminator": "type", - "required": [ - "type" - ] - }, - "MessageDelta": { - "type": "object", - "description": "Represents the typed 'delta' payload within a streaming message delta chunk.", - "properties": { - "role": { - "$ref": "#/definitions/MessageRole", - "description": "The entity that produced the message." - }, - "content": { - "type": "array", - "description": "The content of the message as an array of text and/or images.", - "items": { - "$ref": "#/definitions/MessageDeltaContent" - }, - "x-ms-identifiers": [] - } - }, - "required": [ - "role", - "content" - ] - }, - "MessageDeltaChunk": { - "type": "object", - "description": "Represents a message delta i.e. any changed fields on a message during streaming.", - "properties": { - "id": { - "type": "string", - "description": "The identifier of the message, which can be referenced in API endpoints." - }, - "object": { - "type": "string", - "description": "The object type, which is always `thread.message.delta`.", - "enum": [ - "thread.message.delta" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "delta": { - "$ref": "#/definitions/MessageDelta", - "description": "The delta containing the fields that have changed on the Message." - } - }, - "required": [ - "id", - "object", - "delta" - ] - }, - "MessageDeltaContent": { - "type": "object", - "description": "The abstract base representation of a partial streamed message content payload.", - "properties": { - "index": { - "type": "integer", - "format": "int32", - "description": "The index of the content part of the message." - }, - "type": { - "type": "string", - "description": "The type of content for this content part." - } - }, - "discriminator": "type", - "required": [ - "index", - "type" - ] - }, - "MessageDeltaImageFileContent": { - "type": "object", - "description": "Represents a streamed image file content part within a streaming message delta chunk.", - "properties": { - "image_file": { - "$ref": "#/definitions/MessageDeltaImageFileContentObject", - "description": "The image_file data.", - "x-ms-client-name": "imageFile" - } - }, - "allOf": [ - { - "$ref": "#/definitions/MessageDeltaContent" - } - ], - "x-ms-discriminator-value": "image_file" - }, - "MessageDeltaImageFileContentObject": { - "type": "object", - "description": "Represents the 'image_file' payload within streaming image file content.", - "properties": { - "file_id": { - "type": "string", - "description": "The file ID of the image in the message content.", - "x-ms-client-name": "fileId" - } - } - }, - "MessageDeltaTextAnnotation": { - "type": "object", - "description": "The abstract base representation of a streamed text content part's text annotation.", - "properties": { - "index": { - "type": "integer", - "format": "int32", - "description": "The index of the annotation within a text content part." - }, - "type": { - "type": "string", - "description": "The type of the text content annotation." - } - }, - "discriminator": "type", - "required": [ - "index", - "type" - ] - }, - "MessageDeltaTextContent": { - "type": "object", - "description": "Represents a streamed text content part within a streaming message delta chunk.", - "properties": { - "text": { - "$ref": "#/definitions/MessageDeltaTextContentObject", - "description": "The text content details." - } - }, - "allOf": [ - { - "$ref": "#/definitions/MessageDeltaContent" - } - ], - "x-ms-discriminator-value": "text" - }, - "MessageDeltaTextContentObject": { - "type": "object", - "description": "Represents the data of a streamed text content part within a streaming message delta chunk.", - "properties": { - "value": { - "type": "string", - "description": "The data that makes up the text." - }, - "annotations": { - "type": "array", - "description": "Annotations for the text.", - "items": { - "$ref": "#/definitions/MessageDeltaTextAnnotation" - }, - "x-ms-identifiers": [] - } - } - }, - "MessageDeltaTextFileCitationAnnotation": { - "type": "object", - "description": "Represents a streamed file citation applied to a streaming text content part.", - "properties": { - "file_citation": { - "$ref": "#/definitions/MessageDeltaTextFileCitationAnnotationObject", - "description": "The file citation information.", - "x-ms-client-name": "fileCitation" - }, - "text": { - "type": "string", - "description": "The text in the message content that needs to be replaced" - }, - "start_index": { - "type": "integer", - "format": "int32", - "description": "The start index of this annotation in the content text.", - "x-ms-client-name": "startIndex" - }, - "end_index": { - "type": "integer", - "format": "int32", - "description": "The end index of this annotation in the content text.", - "x-ms-client-name": "endIndex" - } - }, - "allOf": [ - { - "$ref": "#/definitions/MessageDeltaTextAnnotation" - } - ], - "x-ms-discriminator-value": "file_citation" - }, - "MessageDeltaTextFileCitationAnnotationObject": { - "type": "object", - "description": "Represents the data of a streamed file citation as applied to a streaming text content part.", - "properties": { - "file_id": { - "type": "string", - "description": "The ID of the specific file the citation is from.", - "x-ms-client-name": "fileId" - }, - "quote": { - "type": "string", - "description": "The specific quote in the cited file." - } - } - }, - "MessageDeltaTextFilePathAnnotation": { - "type": "object", - "description": "Represents a streamed file path annotation applied to a streaming text content part.", - "properties": { - "file_path": { - "$ref": "#/definitions/MessageDeltaTextFilePathAnnotationObject", - "description": "The file path information.", - "x-ms-client-name": "filePath" - }, - "start_index": { - "type": "integer", - "format": "int32", - "description": "The start index of this annotation in the content text.", - "x-ms-client-name": "startIndex" - }, - "end_index": { - "type": "integer", - "format": "int32", - "description": "The end index of this annotation in the content text.", - "x-ms-client-name": "endIndex" - }, - "text": { - "type": "string", - "description": "The text in the message content that needs to be replaced" - } - }, - "allOf": [ - { - "$ref": "#/definitions/MessageDeltaTextAnnotation" - } - ], - "x-ms-discriminator-value": "file_path" - }, - "MessageDeltaTextFilePathAnnotationObject": { - "type": "object", - "description": "Represents the data of a streamed file path annotation as applied to a streaming text content part.", - "properties": { - "file_id": { - "type": "string", - "description": "The file ID for the annotation.", - "x-ms-client-name": "fileId" - } - } - }, - "MessageDeltaTextUrlCitationAnnotation": { - "type": "object", - "description": "A citation within the message that points to a specific URL associated with the message. Generated when the agent uses tools such as 'bing_grounding' to search the Internet.", - "properties": { - "url_citation": { - "$ref": "#/definitions/MessageDeltaTextUrlCitationDetails", - "description": "The details of the URL citation.", - "x-ms-client-name": "urlCitation" - }, - "start_index": { - "type": "integer", - "format": "int32", - "description": "The first text index associated with this text annotation.", - "x-ms-client-name": "startIndex" - }, - "end_index": { - "type": "integer", - "format": "int32", - "description": "The last text index associated with this text annotation.", - "x-ms-client-name": "endIndex" - } - }, - "required": [ - "url_citation" - ], - "allOf": [ - { - "$ref": "#/definitions/MessageDeltaTextAnnotation" - } - ], - "x-ms-discriminator-value": "url_citation" - }, - "MessageDeltaTextUrlCitationDetails": { - "type": "object", - "description": "A representation of a URL citation, as used in text thread message content.", - "properties": { - "url": { - "type": "string", - "description": "The URL associated with this citation." - }, - "title": { - "type": "string", - "description": "The title of the URL." - } - }, - "required": [ - "url" - ] - }, - "MessageImageFileContent": { - "type": "object", - "description": "A representation of image file content in a thread message.", - "properties": { - "image_file": { - "$ref": "#/definitions/MessageImageFileDetails", - "description": "The image file for this thread message content item.", - "x-ms-client-name": "imageFile" - } - }, - "required": [ - "image_file" - ], - "allOf": [ - { - "$ref": "#/definitions/MessageContent" - } - ], - "x-ms-discriminator-value": "image_file" - }, - "MessageImageFileDetails": { - "type": "object", - "description": "An image reference, as represented in thread message content.", - "properties": { - "file_id": { - "type": "string", - "description": "The ID for the file associated with this image.", - "x-ms-client-name": "fileId" - } - }, - "required": [ - "file_id" - ] - }, - "MessageIncompleteDetails": { - "type": "object", - "description": "Information providing additional detail about a message entering an incomplete status.", - "properties": { - "reason": { - "$ref": "#/definitions/MessageIncompleteDetailsReason", - "description": "The provided reason describing why the message was marked as incomplete." - } - }, - "required": [ - "reason" - ] - }, - "MessageIncompleteDetailsReason": { - "type": "string", - "description": "A set of reasons describing why a message is marked as incomplete.", - "enum": [ - "content_filter", - "max_tokens", - "run_cancelled", - "run_failed", - "run_expired" - ], - "x-ms-enum": { - "name": "MessageIncompleteDetailsReason", - "modelAsString": true, - "values": [ - { - "name": "contentFilter", - "value": "content_filter", - "description": "The run generating the message was terminated due to content filter flagging." - }, - { - "name": "maxTokens", - "value": "max_tokens", - "description": "The run generating the message exhausted available tokens before completion." - }, - { - "name": "runCancelled", - "value": "run_cancelled", - "description": "The run generating the message was cancelled before completion." - }, - { - "name": "runFailed", - "value": "run_failed", - "description": "The run generating the message failed." - }, - { - "name": "runExpired", - "value": "run_expired", - "description": "The run generating the message expired." - } - ] - } - }, - "MessageRole": { - "type": "string", - "description": "The possible values for roles attributed to messages in a thread.", - "enum": [ - "user", - "assistant" - ], - "x-ms-enum": { - "name": "MessageRole", - "modelAsString": true, - "values": [ - { - "name": "user", - "value": "user", - "description": "The role representing the end-user." - }, - { - "name": "agent", - "value": "assistant", - "description": "The role representing the agent." - } - ] - } - }, - "MessageStatus": { - "type": "string", - "description": "The possible execution status values for a thread message.", - "enum": [ - "in_progress", - "incomplete", - "completed" - ], - "x-ms-enum": { - "name": "MessageStatus", - "modelAsString": true, - "values": [ - { - "name": "inProgress", - "value": "in_progress", - "description": "A run is currently creating this message." - }, - { - "name": "incomplete", - "value": "incomplete", - "description": "This message is incomplete. See incomplete_details for more information." - }, - { - "name": "completed", - "value": "completed", - "description": "This message was successfully completed by a run." - } - ] - } - }, - "MessageStreamEvent": { - "type": "string", - "description": "Message operation related streaming events", - "enum": [ - "thread.message.created", - "thread.message.in_progress", - "thread.message.delta", - "thread.message.completed", - "thread.message.incomplete" - ], - "x-ms-enum": { - "name": "MessageStreamEvent", - "modelAsString": true, - "values": [ - { - "name": "ThreadMessageCreated", - "value": "thread.message.created", - "description": "Event sent when a new message is created. The data of this event is of type ThreadMessage" - }, - { - "name": "ThreadMessageInProgress", - "value": "thread.message.in_progress", - "description": "Event sent when a message moves to `in_progress` status. The data of this event is of type ThreadMessage" - }, - { - "name": "ThreadMessageDelta", - "value": "thread.message.delta", - "description": "Event sent when a message is being streamed. The data of this event is of type MessageDeltaChunk" - }, - { - "name": "ThreadMessageCompleted", - "value": "thread.message.completed", - "description": "Event sent when a message is completed. The data of this event is of type ThreadMessage" - }, - { - "name": "ThreadMessageIncomplete", - "value": "thread.message.incomplete", - "description": "Event sent before a message is completed. The data of this event is of type ThreadMessage" - } - ] - } - }, - "MessageTextAnnotation": { - "type": "object", - "description": "An abstract representation of an annotation to text thread message content.", - "properties": { - "type": { - "type": "string", - "description": "The object type." - }, - "text": { - "type": "string", - "description": "The textual content associated with this text annotation item." - } - }, - "discriminator": "type", - "required": [ - "type", - "text" - ] - }, - "MessageTextContent": { - "type": "object", - "description": "A representation of a textual item of thread message content.", - "properties": { - "text": { - "$ref": "#/definitions/MessageTextDetails", - "description": "The text and associated annotations for this thread message content item." - } - }, - "required": [ - "text" - ], - "allOf": [ - { - "$ref": "#/definitions/MessageContent" - } - ], - "x-ms-discriminator-value": "text" - }, - "MessageTextDetails": { - "type": "object", - "description": "The text and associated annotations for a single item of agent thread message content.", - "properties": { - "value": { - "type": "string", - "description": "The text data." - }, - "annotations": { - "type": "array", - "description": "A list of annotations associated with this text.", - "items": { - "$ref": "#/definitions/MessageTextAnnotation" - }, - "x-ms-identifiers": [] - } - }, - "required": [ - "value", - "annotations" - ] - }, - "MessageTextFileCitationAnnotation": { - "type": "object", - "description": "A citation within the message that points to a specific quote from a specific File associated with the agent or the message. Generated when the agent uses the 'file_search' tool to search files.", - "properties": { - "file_citation": { - "$ref": "#/definitions/MessageTextFileCitationDetails", - "description": "A citation within the message that points to a specific quote from a specific file.\nGenerated when the agent uses the \"file_search\" tool to search files.", - "x-ms-client-name": "fileCitation" - }, - "start_index": { - "type": "integer", - "format": "int32", - "description": "The first text index associated with this text annotation.", - "x-ms-client-name": "startIndex" - }, - "end_index": { - "type": "integer", - "format": "int32", - "description": "The last text index associated with this text annotation.", - "x-ms-client-name": "endIndex" - } - }, - "required": [ - "file_citation" - ], - "allOf": [ - { - "$ref": "#/definitions/MessageTextAnnotation" - } - ], - "x-ms-discriminator-value": "file_citation" - }, - "MessageTextFileCitationDetails": { - "type": "object", - "description": "A representation of a file-based text citation, as used in a file-based annotation of text thread message content.", - "properties": { - "file_id": { - "type": "string", - "description": "The ID of the file associated with this citation.", - "x-ms-client-name": "fileId" - }, - "quote": { - "type": "string", - "description": "The specific quote cited in the associated file." - } - }, - "required": [ - "file_id", - "quote" - ] - }, - "MessageTextFilePathAnnotation": { - "type": "object", - "description": "A citation within the message that points to a file located at a specific path.", - "properties": { - "file_path": { - "$ref": "#/definitions/MessageTextFilePathDetails", - "description": "A URL for the file that's generated when the agent used the code_interpreter tool to generate a file.", - "x-ms-client-name": "filePath" - }, - "start_index": { - "type": "integer", - "format": "int32", - "description": "The first text index associated with this text annotation.", - "x-ms-client-name": "startIndex" - }, - "end_index": { - "type": "integer", - "format": "int32", - "description": "The last text index associated with this text annotation.", - "x-ms-client-name": "endIndex" - } - }, - "required": [ - "file_path" - ], - "allOf": [ - { - "$ref": "#/definitions/MessageTextAnnotation" - } - ], - "x-ms-discriminator-value": "file_path" - }, - "MessageTextFilePathDetails": { - "type": "object", - "description": "An encapsulation of an image file ID, as used by message image content.", - "properties": { - "file_id": { - "type": "string", - "description": "The ID of the specific file that the citation is from.", - "x-ms-client-name": "fileId" - } - }, - "required": [ - "file_id" - ] - }, - "MessageTextUrlCitationAnnotation": { - "type": "object", - "description": "A citation within the message that points to a specific URL associated with the message. Generated when the agent uses tools such as 'bing_grounding' to search the Internet.", - "properties": { - "url_citation": { - "$ref": "#/definitions/MessageTextUrlCitationDetails", - "description": "The details of the URL citation.", - "x-ms-client-name": "urlCitation" - }, - "start_index": { - "type": "integer", - "format": "int32", - "description": "The first text index associated with this text annotation.", - "x-ms-client-name": "startIndex" - }, - "end_index": { - "type": "integer", - "format": "int32", - "description": "The last text index associated with this text annotation.", - "x-ms-client-name": "endIndex" - } - }, - "required": [ - "url_citation" - ], - "allOf": [ - { - "$ref": "#/definitions/MessageTextAnnotation" - } - ], - "x-ms-discriminator-value": "url_citation" - }, - "MessageTextUrlCitationDetails": { - "type": "object", - "description": "A representation of a URL citation, as used in text thread message content.", - "properties": { - "url": { - "type": "string", - "description": "The URL associated with this citation." - }, - "title": { - "type": "string", - "description": "The title of the URL." - } - }, - "required": [ - "url" - ] - }, - "MicrosoftFabricToolDefinition": { - "type": "object", - "description": "The input definition information for a Microsoft Fabric tool as used to configure an agent.", - "properties": { - "fabric_dataagent": { - "$ref": "#/definitions/ToolConnectionList", - "description": "The list of connections used by the Microsoft Fabric tool." - } - }, - "required": [ - "fabric_dataagent" - ], - "allOf": [ - { - "$ref": "#/definitions/ToolDefinition" - } - ], - "x-ms-discriminator-value": "fabric_dataagent" - }, - "OpenAIFile": { - "type": "object", - "description": "Represents an agent that can call the model and use tools.", - "properties": { - "object": { - "type": "string", - "description": "The object type, which is always 'file'.", - "enum": [ - "file" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "id": { - "type": "string", - "description": "The identifier, which can be referenced in API endpoints." - }, - "bytes": { - "type": "integer", - "format": "int32", - "description": "The size of the file, in bytes." - }, - "filename": { - "type": "string", - "description": "The name of the file." - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp, in seconds, representing when this object was created.", - "x-ms-client-name": "createdAt" - }, - "purpose": { - "$ref": "#/definitions/FilePurpose", - "description": "The intended purpose of a file." - }, - "status": { - "$ref": "#/definitions/FileState", - "description": "The state of the file. This field is available in Azure OpenAI only." - }, - "status_details": { - "type": "string", - "description": "The error message with details in case processing of this file failed. This field is available in Azure OpenAI only.", - "x-ms-client-name": "statusDetails" - } - }, - "required": [ - "object", - "id", - "bytes", - "filename", - "created_at", - "purpose" - ] - }, - "OpenApiAnonymousAuthDetails": { - "type": "object", - "description": "Security details for OpenApi anonymous authentication", - "allOf": [ - { - "$ref": "#/definitions/OpenApiAuthDetails" - } - ], - "x-ms-discriminator-value": "anonymous" - }, - "OpenApiAuthDetails": { - "type": "object", - "description": "authentication details for OpenApiFunctionDefinition", - "properties": { - "type": { - "$ref": "#/definitions/OpenApiAuthType", - "description": "The type of authentication, must be anonymous/connection/managed_identity" - } - }, - "discriminator": "type", - "required": [ - "type" - ] - }, - "OpenApiAuthType": { - "type": "string", - "description": " Authentication type for OpenApi endpoint. Allowed types are:\n - Anonymous (no authentication required)\n - Connection (requires connection_id to endpoint, as setup in AI Foundry)\n - Managed_Identity (requires audience for identity based auth)", - "enum": [ - "anonymous", - "connection", - "managed_identity" - ], - "x-ms-enum": { - "name": "OpenApiAuthType", - "modelAsString": true, - "values": [ - { - "name": "anonymous", - "value": "anonymous" - }, - { - "name": "connection", - "value": "connection" - }, - { - "name": "managedIdentity", - "value": "managed_identity" - } - ] - } - }, - "OpenApiConnectionAuthDetails": { - "type": "object", - "description": "Security details for OpenApi connection authentication", - "properties": { - "security_scheme": { - "$ref": "#/definitions/OpenApiConnectionSecurityScheme", - "description": "Connection auth security details" - } - }, - "required": [ - "security_scheme" - ], - "allOf": [ - { - "$ref": "#/definitions/OpenApiAuthDetails" - } - ], - "x-ms-discriminator-value": "connection" - }, - "OpenApiConnectionSecurityScheme": { - "type": "object", - "description": "Security scheme for OpenApi managed_identity authentication", - "properties": { - "connection_id": { - "type": "string", - "description": "Connection id for Connection auth type" - } - }, - "required": [ - "connection_id" - ] - }, - "OpenApiFunctionDefinition": { - "type": "object", - "description": "The input definition information for an openapi function.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to be called." - }, - "description": { - "type": "string", - "description": "A description of what the function does, used by the model to choose when and how to call the function." - }, - "spec": { - "description": "The openapi function shape, described as a JSON Schema object." - }, - "auth": { - "$ref": "#/definitions/OpenApiAuthDetails", - "description": "Open API authentication details" - } - }, - "required": [ - "name", - "spec", - "auth" - ] - }, - "OpenApiManagedAuthDetails": { - "type": "object", - "description": "Security details for OpenApi managed_identity authentication", - "properties": { - "security_scheme": { - "$ref": "#/definitions/OpenApiManagedSecurityScheme", - "description": "Connection auth security details" - } - }, - "required": [ - "security_scheme" - ], - "allOf": [ - { - "$ref": "#/definitions/OpenApiAuthDetails" - } - ], - "x-ms-discriminator-value": "managed_identity" - }, - "OpenApiManagedSecurityScheme": { - "type": "object", - "description": "Security scheme for OpenApi managed_identity authentication", - "properties": { - "audience": { - "type": "string", - "description": "Authentication scope for managed_identity auth type" - } - }, - "required": [ - "audience" - ] - }, - "OpenApiToolDefinition": { - "type": "object", - "description": "The input definition information for an OpenAPI tool as used to configure an agent.", - "properties": { - "openapi": { - "$ref": "#/definitions/OpenApiFunctionDefinition", - "description": "The openapi function definition." - } - }, - "required": [ - "openapi" - ], - "allOf": [ - { - "$ref": "#/definitions/ToolDefinition" - } - ], - "x-ms-discriminator-value": "openapi" - }, - "RequiredAction": { - "type": "object", - "description": "An abstract representation of a required action for an agent thread run to continue.", - "properties": { - "type": { - "type": "string", - "description": "The object type." - } - }, - "discriminator": "type", - "required": [ - "type" - ] - }, - "RequiredFunctionToolCall": { - "type": "object", - "description": "A representation of a requested call to a function tool, needed by the model to continue evaluation of a run.", - "properties": { - "function": { - "$ref": "#/definitions/RequiredFunctionToolCallDetails", - "description": "Detailed information about the function to be executed by the tool that includes name and arguments." - } - }, - "required": [ - "function" - ], - "allOf": [ - { - "$ref": "#/definitions/RequiredToolCall" - } - ], - "x-ms-discriminator-value": "function" - }, - "RequiredFunctionToolCallDetails": { - "type": "object", - "description": "The detailed information for a function invocation, as provided by a required action invoking a function tool, that includes the name of and arguments to the function.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "arguments": { - "type": "string", - "description": "The arguments to use when invoking the named function, as provided by the model. Arguments are presented as a JSON document that should be validated and parsed for evaluation." - } - }, - "required": [ - "name", - "arguments" - ] - }, - "RequiredToolCall": { - "type": "object", - "description": "An abstract representation of a tool invocation needed by the model to continue a run.", - "properties": { - "type": { - "type": "string", - "description": "The object type for the required tool call." - }, - "id": { - "type": "string", - "description": "The ID of the tool call. This ID must be referenced when submitting tool outputs." - } - }, - "discriminator": "type", - "required": [ - "type", - "id" - ] - }, - "ResponseFormat": { - "type": "string", - "description": "Possible API response formats.", - "enum": [ - "text", - "json_object" - ], - "x-ms-enum": { - "name": "ResponseFormat", - "modelAsString": true, - "values": [ - { - "name": "text", - "value": "text", - "description": "`text` format should be used for requests involving any sort of ToolCall." - }, - { - "name": "jsonObject", - "value": "json_object", - "description": "Using `json_object` format will limit the usage of ToolCall to only functions." - } - ] - } - }, - "ResponseFormatJsonSchema": { - "type": "object", - "description": "A description of what the response format is for, used by the model to determine how to respond in the format.", - "properties": { - "description": { - "type": "string", - "description": "A description of what the response format is for, used by the model to determine how to respond in the format." - }, - "name": { - "type": "string", - "description": "The name of a schema." - }, - "schema": { - "description": "The JSON schema object, describing the response format." - } - }, - "required": [ - "name", - "schema" - ] - }, - "ResponseFormatJsonSchemaType": { - "type": "object", - "description": "The type of response format being defined: `json_schema`", - "properties": { - "type": { - "type": "string", - "description": "Type", - "enum": [ - "json_schema" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "json_schema": { - "$ref": "#/definitions/ResponseFormatJsonSchema", - "description": "The JSON schema, describing response format.", - "x-ms-client-name": "jsonSchema" - } - }, - "required": [ - "type", - "json_schema" - ] - }, - "RunAdditionalFieldList": { - "type": "string", - "description": "A list of additional fields to include in the response.", - "enum": [ - "step_details.tool_calls[*].file_search.results[*].content" - ], - "x-ms-enum": { - "name": "RunAdditionalFieldList", - "modelAsString": true, - "values": [ - { - "name": "FileSearchContents", - "value": "step_details.tool_calls[*].file_search.results[*].content", - "description": "File search result content." - } - ] - } - }, - "RunCompletionUsage": { - "type": "object", - "description": "Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.).", - "properties": { - "completion_tokens": { - "type": "integer", - "format": "int64", - "description": "Number of completion tokens used over the course of the run.", - "x-ms-client-name": "completionTokens" - }, - "prompt_tokens": { - "type": "integer", - "format": "int64", - "description": "Number of prompt tokens used over the course of the run.", - "x-ms-client-name": "promptTokens" - }, - "total_tokens": { - "type": "integer", - "format": "int64", - "description": "Total number of tokens used (prompt + completion).", - "x-ms-client-name": "totalTokens" - } - }, - "required": [ - "completion_tokens", - "prompt_tokens", - "total_tokens" - ] - }, - "RunError": { - "type": "object", - "description": "The details of an error as encountered by an agent thread run.", - "properties": { - "code": { - "type": "string", - "description": "The status for the error." - }, - "message": { - "type": "string", - "description": "The human-readable text associated with the error." - } - }, - "required": [ - "code", - "message" - ] - }, - "RunStatus": { - "type": "string", - "description": "Possible values for the status of an agent thread run.", - "enum": [ - "queued", - "in_progress", - "requires_action", - "cancelling", - "cancelled", - "failed", - "completed", - "expired" - ], - "x-ms-enum": { - "name": "RunStatus", - "modelAsString": true, - "values": [ - { - "name": "queued", - "value": "queued", - "description": "Represents a run that is queued to start." - }, - { - "name": "inProgress", - "value": "in_progress", - "description": "Represents a run that is in progress." - }, - { - "name": "requiresAction", - "value": "requires_action", - "description": "Represents a run that needs another operation, such as tool output submission, to continue." - }, - { - "name": "cancelling", - "value": "cancelling", - "description": "Represents a run that is in the process of cancellation." - }, - { - "name": "cancelled", - "value": "cancelled", - "description": "Represents a run that has been cancelled." - }, - { - "name": "failed", - "value": "failed", - "description": "Represents a run that failed." - }, - { - "name": "completed", - "value": "completed", - "description": "Represents a run that successfully completed." - }, - { - "name": "expired", - "value": "expired", - "description": "Represents a run that expired before it could otherwise finish." - } - ] - } - }, - "RunStep": { - "type": "object", - "description": "Detailed information about a single step of an agent thread run.", - "properties": { - "id": { - "type": "string", - "description": "The identifier, which can be referenced in API endpoints." - }, - "object": { - "type": "string", - "description": "The object type, which is always 'thread.run.step'.", - "enum": [ - "thread.run.step" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "type": { - "$ref": "#/definitions/RunStepType", - "description": "The type of run step, which can be either message_creation or tool_calls." - }, - "assistant_id": { - "type": "string", - "description": "The ID of the agent associated with the run step.", - "x-ms-client-name": "assistantId" - }, - "thread_id": { - "type": "string", - "description": "The ID of the thread that was run.", - "x-ms-client-name": "threadId" - }, - "run_id": { - "type": "string", - "description": "The ID of the run that this run step is a part of.", - "x-ms-client-name": "runId" - }, - "status": { - "$ref": "#/definitions/RunStepStatus", - "description": "The status of this run step." - }, - "step_details": { - "$ref": "#/definitions/RunStepDetails", - "description": "The details for this run step.", - "x-ms-client-name": "stepDetails" - }, - "last_error": { - "type": "object", - "description": "If applicable, information about the last error encountered by this run step.", - "x-nullable": true, - "allOf": [ - { - "$ref": "#/definitions/RunStepError" - } - ], - "x-ms-client-name": "lastError" - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp, in seconds, representing when this object was created.", - "x-ms-client-name": "createdAt" - }, - "expired_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp, in seconds, representing when this item expired.", - "x-nullable": true, - "x-ms-client-name": "expiredAt" - }, - "completed_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp, in seconds, representing when this completed.", - "x-nullable": true, - "x-ms-client-name": "completedAt" - }, - "cancelled_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp, in seconds, representing when this was cancelled.", - "x-nullable": true, - "x-ms-client-name": "cancelledAt" - }, - "failed_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp, in seconds, representing when this failed.", - "x-nullable": true, - "x-ms-client-name": "failedAt" - }, - "usage": { - "type": "object", - "description": "Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`.", - "x-nullable": true, - "allOf": [ - { - "$ref": "#/definitions/RunStepCompletionUsage" - } - ] - }, - "metadata": { - "type": "object", - "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "id", - "object", - "type", - "assistant_id", - "thread_id", - "run_id", - "status", - "step_details", - "last_error", - "created_at", - "expired_at", - "completed_at", - "cancelled_at", - "failed_at", - "metadata" - ] - }, - "RunStepAzureAISearchToolCall": { - "type": "object", - "description": "A record of a call to an Azure AI Search tool, issued by the model in evaluation of a defined tool, that represents\nexecuted Azure AI search.", - "properties": { - "azure_ai_search": { - "type": "object", - "description": "Reserved for future use.", - "additionalProperties": { - "type": "string" - }, - "x-ms-client-name": "azureAISearch" - } - }, - "required": [ - "azure_ai_search" - ], - "allOf": [ - { - "$ref": "#/definitions/RunStepToolCall" - } - ], - "x-ms-discriminator-value": "azure_ai_search" - }, - "RunStepBingGroundingToolCall": { - "type": "object", - "description": "A record of a call to a bing grounding tool, issued by the model in evaluation of a defined tool, that represents\nexecuted search with bing grounding.", - "properties": { - "bing_grounding": { - "type": "object", - "description": "Reserved for future use.", - "additionalProperties": { - "type": "string" - }, - "x-ms-client-name": "bingGrounding" - } - }, - "required": [ - "bing_grounding" - ], - "allOf": [ - { - "$ref": "#/definitions/RunStepToolCall" - } - ], - "x-ms-discriminator-value": "bing_grounding" - }, - "RunStepCodeInterpreterImageOutput": { - "type": "object", - "description": "A representation of an image output emitted by a code interpreter tool in response to a tool call by the model.", - "properties": { - "image": { - "$ref": "#/definitions/RunStepCodeInterpreterImageReference", - "description": "Referential information for the image associated with this output." - } - }, - "required": [ - "image" - ], - "allOf": [ - { - "$ref": "#/definitions/RunStepCodeInterpreterToolCallOutput" - } - ], - "x-ms-discriminator-value": "image" - }, - "RunStepCodeInterpreterImageReference": { - "type": "object", - "description": "An image reference emitted by a code interpreter tool in response to a tool call by the model.", - "properties": { - "file_id": { - "type": "string", - "description": "The ID of the file associated with this image.", - "x-ms-client-name": "fileId" - } - }, - "required": [ - "file_id" - ] - }, - "RunStepCodeInterpreterLogOutput": { - "type": "object", - "description": "A representation of a log output emitted by a code interpreter tool in response to a tool call by the model.", - "properties": { - "logs": { - "type": "string", - "description": "The serialized log output emitted by the code interpreter." - } - }, - "required": [ - "logs" - ], - "allOf": [ - { - "$ref": "#/definitions/RunStepCodeInterpreterToolCallOutput" - } - ], - "x-ms-discriminator-value": "logs" - }, - "RunStepCodeInterpreterToolCall": { - "type": "object", - "description": "A record of a call to a code interpreter tool, issued by the model in evaluation of a defined tool, that\nrepresents inputs and outputs consumed and emitted by the code interpreter.", - "properties": { - "code_interpreter": { - "$ref": "#/definitions/RunStepCodeInterpreterToolCallDetails", - "description": "The details of the tool call to the code interpreter tool.", - "x-ms-client-name": "codeInterpreter" - } - }, - "required": [ - "code_interpreter" - ], - "allOf": [ - { - "$ref": "#/definitions/RunStepToolCall" - } - ], - "x-ms-discriminator-value": "code_interpreter" - }, - "RunStepCodeInterpreterToolCallDetails": { - "type": "object", - "description": "The detailed information about a code interpreter invocation by the model.", - "properties": { - "input": { - "type": "string", - "description": "The input provided by the model to the code interpreter tool." - }, - "outputs": { - "type": "array", - "description": "The outputs produced by the code interpreter tool back to the model in response to the tool call.", - "items": { - "$ref": "#/definitions/RunStepCodeInterpreterToolCallOutput" - }, - "x-ms-identifiers": [] - } - }, - "required": [ - "input", - "outputs" - ] - }, - "RunStepCodeInterpreterToolCallOutput": { - "type": "object", - "description": "An abstract representation of an emitted output from a code interpreter tool.", - "properties": { - "type": { - "type": "string", - "description": "The object type." - } - }, - "discriminator": "type", - "required": [ - "type" - ] - }, - "RunStepCompletionUsage": { - "type": "object", - "description": "Usage statistics related to the run step.", - "properties": { - "completion_tokens": { - "type": "integer", - "format": "int64", - "description": "Number of completion tokens used over the course of the run step.", - "x-ms-client-name": "completionTokens" - }, - "prompt_tokens": { - "type": "integer", - "format": "int64", - "description": "Number of prompt tokens used over the course of the run step.", - "x-ms-client-name": "promptTokens" - }, - "total_tokens": { - "type": "integer", - "format": "int64", - "description": "Total number of tokens used (prompt + completion).", - "x-ms-client-name": "totalTokens" - } - }, - "required": [ - "completion_tokens", - "prompt_tokens", - "total_tokens" - ] - }, - "RunStepDelta": { - "type": "object", - "description": "Represents the delta payload in a streaming run step delta chunk.", - "properties": { - "step_details": { - "$ref": "#/definitions/RunStepDeltaDetail", - "description": "The details of the run step.", - "x-ms-client-name": "stepDetails" - } - } - }, - "RunStepDeltaChunk": { - "type": "object", - "description": "Represents a run step delta i.e. any changed fields on a run step during streaming.", - "properties": { - "id": { - "type": "string", - "description": "The identifier of the run step, which can be referenced in API endpoints." - }, - "object": { - "type": "string", - "description": "The object type, which is always `thread.run.step.delta`.", - "enum": [ - "thread.run.step.delta" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "delta": { - "$ref": "#/definitions/RunStepDelta", - "description": "The delta containing the fields that have changed on the run step." - } - }, - "required": [ - "id", - "object", - "delta" - ] - }, - "RunStepDeltaCodeInterpreterDetailItemObject": { - "type": "object", - "description": "Represents the Code Interpreter tool call data in a streaming run step's tool calls.", - "properties": { - "input": { - "type": "string", - "description": "The input into the Code Interpreter tool call." - }, - "outputs": { - "type": "array", - "description": "The outputs from the Code Interpreter tool call. Code Interpreter can output one or more\nitems, including text (`logs`) or images (`image`). Each of these are represented by a\ndifferent object type.", - "items": { - "$ref": "#/definitions/RunStepDeltaCodeInterpreterOutput" - }, - "x-ms-identifiers": [] - } - } - }, - "RunStepDeltaCodeInterpreterImageOutput": { - "type": "object", - "description": "Represents an image output as produced the Code interpreter tool and as represented in a streaming run step's delta tool calls collection.", - "properties": { - "image": { - "$ref": "#/definitions/RunStepDeltaCodeInterpreterImageOutputObject", - "description": "The image data for the Code Interpreter tool call output." - } - }, - "allOf": [ - { - "$ref": "#/definitions/RunStepDeltaCodeInterpreterOutput" - } - ], - "x-ms-discriminator-value": "image" - }, - "RunStepDeltaCodeInterpreterImageOutputObject": { - "type": "object", - "description": "Represents the data for a streaming run step's Code Interpreter tool call image output.", - "properties": { - "file_id": { - "type": "string", - "description": "The file ID for the image.", - "x-ms-client-name": "fileId" - } - } - }, - "RunStepDeltaCodeInterpreterLogOutput": { - "type": "object", - "description": "Represents a log output as produced by the Code Interpreter tool and as represented in a streaming run step's delta tool calls collection.", - "properties": { - "logs": { - "type": "string", - "description": "The text output from the Code Interpreter tool call." - } - }, - "allOf": [ - { - "$ref": "#/definitions/RunStepDeltaCodeInterpreterOutput" - } - ], - "x-ms-discriminator-value": "logs" - }, - "RunStepDeltaCodeInterpreterOutput": { - "type": "object", - "description": "The abstract base representation of a streaming run step tool call's Code Interpreter tool output.", - "properties": { - "index": { - "type": "integer", - "format": "int32", - "description": "The index of the output in the streaming run step tool call's Code Interpreter outputs array." - }, - "type": { - "type": "string", - "description": "The type of the streaming run step tool call's Code Interpreter output." - } - }, - "discriminator": "type", - "required": [ - "index", - "type" - ] - }, - "RunStepDeltaCodeInterpreterToolCall": { - "type": "object", - "description": "Represents a Code Interpreter tool call within a streaming run step's tool call details.", - "properties": { - "code_interpreter": { - "$ref": "#/definitions/RunStepDeltaCodeInterpreterDetailItemObject", - "description": "The Code Interpreter data for the tool call.", - "x-ms-client-name": "codeInterpreter" - } - }, - "allOf": [ - { - "$ref": "#/definitions/RunStepDeltaToolCall" - } - ], - "x-ms-discriminator-value": "code_interpreter" - }, - "RunStepDeltaDetail": { - "type": "object", - "description": "Represents a single run step detail item in a streaming run step's delta payload.", - "properties": { - "type": { - "type": "string", - "description": "The object type for the run step detail object." - } - }, - "discriminator": "type", - "required": [ - "type" - ] - }, - "RunStepDeltaFileSearchToolCall": { - "type": "object", - "description": "Represents a file search tool call within a streaming run step's tool call details.", - "properties": { - "file_search": { - "$ref": "#/definitions/RunStepFileSearchToolCallResults", - "description": "Reserved for future use.", - "x-ms-client-name": "fileSearch" - } - }, - "allOf": [ - { - "$ref": "#/definitions/RunStepDeltaToolCall" - } - ], - "x-ms-discriminator-value": "file_search" - }, - "RunStepDeltaFunction": { - "type": "object", - "description": "Represents the function data in a streaming run step delta's function tool call.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "arguments": { - "type": "string", - "description": "The arguments passed to the function as input." - }, - "output": { - "type": "string", - "description": "The output of the function, null if outputs have not yet been submitted.", - "x-nullable": true - } - } - }, - "RunStepDeltaFunctionToolCall": { - "type": "object", - "description": "Represents a function tool call within a streaming run step's tool call details.", - "properties": { - "function": { - "$ref": "#/definitions/RunStepDeltaFunction", - "description": "The function data for the tool call." - } - }, - "allOf": [ - { - "$ref": "#/definitions/RunStepDeltaToolCall" - } - ], - "x-ms-discriminator-value": "function" - }, - "RunStepDeltaMessageCreation": { - "type": "object", - "description": "Represents a message creation within a streaming run step delta.", - "properties": { - "message_creation": { - "$ref": "#/definitions/RunStepDeltaMessageCreationObject", - "description": "The message creation data.", - "x-ms-client-name": "messageCreation" - } - }, - "allOf": [ - { - "$ref": "#/definitions/RunStepDeltaDetail" - } - ], - "x-ms-discriminator-value": "message_creation" - }, - "RunStepDeltaMessageCreationObject": { - "type": "object", - "description": "Represents the data within a streaming run step message creation response object.", - "properties": { - "message_id": { - "type": "string", - "description": "The ID of the newly-created message.", - "x-ms-client-name": "messageId" - } - } - }, - "RunStepDeltaToolCall": { - "type": "object", - "description": "The abstract base representation of a single tool call within a streaming run step's delta tool call details.", - "properties": { - "index": { - "type": "integer", - "format": "int32", - "description": "The index of the tool call detail in the run step's tool_calls array." - }, - "id": { - "type": "string", - "description": "The ID of the tool call, used when submitting outputs to the run." - }, - "type": { - "type": "string", - "description": "The type of the tool call detail item in a streaming run step's details." - } - }, - "discriminator": "type", - "required": [ - "index", - "id", - "type" - ] - }, - "RunStepDeltaToolCallObject": { - "type": "object", - "description": "Represents an invocation of tool calls as part of a streaming run step.", - "properties": { - "tool_calls": { - "type": "array", - "description": "The collection of tool calls for the tool call detail item.", - "items": { - "$ref": "#/definitions/RunStepDeltaToolCall" - }, - "x-ms-client-name": "toolCalls" - } - }, - "allOf": [ - { - "$ref": "#/definitions/RunStepDeltaDetail" - } - ], - "x-ms-discriminator-value": "tool_calls" - }, - "RunStepDetails": { - "type": "object", - "description": "An abstract representation of the details for a run step.", - "properties": { - "type": { - "$ref": "#/definitions/RunStepType", - "description": "The object type." - } - }, - "discriminator": "type", - "required": [ - "type" - ] - }, - "RunStepError": { - "type": "object", - "description": "The error information associated with a failed run step.", - "properties": { - "code": { - "$ref": "#/definitions/RunStepErrorCode", - "description": "The error code for this error." - }, - "message": { - "type": "string", - "description": "The human-readable text associated with this error." - } - }, - "required": [ - "code", - "message" - ] - }, - "RunStepErrorCode": { - "type": "string", - "description": "Possible error code values attributable to a failed run step.", - "enum": [ - "server_error", - "rate_limit_exceeded" - ], - "x-ms-enum": { - "name": "RunStepErrorCode", - "modelAsString": true, - "values": [ - { - "name": "serverError", - "value": "server_error", - "description": "Represents a server error." - }, - { - "name": "rateLimitExceeded", - "value": "rate_limit_exceeded", - "description": "Represents an error indicating configured rate limits were exceeded." - } - ] - } - }, - "RunStepFileSearchToolCall": { - "type": "object", - "description": "A record of a call to a file search tool, issued by the model in evaluation of a defined tool, that represents\nexecuted file search.", - "properties": { - "id": { - "type": "string", - "description": "The ID of the tool call. This ID must be referenced when you submit tool outputs." - }, - "file_search": { - "$ref": "#/definitions/RunStepFileSearchToolCallResults", - "description": "For now, this is always going to be an empty object.", - "x-ms-client-name": "fileSearch" - } - }, - "required": [ - "id", - "file_search" - ], - "allOf": [ - { - "$ref": "#/definitions/RunStepToolCall" - } - ], - "x-ms-discriminator-value": "file_search" - }, - "RunStepFileSearchToolCallResult": { - "type": "object", - "description": " File search tool call result.", - "properties": { - "file_id": { - "type": "string", - "description": "The ID of the file that result was found in.", - "x-ms-client-name": "fileId" - }, - "file_name": { - "type": "string", - "description": "The name of the file that result was found in.", - "x-ms-client-name": "fileName" - }, - "score": { - "type": "number", - "format": "float", - "description": "The score of the result. All values must be a floating point number between 0 and 1.", - "minimum": 0, - "maximum": 1 - }, - "content": { - "type": "array", - "description": "The content of the result that was found. The content is only included if requested via the include query parameter.", - "items": { - "$ref": "#/definitions/FileSearchToolCallContent" - }, - "x-ms-identifiers": [] - } - }, - "required": [ - "file_id", - "file_name", - "score" - ] - }, - "RunStepFileSearchToolCallResults": { - "type": "object", - "description": "The results of the file search.", - "properties": { - "ranking_options": { - "$ref": "#/definitions/FileSearchRankingOptions", - "description": "Ranking options for file search.", - "x-ms-client-name": "rankingOptions" - }, - "results": { - "type": "array", - "description": "The array of a file search results", - "items": { - "$ref": "#/definitions/RunStepFileSearchToolCallResult" - }, - "x-ms-identifiers": [] - } - }, - "required": [ - "results" - ] - }, - "RunStepFunctionToolCall": { - "type": "object", - "description": "A record of a call to a function tool, issued by the model in evaluation of a defined tool, that represents the inputs\nand output consumed and emitted by the specified function.", - "properties": { - "function": { - "$ref": "#/definitions/RunStepFunctionToolCallDetails", - "description": "The detailed information about the function called by the model." - } - }, - "required": [ - "function" - ], - "allOf": [ - { - "$ref": "#/definitions/RunStepToolCall" - } - ], - "x-ms-discriminator-value": "function" - }, - "RunStepFunctionToolCallDetails": { - "type": "object", - "description": "The detailed information about the function called by the model.", - "properties": { - "name": { - "type": "string", - "description": "The name of the function." - }, - "arguments": { - "type": "string", - "description": "The arguments that the model requires are provided to the named function." - }, - "output": { - "type": "string", - "description": "The output of the function, only populated for function calls that have already have had their outputs submitted.", - "x-nullable": true - } - }, - "required": [ - "name", - "arguments", - "output" - ] - }, - "RunStepMessageCreationDetails": { - "type": "object", - "description": "The detailed information associated with a message creation run step.", - "properties": { - "message_creation": { - "$ref": "#/definitions/RunStepMessageCreationReference", - "description": "Information about the message creation associated with this run step.", - "x-ms-client-name": "messageCreation" - } - }, - "required": [ - "message_creation" - ], - "allOf": [ - { - "$ref": "#/definitions/RunStepDetails" - } - ], - "x-ms-discriminator-value": "message_creation" - }, - "RunStepMessageCreationReference": { - "type": "object", - "description": "The details of a message created as a part of a run step.", - "properties": { - "message_id": { - "type": "string", - "description": "The ID of the message created by this run step.", - "x-ms-client-name": "messageId" - } - }, - "required": [ - "message_id" - ] - }, - "RunStepMicrosoftFabricToolCall": { - "type": "object", - "description": "A record of a call to a Microsoft Fabric tool, issued by the model in evaluation of a defined tool, that represents\nexecuted Microsoft Fabric operations.", - "properties": { - "fabric_dataagent": { - "type": "object", - "description": "Reserved for future use.", - "additionalProperties": { - "type": "string" - }, - "x-ms-client-name": "microsoftFabric" - } - }, - "required": [ - "fabric_dataagent" - ], - "allOf": [ - { - "$ref": "#/definitions/RunStepToolCall" - } - ], - "x-ms-discriminator-value": "fabric_dataagent" - }, - "RunStepSharepointToolCall": { - "type": "object", - "description": "A record of a call to a SharePoint tool, issued by the model in evaluation of a defined tool, that represents\nexecuted SharePoint actions.", - "properties": { - "sharepoint_grounding": { - "type": "object", - "description": "Reserved for future use.", - "additionalProperties": { - "type": "string" - }, - "x-ms-client-name": "sharePoint" - } - }, - "required": [ - "sharepoint_grounding" - ], - "allOf": [ - { - "$ref": "#/definitions/RunStepToolCall" - } - ], - "x-ms-discriminator-value": "sharepoint_grounding" - }, - "RunStepStatus": { - "type": "string", - "description": "Possible values for the status of a run step.", - "enum": [ - "in_progress", - "cancelled", - "failed", - "completed", - "expired" - ], - "x-ms-enum": { - "name": "RunStepStatus", - "modelAsString": true, - "values": [ - { - "name": "inProgress", - "value": "in_progress", - "description": "Represents a run step still in progress." - }, - { - "name": "cancelled", - "value": "cancelled", - "description": "Represents a run step that was cancelled." - }, - { - "name": "failed", - "value": "failed", - "description": "Represents a run step that failed." - }, - { - "name": "completed", - "value": "completed", - "description": "Represents a run step that successfully completed." - }, - { - "name": "expired", - "value": "expired", - "description": "Represents a run step that expired before otherwise finishing." - } - ] - } - }, - "RunStepStreamEvent": { - "type": "string", - "description": "Run step operation related streaming events", - "enum": [ - "thread.run.step.created", - "thread.run.step.in_progress", - "thread.run.step.delta", - "thread.run.step.completed", - "thread.run.step.failed", - "thread.run.step.cancelled", - "thread.run.step.expired" - ], - "x-ms-enum": { - "name": "RunStepStreamEvent", - "modelAsString": true, - "values": [ - { - "name": "ThreadRunStepCreated", - "value": "thread.run.step.created", - "description": "Event sent when a new thread run step is created. The data of this event is of type RunStep" - }, - { - "name": "ThreadRunStepInProgress", - "value": "thread.run.step.in_progress", - "description": "Event sent when a run step moves to `in_progress` status. The data of this event is of type RunStep" - }, - { - "name": "ThreadRunStepDelta", - "value": "thread.run.step.delta", - "description": "Event sent when a run step is being streamed. The data of this event is of type RunStepDeltaChunk" - }, - { - "name": "ThreadRunStepCompleted", - "value": "thread.run.step.completed", - "description": "Event sent when a run step is completed. The data of this event is of type RunStep" - }, - { - "name": "ThreadRunStepFailed", - "value": "thread.run.step.failed", - "description": "Event sent when a run step fails. The data of this event is of type RunStep" - }, - { - "name": "ThreadRunStepCancelled", - "value": "thread.run.step.cancelled", - "description": "Event sent when a run step is cancelled. The data of this event is of type RunStep" - }, - { - "name": "ThreadRunStepExpired", - "value": "thread.run.step.expired", - "description": "Event sent when a run step is expired. The data of this event is of type RunStep" - } - ] - } - }, - "RunStepToolCall": { - "type": "object", - "description": "An abstract representation of a detailed tool call as recorded within a run step for an existing run.", - "properties": { - "type": { - "type": "string", - "description": "The object type." - }, - "id": { - "type": "string", - "description": "The ID of the tool call. This ID must be referenced when you submit tool outputs." - } - }, - "discriminator": "type", - "required": [ - "type", - "id" - ] - }, - "RunStepToolCallDetails": { - "type": "object", - "description": "The detailed information associated with a run step calling tools.", - "properties": { - "tool_calls": { - "type": "array", - "description": "A list of tool call details for this run step.", - "items": { - "$ref": "#/definitions/RunStepToolCall" - }, - "x-ms-client-name": "toolCalls" - } - }, - "required": [ - "tool_calls" - ], - "allOf": [ - { - "$ref": "#/definitions/RunStepDetails" - } - ], - "x-ms-discriminator-value": "tool_calls" - }, - "RunStepType": { - "type": "string", - "description": "The possible types of run steps.", - "enum": [ - "message_creation", - "tool_calls" - ], - "x-ms-enum": { - "name": "RunStepType", - "modelAsString": true, - "values": [ - { - "name": "messageCreation", - "value": "message_creation", - "description": "Represents a run step to create a message." - }, - { - "name": "toolCalls", - "value": "tool_calls", - "description": "Represents a run step that calls tools." - } - ] - } - }, - "RunStreamEvent": { - "type": "string", - "description": "Run operation related streaming events", - "enum": [ - "thread.run.created", - "thread.run.queued", - "thread.run.in_progress", - "thread.run.requires_action", - "thread.run.completed", - "thread.run.incomplete", - "thread.run.failed", - "thread.run.cancelling", - "thread.run.cancelled", - "thread.run.expired" - ], - "x-ms-enum": { - "name": "RunStreamEvent", - "modelAsString": true, - "values": [ - { - "name": "ThreadRunCreated", - "value": "thread.run.created", - "description": "Event sent when a new run is created. The data of this event is of type ThreadRun" - }, - { - "name": "ThreadRunQueued", - "value": "thread.run.queued", - "description": "Event sent when a run moves to `queued` status. The data of this event is of type ThreadRun" - }, - { - "name": "ThreadRunInProgress", - "value": "thread.run.in_progress", - "description": "Event sent when a run moves to `in_progress` status. The data of this event is of type ThreadRun" - }, - { - "name": "ThreadRunRequiresAction", - "value": "thread.run.requires_action", - "description": "Event sent when a run moves to `requires_action` status. The data of this event is of type ThreadRun" - }, - { - "name": "ThreadRunCompleted", - "value": "thread.run.completed", - "description": "Event sent when a run is completed. The data of this event is of type ThreadRun" - }, - { - "name": "ThreadRunIncomplete", - "value": "thread.run.incomplete", - "description": "Event sent when a run ends incomplete. The data of this event is of type ThreadRun" - }, - { - "name": "ThreadRunFailed", - "value": "thread.run.failed", - "description": "Event sent when a run fails. The data of this event is of type ThreadRun" - }, - { - "name": "ThreadRunCancelling", - "value": "thread.run.cancelling", - "description": "Event sent when a run moves to `cancelling` status. The data of this event is of type ThreadRun" - }, - { - "name": "ThreadRunCancelled", - "value": "thread.run.cancelled", - "description": "Event sent when a run is cancelled. The data of this event is of type ThreadRun" - }, - { - "name": "ThreadRunExpired", - "value": "thread.run.expired", - "description": "Event sent when a run is expired. The data of this event is of type ThreadRun" - } - ] - } - }, - "SharepointToolDefinition": { - "type": "object", - "description": "The input definition information for a sharepoint tool as used to configure an agent.", - "properties": { - "sharepoint_grounding": { - "$ref": "#/definitions/ToolConnectionList", - "description": "The list of connections used by the SharePoint tool." - } - }, - "required": [ - "sharepoint_grounding" - ], - "allOf": [ - { - "$ref": "#/definitions/ToolDefinition" - } - ], - "x-ms-discriminator-value": "sharepoint_grounding" - }, - "SubmitToolOutputsAction": { - "type": "object", - "description": "The details for required tool calls that must be submitted for an agent thread run to continue.", - "properties": { - "submit_tool_outputs": { - "$ref": "#/definitions/SubmitToolOutputsDetails", - "description": "The details describing tools that should be called to submit tool outputs.", - "x-ms-client-name": "submitToolOutputs" - } - }, - "required": [ - "submit_tool_outputs" - ], - "allOf": [ - { - "$ref": "#/definitions/RequiredAction" - } - ], - "x-ms-discriminator-value": "submit_tool_outputs" - }, - "SubmitToolOutputsDetails": { - "type": "object", - "description": "The details describing tools that should be called to submit tool outputs.", - "properties": { - "tool_calls": { - "type": "array", - "description": "The list of tool calls that must be resolved for the agent thread run to continue.", - "items": { - "$ref": "#/definitions/RequiredToolCall" - }, - "x-ms-client-name": "toolCalls" - } - }, - "required": [ - "tool_calls" - ] - }, - "ThreadDeletionStatus": { - "type": "object", - "description": "The status of a thread deletion operation.", - "properties": { - "id": { - "type": "string", - "description": "The ID of the resource specified for deletion." - }, - "deleted": { - "type": "boolean", - "description": "A value indicating whether deletion was successful." - }, - "object": { - "type": "string", - "description": "The object type, which is always 'thread.deleted'.", - "enum": [ - "thread.deleted" - ], - "x-ms-enum": { - "modelAsString": false - } - } - }, - "required": [ - "id", - "deleted", - "object" - ] - }, - "ThreadMessage": { - "type": "object", - "description": "A single, existing message within an agent thread.", - "properties": { - "id": { - "type": "string", - "description": "The identifier, which can be referenced in API endpoints." - }, - "object": { - "type": "string", - "description": "The object type, which is always 'thread.message'.", - "enum": [ - "thread.message" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp, in seconds, representing when this object was created.", - "x-ms-client-name": "createdAt" - }, - "thread_id": { - "type": "string", - "description": "The ID of the thread that this message belongs to.", - "x-ms-client-name": "threadId" - }, - "status": { - "$ref": "#/definitions/MessageStatus", - "description": "The status of the message." - }, - "incomplete_details": { - "type": "object", - "description": "On an incomplete message, details about why the message is incomplete.", - "x-nullable": true, - "allOf": [ - { - "$ref": "#/definitions/MessageIncompleteDetails" - } - ], - "x-ms-client-name": "incompleteDetails" - }, - "completed_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the message was completed.", - "x-nullable": true, - "x-ms-client-name": "completedAt" - }, - "incomplete_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the message was marked as incomplete.", - "x-nullable": true, - "x-ms-client-name": "incompleteAt" - }, - "role": { - "$ref": "#/definitions/MessageRole", - "description": "The role associated with the agent thread message." - }, - "content": { - "type": "array", - "description": "The list of content items associated with the agent thread message.", - "items": { - "$ref": "#/definitions/MessageContent" - }, - "x-ms-identifiers": [] - }, - "assistant_id": { - "type": "string", - "description": "If applicable, the ID of the agent that authored this message.", - "x-nullable": true, - "x-ms-client-name": "assistantId" - }, - "run_id": { - "type": "string", - "description": "If applicable, the ID of the run associated with the authoring of this message.", - "x-nullable": true, - "x-ms-client-name": "runId" - }, - "attachments": { - "type": "array", - "description": "A list of files attached to the message, and the tools they were added to.", - "x-nullable": true, - "items": { - "$ref": "#/definitions/MessageAttachment" - }, - "x-ms-identifiers": [] - }, - "metadata": { - "type": "object", - "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "id", - "object", - "created_at", - "thread_id", - "status", - "incomplete_details", - "completed_at", - "incomplete_at", - "role", - "content", - "assistant_id", - "run_id", - "attachments", - "metadata" - ] - }, - "ThreadMessageOptions": { - "type": "object", - "description": "A single message within an agent thread, as provided during that thread's creation for its initial state.", - "properties": { - "role": { - "$ref": "#/definitions/MessageRole", - "description": "The role of the entity that is creating the message. Allowed values include:\n- `user`: Indicates the message is sent by an actual user and should be used in most\ncases to represent user-generated messages.\n- `assistant`: Indicates the message is generated by the agent. Use this value to insert\nmessages from the agent into the\nconversation." - }, - "content": { - "type": "string", - "description": "The textual content of the initial message. Currently, robust input including images and annotated text may only be provided via\na separate call to the create message API." - }, - "attachments": { - "type": "array", - "description": "A list of files attached to the message, and the tools they should be added to.", - "x-nullable": true, - "items": { - "$ref": "#/definitions/MessageAttachment" - }, - "x-ms-identifiers": [] - }, - "metadata": { - "type": "object", - "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "role", - "content" - ] - }, - "ThreadRun": { - "type": "object", - "description": "Data representing a single evaluation run of an agent thread.", - "properties": { - "id": { - "type": "string", - "description": "The identifier, which can be referenced in API endpoints." - }, - "object": { - "type": "string", - "description": "The object type, which is always 'thread.run'.", - "enum": [ - "thread.run" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "thread_id": { - "type": "string", - "description": "The ID of the thread associated with this run.", - "x-ms-client-name": "threadId" - }, - "assistant_id": { - "type": "string", - "description": "The ID of the agent associated with the thread this run was performed against.", - "x-ms-client-name": "assistantId" - }, - "status": { - "$ref": "#/definitions/RunStatus", - "description": "The status of the agent thread run." - }, - "required_action": { - "type": "object", - "description": "The details of the action required for the agent thread run to continue.", - "x-nullable": true, - "allOf": [ - { - "$ref": "#/definitions/RequiredAction" - } - ], - "x-ms-client-name": "requiredAction" - }, - "last_error": { - "type": "object", - "description": "The last error, if any, encountered by this agent thread run.", - "x-nullable": true, - "allOf": [ - { - "$ref": "#/definitions/RunError" - } - ], - "x-ms-client-name": "lastError" - }, - "model": { - "type": "string", - "description": "The ID of the model to use." - }, - "instructions": { - "type": "string", - "description": "The overridden system instructions used for this agent thread run." - }, - "tools": { - "type": "array", - "description": "The overridden enabled tools used for this agent thread run.", - "default": [], - "items": { - "$ref": "#/definitions/ToolDefinition" - }, - "x-ms-identifiers": [] - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp, in seconds, representing when this object was created.", - "x-ms-client-name": "createdAt" - }, - "expires_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp, in seconds, representing when this item expires.", - "x-nullable": true, - "x-ms-client-name": "expiresAt" - }, - "started_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp, in seconds, representing when this item was started.", - "x-nullable": true, - "x-ms-client-name": "startedAt" - }, - "completed_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp, in seconds, representing when this completed.", - "x-nullable": true, - "x-ms-client-name": "completedAt" - }, - "cancelled_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp, in seconds, representing when this was cancelled.", - "x-nullable": true, - "x-ms-client-name": "cancelledAt" - }, - "failed_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp, in seconds, representing when this failed.", - "x-nullable": true, - "x-ms-client-name": "failedAt" - }, - "incomplete_details": { - "type": "object", - "description": "Details on why the run is incomplete. Will be `null` if the run is not incomplete.", - "x-nullable": true, - "allOf": [ - { - "$ref": "#/definitions/IncompleteRunDetails" - } - ], - "x-ms-client-name": "incompleteDetails" - }, - "usage": { - "type": "object", - "description": "Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.).", - "x-nullable": true, - "allOf": [ - { - "$ref": "#/definitions/RunCompletionUsage" - } - ] - }, - "temperature": { - "type": "number", - "format": "float", - "description": "The sampling temperature used for this run. If not set, defaults to 1.", - "x-nullable": true - }, - "top_p": { - "type": "number", - "format": "float", - "description": "The nucleus sampling value used for this run. If not set, defaults to 1.", - "x-nullable": true, - "x-ms-client-name": "topP" - }, - "max_prompt_tokens": { - "type": "integer", - "format": "int32", - "description": "The maximum number of prompt tokens specified to have been used over the course of the run.", - "x-nullable": true, - "x-ms-client-name": "maxPromptTokens" - }, - "max_completion_tokens": { - "type": "integer", - "format": "int32", - "description": "The maximum number of completion tokens specified to have been used over the course of the run.", - "x-nullable": true, - "x-ms-client-name": "maxCompletionTokens" - }, - "truncation_strategy": { - "type": "object", - "description": "The strategy to use for dropping messages as the context windows moves forward.", - "x-nullable": true, - "allOf": [ - { - "$ref": "#/definitions/TruncationObject" - } - ], - "x-ms-client-name": "truncationStrategy" - }, - "tool_choice": { - "$ref": "#/definitions/AgentsApiToolChoiceOption", - "description": "Controls whether or not and which tool is called by the model.", - "x-nullable": true, - "x-ms-client-name": "toolChoice" - }, - "response_format": { - "$ref": "#/definitions/AgentsApiResponseFormatOption", - "description": "The response format of the tool calls used in this run.", - "x-nullable": true, - "x-ms-client-name": "responseFormat" - }, - "metadata": { - "type": "object", - "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - }, - "tool_resources": { - "type": "object", - "description": "Override the tools the agent can use for this run. This is useful for modifying the behavior on a per-run basis", - "x-nullable": true, - "allOf": [ - { - "$ref": "#/definitions/UpdateToolResourcesOptions" - } - ], - "x-ms-client-name": "toolResources" - }, - "parallel_tool_calls": { - "type": "boolean", - "description": "Determines if tools can be executed in parallel within the run.", - "x-ms-client-name": "parallelToolCalls" - } - }, - "required": [ - "id", - "object", - "thread_id", - "assistant_id", - "status", - "last_error", - "model", - "instructions", - "tools", - "created_at", - "expires_at", - "started_at", - "completed_at", - "cancelled_at", - "failed_at", - "incomplete_details", - "usage", - "max_prompt_tokens", - "max_completion_tokens", - "truncation_strategy", - "tool_choice", - "response_format", - "metadata", - "parallel_tool_calls" - ] - }, - "ThreadStreamEvent": { - "type": "string", - "description": "Thread operation related streaming events", - "enum": [ - "thread.created" - ], - "x-ms-enum": { - "name": "ThreadStreamEvent", - "modelAsString": true, - "values": [ - { - "name": "ThreadCreated", - "value": "thread.created", - "description": "Event sent when a new thread is created. The data of this event is of type AgentThread" - } - ] - } - }, - "ToolConnection": { - "type": "object", - "description": "A connection resource.", - "properties": { - "connection_id": { - "type": "string", - "description": "A connection in a ToolConnectionList attached to this tool.", - "x-ms-client-name": "connectionId" - } - }, - "required": [ - "connection_id" - ] - }, - "ToolConnectionList": { - "type": "object", - "description": "A set of connection resources currently used by either the `bing_grounding`, `fabric_dataagent`, or `sharepoint_grounding` tools.", - "properties": { - "connections": { - "type": "array", - "description": "The connections attached to this tool. There can be a maximum of 1 connection\nresource attached to the tool.", - "maxItems": 1, - "items": { - "$ref": "#/definitions/ToolConnection" - }, - "x-ms-client-name": "connectionList", - "x-ms-identifiers": [] - } - } - }, - "ToolDefinition": { - "type": "object", - "description": "An abstract representation of an input tool definition that an agent can use.", - "properties": { - "type": { - "type": "string", - "description": "The object type." - } - }, - "discriminator": "type", - "required": [ - "type" - ] - }, - "ToolOutput": { - "type": "object", - "description": "The data provided during a tool outputs submission to resolve pending tool calls and allow the model to continue.", - "properties": { - "tool_call_id": { - "type": "string", - "description": "The ID of the tool call being resolved, as provided in the tool calls of a required action from a run.", - "x-ms-client-name": "toolCallId" - }, - "output": { - "type": "string", - "description": "The output from the tool to be submitted." - } - } - }, - "ToolResources": { - "type": "object", - "description": "A set of resources that are used by the agent's tools. The resources are specific to the type of\ntool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search`\ntool requires a list of vector store IDs.", - "properties": { - "code_interpreter": { - "$ref": "#/definitions/CodeInterpreterToolResource", - "description": "Resources to be used by the `code_interpreter` tool consisting of file IDs.", - "x-ms-client-name": "codeInterpreter" - }, - "file_search": { - "$ref": "#/definitions/FileSearchToolResource", - "description": "Resources to be used by the `file_search` tool consisting of vector store IDs.", - "x-ms-client-name": "fileSearch" - }, - "azure_ai_search": { - "$ref": "#/definitions/AzureAISearchResource", - "description": "Resources to be used by the `azure_ai_search` tool consisting of index IDs and names.", - "x-ms-client-name": "azureAISearch" - } - } - }, - "TruncationObject": { - "type": "object", - "description": "Controls for how a thread will be truncated prior to the run. Use this to control the initial\ncontext window of the run.", - "properties": { - "type": { - "type": "string", - "description": "The truncation strategy to use for the thread. The default is `auto`. If set to `last_messages`, the thread will\nbe truncated to the `lastMessages` count most recent messages in the thread. When set to `auto`, messages in the middle of the thread\nwill be dropped to fit the context length of the model, `max_prompt_tokens`.", - "default": "auto", - "enum": [ - "auto", - "last_messages" - ], - "x-ms-enum": { - "name": "TruncationStrategy", - "modelAsString": true, - "values": [ - { - "name": "auto", - "value": "auto", - "description": "Default value. Messages in the middle of the thread will be dropped to fit the context length of the model." - }, - { - "name": "lastMessages", - "value": "last_messages", - "description": "The thread will truncate to the `lastMessages` count of recent messages." - } - ] - } - }, - "last_messages": { - "type": "integer", - "format": "int32", - "description": "The number of most recent messages from the thread when constructing the context for the run.", - "x-nullable": true, - "x-ms-client-name": "lastMessages" - } - }, - "required": [ - "type" - ] - }, - "TruncationStrategy": { - "type": "string", - "description": "Possible truncation strategies for the thread.", - "enum": [ - "auto", - "last_messages" - ], - "x-ms-enum": { - "name": "TruncationStrategy", - "modelAsString": true, - "values": [ - { - "name": "auto", - "value": "auto", - "description": "Default value. Messages in the middle of the thread will be dropped to fit the context length of the model." - }, - { - "name": "lastMessages", - "value": "last_messages", - "description": "The thread will truncate to the `lastMessages` count of recent messages." - } - ] - } - }, - "UpdateAgentOptions": { - "type": "object", - "description": "The request details to use when modifying an existing agent.", - "properties": { - "model": { - "type": "string", - "description": "The ID of the model to use." - }, - "name": { - "type": "string", - "description": "The modified name for the agent to use.", - "x-nullable": true - }, - "description": { - "type": "string", - "description": "The modified description for the agent to use.", - "x-nullable": true - }, - "instructions": { - "type": "string", - "description": "The modified system instructions for the new agent to use.", - "x-nullable": true - }, - "tools": { - "type": "array", - "description": "The modified collection of tools to enable for the agent.", - "default": [], - "items": { - "$ref": "#/definitions/ToolDefinition" - }, - "x-ms-identifiers": [] - }, - "tool_resources": { - "$ref": "#/definitions/ToolResources", - "description": "A set of resources that are used by the agent's tools. The resources are specific to the type of tool. For example,\nthe `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs.", - "x-ms-client-name": "toolResources" - }, - "temperature": { - "type": "number", - "format": "float", - "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.", - "default": 1, - "x-nullable": true - }, - "top_p": { - "type": "number", - "format": "float", - "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\n\nWe generally recommend altering this or temperature but not both.", - "default": 1, - "x-nullable": true, - "x-ms-client-name": "topP" - }, - "response_format": { - "$ref": "#/definitions/AgentsApiResponseFormatOption", - "description": "The response format of the tool calls used by this agent.", - "x-nullable": true, - "x-ms-client-name": "responseFormat" - }, - "metadata": { - "type": "object", - "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - } - } - }, - "UpdateAgentThreadOptions": { - "type": "object", - "description": "The details used to update an existing agent thread", - "properties": { - "tool_resources": { - "type": "object", - "description": "A set of resources that are made available to the agent's tools in this thread. The resources are specific to the\ntype of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires\na list of vector store IDs", - "x-nullable": true, - "allOf": [ - { - "$ref": "#/definitions/ToolResources" - } - ], - "x-ms-client-name": "toolResources" - }, - "metadata": { - "type": "object", - "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - } - } - }, - "UpdateCodeInterpreterToolResourceOptions": { - "type": "object", - "description": "Request object to update `code_interpreted` tool resources.", - "properties": { - "file_ids": { - "type": "array", - "description": "A list of file IDs to override the current list of the agent.", - "maxItems": 20, - "items": { - "type": "string" - }, - "x-ms-client-name": "fileIds" - } - } - }, - "UpdateFileSearchToolResourceOptions": { - "type": "object", - "description": "Request object to update `file_search` tool resources.", - "properties": { - "vector_store_ids": { - "type": "array", - "description": "A list of vector store IDs to override the current list of the agent.", - "maxItems": 1, - "items": { - "type": "string" - }, - "x-ms-client-name": "vectorStoreIds" - } - } - }, - "UpdateToolResourcesOptions": { - "type": "object", - "description": "Request object. A set of resources that are used by the agent's tools. The resources are specific to the type of tool.\nFor example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of\nvector store IDs.", - "properties": { - "code_interpreter": { - "$ref": "#/definitions/UpdateCodeInterpreterToolResourceOptions", - "description": "Overrides the list of file IDs made available to the `code_interpreter` tool. There can be a maximum of 20 files\nassociated with the tool.", - "x-ms-client-name": "codeInterpreter" - }, - "file_search": { - "$ref": "#/definitions/UpdateFileSearchToolResourceOptions", - "description": "Overrides the vector store attached to this agent. There can be a maximum of 1 vector store attached to the agent.", - "x-ms-client-name": "fileSearch" - }, - "azure_ai_search": { - "$ref": "#/definitions/AzureAISearchResource", - "description": "Overrides the resources to be used by the `azure_ai_search` tool consisting of index IDs and names.", - "x-ms-client-name": "azureAISearch" - } - } - }, - "VectorStore": { - "type": "object", - "description": "A vector store is a collection of processed files can be used by the `file_search` tool.", - "properties": { - "id": { - "type": "string", - "description": "The identifier, which can be referenced in API endpoints." - }, - "object": { - "type": "string", - "description": "The object type, which is always `vector_store`", - "enum": [ - "vector_store" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the vector store was created.", - "x-ms-client-name": "createdAt" - }, - "name": { - "type": "string", - "description": "The name of the vector store." - }, - "usage_bytes": { - "type": "integer", - "format": "int32", - "description": "The total number of bytes used by the files in the vector store.", - "x-ms-client-name": "usageBytes" - }, - "file_counts": { - "$ref": "#/definitions/VectorStoreFileCount", - "description": "Files count grouped by status processed or being processed by this vector store.", - "x-ms-client-name": "fileCounts" - }, - "status": { - "$ref": "#/definitions/VectorStoreStatus", - "description": "The status of the vector store, which can be either `expired`, `in_progress`, or `completed`. A status of `completed` indicates that the vector store is ready for use." - }, - "expires_after": { - "$ref": "#/definitions/VectorStoreExpirationPolicy", - "description": "Details on when this vector store expires", - "x-ms-client-name": "expiresAfter" - }, - "expires_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the vector store will expire.", - "x-nullable": true, - "x-ms-client-name": "expiresAt" - }, - "last_active_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the vector store was last active.", - "x-nullable": true, - "x-ms-client-name": "lastActiveAt" - }, - "metadata": { - "type": "object", - "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "id", - "object", - "created_at", - "name", - "usage_bytes", - "file_counts", - "status", - "last_active_at", - "metadata" - ] - }, - "VectorStoreAutoChunkingStrategyRequest": { - "type": "object", - "description": "The default strategy. This strategy currently uses a max_chunk_size_tokens of 800 and chunk_overlap_tokens of 400.", - "allOf": [ - { - "$ref": "#/definitions/VectorStoreChunkingStrategyRequest" - } - ], - "x-ms-discriminator-value": "auto" - }, - "VectorStoreAutoChunkingStrategyResponse": { - "type": "object", - "description": "This is returned when the chunking strategy is unknown. Typically, this is because the file was indexed before the chunking_strategy concept was introduced in the API.", - "allOf": [ - { - "$ref": "#/definitions/VectorStoreChunkingStrategyResponse" - } - ], - "x-ms-discriminator-value": "other" - }, - "VectorStoreChunkingStrategyRequest": { - "type": "object", - "description": "An abstract representation of a vector store chunking strategy configuration.", - "properties": { - "type": { - "$ref": "#/definitions/VectorStoreChunkingStrategyRequestType", - "description": "The object type." - } - }, - "discriminator": "type", - "required": [ - "type" - ] - }, - "VectorStoreChunkingStrategyRequestType": { - "type": "string", - "description": "Type of chunking strategy", - "enum": [ - "auto", - "static" - ], - "x-ms-enum": { - "name": "VectorStoreChunkingStrategyRequestType", - "modelAsString": true, - "values": [ - { - "name": "auto", - "value": "auto" - }, - { - "name": "static", - "value": "static" - } - ] - } - }, - "VectorStoreChunkingStrategyResponse": { - "type": "object", - "description": "An abstract representation of a vector store chunking strategy configuration.", - "properties": { - "type": { - "$ref": "#/definitions/VectorStoreChunkingStrategyResponseType", - "description": "The object type." - } - }, - "discriminator": "type", - "required": [ - "type" - ] - }, - "VectorStoreChunkingStrategyResponseType": { - "type": "string", - "description": "Type of chunking strategy", - "enum": [ - "other", - "static" - ], - "x-ms-enum": { - "name": "VectorStoreChunkingStrategyResponseType", - "modelAsString": true, - "values": [ - { - "name": "other", - "value": "other" - }, - { - "name": "static", - "value": "static" - } - ] - } - }, - "VectorStoreConfiguration": { - "type": "object", - "description": "Vector storage configuration is the list of data sources, used when multiple\nfiles can be used for the enterprise file search.", - "properties": { - "data_sources": { - "type": "array", - "description": "Data sources", - "items": { - "$ref": "#/definitions/VectorStoreDataSource" - }, - "x-ms-client-name": "dataSources", - "x-ms-identifiers": [] - } - }, - "required": [ - "data_sources" - ] - }, - "VectorStoreConfigurations": { - "type": "object", - "description": "The structure, containing the list of vector storage configurations i.e. the list of azure asset IDs.", - "properties": { - "name": { - "type": "string", - "description": "Name", - "x-ms-client-name": "storeName" - }, - "configuration": { - "$ref": "#/definitions/VectorStoreConfiguration", - "description": "Configurations", - "x-ms-client-name": "storeConfiguration" - } - }, - "required": [ - "name", - "configuration" - ] - }, - "VectorStoreDataSource": { - "type": "object", - "description": "The structure, containing Azure asset URI path and the asset type of the file used as a data source\nfor the enterprise file search.", - "properties": { - "uri": { - "type": "string", - "description": "Asset URI.", - "x-ms-client-name": "assetIdentifier" - }, - "type": { - "$ref": "#/definitions/VectorStoreDataSourceAssetType", - "description": "The asset type", - "x-ms-client-name": "assetType" - } - }, - "required": [ - "uri", - "type" - ] - }, - "VectorStoreDataSourceAssetType": { - "type": "string", - "description": "Type of vector storage asset. Asset type may be a uri_asset, in this case it should contain asset URI ID,\nin the case of id_asset it should contain the data ID.", - "enum": [ - "uri_asset", - "id_asset" - ], - "x-ms-enum": { - "name": "VectorStoreDataSourceAssetType", - "modelAsString": true, - "values": [ - { - "name": "uri_asset", - "value": "uri_asset", - "description": "Azure URI" - }, - { - "name": "id_asset", - "value": "id_asset", - "description": "The data ID" - } - ] - } - }, - "VectorStoreDeletionStatus": { - "type": "object", - "description": "Response object for deleting a vector store.", - "properties": { - "id": { - "type": "string", - "description": "The ID of the resource specified for deletion." - }, - "deleted": { - "type": "boolean", - "description": "A value indicating whether deletion was successful." - }, - "object": { - "type": "string", - "description": "The object type, which is always 'vector_store.deleted'.", - "enum": [ - "vector_store.deleted" - ], - "x-ms-enum": { - "modelAsString": false - } - } - }, - "required": [ - "id", - "deleted", - "object" - ] - }, - "VectorStoreExpirationPolicy": { - "type": "object", - "description": "The expiration policy for a vector store.", - "properties": { - "anchor": { - "$ref": "#/definitions/VectorStoreExpirationPolicyAnchor", - "description": "Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`." - }, - "days": { - "type": "integer", - "format": "int32", - "description": "The anchor timestamp after which the expiration policy applies.", - "minimum": 1, - "maximum": 365 - } - }, - "required": [ - "anchor", - "days" - ] - }, - "VectorStoreExpirationPolicyAnchor": { - "type": "string", - "description": "Describes the relationship between the days and the expiration of this vector store", - "enum": [ - "last_active_at" - ], - "x-ms-enum": { - "name": "VectorStoreExpirationPolicyAnchor", - "modelAsString": true, - "values": [ - { - "name": "lastActiveAt", - "value": "last_active_at", - "description": "The expiration policy is based on the last time the vector store was active." - } - ] - } - }, - "VectorStoreFile": { - "type": "object", - "description": "Description of a file attached to a vector store.", - "properties": { - "id": { - "type": "string", - "description": "The identifier, which can be referenced in API endpoints." - }, - "object": { - "type": "string", - "description": "The object type, which is always `vector_store.file`.", - "enum": [ - "vector_store.file" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "usage_bytes": { - "type": "integer", - "format": "int32", - "description": "The total vector store usage in bytes. Note that this may be different from the original file\nsize.", - "x-ms-client-name": "usageBytes" - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the vector store file was created.", - "x-ms-client-name": "createdAt" - }, - "vector_store_id": { - "type": "string", - "description": "The ID of the vector store that the file is attached to.", - "x-ms-client-name": "vectorStoreId" - }, - "status": { - "$ref": "#/definitions/VectorStoreFileStatus", - "description": "The status of the vector store file, which can be either `in_progress`, `completed`, `cancelled`, or `failed`. The status `completed` indicates that the vector store file is ready for use." - }, - "last_error": { - "type": "object", - "description": "The last error associated with this vector store file. Will be `null` if there are no errors.", - "x-nullable": true, - "allOf": [ - { - "$ref": "#/definitions/VectorStoreFileError" - } - ], - "x-ms-client-name": "lastError" - }, - "chunking_strategy": { - "$ref": "#/definitions/VectorStoreChunkingStrategyResponse", - "description": "The strategy used to chunk the file.", - "x-ms-client-name": "chunkingStrategy" - } - }, - "required": [ - "id", - "object", - "usage_bytes", - "created_at", - "vector_store_id", - "status", - "last_error", - "chunking_strategy" - ] - }, - "VectorStoreFileBatch": { - "type": "object", - "description": "A batch of files attached to a vector store.", - "properties": { - "id": { - "type": "string", - "description": "The identifier, which can be referenced in API endpoints." - }, - "object": { - "type": "string", - "description": "The object type, which is always `vector_store.file_batch`.", - "enum": [ - "vector_store.files_batch" - ], - "x-ms-enum": { - "modelAsString": false - } - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the vector store files batch was created.", - "x-ms-client-name": "createdAt" - }, - "vector_store_id": { - "type": "string", - "description": "The ID of the vector store that the file is attached to.", - "x-ms-client-name": "vectorStoreId" - }, - "status": { - "$ref": "#/definitions/VectorStoreFileBatchStatus", - "description": "The status of the vector store files batch, which can be either `in_progress`, `completed`, `cancelled` or `failed`." - }, - "file_counts": { - "$ref": "#/definitions/VectorStoreFileCount", - "description": "Files count grouped by status processed or being processed by this vector store.", - "x-ms-client-name": "fileCounts" - } - }, - "required": [ - "id", - "object", - "created_at", - "vector_store_id", - "status", - "file_counts" - ] - }, - "VectorStoreFileBatchStatus": { - "type": "string", - "description": "The status of the vector store file batch.", - "enum": [ - "in_progress", - "completed", - "cancelled", - "failed" - ], - "x-ms-enum": { - "name": "VectorStoreFileBatchStatus", - "modelAsString": true, - "values": [ - { - "name": "inProgress", - "value": "in_progress", - "description": "The vector store is still processing this file batch." - }, - { - "name": "completed", - "value": "completed", - "description": "the vector store file batch is ready for use." - }, - { - "name": "cancelled", - "value": "cancelled", - "description": "The vector store file batch was cancelled." - }, - { - "name": "failed", - "value": "failed", - "description": "The vector store file batch failed to process." - } - ] - } - }, - "VectorStoreFileCount": { - "type": "object", - "description": "Counts of files processed or being processed by this vector store grouped by status.", - "properties": { - "in_progress": { - "type": "integer", - "format": "int32", - "description": "The number of files that are currently being processed.", - "x-ms-client-name": "inProgress" - }, - "completed": { - "type": "integer", - "format": "int32", - "description": "The number of files that have been successfully processed." - }, - "failed": { - "type": "integer", - "format": "int32", - "description": "The number of files that have failed to process." - }, - "cancelled": { - "type": "integer", - "format": "int32", - "description": "The number of files that were cancelled." - }, - "total": { - "type": "integer", - "format": "int32", - "description": "The total number of files." - } - }, - "required": [ - "in_progress", - "completed", - "failed", - "cancelled", - "total" - ] - }, - "VectorStoreFileDeletionStatus": { - "type": "object", - "description": "Response object for deleting a vector store file relationship.", - "properties": { - "id": { - "type": "string", - "description": "The ID of the resource specified for deletion." - }, - "deleted": { - "type": "boolean", - "description": "A value indicating whether deletion was successful." - }, - "object": { - "type": "string", - "description": "The object type, which is always 'vector_store.deleted'.", - "enum": [ - "vector_store.file.deleted" - ], - "x-ms-enum": { - "modelAsString": false - } - } - }, - "required": [ - "id", - "deleted", - "object" - ] - }, - "VectorStoreFileError": { - "type": "object", - "description": "Details on the error that may have occurred while processing a file for this vector store", - "properties": { - "code": { - "$ref": "#/definitions/VectorStoreFileErrorCode", - "description": "One of `server_error` or `rate_limit_exceeded`." - }, - "message": { - "type": "string", - "description": "A human-readable description of the error." - } - }, - "required": [ - "code", - "message" - ] - }, - "VectorStoreFileErrorCode": { - "type": "string", - "description": "Error code variants for vector store file processing", - "enum": [ - "server_error", - "invalid_file", - "unsupported_file" - ], - "x-ms-enum": { - "name": "VectorStoreFileErrorCode", - "modelAsString": true, - "values": [ - { - "name": "serverError", - "value": "server_error", - "description": "An server error occurred." - }, - { - "name": "invalidFile", - "value": "invalid_file", - "description": "The file is not valid." - }, - { - "name": "unsupportedFile", - "value": "unsupported_file", - "description": "The file is of unsupported type." - } - ] - } - }, - "VectorStoreFileStatus": { - "type": "string", - "description": "Vector store file status", - "enum": [ - "in_progress", - "completed", - "failed", - "cancelled" - ], - "x-ms-enum": { - "name": "VectorStoreFileStatus", - "modelAsString": true, - "values": [ - { - "name": "inProgress", - "value": "in_progress", - "description": "The file is currently being processed." - }, - { - "name": "completed", - "value": "completed", - "description": "The file has been successfully processed." - }, - { - "name": "failed", - "value": "failed", - "description": "The file has failed to process." - }, - { - "name": "cancelled", - "value": "cancelled", - "description": "The file was cancelled." - } - ] - } - }, - "VectorStoreFileStatusFilter": { - "type": "string", - "description": "Query parameter filter for vector store file retrieval endpoint", - "enum": [ - "in_progress", - "completed", - "failed", - "cancelled" - ], - "x-ms-enum": { - "name": "VectorStoreFileStatusFilter", - "modelAsString": true, - "values": [ - { - "name": "inProgress", - "value": "in_progress", - "description": "Retrieve only files that are currently being processed" - }, - { - "name": "completed", - "value": "completed", - "description": "Retrieve only files that have been successfully processed" - }, - { - "name": "failed", - "value": "failed", - "description": "Retrieve only files that have failed to process" - }, - { - "name": "cancelled", - "value": "cancelled", - "description": "Retrieve only files that were cancelled" - } - ] - } - }, - "VectorStoreOptions": { - "type": "object", - "description": "Request object for creating a vector store.", - "properties": { - "file_ids": { - "type": "array", - "description": "A list of file IDs that the vector store should use. Useful for tools like `file_search` that can access files.", - "maxItems": 500, - "items": { - "type": "string" - }, - "x-ms-client-name": "fileIds" - }, - "name": { - "type": "string", - "description": "The name of the vector store." - }, - "configuration": { - "$ref": "#/definitions/VectorStoreConfiguration", - "description": "The vector store configuration, used when vector store is created from Azure asset URIs.", - "x-ms-client-name": "storeConfiguration" - }, - "expires_after": { - "$ref": "#/definitions/VectorStoreExpirationPolicy", - "description": "Details on when this vector store expires", - "x-ms-client-name": "expiresAfter" - }, - "chunking_strategy": { - "$ref": "#/definitions/VectorStoreChunkingStrategyRequest", - "description": "The chunking strategy used to chunk the file(s). If not set, will use the auto strategy. Only applicable if file_ids is non-empty.", - "x-ms-client-name": "chunkingStrategy" - }, - "metadata": { - "type": "object", - "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - } - } - }, - "VectorStoreStaticChunkingStrategyOptions": { - "type": "object", - "description": "Options to configure a vector store static chunking strategy.", - "properties": { - "max_chunk_size_tokens": { - "type": "integer", - "format": "int32", - "description": "The maximum number of tokens in each chunk. The default value is 800. The minimum value is 100 and the maximum value is 4096.", - "minimum": 100, - "maximum": 4096, - "x-ms-client-name": "maxChunkSizeTokens" - }, - "chunk_overlap_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of tokens that overlap between chunks. The default value is 400.\nNote that the overlap must not exceed half of max_chunk_size_tokens.", - "x-ms-client-name": "chunkOverlapTokens" - } - }, - "required": [ - "max_chunk_size_tokens", - "chunk_overlap_tokens" - ] - }, - "VectorStoreStaticChunkingStrategyRequest": { - "type": "object", - "description": "A statically configured chunking strategy.", - "properties": { - "static": { - "$ref": "#/definitions/VectorStoreStaticChunkingStrategyOptions", - "description": "The options for the static chunking strategy." - } - }, - "required": [ - "static" - ], - "allOf": [ - { - "$ref": "#/definitions/VectorStoreChunkingStrategyRequest" - } - ], - "x-ms-discriminator-value": "static" - }, - "VectorStoreStaticChunkingStrategyResponse": { - "type": "object", - "description": "A statically configured chunking strategy.", - "properties": { - "static": { - "$ref": "#/definitions/VectorStoreStaticChunkingStrategyOptions", - "description": "The options for the static chunking strategy." - } - }, - "required": [ - "static" - ], - "allOf": [ - { - "$ref": "#/definitions/VectorStoreChunkingStrategyResponse" - } - ], - "x-ms-discriminator-value": "static" - }, - "VectorStoreStatus": { - "type": "string", - "description": "Vector store possible status", - "enum": [ - "expired", - "in_progress", - "completed" - ], - "x-ms-enum": { - "name": "VectorStoreStatus", - "modelAsString": true, - "values": [ - { - "name": "expired", - "value": "expired", - "description": "expired status indicates that this vector store has expired and is no longer available for use." - }, - { - "name": "inProgress", - "value": "in_progress", - "description": "in_progress status indicates that this vector store is still processing files." - }, - { - "name": "completed", - "value": "completed", - "description": "completed status indicates that this vector store is ready for use." - } - ] - } - }, - "VectorStoreUpdateOptions": { - "type": "object", - "description": "Request object for updating a vector store.", - "properties": { - "name": { - "type": "string", - "description": "The name of the vector store.", - "x-nullable": true - }, - "expires_after": { - "type": "object", - "description": "Details on when this vector store expires", - "x-nullable": true, - "allOf": [ - { - "$ref": "#/definitions/VectorStoreExpirationPolicy" - } - ], - "x-ms-client-name": "expiresAfter" - }, - "metadata": { - "type": "object", - "description": "A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - } - } - } - }, - "parameters": { - "Azure.Core.Foundations.ApiVersionParameter": { - "name": "api-version", - "in": "query", - "description": "The API version to use for this operation.", - "required": true, - "type": "string", - "description": "Represents the mode in which the model will handle the return format of a tool call.", - "enum": [ - "auto", - "none" - ], - "x-ms-enum": { - "name": "AssistantsApiResponseFormatMode", - "modelAsString": true, - "values": [ - { - "name": "auto", - "value": "auto", - "description": "Default value. Let the model handle the return format." - }, - { - "name": "none", - "value": "none", - "description": "Setting the value to `none`, will result in a 400 Bad request." - } - ] - } - }, - "AssistantsApiResponseFormatOption": {}, - "AttackStrategy": { - "type": "string", - "description": "Strategies for attacks.", - "enum": [ - "easy", - "ascii_art", - "ascii_smuggler", - "atbash", - "base64", - "binary", - "caesar", - "character_space", - "jailbreak" - ], - "x-ms-enum": { - "name": "AttackStrategy", - "modelAsString": true, - "values": [ - { - "name": "Easy", - "value": "easy", - "description": "Represents a default set of easy complexity attacks. Easy complexity attack strategies are defined as attacks that do not require any Large Language Model to convert or orchestrate." - }, - { - "name": "AsciiArt", - "value": "ascii_art", - "description": "Represents ASCII art, a graphic design technique that uses printable characters." - }, - { - "name": "AsciiSmuggler", - "value": "ascii_smuggler", - "description": "Represents ASCII smuggling, a technique for encoding or hiding data." - }, - { - "name": "Atbash", - "value": "atbash", - "description": "Represents the Atbash cipher, a substitution cipher that reverses the alphabet." - }, - { - "name": "Base64", - "value": "base64", - "description": "Represents Base64 encoding, a method for encoding binary data as text." - }, - { - "name": "Binary", - "value": "binary", - "description": "Represents binary encoding, a representation of data in binary format." - }, - { - "name": "Caesar", - "value": "caesar", - "description": "Represents the Caesar cipher, a substitution cipher that shifts characters." - }, - { - "name": "CharacterSpace", - "value": "character_space", - "description": "Represents character space manipulation, a technique involving spacing between characters." - }, - { - "name": "Jailbreak", - "value": "jailbreak", - "description": "Represents character swapping, a technique for rearranging characters in text." - } - ] - } - }, - "AuthenticationType": { - "type": "string", - "description": "The authentication type used by the connection", - "enum": [ - "ApiKey", - "AAD", - "SAS", - "CustomKeys", - "None" - ], - "x-ms-enum": { - "name": "AuthenticationType", - "modelAsString": true, - "values": [ - { - "name": "apiKey", - "value": "ApiKey", - "description": "API Key authentication" - }, - { - "name": "entraId", - "value": "AAD", - "description": "Entra ID authentication (formerly known as AAD)" - }, - { - "name": "SAS", - "value": "SAS", - "description": "Shared Access Signature (SAS) authentication" - }, - { - "name": "custom", - "value": "CustomKeys", - "description": "Custom authentication" - }, - { - "name": "None", - "value": "None", - "description": "No authentication" - } - ] - } - }, - "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" - }, - "x-ms-identifiers": [] - }, - "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 Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", - "properties": { - "code": { - "type": "string", - "description": "One of a server-defined set of error codes." - }, - "innererror": { - "$ref": "#/definitions/Azure.Core.Foundations.InnerError", - "description": "Inner error." - } - } - }, - "AzureAISearchIndex": { - "type": "object", - "description": "Azure AI Search Index Definition", - "properties": { - "connectionName": { - "type": "string", - "description": "Name of connection to Azure AI Search" - }, - "indexName": { - "type": "string", - "description": "Name of index in Azure AI Search resource to attach" - } - }, - "required": [ - "connectionName", - "indexName" - ], - "allOf": [ - { - "$ref": "#/definitions/Index" - } - ], - "x-ms-discriminator-value": "AzureSearch" - }, - "BlobReferenceForConsumption": { - "type": "object", - "description": "Represents a reference to a blob for consumption", - "properties": { - "blobUri": { - "type": "string", - "description": "Blob URI path for client to upload data. Example: https://blob.windows.core.net/Container/Path" - }, - "storageAccountArmId": { - "type": "string", - "description": "ARM ID of the storage account to use." - }, - "credential": { - "$ref": "#/definitions/SasCredential", - "description": "Credential info to access the storage account." - } - }, - "required": [ - "blobUri", - "storageAccountArmId", - "credential" - ] - }, - "Connection": { - "type": "object", - "description": "Response from the listSecrets operation", - "properties": { - "name": { - "type": "string", - "description": "The name of the resource", - "readOnly": true - }, - "type": { - "$ref": "#/definitions/ConnectionType", - "description": "Category of the connection", - "readOnly": true - }, - "target": { - "type": "string", - "description": "The connection URL to be used for this service", - "readOnly": true - }, - "authType": { - "$ref": "#/definitions/AuthenticationType", - "description": "The authentication type used by the connection", - "readOnly": true - }, - "metadata": { - "type": "object", - "description": "Metadata of the connection", - "additionalProperties": { - "type": "string" - }, - "readOnly": true - } - }, - "required": [ - "name", - "type", - "target", - "authType", - "metadata" - ] - }, - "ConnectionType": { - "type": "string", - "description": "The Type (or category) of the connection", - "enum": [ - "AzureOpenAI", - "AzureBlob", - "CognitiveSearch", - "CosmosDB", - "ApiKey", - "AppInsights", - "CustomKeys" - ], - "x-ms-enum": { - "name": "ConnectionType", - "modelAsString": true, - "values": [ - { - "name": "AzureOpenAI", - "value": "AzureOpenAI", - "description": "Azure OpenAI Service" - }, - { - "name": "AzureBlobStorage", - "value": "AzureBlob", - "description": "Azure Blob Storage" - }, - { - "name": "AzureAISearch", - "value": "CognitiveSearch", - "description": "Azure AI Search" - }, - { - "name": "CosmosDB", - "value": "CosmosDB", - "description": "CosmosDB" - }, - { - "name": "APIKey", - "value": "ApiKey", - "description": "Generic connection that uses API Key authentication" - }, - { - "name": "ApplicationInsights", - "value": "AppInsights", - "description": "Application Insights" - }, - { - "name": "Custom", - "value": "CustomKeys", - "description": "Custom Keys" - } - ] - } - }, - "CosmosDBIndex": { - "type": "object", - "description": "CosmosDB Vector Store Index Definition", - "properties": { - "connectionName": { - "type": "string", - "description": "Name of connection to CosmosDB" - }, - "databaseName": { - "type": "string", - "description": "Name of the CosmosDB Database" - }, - "containerName": { - "type": "string", - "description": "Name of CosmosDB Container" - }, - "embeddingConfiguration": { - "$ref": "#/definitions/EmbeddingConfiguration", - "description": "Embedding model configuration" - } - }, - "required": [ - "connectionName", - "databaseName", - "containerName", - "embeddingConfiguration" - ], - "allOf": [ - { - "$ref": "#/definitions/Index" - } - ], - "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" - }, - "DataPathAssetReference": { - "type": "object", - "description": "Reference to an asset via its path in a datastore.", - "properties": { - "datastoreId": { - "type": "string", - "description": "ARM resource ID of the datastore where the asset is located." - }, - "path": { - "type": "string", - "description": "The path of the file/directory in the datastore." - } - }, - "allOf": [ - { - "$ref": "#/definitions/AssetReferenceBase" - } - ], - "x-ms-discriminator-value": "DataPath" - }, - "DatasetType": { - "type": "string", - "description": "Enum to determine the type of data.", - "enum": [ - "uri_file", - "uri_folder" - ], - "x-ms-enum": { - "name": "DatasetType", - "modelAsString": true, - "values": [ - { - "name": "uri_file", - "value": "uri_file", - "description": "URI file." - }, - { - "name": "uri_folder", - "value": "uri_folder", - "description": "URI folder." - } - ] - } - }, - "DatasetVersion": { - "type": "object", - "description": "DatasetVersion Definition", - "properties": { - "datasetUri": { - "type": "string", - "description": "[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330", - "minLength": 1, - "pattern": "[a-zA-Z0-9_]", - "x-ms-mutability": [ - "read", - "create" - ] - }, - "type": { - "$ref": "#/definitions/DatasetType", - "description": "Dataset type" - }, - "isReference": { - "type": "boolean", - "description": "Indicates if dataset is reference only or managed by dataset service. If true, the underlying data will be deleted when the dataset version is deleted", - "readOnly": true - }, - "stage": { - "type": "string", - "description": "Asset stage", - "x-ms-mutability": [ - "read", - "update", - "create" - ] - }, - "id": { - "type": "string", - "description": "A unique identifier for the asset, assetId probably?", - "readOnly": true - }, - "name": { - "type": "string", - "description": "The name of the resource", - "readOnly": true - }, - "version": { - "type": "string", - "description": "The version of the resource", - "readOnly": true - }, - "description": { - "type": "string", - "description": "The asset description text." - }, - "tags": { - "type": "object", - "description": "Tag dictionary. Tags can be added, removed, and updated.", - "additionalProperties": { - "type": "string" - } - } - }, - "discriminator": "type", - "required": [ - "datasetUri", - "type", - "name", - "version" - ] - }, - "Deployment": { - "type": "object", - "description": "Model Deployment Definition", - "properties": { - "type": { - "$ref": "#/definitions/DeploymentType", - "description": "The type of the deployment" - }, - "name": { - "type": "string", - "description": "Name of the deployment", - "readOnly": true - } - }, - "discriminator": "type", - "required": [ - "type", - "name" - ] - }, - "DeploymentType": { - "type": "string", - "enum": [ - "ModelDeployment" - ], - "x-ms-enum": { - "name": "DeploymentType", - "modelAsString": true, - "values": [ - { - "name": "ModelDeployment", - "value": "ModelDeployment", - "description": "Model deployment" - } - ] - } - }, - "EmbeddingConfiguration": { - "type": "object", - "description": "Embedding configuration class", - "properties": { - "modelDeploymentName": { - "type": "string", - "description": "Deployment name of embedding model. It can point to a model deployment either in the parent AIServices or a connection." - }, - "embeddingField": { - "type": "string", - "description": "Embedding field" - } - }, - "required": [ - "modelDeploymentName", - "embeddingField" - ] - }, - "Evaluation": { - "type": "object", - "description": "Evaluation Definition", - "properties": { - "id": { - "type": "string", - "description": "Identifier of the evaluation.", - "readOnly": true - }, - "data": { - "$ref": "#/definitions/InputData", - "description": "Data for evaluation." - }, - "displayName": { - "type": "string", - "description": "Display Name for evaluation. It helps to find the evaluation easily in AI Foundry. It does not need to be unique." - }, - "description": { - "type": "string", - "description": "Description of the evaluation. It can be used to store additional information about the evaluation and is mutable." - }, - "status": { - "type": "string", - "description": "Status of the evaluation. It is set by service and is read-only.", - "readOnly": true - }, - "tags": { - "type": "object", - "description": "Evaluation's tags. Unlike properties, tags are fully mutable.", - "additionalProperties": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Evaluation's properties. Unlike tags, properties are add-only. Once added, a property cannot be removed.", - "additionalProperties": { - "type": "string" - } - }, - "evaluators": { - "type": "object", - "description": "Evaluators to be used for the evaluation.", - "additionalProperties": { - "$ref": "#/definitions/EvaluatorConfiguration" - } - }, - "outputs": { - "type": "object", - "description": "Read-only result outputs. Example: { 'evaluationResultId': 'azureai://accounts/{AccountName}/projects/{myproject}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{myproject}/datasets/{dataset-name}/{dataset-version}' }", - "additionalProperties": { - "type": "string" - }, - "readOnly": true - } - }, - "required": [ - "id", - "data", - "evaluators", - "outputs" - ] - }, - "EvaluationResult": { - "type": "object", - "description": "Evaluation Result resource Definition", - "properties": { - "ResultType": { - "$ref": "#/definitions/ResultType", - "description": "Type of Evaluation result" - }, - "ModelName": { - "type": "string", - "description": "Model Name" - }, - "ModelVersion": { - "type": "string", - "description": "Model Version" - }, - "ModelAssetId": { - "type": "string", - "description": "Model Asset ID" - }, - "DatasetFamily": { - "type": "string", - "description": "Dataset Family" - }, - "DatasetName": { - "type": "string", - "description": "Dataset Name" - }, - "Metrics": { - "type": "object", - "description": "Metrics", - "additionalProperties": { - "format": "double", - "type": "number" - } - }, - "BlobUri": { - "type": "string", - "description": "Blob URI" - }, - "stage": { - "type": "string", - "description": "Asset stage", - "x-ms-mutability": [ - "read", - "update", - "create" - ] - }, - "id": { - "type": "string", - "description": "A unique identifier for the asset, assetId probably?", - "readOnly": true - }, - "name": { - "type": "string", - "description": "The name of the resource", - "readOnly": true - }, - "version": { - "type": "string", - "description": "The version of the resource", - "readOnly": true - }, - "description": { - "type": "string", - "description": "The asset description text." - }, - "tags": { - "type": "object", - "description": "Tag dictionary. Tags can be added, removed, and updated.", - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "name", - "version" - ] - }, - "EvaluatorConfiguration": { - "type": "object", - "description": "Evaluator Configuration", - "properties": { - "id": { - "type": "string", - "description": "Identifier of the evaluator." - }, - "initParams": { - "type": "object", - "description": "Initialization parameters of the evaluator.", - "additionalProperties": {} - }, - "dataMapping": { - "type": "object", - "description": "Data parameters of the evaluator.", - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "id" - ] - }, - "ExtraParameters": { - "type": "string", - "description": "Controls what happens if extra parameters, undefined by the REST API, are passed in the JSON request payload.", - "enum": [ - "error", - "drop", - "pass-through" - ], - "x-ms-enum": { - "name": "ExtraParameters", - "modelAsString": true, - "values": [ - { - "name": "error", - "value": "error", - "description": "The service will error if it detected extra parameters in the request payload. This is the service default." - }, - { - "name": "drop", - "value": "drop", - "description": "The service will ignore (drop) extra parameters in the request payload. It will only pass the known parameters to the back-end AI model." - }, - { - "name": "pass_through", - "value": "pass-through", - "description": "The service will pass extra parameters to the back-end AI model." - } - ] - } - }, - "FileDatasetVersion": { - "type": "object", - "description": "FileDatasetVersion Definition", - "properties": { - "openAIPurpose": { - "type": "string", - "description": "Indicates OpenAI Purpose. FileDatasets created with this field will be compatible with OpenAI-specific features" - } - }, - "required": [ - "openAIPurpose" - ], - "allOf": [ - { - "$ref": "#/definitions/DatasetVersion" - } - ], - "x-ms-discriminator-value": "uri_file" - }, - "FolderDatasetVersion": { - "type": "object", - "description": "FileDatasetVersion Definition", - "allOf": [ - { - "$ref": "#/definitions/DatasetVersion" - } - ], - "x-ms-discriminator-value": "uri_folder" - }, - "IdAssetReference": { - "type": "object", - "description": "Reference to an asset via its ARM resource ID.", - "properties": { - "assetId": { - "type": "string", - "description": "[Required] ARM resource ID of the asset.", - "minLength": 1, - "pattern": "[a-zA-Z0-9_]" - } - }, - "required": [ - "assetId" - ], - "allOf": [ - { - "$ref": "#/definitions/AssetReferenceBase" - } - ], - "x-ms-discriminator-value": "Id" - }, - "Index": { - "type": "object", - "description": "Index resource Definition", - "properties": { - "type": { - "$ref": "#/definitions/IndexType", - "description": "Type of index" - }, - "stage": { - "type": "string", - "description": "Asset stage", - "x-ms-mutability": [ - "read", - "update", - "create" - ] - }, - "id": { - "type": "string", - "description": "A unique identifier for the asset, assetId probably?", - "readOnly": true - }, - "name": { - "type": "string", - "description": "The name of the resource", - "readOnly": true - }, - "version": { - "type": "string", - "description": "The version of the resource", - "readOnly": true - }, - "description": { - "type": "string", - "description": "The asset description text." - }, - "tags": { - "type": "object", - "description": "Tag dictionary. Tags can be added, removed, and updated.", - "additionalProperties": { - "type": "string" - } - } - }, - "discriminator": "type", - "required": [ - "type", - "name", - "version" - ] - }, - "IndexType": { - "type": "string", - "enum": [ - "AzureSearch", - "CosmosDBNoSqlVectorStore", - "ManagedAzureSearch" - ], - "x-ms-enum": { - "name": "IndexType", - "modelAsString": true, - "values": [ - { - "name": "azureSearch", - "value": "AzureSearch", - "description": "Azure search" - }, - { - "name": "cosmosDB", - "value": "CosmosDBNoSqlVectorStore", - "description": "CosmosDB" - }, - { - "name": "managedAzureSearch", - "value": "ManagedAzureSearch", - "description": "Managed Azure Search" - } - ] - } - }, - "InputData": { - "type": "object", - "description": "Abstract data class.", - "properties": { - "type": { - "type": "string", - "description": "Type of the data" - } - }, - "discriminator": "type", - "required": [ - "type" - ] - }, - "InputDataset": { - "type": "object", - "description": "Dataset as source for evaluation.", - "properties": { - "id": { - "type": "string", - "description": "Evaluation input data" - } - }, - "required": [ - "id" - ], - "allOf": [ - { - "$ref": "#/definitions/InputData" - } - ], - "x-ms-discriminator-value": "dataset" - }, - "ListSortOrder": { - "type": "string", - "description": "The available sorting options when requesting a list of response objects.", - "enum": [ - "asc", - "desc" - ], - "x-ms-enum": { - "name": "ListSortOrder", - "modelAsString": true, - "values": [ - { - "name": "ascending", - "value": "asc", - "description": "Specifies an ascending sort order." - }, - { - "name": "descending", - "value": "desc", - "description": "Specifies a descending sort order." - } - ] - } - }, - "ListViewType": { - "type": "string", - "description": "List View Type Definition", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } - }, - "ManagedAzureAISearchIndex": { - "type": "object", - "description": "Managed Azure AI Search Index Definition", - "properties": { - "vectorStoreId": { - "type": "string", - "description": "Vector store id of managed index" - } - }, - "required": [ - "vectorStoreId" - ], - "allOf": [ - { - "$ref": "#/definitions/Index" - } - ], - "x-ms-discriminator-value": "ManagedAzureSearch" - }, - "MessageRole": { - "type": "string", - "description": "The possible values for roles attributed to messages in a thread.", - "enum": [ - "user", - "assistant" - ], - "x-ms-enum": { - "name": "MessageRole", - "modelAsString": true, - "values": [ - { - "name": "user", - "value": "user", - "description": "The role representing the end-user." - }, - { - "name": "assistant", - "value": "assistant", - "description": "The role representing the assistant." - } - ] - } - }, - "ModelDeployment": { - "type": "object", - "description": "Model Deployment Definition", - "properties": { - "modelName": { - "type": "string", - "description": "Publisher-specific name of the deployed model", - "readOnly": true - }, - "modelVersion": { - "type": "string", - "description": "Publisher-specific version of the deployed model", - "readOnly": true - }, - "modelPublisher": { - "type": "string", - "description": "Name of the deployed model's publisher", - "readOnly": true - }, - "capabilities": { - "type": "object", - "description": "Capabilities of deployed model", - "additionalProperties": { - "type": "string" - }, - "readOnly": true - }, - "sku": { - "$ref": "#/definitions/Sku", - "description": "Sku of the model deployment", - "readOnly": true - }, - "connectionName": { - "type": "string", - "description": "Name of the connection the deployment comes from", - "readOnly": true - } - }, - "required": [ - "modelName", - "modelVersion", - "modelPublisher", - "capabilities", - "sku" - ], - "allOf": [ - { - "$ref": "#/definitions/Deployment" - } - ], - "x-ms-discriminator-value": "ModelDeployment" - }, - "OutputPathAssetReference": { - "type": "object", - "description": "Reference to an asset via its path in a job output.", - "properties": { - "jobId": { - "type": "string", - "description": "ARM resource ID of the job." - }, - "path": { - "type": "string", - "description": "The path of the file/directory in the job output." - } - }, - "allOf": [ - { - "$ref": "#/definitions/AssetReferenceBase" - } - ], - "x-ms-discriminator-value": "OutputPath" - }, - "PagedConnection": { - "type": "object", - "description": "Paged collection of Connection items", - "properties": { - "value": { - "type": "array", - "description": "The Connection items on this page", - "items": { - "$ref": "#/definitions/Connection" - }, - "x-ms-identifiers": [] - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, - "PagedDatasetVersion": { - "type": "object", - "description": "Paged collection of DatasetVersion items", - "properties": { - "value": { - "type": "array", - "description": "The DatasetVersion items on this page", - "items": { - "$ref": "#/definitions/DatasetVersion" - } - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, - "PagedDeployment": { - "type": "object", - "description": "Paged collection of Deployment items", - "properties": { - "value": { - "type": "array", - "description": "The Deployment items on this page", - "items": { - "$ref": "#/definitions/Deployment" - }, - "x-ms-identifiers": [] - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, - "PagedEvaluation": { - "type": "object", - "description": "Paged collection of Evaluation items", - "properties": { - "value": { - "type": "array", - "description": "The Evaluation items on this page", - "items": { - "$ref": "#/definitions/Evaluation" - } - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, - "PagedEvaluationResult": { - "type": "object", - "description": "Paged collection of EvaluationResult items", - "properties": { - "value": { - "type": "array", - "description": "The EvaluationResult items on this page", - "items": { - "$ref": "#/definitions/EvaluationResult" - } - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, - "PagedIndex": { - "type": "object", - "description": "Paged collection of Index items", - "properties": { - "value": { - "type": "array", - "description": "The Index items on this page", - "items": { - "$ref": "#/definitions/Index" - } - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, - "PagedRedTeam": { - "type": "object", - "description": "Paged collection of RedTeam items", - "properties": { - "value": { - "type": "array", - "description": "The RedTeam items on this page", - "items": { - "$ref": "#/definitions/RedTeam" - } - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, - "PendingUploadCredentialType": { - "type": "string", - "description": "The type of credential used to access the storage account.", - "enum": [ - "SAS" - ], - "x-ms-enum": { - "name": "PendingUploadCredentialType", - "modelAsString": true, - "values": [ - { - "name": "sas", - "value": "SAS", - "description": "SAS credential type." - } - ] - } - }, - "PendingUploadRequest": { - "type": "object", - "description": "Represents a request for a pending upload.", - "properties": { - "pendingUploadId": { - "type": "string", - "description": "If PendingUploadId is not provided, a random GUID will be used." - }, - "connectionName": { - "type": "string", - "description": "Name of Azure blob storage connection to use for generating temporary SAS token" - }, - "pendingUploadType": { - "type": "string", - "description": "TemporaryBlobReference is the only supported type.", - "enum": [ - "TemporaryBlobReference" - ], - "x-ms-enum": { - "modelAsString": false - } - } - }, - "required": [ - "pendingUploadType" - ] - }, - "PendingUploadResponse": { - "type": "object", - "description": "Represents the response for a pending upload request", - "properties": { - "blobReferenceForConsumption": { - "$ref": "#/definitions/BlobReferenceForConsumption", - "description": "Container-level read, write, list SAS." - }, - "pendingUploadId": { - "type": "string", - "description": "ID for this upload request." - }, - "datasetVersion": { - "type": "string", - "description": "Version of dataset to be created if user did not specify version when initially creating upload" - }, - "pendingUploadType": { - "type": "string", - "description": "TemporaryBlobReference is the only supported type", - "enum": [ - "TemporaryBlobReference" - ], - "x-ms-enum": { - "modelAsString": false - } - } - }, - "required": [ - "blobReferenceForConsumption", - "pendingUploadId", - "pendingUploadType" - ] - }, - "PendingUploadType": { - "type": "string", - "description": "The type of pending upload.", - "enum": [ - "None", - "TemporaryBlobReference" - ], - "x-ms-enum": { - "name": "PendingUploadType", - "modelAsString": true, - "values": [ - { - "name": "none", - "value": "None", - "description": "No pending upload." - }, - { - "name": "temporaryBlobReference", - "value": "TemporaryBlobReference", - "description": "Temporary Blob Reference is the only supported type." - } - ] - } - }, - "RedTeam": { - "type": "object", - "description": "Red team details.", - "properties": { - "id": { - "type": "string", - "description": "Identifier of the red team.", - "readOnly": true - }, - "scanName": { - "type": "string", - "description": "Name of the red-team scan." - }, - "numTurns": { - "type": "integer", - "format": "int32", - "description": "Number of simulation rounds." - }, - "attackStrategy": { - "type": "array", - "description": "List of attack strategies or nested lists of attack strategies.", - "items": { - "$ref": "#/definitions/AttackStrategy" - } - }, - "simulationOnly": { - "type": "boolean", - "description": "Simulation-only or Simulation + Evaluation. Default false, if true the scan outputs conversation not evaluation result." - }, - "outputs": { - "type": "object", - "description": "Read-only result outputs. Example: { 'redTeamResultId': 'azureai://accounts/{AccountName}/projects/{myproject}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{myproject}/datasets/{dataset-name}/{dataset-version}' }", - "additionalProperties": { - "type": "string" - }, - "readOnly": true - }, - "riskCategories": { - "type": "array", - "description": "List of risk categories to generate attack objectives for.", - "items": { - "$ref": "#/definitions/RiskCategory" - } - }, - "applicationScenario": { - "type": "string", - "description": "Application scenario for the red team operation, to generate scenario specific attacks." - }, - "tags": { - "type": "object", - "description": "Red team's tags. Unlike properties, tags are fully mutable.", - "additionalProperties": { - "type": "string" - } - }, - "properties": { - "type": "object", - "description": "Red team's properties. Unlike tags, properties are add-only. Once added, a property cannot be removed.", - "additionalProperties": { - "type": "string" - } - }, - "status": { - "type": "string", - "description": "Status of the red-team. It is set by service and is read-only.", - "readOnly": true - } - }, - "required": [ - "id", - "scanName", - "numTurns", - "attackStrategy", - "simulationOnly", - "outputs", - "riskCategories" - ] - }, - "ReferenceType": { - "type": "string", - "description": "Enum to determine which reference method to use for an asset.", - "enum": [ - "Id", - "DataPath", - "OutputPath" - ], - "x-ms-enum": { - "name": "ReferenceType", - "modelAsString": true, - "values": [ - { - "name": "Id", - "value": "Id", - "description": "Id" - }, - { - "name": "DataPath", - "value": "DataPath", - "description": "DataPath" - }, - { - "name": "OutputPath", - "value": "OutputPath", - "description": "OutputPath" - } - ] - } - }, - "ResultType": { - "type": "string", - "description": "Type of Evaluation result", - "enum": [ - "Benchmark", - "Evaluation", - "Redteam", - "Simulation" - ], - "x-ms-enum": { - "name": "ResultType", - "modelAsString": true, - "values": [ - { - "name": "Benchmark", - "value": "Benchmark", - "description": "Benchmark result" - }, - { - "name": "Evaluation", - "value": "Evaluation", - "description": "Evaluations Result" - }, - { - "name": "Redteam", - "value": "Redteam", - "description": "Red Team Result" - }, - { - "name": "Simulation", - "value": "Simulation", - "description": "Simulation Result" - } - ] - } - }, - "RiskCategory": { - "type": "string", - "description": "Risk category for the attack objective.", - "enum": [ - "HateUnfairness", - "Violence", - "Sexual", - "SelfHarm", - "ProtectedMaterial", - "CodeVulnerability", - "UngroundedAttributes" - ], - "x-ms-enum": { - "name": "RiskCategory", - "modelAsString": true, - "values": [ - { - "name": "HateUnfairness", - "value": "HateUnfairness", - "description": "Represents content related to hate or unfairness." - }, - { - "name": "Violence", - "value": "Violence", - "description": "Represents content related to violence." - }, - { - "name": "Sexual", - "value": "Sexual", - "description": "Represents content of a sexual nature." - }, - { - "name": "SelfHarm", - "value": "SelfHarm", - "description": "Represents content related to self-harm." - }, - { - "name": "ProtectedMaterial", - "value": "ProtectedMaterial", - "description": "Represents content involving protected material." - }, - { - "name": "CodeVulnerability", - "value": "CodeVulnerability", - "description": "Represents content related to code vulnerabilities." - }, - { - "name": "UngroundedAttributes", - "value": "UngroundedAttributes", - "description": "Represents content with ungrounded attributes." - } - ] - } - }, - "SasCredential": { - "type": "object", - "description": "SAS Credential definition", - "properties": { - "sasUri": { - "type": "string", - "description": "SAS uri", - "readOnly": true - }, - "type": { - "type": "string", - "description": "Type of credential", - "enum": [ - "SAS" - ], - "x-ms-enum": { - "modelAsString": false - }, - "readOnly": true - } - }, - "required": [ - "sasUri", - "type" - ] - }, - "Sku": { - "type": "object", - "description": "Sku information", - "properties": { - "capacity": { - "type": "integer", - "format": "int64", - "description": "Sku capacity" - }, - "family": { - "type": "string", - "description": "Sku family" - }, - "name": { - "type": "string", - "description": "Sku name" - }, - "size": { - "type": "string", - "description": "Sku size" - }, - "tier": { - "type": "string", - "description": "Sku tier" - } - }, - "required": [ - "capacity", - "family", - "name", - "size", - "tier" - ] - } - }, - "parameters": { - "Assistants.DeleteAgentOptions": { - "name": "assistantId", - "in": "path", - "description": "Identifier of the agent.", - "required": true, - "type": "string", - "x-ms-parameter-location": "method" - }, - "GetAgentOptions": { - "name": "assistantId", - "in": "path", - "description": "Identifier of the agent.", - "required": true, - "type": "string", - "x-ms-parameter-location": "method" - }, - "UpdateAgentOptions.assistantId": { - "name": "assistantId", - "in": "path", - "description": "The ID of the agent to modify.", - "required": true, - "type": "string", - "x-ms-parameter-location": "method" - }, - "UpdateAgentThreadOptions.threadId": { - "name": "threadId", - "in": "path", - "description": "The ID of the thread to modify.", - "required": true, - "type": "string", - "x-ms-parameter-location": "method" - } - } -} From ec313e9aa5f00fc3c43e917a393146ac5edd1fe9 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Tue, 1 Apr 2025 14:28:19 -0400 Subject: [PATCH 088/143] Add API Versions to Projects TypeSpec (#33631) * Add API versions to typespec entities and split swaggers into stable/preview versions * fix doc string --------- Co-authored-by: Neehar Duvvuri --- .../ai/Azure.AI.Projects/common/models.tsp | 191 -- .../Azure.AI.Projects/connections/models.tsp | 2 + .../Azure.AI.Projects/connections/routes.tsp | 2 + .../ai/Azure.AI.Projects/datasets/models.tsp | 5 + .../ai/Azure.AI.Projects/datasets/routes.tsp | 2 + .../Azure.AI.Projects/deployments/models.tsp | 5 + .../Azure.AI.Projects/deployments/routes.tsp | 2 + .../evaluation-results/models.tsp | 4 + .../evaluation-results/routes.tsp | 3 + .../Azure.AI.Projects/evaluations/models.tsp | 9 + .../Azure.AI.Projects/evaluations/routes.tsp | 3 + .../ai/Azure.AI.Projects/indexes/models.tsp | 8 + .../ai/Azure.AI.Projects/indexes/routes.tsp | 2 + specification/ai/Azure.AI.Projects/main.tsp | 10 +- .../ai/Azure.AI.Projects/red-teams/models.tsp | 6 + .../ai/Azure.AI.Projects/red-teams/routes.tsp | 2 + .../azure-ai-projects-1dp.json | 239 -- .../2025-05-01/azure-ai-projects-1dp.json | 2234 +++++++++++++++++ .../stable/latest/azure-ai-projects-1dp.json | 2234 +++++++++++++++++ 19 files changed, 4532 insertions(+), 431 deletions(-) create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json diff --git a/specification/ai/Azure.AI.Projects/common/models.tsp b/specification/ai/Azure.AI.Projects/common/models.tsp index 95d6ed924801..ae84f9603d46 100644 --- a/specification/ai/Azure.AI.Projects/common/models.tsp +++ b/specification/ai/Azure.AI.Projects/common/models.tsp @@ -7,17 +7,6 @@ using TypeSpec.Http; namespace Azure.AI.Projects; -@doc("The possible values for roles attributed to messages in a thread.") -union MessageRole { - string, - - @doc("The role representing the end-user.") - user: "user", - - @doc("The role representing the assistant.") - assistant: "assistant", -} - @doc("The available sorting options when requesting a list of response objects.") union ListSortOrder { string, @@ -29,106 +18,6 @@ union ListSortOrder { descending: "desc", } -alias OpenAIListRequestOptions = { - @doc("A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.") - @query - limit?: int32 = 20; - - @doc("Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.") - @query - order?: ListSortOrder = ListSortOrder.descending; - - @doc("A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.") - @query - after?: string; - - @doc("A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.") - @query - before?: string; -}; - -#suppress "@azure-tools/typespec-azure-core/casing-style" "OpenAI is a case-sensitive name" -@doc("The response data for a requested list of items.") -model OpenAIPageableListOf { - @doc("The object type, which is always list.") - object: "list"; - - @doc("The requested list of items.") - data: T[]; - - @encodedName("application/json", "first_id") - @doc("The first ID represented in this list.") - firstId: string; - - @encodedName("application/json", "last_id") - @doc("The last ID represented in this list.") - lastId: string; - - @encodedName("application/json", "has_more") - @doc("A value indicating whether there are additional values available not captured in this list.") - hasMore: boolean; -} - -alias DeletionStatus = { - @doc("The ID of the resource specified for deletion.") - id: string; - - @doc("A value indicating whether deletion was successful.") - deleted: boolean; -}; - -alias RequiredNullableMetadata = { - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.") - metadata: Record | null; -}; - -alias OptionalNullableMetadata = { - #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" - @doc("A set of up to 16 key/value pairs that can be attached to an object, used for storing additional information about that object in a structured format. Keys may be up to 64 characters in length and values may be up to 512 characters in length.") - metadata?: Record | null; -}; - -#suppress "@azure-tools/typespec-autorest/union-unsupported" "This union is defined according to the OpenAI API" -@doc("Specifies the format that the model must output. Compatible with GPT-4 Turbo and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. Setting to `{ \"type\": \"json_object\" }` enables JSON mode, which guarantees the message the model generates is valid JSON. **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly \"stuck\" request. Also note that the message content may be partially cut off if `finish_reason=\"length\"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length.") -union AssistantsApiResponseFormatOption { - string, - - @doc("The model will handle the return format.") - AssistantsApiResponseFormatMode, - - @doc("Sets the format of the output of the model when a ToolCall is returned.") - AssistantsApiResponseFormat, -} - -@doc("Represents the mode in which the model will handle the return format of a tool call.") -union AssistantsApiResponseFormatMode { - string, - - @doc("Default value. Let the model handle the return format.") - "auto", - - @doc("Setting the value to `none`, will result in a 400 Bad request.") - "none", -} - -@doc("An object describing the expected output of the model. If `json_object` only `function` type `tools` are allowed to be passed to the Run. If `text` the model can return text or any value needed.") -model AssistantsApiResponseFormat { - @doc("Must be one of `text` or `json_object`.") - type?: ApiResponseFormat = ApiResponseFormat.text; -} - -@doc("Possible API response formats.") -union ApiResponseFormat { - string, - - @doc("`text` format should be used for requests involving any sort of ToolCall.") - text: "text", - - @doc("Using `json_object` format will limit the usage of ToolCall to only functions.") - jsonObject: "json_object", -} - @doc("List View Type Definition") union ListViewType { string, @@ -143,62 +32,6 @@ union ListViewType { All: "All", } -@doc("Enum to determine which reference method to use for an asset.") -union ReferenceType { - string, - - @doc("Id") - Id: "Id", - - @doc("DataPath") - DataPath: "DataPath", - - @doc("OutputPath") - OutputPath: "OutputPath", -} - -@doc("Base definition for asset references.") -@discriminator("referenceType") -model AssetReferenceBase { - @doc("Asset reference type.") - referenceType: ReferenceType; -} - -@doc("Reference to an asset via its ARM resource ID.") -model IdAssetReference extends AssetReferenceBase { - @doc("[Required] ARM resource ID of the asset.") - @minLength(1) - @pattern("[a-zA-Z0-9_]") - assetId: string; - - @doc("[Required] Specifies the type of asset reference.") - referenceType: "Id"; -} - -@doc("Reference to an asset via its path in a datastore.") -model DataPathAssetReference extends AssetReferenceBase { - @doc("ARM resource ID of the datastore where the asset is located.") - datastoreId?: string; - - @doc("The path of the file/directory in the datastore.") - path?: string; - - @doc("[Required] Specifies the type of asset reference.") - referenceType: "DataPath"; -} - -@doc("Reference to an asset via its path in a job output.") -model OutputPathAssetReference extends AssetReferenceBase { - @doc("ARM resource ID of the job.") - jobId?: string; - - @doc("The path of the file/directory in the job output.") - path?: string; - - @doc("[Required] Specifies the type of asset reference.") - referenceType: "OutputPath"; -} - alias AssetBase = { @doc("Asset stage") @visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update) @@ -232,30 +65,6 @@ alias ResourceCreatedResponse = TypeSpec.Ht alias OkResponse = TypeSpec.Http.Response<200> & T; -alias AdditionalInferenceRequestHeaders = { - @doc(""" - Controls what happens if extra parameters, undefined by the REST API, - are passed in the JSON request payload. - This sets the HTTP request header `extra-parameters`. - """) - @header("extra-parameters") - extra_params?: ExtraParameters; -}; - -@doc("Controls what happens if extra parameters, undefined by the REST API, are passed in the JSON request payload.") -union ExtraParameters { - string, - - @doc("The service will error if it detected extra parameters in the request payload. This is the service default.") - error: "error", - - @doc("The service will ignore (drop) extra parameters in the request payload. It will only pass the known parameters to the back-end AI model.") - drop: "drop", - - @doc("The service will pass extra parameters to the back-end AI model.") - pass_through: "pass-through", -} - // Pending upload spec // Define a URI alias for clarity. diff --git a/specification/ai/Azure.AI.Projects/connections/models.tsp b/specification/ai/Azure.AI.Projects/connections/models.tsp index 2965a0018d47..862e8805e293 100644 --- a/specification/ai/Azure.AI.Projects/connections/models.tsp +++ b/specification/ai/Azure.AI.Projects/connections/models.tsp @@ -6,11 +6,13 @@ import "@typespec/openapi"; import "@typespec/versioning"; using TypeSpec.Rest; +using TypeSpec.Versioning; namespace Azure.AI.Projects; @doc("Response from the listSecrets operation") @resource("connections") +@added(Versions.v2025_05_01) model Connection { @doc("The name of the resource") @visibility(Lifecycle.Read) diff --git a/specification/ai/Azure.AI.Projects/connections/routes.tsp b/specification/ai/Azure.AI.Projects/connections/routes.tsp index 4fba2bfb3f23..788b79ad9a78 100644 --- a/specification/ai/Azure.AI.Projects/connections/routes.tsp +++ b/specification/ai/Azure.AI.Projects/connections/routes.tsp @@ -7,6 +7,7 @@ import "./models.tsp"; using TypeSpec.Http; using Azure.Core; using Azure.Core.Traits; +using TypeSpec.Versioning; namespace Azure.AI.Projects; @@ -16,6 +17,7 @@ alias ConnectionServiceTraits = SupportsClientRequestId & alias ConnectionOperations = Azure.Core.ResourceOperations; +@added(Versions.v2025_05_01) interface Connections { @doc("Get a connection by name.") get is ConnectionOperations.ResourceRead; diff --git a/specification/ai/Azure.AI.Projects/datasets/models.tsp b/specification/ai/Azure.AI.Projects/datasets/models.tsp index bbd2876b4360..e8f23ef6404f 100644 --- a/specification/ai/Azure.AI.Projects/datasets/models.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/models.tsp @@ -7,6 +7,8 @@ import "../main.tsp"; import "@typespec/openapi"; import "@typespec/versioning"; +using TypeSpec.Versioning; + namespace Azure.AI.Projects; @doc("Enum to determine the type of data.") @@ -24,6 +26,7 @@ union DatasetType { @doc("DatasetVersion Definition") @Rest.resource("datasets") @discriminator("type") +@added(Versions.v2025_05_01) model DatasetVersion { @doc("[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330") @visibility(Lifecycle.Read, Lifecycle.Create) @@ -42,6 +45,7 @@ model DatasetVersion { } @doc("FileDatasetVersion Definition") +@added(Versions.v2025_05_01) model FileDatasetVersion extends DatasetVersion { @doc("Dataset type") type: DatasetType.uri_file; @@ -51,6 +55,7 @@ model FileDatasetVersion extends DatasetVersion { } @doc("FileDatasetVersion Definition") +@added(Versions.v2025_05_01) model FolderDatasetVersion extends DatasetVersion { @doc("Dataset type") type: DatasetType.uri_folder; diff --git a/specification/ai/Azure.AI.Projects/datasets/routes.tsp b/specification/ai/Azure.AI.Projects/datasets/routes.tsp index 5722831d8609..f52bdf13a490 100644 --- a/specification/ai/Azure.AI.Projects/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/routes.tsp @@ -8,6 +8,7 @@ import "./models.tsp"; import "../servicepatterns.tsp"; using TypeSpec.Http; +using TypeSpec.Versioning; namespace Azure.AI.Projects; @@ -30,6 +31,7 @@ alias ListDatasetVersionsParameters = { }; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "We are using service specific operation templates" +@added(Versions.v2025_05_01) interface Datasets extends ServicePatterns.VersionedOperations< DatasetVersion, diff --git a/specification/ai/Azure.AI.Projects/deployments/models.tsp b/specification/ai/Azure.AI.Projects/deployments/models.tsp index c68150f424f4..2ae2d5923dba 100644 --- a/specification/ai/Azure.AI.Projects/deployments/models.tsp +++ b/specification/ai/Azure.AI.Projects/deployments/models.tsp @@ -7,12 +7,14 @@ import "../common/models.tsp"; import "@typespec/openapi"; using TypeSpec.Rest; +using TypeSpec.Versioning; namespace Azure.AI.Projects; @doc("Model Deployment Definition") @resource("deployments") @discriminator("type") +@added(Versions.v2025_05_01) model Deployment { @doc("The type of the deployment") type: DeploymentType; @@ -24,6 +26,7 @@ model Deployment { } @doc("Model Deployment Definition") +@added(Versions.v2025_05_01) model ModelDeployment extends Deployment { @doc("The type of the deployment") type: DeploymentType.ModelDeployment; @@ -54,6 +57,7 @@ model ModelDeployment extends Deployment { } @doc("Sku information") +@added(Versions.v2025_05_01) model Sku { @doc("Sku capacity") capacity: int64; @@ -71,6 +75,7 @@ model Sku { tier: string; } +@added(Versions.v2025_05_01) union DeploymentType { string, diff --git a/specification/ai/Azure.AI.Projects/deployments/routes.tsp b/specification/ai/Azure.AI.Projects/deployments/routes.tsp index 02eeca896129..23b3749e2dc1 100644 --- a/specification/ai/Azure.AI.Projects/deployments/routes.tsp +++ b/specification/ai/Azure.AI.Projects/deployments/routes.tsp @@ -7,6 +7,7 @@ import "./models.tsp"; using TypeSpec.Http; using Azure.Core; using Azure.Core.Traits; +using TypeSpec.Versioning; namespace Azure.AI.Projects; @@ -16,6 +17,7 @@ alias DeploymentServiceTraits = SupportsClientRequestId & alias DeploymentOperations = Azure.Core.ResourceOperations; +@added(Versions.v2025_05_01) interface Deployments { @doc("Get a deployed model.") get is DeploymentOperations.ResourceRead; diff --git a/specification/ai/Azure.AI.Projects/evaluation-results/models.tsp b/specification/ai/Azure.AI.Projects/evaluation-results/models.tsp index 1fd90b10ca87..b4a941c17048 100644 --- a/specification/ai/Azure.AI.Projects/evaluation-results/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluation-results/models.tsp @@ -16,6 +16,8 @@ namespace Azure.AI.Projects; @doc("Evaluation Result resource Definition") @Rest.resource("evaluationResults") +@added(Versions.v2025_05_15_preview) +@removed(Versions.v_latest) model EvaluationResult { @doc("Type of Evaluation result") ResultType?: ResultType; @@ -45,6 +47,8 @@ model EvaluationResult { } @doc("Type of Evaluation result") +@added(Versions.v2025_05_15_preview) +@removed(Versions.v_latest) union ResultType { string, diff --git a/specification/ai/Azure.AI.Projects/evaluation-results/routes.tsp b/specification/ai/Azure.AI.Projects/evaluation-results/routes.tsp index f20385bf34ff..d5a1cd0dd4ca 100644 --- a/specification/ai/Azure.AI.Projects/evaluation-results/routes.tsp +++ b/specification/ai/Azure.AI.Projects/evaluation-results/routes.tsp @@ -8,6 +8,7 @@ import "./models.tsp"; import "../servicepatterns.tsp"; using TypeSpec.Http; +using TypeSpec.Versioning; namespace Azure.AI.Projects; @@ -30,6 +31,8 @@ alias ListEvaluationResultsParameters = { }; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "We are using service specific operation templates" +@added(Versions.v2025_05_15_preview) +@removed(Versions.v_latest) interface EvaluationResults extends ServicePatterns.VersionedOperations< EvaluationResult, diff --git a/specification/ai/Azure.AI.Projects/evaluations/models.tsp b/specification/ai/Azure.AI.Projects/evaluations/models.tsp index d7810d061f9a..f7c56713cf69 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/models.tsp @@ -8,10 +8,13 @@ import "../main.tsp"; import "@typespec/openapi"; using TypeSpec.Rest; +using TypeSpec.Versioning; namespace Azure.AI.Projects; @doc("Evaluator Configuration") +@added(Versions.v2025_05_15_preview) +@removed(Versions.v_latest) model EvaluatorConfiguration { @doc("Identifier of the evaluator.") id: string; @@ -26,12 +29,16 @@ model EvaluatorConfiguration { #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" @doc("Abstract data class.") @discriminator("type") +@added(Versions.v2025_05_15_preview) +@removed(Versions.v_latest) model InputData { @doc("Type of the data") type: string; } @doc("Dataset as source for evaluation.") +@added(Versions.v2025_05_15_preview) +@removed(Versions.v_latest) model InputDataset extends InputData { type: "dataset"; @@ -41,6 +48,8 @@ model InputDataset extends InputData { @doc("Evaluation Definition") @resource("runs") +@added(Versions.v2025_05_15_preview) +@removed(Versions.v_latest) model Evaluation { @doc("Identifier of the evaluation.") @key("name") diff --git a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp index 5601d5378a96..f98fd2ca0774 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp @@ -7,6 +7,7 @@ import "./models.tsp"; using TypeSpec.Http; using Azure.Core; using Azure.Core.Traits; +using TypeSpec.Versioning; namespace Azure.AI.Projects; @@ -17,6 +18,8 @@ alias ServiceTraits = SupportsClientRequestId & alias EvaluationsOperations = Azure.Core.ResourceOperations; @route("evaluations") +@added(Versions.v2025_05_15_preview) +@removed(Versions.v_latest) interface Evaluations { @doc("Get an evaluation run by name.") get is EvaluationsOperations.ResourceRead; diff --git a/specification/ai/Azure.AI.Projects/indexes/models.tsp b/specification/ai/Azure.AI.Projects/indexes/models.tsp index 6a902439d105..ad27843bace9 100644 --- a/specification/ai/Azure.AI.Projects/indexes/models.tsp +++ b/specification/ai/Azure.AI.Projects/indexes/models.tsp @@ -5,11 +5,14 @@ import "@azure-tools/typespec-azure-core"; import "../common/models.tsp"; import "../main.tsp"; +using TypeSpec.Versioning; + namespace Azure.AI.Projects; @doc("Index resource Definition") @discriminator("type") @Rest.resource("indexes") +@added(Versions.v2025_05_01) model Index { @doc("Type of index") type: IndexType; @@ -18,6 +21,7 @@ model Index { } @doc("Azure AI Search Index Definition") +@added(Versions.v2025_05_01) model AzureAISearchIndex extends Index { @doc("Type of index") type: IndexType.azureSearch; @@ -30,6 +34,7 @@ model AzureAISearchIndex extends Index { } @doc("Managed Azure AI Search Index Definition") +@added(Versions.v2025_05_01) model ManagedAzureAISearchIndex extends Index { @doc("Type of index") type: IndexType.managedAzureSearch; @@ -39,6 +44,7 @@ model ManagedAzureAISearchIndex extends Index { } @doc("CosmosDB Vector Store Index Definition") +@added(Versions.v2025_05_01) model CosmosDBIndex extends Index { @doc("Type of index") type: IndexType.cosmosDB; @@ -57,6 +63,7 @@ model CosmosDBIndex extends Index { } @doc("Embedding configuration class") +@added(Versions.v2025_05_01) model EmbeddingConfiguration { @doc("Deployment name of embedding model. It can point to a model deployment either in the parent AIServices or a connection.") modelDeploymentName: string; @@ -65,6 +72,7 @@ model EmbeddingConfiguration { embeddingField: string; } +@added(Versions.v2025_05_01) union IndexType { string, diff --git a/specification/ai/Azure.AI.Projects/indexes/routes.tsp b/specification/ai/Azure.AI.Projects/indexes/routes.tsp index 1a320121d95d..af56cb0149e4 100644 --- a/specification/ai/Azure.AI.Projects/indexes/routes.tsp +++ b/specification/ai/Azure.AI.Projects/indexes/routes.tsp @@ -7,6 +7,7 @@ import "../servicepatterns.tsp"; import "../common/models.tsp"; using TypeSpec.Http; +using TypeSpec.Versioning; namespace Azure.AI.Projects; @@ -29,6 +30,7 @@ alias ListIndexVersionParameters = { }; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "We are using service specific operation templates" +@added(Versions.v2025_05_01) interface Indexes extends ServicePatterns.VersionedOperations< Index, diff --git a/specification/ai/Azure.AI.Projects/main.tsp b/specification/ai/Azure.AI.Projects/main.tsp index ccefc6bd51e1..8f3f5f61ce58 100644 --- a/specification/ai/Azure.AI.Projects/main.tsp +++ b/specification/ai/Azure.AI.Projects/main.tsp @@ -44,8 +44,16 @@ namespace Azure.AI { namespace Azure.AI.Projects { @doc("Azure AI Projects API versions") enum Versions { + @doc("Azure AI API version 2025-05-01.") + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + v2025_05_01: "2025-05-01", + @doc("Azure AI API version 2025-05-15-preview.") @useDependency(Azure.Core.Versions.v1_0_Preview_2) - `2025-05-15-preview`, + v2025_05_15_preview: "2025-05-15-preview", + + @doc("Azure AI API version latest.") + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + v_latest: "latest", } } diff --git a/specification/ai/Azure.AI.Projects/red-teams/models.tsp b/specification/ai/Azure.AI.Projects/red-teams/models.tsp index 19b57119aec0..bf39515a0857 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/models.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/models.tsp @@ -16,6 +16,8 @@ using Azure.Core.Traits; namespace Azure.AI.Projects; @doc("Strategies for attacks.") +@added(Versions.v2025_05_15_preview) +@removed(Versions.v_latest) union AttackStrategy { string, @@ -48,6 +50,8 @@ union AttackStrategy { } @doc("Risk category for the attack objective.") +@added(Versions.v2025_05_15_preview) +@removed(Versions.v_latest) union RiskCategory { string, @@ -75,6 +79,8 @@ union RiskCategory { @doc("Red team details.") @resource("runs") +@added(Versions.v2025_05_15_preview) +@removed(Versions.v_latest) model RedTeam { @doc("Identifier of the red team.") @key("name") diff --git a/specification/ai/Azure.AI.Projects/red-teams/routes.tsp b/specification/ai/Azure.AI.Projects/red-teams/routes.tsp index b3d9c62a3824..05ef37d2248b 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/routes.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/routes.tsp @@ -20,6 +20,8 @@ alias RedTeamServiceTraits = SupportsClientRequestId & alias RedTeamOperations = Azure.Core.ResourceOperations; @route("redTeams") +@added(Versions.v2025_05_15_preview) +@removed(Versions.v_latest) interface RedTeams { @doc("Get a redteam by name.") get is RedTeamOperations.ResourceRead; diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index 57e922a516c4..83f597609e04 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -2003,100 +2003,6 @@ } }, "definitions": { - "ApiResponseFormat": { - "type": "string", - "description": "Possible API response formats.", - "enum": [ - "text", - "json_object" - ], - "x-ms-enum": { - "name": "ApiResponseFormat", - "modelAsString": true, - "values": [ - { - "name": "text", - "value": "text", - "description": "`text` format should be used for requests involving any sort of ToolCall." - }, - { - "name": "jsonObject", - "value": "json_object", - "description": "Using `json_object` format will limit the usage of ToolCall to only functions." - } - ] - } - }, - "AssetReferenceBase": { - "type": "object", - "description": "Base definition for asset references.", - "properties": { - "referenceType": { - "$ref": "#/definitions/ReferenceType", - "description": "Asset reference type." - } - }, - "discriminator": "referenceType", - "required": [ - "referenceType" - ] - }, - "AssistantsApiResponseFormat": { - "type": "object", - "description": "An object describing the expected output of the model. If `json_object` only `function` type `tools` are allowed to be passed to the Run. If `text` the model can return text or any value needed.", - "properties": { - "type": { - "type": "string", - "description": "Must be one of `text` or `json_object`.", - "default": "text", - "enum": [ - "text", - "json_object" - ], - "x-ms-enum": { - "name": "ApiResponseFormat", - "modelAsString": true, - "values": [ - { - "name": "text", - "value": "text", - "description": "`text` format should be used for requests involving any sort of ToolCall." - }, - { - "name": "jsonObject", - "value": "json_object", - "description": "Using `json_object` format will limit the usage of ToolCall to only functions." - } - ] - } - } - } - }, - "AssistantsApiResponseFormatMode": { - "type": "string", - "description": "Represents the mode in which the model will handle the return format of a tool call.", - "enum": [ - "auto", - "none" - ], - "x-ms-enum": { - "name": "AssistantsApiResponseFormatMode", - "modelAsString": true, - "values": [ - { - "name": "auto", - "value": "auto", - "description": "Default value. Let the model handle the return format." - }, - { - "name": "none", - "value": "none", - "description": "Setting the value to `none`, will result in a 400 Bad request." - } - ] - } - }, - "AssistantsApiResponseFormatOption": {}, "AttackStrategy": { "type": "string", "description": "Strategies for attacks.", @@ -2442,26 +2348,6 @@ ], "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" }, - "DataPathAssetReference": { - "type": "object", - "description": "Reference to an asset via its path in a datastore.", - "properties": { - "datastoreId": { - "type": "string", - "description": "ARM resource ID of the datastore where the asset is located." - }, - "path": { - "type": "string", - "description": "The path of the file/directory in the datastore." - } - }, - "allOf": [ - { - "$ref": "#/definitions/AssetReferenceBase" - } - ], - "x-ms-discriminator-value": "DataPath" - }, "DatasetType": { "type": "string", "description": "Enum to determine the type of data.", @@ -2777,36 +2663,6 @@ "id" ] }, - "ExtraParameters": { - "type": "string", - "description": "Controls what happens if extra parameters, undefined by the REST API, are passed in the JSON request payload.", - "enum": [ - "error", - "drop", - "pass-through" - ], - "x-ms-enum": { - "name": "ExtraParameters", - "modelAsString": true, - "values": [ - { - "name": "error", - "value": "error", - "description": "The service will error if it detected extra parameters in the request payload. This is the service default." - }, - { - "name": "drop", - "value": "drop", - "description": "The service will ignore (drop) extra parameters in the request payload. It will only pass the known parameters to the back-end AI model." - }, - { - "name": "pass_through", - "value": "pass-through", - "description": "The service will pass extra parameters to the back-end AI model." - } - ] - } - }, "FileDatasetVersion": { "type": "object", "description": "FileDatasetVersion Definition", @@ -2836,27 +2692,6 @@ ], "x-ms-discriminator-value": "uri_folder" }, - "IdAssetReference": { - "type": "object", - "description": "Reference to an asset via its ARM resource ID.", - "properties": { - "assetId": { - "type": "string", - "description": "[Required] ARM resource ID of the asset.", - "minLength": 1, - "pattern": "[a-zA-Z0-9_]" - } - }, - "required": [ - "assetId" - ], - "allOf": [ - { - "$ref": "#/definitions/AssetReferenceBase" - } - ], - "x-ms-discriminator-value": "Id" - }, "Index": { "type": "object", "description": "Index resource Definition", @@ -3043,30 +2878,6 @@ ], "x-ms-discriminator-value": "ManagedAzureSearch" }, - "MessageRole": { - "type": "string", - "description": "The possible values for roles attributed to messages in a thread.", - "enum": [ - "user", - "assistant" - ], - "x-ms-enum": { - "name": "MessageRole", - "modelAsString": true, - "values": [ - { - "name": "user", - "value": "user", - "description": "The role representing the end-user." - }, - { - "name": "assistant", - "value": "assistant", - "description": "The role representing the assistant." - } - ] - } - }, "ModelDeployment": { "type": "object", "description": "Model Deployment Definition", @@ -3119,26 +2930,6 @@ ], "x-ms-discriminator-value": "ModelDeployment" }, - "OutputPathAssetReference": { - "type": "object", - "description": "Reference to an asset via its path in a job output.", - "properties": { - "jobId": { - "type": "string", - "description": "ARM resource ID of the job." - }, - "path": { - "type": "string", - "description": "The path of the file/directory in the job output." - } - }, - "allOf": [ - { - "$ref": "#/definitions/AssetReferenceBase" - } - ], - "x-ms-discriminator-value": "OutputPath" - }, "PagedConnection": { "type": "object", "description": "Paged collection of Connection items", @@ -3468,36 +3259,6 @@ "riskCategories" ] }, - "ReferenceType": { - "type": "string", - "description": "Enum to determine which reference method to use for an asset.", - "enum": [ - "Id", - "DataPath", - "OutputPath" - ], - "x-ms-enum": { - "name": "ReferenceType", - "modelAsString": true, - "values": [ - { - "name": "Id", - "value": "Id", - "description": "Id" - }, - { - "name": "DataPath", - "value": "DataPath", - "description": "DataPath" - }, - { - "name": "OutputPath", - "value": "OutputPath", - "description": "OutputPath" - } - ] - } - }, "ResultType": { "type": "string", "description": "Type of Evaluation result", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json new file mode 100644 index 000000000000..2bb9db995e10 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json @@ -0,0 +1,2234 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure AI", + "version": "2025-05-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": "Project endpoint in the form of: https://.services.ai.azure.com/api/projects/", + "required": true, + "type": "string", + "format": "uri", + "x-ms-skip-url-encoding": true + } + ] + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "OAuth2Auth": [ + "https://cognitiveservices.azure.com/.default" + ] + } + ], + "securityDefinitions": { + "OAuth2Auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", + "scopes": { + "https://cognitiveservices.azure.com/.default": "" + } + } + }, + "tags": [], + "paths": { + "/connections": { + "get": { + "operationId": "Connections_List", + "description": "List all connections in the project", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "connectionType", + "in": "query", + "description": "Specific type of connection to return in list", + "required": false, + "type": "string", + "enum": [ + "AzureOpenAI", + "AzureBlob", + "CognitiveSearch", + "CosmosDB", + "ApiKey", + "AppInsights", + "CustomKeys" + ], + "x-ms-enum": { + "name": "ConnectionType", + "modelAsString": true, + "values": [ + { + "name": "AzureOpenAI", + "value": "AzureOpenAI", + "description": "Azure OpenAI Service" + }, + { + "name": "AzureBlobStorage", + "value": "AzureBlob", + "description": "Azure Blob Storage" + }, + { + "name": "AzureAISearch", + "value": "CognitiveSearch", + "description": "Azure AI Search" + }, + { + "name": "CosmosDB", + "value": "CosmosDB", + "description": "CosmosDB" + }, + { + "name": "APIKey", + "value": "ApiKey", + "description": "Generic connection that uses API Key authentication" + }, + { + "name": "ApplicationInsights", + "value": "AppInsights", + "description": "Application Insights" + }, + { + "name": "Custom", + "value": "CustomKeys", + "description": "Custom Keys" + } + ] + } + }, + { + "$ref": "#/parameters/Azure.Core.TopQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.SkipQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedConnection" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/connections/{name}": { + "get": { + "operationId": "Connections_Get", + "description": "Get a connection by name.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Connection" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/datasets": { + "get": { + "operationId": "Datasets_ListLatest", + "description": "List the latest version of each DatasetVersion", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "top", + "in": "query", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "skip", + "in": "query", + "description": "Continuation token for pagination.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", + "required": false, + "type": "string" + }, + { + "name": "listViewType", + "in": "query", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedDatasetVersion" + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/datasets/{name}/startPendingUpload": { + "post": { + "operationId": "Datasets_StartPendingUpload", + "description": "Create or start a pending upload of a dataset. The version id will be generated by the service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "Parameters for the action", + "required": true, + "schema": { + "$ref": "#/definitions/PendingUploadRequest" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PendingUploadResponse" + } + }, + "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." + } + } + } + } + } + }, + "/datasets/{name}/versions": { + "get": { + "operationId": "Datasets_ListVersions", + "description": "List all versions of the given DatasetVersion", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "top", + "in": "query", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "skip", + "in": "query", + "description": "Continuation token for pagination.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", + "required": false, + "type": "string" + }, + { + "name": "listViewType", + "in": "query", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedDatasetVersion" + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + }, + "post": { + "operationId": "Datasets_Create", + "description": "Create a new DatasetVersion. The version id will be generated by the service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the DatasetVersion to create", + "required": true, + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + }, + "headers": { + "Repeatability-Result": { + "type": "string", + "description": "Indicates whether the repeatable request was accepted or rejected.", + "enum": [ + "accepted", + "rejected" + ], + "x-ms-enum": { + "name": "RepeatabilityResult", + "modelAsString": false, + "values": [ + { + "name": "accepted", + "value": "accepted", + "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." + }, + { + "name": "rejected", + "value": "rejected", + "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/datasets/{name}/versions/{version}": { + "get": { + "operationId": "Datasets_GetVersion", + "description": "Get the specific version of the DatasetVersion", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the DatasetVersion to retrieve.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + }, + "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." + } + } + } + } + }, + "put": { + "operationId": "Datasets_CreateVersion", + "description": "Create a new or replace an existing DatasetVersion with the given version id", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the DatasetVersion to create or replace.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the DatasetVersion to create", + "required": true, + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + }, + "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." + } + } + } + } + }, + "delete": { + "operationId": "Datasets_DeleteVersion", + "description": "Delete the specific version of the DatasetVersion", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The version of the DatasetVersion to delete.", + "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." + } + } + } + } + } + }, + "/datasets/{name}/versions/{version}/startPendingUploadVersion": { + "post": { + "operationId": "Datasets_StartPendingUploadVersion", + "description": "Create or start a pending upload of a dataset for a specific version.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the DatasetVersion to operate on.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "Parameters for the action", + "required": true, + "schema": { + "$ref": "#/definitions/PendingUploadRequest" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PendingUploadResponse" + } + }, + "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." + } + } + } + } + } + }, + "/deployments": { + "get": { + "operationId": "Deployments_List", + "description": "List all deployed models in the project", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "modelPublisher", + "in": "query", + "description": "Model publisher to filter models by", + "required": false, + "type": "string" + }, + { + "name": "modelName", + "in": "query", + "description": "Model name (the publisher specific name) to filter models by", + "required": false, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.TopQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.SkipQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedDeployment" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deployments/{name}": { + "get": { + "operationId": "Deployments_Get", + "description": "Get a deployed model.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "Name of the deployment", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Deployment" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/indexes": { + "get": { + "operationId": "Indexes_ListLatest", + "description": "List the latest version of each Index", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "top", + "in": "query", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "skip", + "in": "query", + "description": "Continuation token for pagination.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", + "required": false, + "type": "string" + }, + { + "name": "listViewType", + "in": "query", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedIndex" + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/indexes/{name}/versions": { + "get": { + "operationId": "Indexes_ListVersions", + "description": "List all versions of the given Index", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "top", + "in": "query", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "skip", + "in": "query", + "description": "Continuation token for pagination.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", + "required": false, + "type": "string" + }, + { + "name": "listViewType", + "in": "query", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedIndex" + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + }, + "post": { + "operationId": "Indexes_Create", + "description": "Create a new Index. The version id will be generated by the service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the Index to create", + "required": true, + "schema": { + "$ref": "#/definitions/Index" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Index" + }, + "headers": { + "Repeatability-Result": { + "type": "string", + "description": "Indicates whether the repeatable request was accepted or rejected.", + "enum": [ + "accepted", + "rejected" + ], + "x-ms-enum": { + "name": "RepeatabilityResult", + "modelAsString": false, + "values": [ + { + "name": "accepted", + "value": "accepted", + "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." + }, + { + "name": "rejected", + "value": "rejected", + "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/indexes/{name}/versions/{version}": { + "get": { + "operationId": "Indexes_GetVersion", + "description": "Get the specific version of the Index", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the Index to retrieve.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "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." + } + } + } + } + }, + "put": { + "operationId": "Indexes_CreateVersion", + "description": "Create a new or replace an existing Index with the given version id", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the Index to create or replace.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the Index to create", + "required": true, + "schema": { + "$ref": "#/definitions/Index" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "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." + } + } + } + } + }, + "delete": { + "operationId": "Indexes_DeleteVersion", + "description": "Delete the specific version of the Index", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The version of the Index to delete.", + "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." + } + } + } + } + } + } + }, + "definitions": { + "AuthenticationType": { + "type": "string", + "description": "The authentication type used by the connection", + "enum": [ + "ApiKey", + "AAD", + "SAS", + "CustomKeys", + "None" + ], + "x-ms-enum": { + "name": "AuthenticationType", + "modelAsString": true, + "values": [ + { + "name": "apiKey", + "value": "ApiKey", + "description": "API Key authentication" + }, + { + "name": "entraId", + "value": "AAD", + "description": "Entra ID authentication (formerly known as AAD)" + }, + { + "name": "SAS", + "value": "SAS", + "description": "Shared Access Signature (SAS) authentication" + }, + { + "name": "custom", + "value": "CustomKeys", + "description": "Custom authentication" + }, + { + "name": "None", + "value": "None", + "description": "No authentication" + } + ] + } + }, + "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" + }, + "x-ms-identifiers": [] + }, + "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 Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", + "properties": { + "code": { + "type": "string", + "description": "One of a server-defined set of error codes." + }, + "innererror": { + "$ref": "#/definitions/Azure.Core.Foundations.InnerError", + "description": "Inner error." + } + } + }, + "AzureAISearchIndex": { + "type": "object", + "description": "Azure AI Search Index Definition", + "properties": { + "connectionName": { + "type": "string", + "description": "Name of connection to Azure AI Search" + }, + "indexName": { + "type": "string", + "description": "Name of index in Azure AI Search resource to attach" + } + }, + "required": [ + "connectionName", + "indexName" + ], + "allOf": [ + { + "$ref": "#/definitions/Index" + } + ], + "x-ms-discriminator-value": "AzureSearch" + }, + "BlobReferenceForConsumption": { + "type": "object", + "description": "Represents a reference to a blob for consumption", + "properties": { + "blobUri": { + "type": "string", + "description": "Blob URI path for client to upload data. Example: https://blob.windows.core.net/Container/Path" + }, + "storageAccountArmId": { + "type": "string", + "description": "ARM ID of the storage account to use." + }, + "credential": { + "$ref": "#/definitions/SasCredential", + "description": "Credential info to access the storage account." + } + }, + "required": [ + "blobUri", + "storageAccountArmId", + "credential" + ] + }, + "Connection": { + "type": "object", + "description": "Response from the listSecrets operation", + "properties": { + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/ConnectionType", + "description": "Category of the connection", + "readOnly": true + }, + "target": { + "type": "string", + "description": "The connection URL to be used for this service", + "readOnly": true + }, + "authType": { + "$ref": "#/definitions/AuthenticationType", + "description": "The authentication type used by the connection", + "readOnly": true + }, + "metadata": { + "type": "object", + "description": "Metadata of the connection", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + } + }, + "required": [ + "name", + "type", + "target", + "authType", + "metadata" + ] + }, + "ConnectionType": { + "type": "string", + "description": "The Type (or category) of the connection", + "enum": [ + "AzureOpenAI", + "AzureBlob", + "CognitiveSearch", + "CosmosDB", + "ApiKey", + "AppInsights", + "CustomKeys" + ], + "x-ms-enum": { + "name": "ConnectionType", + "modelAsString": true, + "values": [ + { + "name": "AzureOpenAI", + "value": "AzureOpenAI", + "description": "Azure OpenAI Service" + }, + { + "name": "AzureBlobStorage", + "value": "AzureBlob", + "description": "Azure Blob Storage" + }, + { + "name": "AzureAISearch", + "value": "CognitiveSearch", + "description": "Azure AI Search" + }, + { + "name": "CosmosDB", + "value": "CosmosDB", + "description": "CosmosDB" + }, + { + "name": "APIKey", + "value": "ApiKey", + "description": "Generic connection that uses API Key authentication" + }, + { + "name": "ApplicationInsights", + "value": "AppInsights", + "description": "Application Insights" + }, + { + "name": "Custom", + "value": "CustomKeys", + "description": "Custom Keys" + } + ] + } + }, + "CosmosDBIndex": { + "type": "object", + "description": "CosmosDB Vector Store Index Definition", + "properties": { + "connectionName": { + "type": "string", + "description": "Name of connection to CosmosDB" + }, + "databaseName": { + "type": "string", + "description": "Name of the CosmosDB Database" + }, + "containerName": { + "type": "string", + "description": "Name of CosmosDB Container" + }, + "embeddingConfiguration": { + "$ref": "#/definitions/EmbeddingConfiguration", + "description": "Embedding model configuration" + } + }, + "required": [ + "connectionName", + "databaseName", + "containerName", + "embeddingConfiguration" + ], + "allOf": [ + { + "$ref": "#/definitions/Index" + } + ], + "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" + }, + "DatasetType": { + "type": "string", + "description": "Enum to determine the type of data.", + "enum": [ + "uri_file", + "uri_folder" + ], + "x-ms-enum": { + "name": "DatasetType", + "modelAsString": true, + "values": [ + { + "name": "uri_file", + "value": "uri_file", + "description": "URI file." + }, + { + "name": "uri_folder", + "value": "uri_folder", + "description": "URI folder." + } + ] + } + }, + "DatasetVersion": { + "type": "object", + "description": "DatasetVersion Definition", + "properties": { + "datasetUri": { + "type": "string", + "description": "[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330", + "minLength": 1, + "pattern": "[a-zA-Z0-9_]", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "type": { + "$ref": "#/definitions/DatasetType", + "description": "Dataset type" + }, + "isReference": { + "type": "boolean", + "description": "Indicates if dataset is reference only or managed by dataset service. If true, the underlying data will be deleted when the dataset version is deleted", + "readOnly": true + }, + "stage": { + "type": "string", + "description": "Asset stage", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "id": { + "type": "string", + "description": "A unique identifier for the asset, assetId probably?", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "version": { + "type": "string", + "description": "The version of the resource", + "readOnly": true + }, + "description": { + "type": "string", + "description": "The asset description text." + }, + "tags": { + "type": "object", + "description": "Tag dictionary. Tags can be added, removed, and updated.", + "additionalProperties": { + "type": "string" + } + } + }, + "discriminator": "type", + "required": [ + "datasetUri", + "type", + "name", + "version" + ] + }, + "Deployment": { + "type": "object", + "description": "Model Deployment Definition", + "properties": { + "type": { + "$ref": "#/definitions/DeploymentType", + "description": "The type of the deployment" + }, + "name": { + "type": "string", + "description": "Name of the deployment", + "readOnly": true + } + }, + "discriminator": "type", + "required": [ + "type", + "name" + ] + }, + "DeploymentType": { + "type": "string", + "enum": [ + "ModelDeployment" + ], + "x-ms-enum": { + "name": "DeploymentType", + "modelAsString": true, + "values": [ + { + "name": "ModelDeployment", + "value": "ModelDeployment", + "description": "Model deployment" + } + ] + } + }, + "EmbeddingConfiguration": { + "type": "object", + "description": "Embedding configuration class", + "properties": { + "modelDeploymentName": { + "type": "string", + "description": "Deployment name of embedding model. It can point to a model deployment either in the parent AIServices or a connection." + }, + "embeddingField": { + "type": "string", + "description": "Embedding field" + } + }, + "required": [ + "modelDeploymentName", + "embeddingField" + ] + }, + "FileDatasetVersion": { + "type": "object", + "description": "FileDatasetVersion Definition", + "properties": { + "openAIPurpose": { + "type": "string", + "description": "Indicates OpenAI Purpose. FileDatasets created with this field will be compatible with OpenAI-specific features" + } + }, + "required": [ + "openAIPurpose" + ], + "allOf": [ + { + "$ref": "#/definitions/DatasetVersion" + } + ], + "x-ms-discriminator-value": "uri_file" + }, + "FolderDatasetVersion": { + "type": "object", + "description": "FileDatasetVersion Definition", + "allOf": [ + { + "$ref": "#/definitions/DatasetVersion" + } + ], + "x-ms-discriminator-value": "uri_folder" + }, + "Index": { + "type": "object", + "description": "Index resource Definition", + "properties": { + "type": { + "$ref": "#/definitions/IndexType", + "description": "Type of index" + }, + "stage": { + "type": "string", + "description": "Asset stage", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "id": { + "type": "string", + "description": "A unique identifier for the asset, assetId probably?", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "version": { + "type": "string", + "description": "The version of the resource", + "readOnly": true + }, + "description": { + "type": "string", + "description": "The asset description text." + }, + "tags": { + "type": "object", + "description": "Tag dictionary. Tags can be added, removed, and updated.", + "additionalProperties": { + "type": "string" + } + } + }, + "discriminator": "type", + "required": [ + "type", + "name", + "version" + ] + }, + "IndexType": { + "type": "string", + "enum": [ + "AzureSearch", + "CosmosDBNoSqlVectorStore", + "ManagedAzureSearch" + ], + "x-ms-enum": { + "name": "IndexType", + "modelAsString": true, + "values": [ + { + "name": "azureSearch", + "value": "AzureSearch", + "description": "Azure search" + }, + { + "name": "cosmosDB", + "value": "CosmosDBNoSqlVectorStore", + "description": "CosmosDB" + }, + { + "name": "managedAzureSearch", + "value": "ManagedAzureSearch", + "description": "Managed Azure Search" + } + ] + } + }, + "ListSortOrder": { + "type": "string", + "description": "The available sorting options when requesting a list of response objects.", + "enum": [ + "asc", + "desc" + ], + "x-ms-enum": { + "name": "ListSortOrder", + "modelAsString": true, + "values": [ + { + "name": "ascending", + "value": "asc", + "description": "Specifies an ascending sort order." + }, + { + "name": "descending", + "value": "desc", + "description": "Specifies a descending sort order." + } + ] + } + }, + "ListViewType": { + "type": "string", + "description": "List View Type Definition", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + }, + "ManagedAzureAISearchIndex": { + "type": "object", + "description": "Managed Azure AI Search Index Definition", + "properties": { + "vectorStoreId": { + "type": "string", + "description": "Vector store id of managed index" + } + }, + "required": [ + "vectorStoreId" + ], + "allOf": [ + { + "$ref": "#/definitions/Index" + } + ], + "x-ms-discriminator-value": "ManagedAzureSearch" + }, + "ModelDeployment": { + "type": "object", + "description": "Model Deployment Definition", + "properties": { + "modelName": { + "type": "string", + "description": "Publisher-specific name of the deployed model", + "readOnly": true + }, + "modelVersion": { + "type": "string", + "description": "Publisher-specific version of the deployed model", + "readOnly": true + }, + "modelPublisher": { + "type": "string", + "description": "Name of the deployed model's publisher", + "readOnly": true + }, + "capabilities": { + "type": "object", + "description": "Capabilities of deployed model", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + }, + "sku": { + "$ref": "#/definitions/Sku", + "description": "Sku of the model deployment", + "readOnly": true + }, + "connectionName": { + "type": "string", + "description": "Name of the connection the deployment comes from", + "readOnly": true + } + }, + "required": [ + "modelName", + "modelVersion", + "modelPublisher", + "capabilities", + "sku" + ], + "allOf": [ + { + "$ref": "#/definitions/Deployment" + } + ], + "x-ms-discriminator-value": "ModelDeployment" + }, + "PagedConnection": { + "type": "object", + "description": "Paged collection of Connection items", + "properties": { + "value": { + "type": "array", + "description": "The Connection items on this page", + "items": { + "$ref": "#/definitions/Connection" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PagedDatasetVersion": { + "type": "object", + "description": "Paged collection of DatasetVersion items", + "properties": { + "value": { + "type": "array", + "description": "The DatasetVersion items on this page", + "items": { + "$ref": "#/definitions/DatasetVersion" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PagedDeployment": { + "type": "object", + "description": "Paged collection of Deployment items", + "properties": { + "value": { + "type": "array", + "description": "The Deployment items on this page", + "items": { + "$ref": "#/definitions/Deployment" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PagedIndex": { + "type": "object", + "description": "Paged collection of Index items", + "properties": { + "value": { + "type": "array", + "description": "The Index items on this page", + "items": { + "$ref": "#/definitions/Index" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PendingUploadCredentialType": { + "type": "string", + "description": "The type of credential used to access the storage account.", + "enum": [ + "SAS" + ], + "x-ms-enum": { + "name": "PendingUploadCredentialType", + "modelAsString": true, + "values": [ + { + "name": "sas", + "value": "SAS", + "description": "SAS credential type." + } + ] + } + }, + "PendingUploadRequest": { + "type": "object", + "description": "Represents a request for a pending upload.", + "properties": { + "pendingUploadId": { + "type": "string", + "description": "If PendingUploadId is not provided, a random GUID will be used." + }, + "connectionName": { + "type": "string", + "description": "Name of Azure blob storage connection to use for generating temporary SAS token" + }, + "pendingUploadType": { + "type": "string", + "description": "TemporaryBlobReference is the only supported type.", + "enum": [ + "TemporaryBlobReference" + ], + "x-ms-enum": { + "modelAsString": false + } + } + }, + "required": [ + "pendingUploadType" + ] + }, + "PendingUploadResponse": { + "type": "object", + "description": "Represents the response for a pending upload request", + "properties": { + "blobReferenceForConsumption": { + "$ref": "#/definitions/BlobReferenceForConsumption", + "description": "Container-level read, write, list SAS." + }, + "pendingUploadId": { + "type": "string", + "description": "ID for this upload request." + }, + "datasetVersion": { + "type": "string", + "description": "Version of dataset to be created if user did not specify version when initially creating upload" + }, + "pendingUploadType": { + "type": "string", + "description": "TemporaryBlobReference is the only supported type", + "enum": [ + "TemporaryBlobReference" + ], + "x-ms-enum": { + "modelAsString": false + } + } + }, + "required": [ + "blobReferenceForConsumption", + "pendingUploadId", + "pendingUploadType" + ] + }, + "PendingUploadType": { + "type": "string", + "description": "The type of pending upload.", + "enum": [ + "None", + "TemporaryBlobReference" + ], + "x-ms-enum": { + "name": "PendingUploadType", + "modelAsString": true, + "values": [ + { + "name": "none", + "value": "None", + "description": "No pending upload." + }, + { + "name": "temporaryBlobReference", + "value": "TemporaryBlobReference", + "description": "Temporary Blob Reference is the only supported type." + } + ] + } + }, + "SasCredential": { + "type": "object", + "description": "SAS Credential definition", + "properties": { + "sasUri": { + "type": "string", + "description": "SAS uri", + "readOnly": true + }, + "type": { + "type": "string", + "description": "Type of credential", + "enum": [ + "SAS" + ], + "x-ms-enum": { + "modelAsString": false + }, + "readOnly": true + } + }, + "required": [ + "sasUri", + "type" + ] + }, + "Sku": { + "type": "object", + "description": "Sku information", + "properties": { + "capacity": { + "type": "integer", + "format": "int64", + "description": "Sku capacity" + }, + "family": { + "type": "string", + "description": "Sku family" + }, + "name": { + "type": "string", + "description": "Sku name" + }, + "size": { + "type": "string", + "description": "Sku size" + }, + "tier": { + "type": "string", + "description": "Sku tier" + } + }, + "required": [ + "capacity", + "family", + "name", + "size", + "tier" + ] + } + }, + "parameters": { + "Azure.Core.ClientRequestIdHeader": { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "method", + "x-ms-client-name": "clientRequestId" + }, + "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" + }, + "Azure.Core.MaxPageSizeQueryParameter": { + "name": "maxpagesize", + "in": "query", + "description": "The maximum number of result items per page.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-parameter-location": "method" + }, + "Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent": { + "name": "Repeatability-First-Sent", + "in": "header", + "description": "Specifies the date and time at which the request was first created.", + "required": false, + "type": "string", + "format": "date-time", + "x-ms-parameter-location": "method", + "x-ms-client-name": "repeatabilityFirstSent" + }, + "Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId": { + "name": "Repeatability-Request-ID", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "repeatabilityRequestId" + }, + "Azure.Core.SkipQueryParameter": { + "name": "skip", + "in": "query", + "description": "The number of result items to skip.", + "required": false, + "type": "integer", + "format": "int32", + "default": 0, + "x-ms-parameter-location": "method" + }, + "Azure.Core.TopQueryParameter": { + "name": "top", + "in": "query", + "description": "The number of result items to return.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json new file mode 100644 index 000000000000..5721cbb51e01 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json @@ -0,0 +1,2234 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure AI", + "version": "latest", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "x-ms-parameterized-host": { + "hostTemplate": "{endpoint}", + "useSchemePrefix": false, + "parameters": [ + { + "name": "endpoint", + "in": "path", + "description": "Project endpoint in the form of: https://.services.ai.azure.com/api/projects/", + "required": true, + "type": "string", + "format": "uri", + "x-ms-skip-url-encoding": true + } + ] + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "OAuth2Auth": [ + "https://cognitiveservices.azure.com/.default" + ] + } + ], + "securityDefinitions": { + "OAuth2Auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", + "scopes": { + "https://cognitiveservices.azure.com/.default": "" + } + } + }, + "tags": [], + "paths": { + "/connections": { + "get": { + "operationId": "Connections_List", + "description": "List all connections in the project", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "connectionType", + "in": "query", + "description": "Specific type of connection to return in list", + "required": false, + "type": "string", + "enum": [ + "AzureOpenAI", + "AzureBlob", + "CognitiveSearch", + "CosmosDB", + "ApiKey", + "AppInsights", + "CustomKeys" + ], + "x-ms-enum": { + "name": "ConnectionType", + "modelAsString": true, + "values": [ + { + "name": "AzureOpenAI", + "value": "AzureOpenAI", + "description": "Azure OpenAI Service" + }, + { + "name": "AzureBlobStorage", + "value": "AzureBlob", + "description": "Azure Blob Storage" + }, + { + "name": "AzureAISearch", + "value": "CognitiveSearch", + "description": "Azure AI Search" + }, + { + "name": "CosmosDB", + "value": "CosmosDB", + "description": "CosmosDB" + }, + { + "name": "APIKey", + "value": "ApiKey", + "description": "Generic connection that uses API Key authentication" + }, + { + "name": "ApplicationInsights", + "value": "AppInsights", + "description": "Application Insights" + }, + { + "name": "Custom", + "value": "CustomKeys", + "description": "Custom Keys" + } + ] + } + }, + { + "$ref": "#/parameters/Azure.Core.TopQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.SkipQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedConnection" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/connections/{name}": { + "get": { + "operationId": "Connections_Get", + "description": "Get a connection by name.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Connection" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/datasets": { + "get": { + "operationId": "Datasets_ListLatest", + "description": "List the latest version of each DatasetVersion", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "top", + "in": "query", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "skip", + "in": "query", + "description": "Continuation token for pagination.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", + "required": false, + "type": "string" + }, + { + "name": "listViewType", + "in": "query", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedDatasetVersion" + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/datasets/{name}/startPendingUpload": { + "post": { + "operationId": "Datasets_StartPendingUpload", + "description": "Create or start a pending upload of a dataset. The version id will be generated by the service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "Parameters for the action", + "required": true, + "schema": { + "$ref": "#/definitions/PendingUploadRequest" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PendingUploadResponse" + } + }, + "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." + } + } + } + } + } + }, + "/datasets/{name}/versions": { + "get": { + "operationId": "Datasets_ListVersions", + "description": "List all versions of the given DatasetVersion", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "top", + "in": "query", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "skip", + "in": "query", + "description": "Continuation token for pagination.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", + "required": false, + "type": "string" + }, + { + "name": "listViewType", + "in": "query", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedDatasetVersion" + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + }, + "post": { + "operationId": "Datasets_Create", + "description": "Create a new DatasetVersion. The version id will be generated by the service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the DatasetVersion to create", + "required": true, + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + }, + "headers": { + "Repeatability-Result": { + "type": "string", + "description": "Indicates whether the repeatable request was accepted or rejected.", + "enum": [ + "accepted", + "rejected" + ], + "x-ms-enum": { + "name": "RepeatabilityResult", + "modelAsString": false, + "values": [ + { + "name": "accepted", + "value": "accepted", + "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." + }, + { + "name": "rejected", + "value": "rejected", + "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/datasets/{name}/versions/{version}": { + "get": { + "operationId": "Datasets_GetVersion", + "description": "Get the specific version of the DatasetVersion", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the DatasetVersion to retrieve.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + }, + "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." + } + } + } + } + }, + "put": { + "operationId": "Datasets_CreateVersion", + "description": "Create a new or replace an existing DatasetVersion with the given version id", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the DatasetVersion to create or replace.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the DatasetVersion to create", + "required": true, + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + }, + "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." + } + } + } + } + }, + "delete": { + "operationId": "Datasets_DeleteVersion", + "description": "Delete the specific version of the DatasetVersion", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The version of the DatasetVersion to delete.", + "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." + } + } + } + } + } + }, + "/datasets/{name}/versions/{version}/startPendingUploadVersion": { + "post": { + "operationId": "Datasets_StartPendingUploadVersion", + "description": "Create or start a pending upload of a dataset for a specific version.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the DatasetVersion to operate on.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "Parameters for the action", + "required": true, + "schema": { + "$ref": "#/definitions/PendingUploadRequest" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PendingUploadResponse" + } + }, + "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." + } + } + } + } + } + }, + "/deployments": { + "get": { + "operationId": "Deployments_List", + "description": "List all deployed models in the project", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "modelPublisher", + "in": "query", + "description": "Model publisher to filter models by", + "required": false, + "type": "string" + }, + { + "name": "modelName", + "in": "query", + "description": "Model name (the publisher specific name) to filter models by", + "required": false, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.TopQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.SkipQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedDeployment" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/deployments/{name}": { + "get": { + "operationId": "Deployments_Get", + "description": "Get a deployed model.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "Name of the deployment", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Deployment" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/indexes": { + "get": { + "operationId": "Indexes_ListLatest", + "description": "List the latest version of each Index", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "top", + "in": "query", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "skip", + "in": "query", + "description": "Continuation token for pagination.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", + "required": false, + "type": "string" + }, + { + "name": "listViewType", + "in": "query", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedIndex" + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/indexes/{name}/versions": { + "get": { + "operationId": "Indexes_ListVersions", + "description": "List all versions of the given Index", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "top", + "in": "query", + "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "skip", + "in": "query", + "description": "Continuation token for pagination.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", + "required": false, + "type": "string" + }, + { + "name": "listViewType", + "in": "query", + "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", + "required": false, + "type": "string", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedIndex" + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + }, + "post": { + "operationId": "Indexes_Create", + "description": "Create a new Index. The version id will be generated by the service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" + }, + { + "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the Index to create", + "required": true, + "schema": { + "$ref": "#/definitions/Index" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Index" + }, + "headers": { + "Repeatability-Result": { + "type": "string", + "description": "Indicates whether the repeatable request was accepted or rejected.", + "enum": [ + "accepted", + "rejected" + ], + "x-ms-enum": { + "name": "RepeatabilityResult", + "modelAsString": false, + "values": [ + { + "name": "accepted", + "value": "accepted", + "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." + }, + { + "name": "rejected", + "value": "rejected", + "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/indexes/{name}/versions/{version}": { + "get": { + "operationId": "Indexes_GetVersion", + "description": "Get the specific version of the Index", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the Index to retrieve.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "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." + } + } + } + } + }, + "put": { + "operationId": "Indexes_CreateVersion", + "description": "Create a new or replace an existing Index with the given version id", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the Index to create or replace.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the Index to create", + "required": true, + "schema": { + "$ref": "#/definitions/Index" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "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." + } + } + } + } + }, + "delete": { + "operationId": "Indexes_DeleteVersion", + "description": "Delete the specific version of the Index", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The version of the Index to delete.", + "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." + } + } + } + } + } + } + }, + "definitions": { + "AuthenticationType": { + "type": "string", + "description": "The authentication type used by the connection", + "enum": [ + "ApiKey", + "AAD", + "SAS", + "CustomKeys", + "None" + ], + "x-ms-enum": { + "name": "AuthenticationType", + "modelAsString": true, + "values": [ + { + "name": "apiKey", + "value": "ApiKey", + "description": "API Key authentication" + }, + { + "name": "entraId", + "value": "AAD", + "description": "Entra ID authentication (formerly known as AAD)" + }, + { + "name": "SAS", + "value": "SAS", + "description": "Shared Access Signature (SAS) authentication" + }, + { + "name": "custom", + "value": "CustomKeys", + "description": "Custom authentication" + }, + { + "name": "None", + "value": "None", + "description": "No authentication" + } + ] + } + }, + "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" + }, + "x-ms-identifiers": [] + }, + "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 Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", + "properties": { + "code": { + "type": "string", + "description": "One of a server-defined set of error codes." + }, + "innererror": { + "$ref": "#/definitions/Azure.Core.Foundations.InnerError", + "description": "Inner error." + } + } + }, + "AzureAISearchIndex": { + "type": "object", + "description": "Azure AI Search Index Definition", + "properties": { + "connectionName": { + "type": "string", + "description": "Name of connection to Azure AI Search" + }, + "indexName": { + "type": "string", + "description": "Name of index in Azure AI Search resource to attach" + } + }, + "required": [ + "connectionName", + "indexName" + ], + "allOf": [ + { + "$ref": "#/definitions/Index" + } + ], + "x-ms-discriminator-value": "AzureSearch" + }, + "BlobReferenceForConsumption": { + "type": "object", + "description": "Represents a reference to a blob for consumption", + "properties": { + "blobUri": { + "type": "string", + "description": "Blob URI path for client to upload data. Example: https://blob.windows.core.net/Container/Path" + }, + "storageAccountArmId": { + "type": "string", + "description": "ARM ID of the storage account to use." + }, + "credential": { + "$ref": "#/definitions/SasCredential", + "description": "Credential info to access the storage account." + } + }, + "required": [ + "blobUri", + "storageAccountArmId", + "credential" + ] + }, + "Connection": { + "type": "object", + "description": "Response from the listSecrets operation", + "properties": { + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/ConnectionType", + "description": "Category of the connection", + "readOnly": true + }, + "target": { + "type": "string", + "description": "The connection URL to be used for this service", + "readOnly": true + }, + "authType": { + "$ref": "#/definitions/AuthenticationType", + "description": "The authentication type used by the connection", + "readOnly": true + }, + "metadata": { + "type": "object", + "description": "Metadata of the connection", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + } + }, + "required": [ + "name", + "type", + "target", + "authType", + "metadata" + ] + }, + "ConnectionType": { + "type": "string", + "description": "The Type (or category) of the connection", + "enum": [ + "AzureOpenAI", + "AzureBlob", + "CognitiveSearch", + "CosmosDB", + "ApiKey", + "AppInsights", + "CustomKeys" + ], + "x-ms-enum": { + "name": "ConnectionType", + "modelAsString": true, + "values": [ + { + "name": "AzureOpenAI", + "value": "AzureOpenAI", + "description": "Azure OpenAI Service" + }, + { + "name": "AzureBlobStorage", + "value": "AzureBlob", + "description": "Azure Blob Storage" + }, + { + "name": "AzureAISearch", + "value": "CognitiveSearch", + "description": "Azure AI Search" + }, + { + "name": "CosmosDB", + "value": "CosmosDB", + "description": "CosmosDB" + }, + { + "name": "APIKey", + "value": "ApiKey", + "description": "Generic connection that uses API Key authentication" + }, + { + "name": "ApplicationInsights", + "value": "AppInsights", + "description": "Application Insights" + }, + { + "name": "Custom", + "value": "CustomKeys", + "description": "Custom Keys" + } + ] + } + }, + "CosmosDBIndex": { + "type": "object", + "description": "CosmosDB Vector Store Index Definition", + "properties": { + "connectionName": { + "type": "string", + "description": "Name of connection to CosmosDB" + }, + "databaseName": { + "type": "string", + "description": "Name of the CosmosDB Database" + }, + "containerName": { + "type": "string", + "description": "Name of CosmosDB Container" + }, + "embeddingConfiguration": { + "$ref": "#/definitions/EmbeddingConfiguration", + "description": "Embedding model configuration" + } + }, + "required": [ + "connectionName", + "databaseName", + "containerName", + "embeddingConfiguration" + ], + "allOf": [ + { + "$ref": "#/definitions/Index" + } + ], + "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" + }, + "DatasetType": { + "type": "string", + "description": "Enum to determine the type of data.", + "enum": [ + "uri_file", + "uri_folder" + ], + "x-ms-enum": { + "name": "DatasetType", + "modelAsString": true, + "values": [ + { + "name": "uri_file", + "value": "uri_file", + "description": "URI file." + }, + { + "name": "uri_folder", + "value": "uri_folder", + "description": "URI folder." + } + ] + } + }, + "DatasetVersion": { + "type": "object", + "description": "DatasetVersion Definition", + "properties": { + "datasetUri": { + "type": "string", + "description": "[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330", + "minLength": 1, + "pattern": "[a-zA-Z0-9_]", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "type": { + "$ref": "#/definitions/DatasetType", + "description": "Dataset type" + }, + "isReference": { + "type": "boolean", + "description": "Indicates if dataset is reference only or managed by dataset service. If true, the underlying data will be deleted when the dataset version is deleted", + "readOnly": true + }, + "stage": { + "type": "string", + "description": "Asset stage", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "id": { + "type": "string", + "description": "A unique identifier for the asset, assetId probably?", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "version": { + "type": "string", + "description": "The version of the resource", + "readOnly": true + }, + "description": { + "type": "string", + "description": "The asset description text." + }, + "tags": { + "type": "object", + "description": "Tag dictionary. Tags can be added, removed, and updated.", + "additionalProperties": { + "type": "string" + } + } + }, + "discriminator": "type", + "required": [ + "datasetUri", + "type", + "name", + "version" + ] + }, + "Deployment": { + "type": "object", + "description": "Model Deployment Definition", + "properties": { + "type": { + "$ref": "#/definitions/DeploymentType", + "description": "The type of the deployment" + }, + "name": { + "type": "string", + "description": "Name of the deployment", + "readOnly": true + } + }, + "discriminator": "type", + "required": [ + "type", + "name" + ] + }, + "DeploymentType": { + "type": "string", + "enum": [ + "ModelDeployment" + ], + "x-ms-enum": { + "name": "DeploymentType", + "modelAsString": true, + "values": [ + { + "name": "ModelDeployment", + "value": "ModelDeployment", + "description": "Model deployment" + } + ] + } + }, + "EmbeddingConfiguration": { + "type": "object", + "description": "Embedding configuration class", + "properties": { + "modelDeploymentName": { + "type": "string", + "description": "Deployment name of embedding model. It can point to a model deployment either in the parent AIServices or a connection." + }, + "embeddingField": { + "type": "string", + "description": "Embedding field" + } + }, + "required": [ + "modelDeploymentName", + "embeddingField" + ] + }, + "FileDatasetVersion": { + "type": "object", + "description": "FileDatasetVersion Definition", + "properties": { + "openAIPurpose": { + "type": "string", + "description": "Indicates OpenAI Purpose. FileDatasets created with this field will be compatible with OpenAI-specific features" + } + }, + "required": [ + "openAIPurpose" + ], + "allOf": [ + { + "$ref": "#/definitions/DatasetVersion" + } + ], + "x-ms-discriminator-value": "uri_file" + }, + "FolderDatasetVersion": { + "type": "object", + "description": "FileDatasetVersion Definition", + "allOf": [ + { + "$ref": "#/definitions/DatasetVersion" + } + ], + "x-ms-discriminator-value": "uri_folder" + }, + "Index": { + "type": "object", + "description": "Index resource Definition", + "properties": { + "type": { + "$ref": "#/definitions/IndexType", + "description": "Type of index" + }, + "stage": { + "type": "string", + "description": "Asset stage", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "id": { + "type": "string", + "description": "A unique identifier for the asset, assetId probably?", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "version": { + "type": "string", + "description": "The version of the resource", + "readOnly": true + }, + "description": { + "type": "string", + "description": "The asset description text." + }, + "tags": { + "type": "object", + "description": "Tag dictionary. Tags can be added, removed, and updated.", + "additionalProperties": { + "type": "string" + } + } + }, + "discriminator": "type", + "required": [ + "type", + "name", + "version" + ] + }, + "IndexType": { + "type": "string", + "enum": [ + "AzureSearch", + "CosmosDBNoSqlVectorStore", + "ManagedAzureSearch" + ], + "x-ms-enum": { + "name": "IndexType", + "modelAsString": true, + "values": [ + { + "name": "azureSearch", + "value": "AzureSearch", + "description": "Azure search" + }, + { + "name": "cosmosDB", + "value": "CosmosDBNoSqlVectorStore", + "description": "CosmosDB" + }, + { + "name": "managedAzureSearch", + "value": "ManagedAzureSearch", + "description": "Managed Azure Search" + } + ] + } + }, + "ListSortOrder": { + "type": "string", + "description": "The available sorting options when requesting a list of response objects.", + "enum": [ + "asc", + "desc" + ], + "x-ms-enum": { + "name": "ListSortOrder", + "modelAsString": true, + "values": [ + { + "name": "ascending", + "value": "asc", + "description": "Specifies an ascending sort order." + }, + { + "name": "descending", + "value": "desc", + "description": "Specifies a descending sort order." + } + ] + } + }, + "ListViewType": { + "type": "string", + "description": "List View Type Definition", + "enum": [ + "ActiveOnly", + "ArchivedOnly", + "All" + ], + "x-ms-enum": { + "name": "ListViewType", + "modelAsString": true, + "values": [ + { + "name": "ActiveOnly", + "value": "ActiveOnly", + "description": "List only active items." + }, + { + "name": "ArchivedOnly", + "value": "ArchivedOnly", + "description": "List only archived items." + }, + { + "name": "All", + "value": "All", + "description": "List all items." + } + ] + } + }, + "ManagedAzureAISearchIndex": { + "type": "object", + "description": "Managed Azure AI Search Index Definition", + "properties": { + "vectorStoreId": { + "type": "string", + "description": "Vector store id of managed index" + } + }, + "required": [ + "vectorStoreId" + ], + "allOf": [ + { + "$ref": "#/definitions/Index" + } + ], + "x-ms-discriminator-value": "ManagedAzureSearch" + }, + "ModelDeployment": { + "type": "object", + "description": "Model Deployment Definition", + "properties": { + "modelName": { + "type": "string", + "description": "Publisher-specific name of the deployed model", + "readOnly": true + }, + "modelVersion": { + "type": "string", + "description": "Publisher-specific version of the deployed model", + "readOnly": true + }, + "modelPublisher": { + "type": "string", + "description": "Name of the deployed model's publisher", + "readOnly": true + }, + "capabilities": { + "type": "object", + "description": "Capabilities of deployed model", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + }, + "sku": { + "$ref": "#/definitions/Sku", + "description": "Sku of the model deployment", + "readOnly": true + }, + "connectionName": { + "type": "string", + "description": "Name of the connection the deployment comes from", + "readOnly": true + } + }, + "required": [ + "modelName", + "modelVersion", + "modelPublisher", + "capabilities", + "sku" + ], + "allOf": [ + { + "$ref": "#/definitions/Deployment" + } + ], + "x-ms-discriminator-value": "ModelDeployment" + }, + "PagedConnection": { + "type": "object", + "description": "Paged collection of Connection items", + "properties": { + "value": { + "type": "array", + "description": "The Connection items on this page", + "items": { + "$ref": "#/definitions/Connection" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PagedDatasetVersion": { + "type": "object", + "description": "Paged collection of DatasetVersion items", + "properties": { + "value": { + "type": "array", + "description": "The DatasetVersion items on this page", + "items": { + "$ref": "#/definitions/DatasetVersion" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PagedDeployment": { + "type": "object", + "description": "Paged collection of Deployment items", + "properties": { + "value": { + "type": "array", + "description": "The Deployment items on this page", + "items": { + "$ref": "#/definitions/Deployment" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PagedIndex": { + "type": "object", + "description": "Paged collection of Index items", + "properties": { + "value": { + "type": "array", + "description": "The Index items on this page", + "items": { + "$ref": "#/definitions/Index" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PendingUploadCredentialType": { + "type": "string", + "description": "The type of credential used to access the storage account.", + "enum": [ + "SAS" + ], + "x-ms-enum": { + "name": "PendingUploadCredentialType", + "modelAsString": true, + "values": [ + { + "name": "sas", + "value": "SAS", + "description": "SAS credential type." + } + ] + } + }, + "PendingUploadRequest": { + "type": "object", + "description": "Represents a request for a pending upload.", + "properties": { + "pendingUploadId": { + "type": "string", + "description": "If PendingUploadId is not provided, a random GUID will be used." + }, + "connectionName": { + "type": "string", + "description": "Name of Azure blob storage connection to use for generating temporary SAS token" + }, + "pendingUploadType": { + "type": "string", + "description": "TemporaryBlobReference is the only supported type.", + "enum": [ + "TemporaryBlobReference" + ], + "x-ms-enum": { + "modelAsString": false + } + } + }, + "required": [ + "pendingUploadType" + ] + }, + "PendingUploadResponse": { + "type": "object", + "description": "Represents the response for a pending upload request", + "properties": { + "blobReferenceForConsumption": { + "$ref": "#/definitions/BlobReferenceForConsumption", + "description": "Container-level read, write, list SAS." + }, + "pendingUploadId": { + "type": "string", + "description": "ID for this upload request." + }, + "datasetVersion": { + "type": "string", + "description": "Version of dataset to be created if user did not specify version when initially creating upload" + }, + "pendingUploadType": { + "type": "string", + "description": "TemporaryBlobReference is the only supported type", + "enum": [ + "TemporaryBlobReference" + ], + "x-ms-enum": { + "modelAsString": false + } + } + }, + "required": [ + "blobReferenceForConsumption", + "pendingUploadId", + "pendingUploadType" + ] + }, + "PendingUploadType": { + "type": "string", + "description": "The type of pending upload.", + "enum": [ + "None", + "TemporaryBlobReference" + ], + "x-ms-enum": { + "name": "PendingUploadType", + "modelAsString": true, + "values": [ + { + "name": "none", + "value": "None", + "description": "No pending upload." + }, + { + "name": "temporaryBlobReference", + "value": "TemporaryBlobReference", + "description": "Temporary Blob Reference is the only supported type." + } + ] + } + }, + "SasCredential": { + "type": "object", + "description": "SAS Credential definition", + "properties": { + "sasUri": { + "type": "string", + "description": "SAS uri", + "readOnly": true + }, + "type": { + "type": "string", + "description": "Type of credential", + "enum": [ + "SAS" + ], + "x-ms-enum": { + "modelAsString": false + }, + "readOnly": true + } + }, + "required": [ + "sasUri", + "type" + ] + }, + "Sku": { + "type": "object", + "description": "Sku information", + "properties": { + "capacity": { + "type": "integer", + "format": "int64", + "description": "Sku capacity" + }, + "family": { + "type": "string", + "description": "Sku family" + }, + "name": { + "type": "string", + "description": "Sku name" + }, + "size": { + "type": "string", + "description": "Sku size" + }, + "tier": { + "type": "string", + "description": "Sku tier" + } + }, + "required": [ + "capacity", + "family", + "name", + "size", + "tier" + ] + } + }, + "parameters": { + "Azure.Core.ClientRequestIdHeader": { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "method", + "x-ms-client-name": "clientRequestId" + }, + "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" + }, + "Azure.Core.MaxPageSizeQueryParameter": { + "name": "maxpagesize", + "in": "query", + "description": "The maximum number of result items per page.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-parameter-location": "method" + }, + "Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent": { + "name": "Repeatability-First-Sent", + "in": "header", + "description": "Specifies the date and time at which the request was first created.", + "required": false, + "type": "string", + "format": "date-time", + "x-ms-parameter-location": "method", + "x-ms-client-name": "repeatabilityFirstSent" + }, + "Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId": { + "name": "Repeatability-Request-ID", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "repeatabilityRequestId" + }, + "Azure.Core.SkipQueryParameter": { + "name": "skip", + "in": "query", + "description": "The number of result items to skip.", + "required": false, + "type": "integer", + "format": "int32", + "default": 0, + "x-ms-parameter-location": "method" + }, + "Azure.Core.TopQueryParameter": { + "name": "top", + "in": "query", + "description": "The number of result items to return.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-parameter-location": "method" + } + } +} From b3f7bb6dc11626bd58738be06ef39d4811344ebb Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Tue, 1 Apr 2025 14:40:40 -0400 Subject: [PATCH 089/143] Fix Spellcheck Gate for Projects TypeSpec (#33636) * Fix spellcheck gate * reanme myproject -> projectName * put changes in ai cspell --------- Co-authored-by: Neehar Duvvuri --- specification/ai/Azure.AI.Projects/evaluations/models.tsp | 2 +- specification/ai/Azure.AI.Projects/red-teams/models.tsp | 2 +- specification/ai/Azure.AI.Projects/red-teams/routes.tsp | 2 +- specification/ai/cspell.yaml | 2 ++ .../preview/2025-05-15-preview/azure-ai-projects-1dp.json | 4 ++-- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/evaluations/models.tsp b/specification/ai/Azure.AI.Projects/evaluations/models.tsp index f7c56713cf69..5cf18801fc14 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/models.tsp @@ -78,7 +78,7 @@ model Evaluation { @doc("Evaluators to be used for the evaluation.") evaluators: Record; - @doc("Read-only result outputs. Example: { 'evaluationResultId': 'azureai://accounts/{AccountName}/projects/{myproject}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{myproject}/datasets/{dataset-name}/{dataset-version}' }") + @doc("Read-only result outputs. Example: { 'evaluationResultId': 'azureai://accounts/{AccountName}/projects/{projectName}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{projectName}/datasets/{dataset-name}/{dataset-version}' }") @visibility(Lifecycle.Read) outputs: Record; } diff --git a/specification/ai/Azure.AI.Projects/red-teams/models.tsp b/specification/ai/Azure.AI.Projects/red-teams/models.tsp index bf39515a0857..1a045ccc66af 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/models.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/models.tsp @@ -99,7 +99,7 @@ model RedTeam { @doc("Simulation-only or Simulation + Evaluation. Default false, if true the scan outputs conversation not evaluation result.") simulationOnly: boolean; - @doc("Read-only result outputs. Example: { 'redTeamResultId': 'azureai://accounts/{AccountName}/projects/{myproject}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{myproject}/datasets/{dataset-name}/{dataset-version}' }") + @doc("Read-only result outputs. Example: { 'redTeamResultId': 'azureai://accounts/{AccountName}/projects/{projectName}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{projectName}/datasets/{dataset-name}/{dataset-version}' }") @visibility(Lifecycle.Read) outputs: Record; diff --git a/specification/ai/Azure.AI.Projects/red-teams/routes.tsp b/specification/ai/Azure.AI.Projects/red-teams/routes.tsp index 05ef37d2248b..5e9531bcf61d 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/routes.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/routes.tsp @@ -15,7 +15,7 @@ namespace Azure.AI.Projects; alias RedTeamServiceTraits = SupportsClientRequestId & NoRepeatableRequests & - NoConditionalRequests; // NoRetryRequests supresses @azure-tools/typespec-azure-core/conditional-requests-trait-missing + NoConditionalRequests; // NoRetryRequests suppresses @azure-tools/typespec-azure-core/conditional-requests-trait-missing alias RedTeamOperations = Azure.Core.ResourceOperations; diff --git a/specification/ai/cspell.yaml b/specification/ai/cspell.yaml index 99aac33a6a6c..46eed575ae44 100644 --- a/specification/ai/cspell.yaml +++ b/specification/ai/cspell.yaml @@ -42,6 +42,8 @@ words: - upca - upce - wordprocessingml + - azureai + - atbash overrides: - filename: >- **/specification/ai/data-plane/DocumentIntelligence/**/DocumentIntelligence.json diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index 83f597609e04..70625d9123ef 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -2543,7 +2543,7 @@ }, "outputs": { "type": "object", - "description": "Read-only result outputs. Example: { 'evaluationResultId': 'azureai://accounts/{AccountName}/projects/{myproject}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{myproject}/datasets/{dataset-name}/{dataset-version}' }", + "description": "Read-only result outputs. Example: { 'evaluationResultId': 'azureai://accounts/{AccountName}/projects/{projectName}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{projectName}/datasets/{dataset-name}/{dataset-version}' }", "additionalProperties": { "type": "string" }, @@ -3212,7 +3212,7 @@ }, "outputs": { "type": "object", - "description": "Read-only result outputs. Example: { 'redTeamResultId': 'azureai://accounts/{AccountName}/projects/{myproject}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{myproject}/datasets/{dataset-name}/{dataset-version}' }", + "description": "Read-only result outputs. Example: { 'redTeamResultId': 'azureai://accounts/{AccountName}/projects/{projectName}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{projectName}/datasets/{dataset-name}/{dataset-version}' }", "additionalProperties": { "type": "string" }, From 7d7d9c1d221ad54240a8033fb5c412a949d5bf76 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Tue, 1 Apr 2025 20:05:44 -0700 Subject: [PATCH 090/143] Set the api-version used by emitted SDKs (#33642) * Python SDK version * Set the api-version the SDKs will use --- specification/ai/Azure.AI.Projects/tspconfig.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/specification/ai/Azure.AI.Projects/tspconfig.yaml b/specification/ai/Azure.AI.Projects/tspconfig.yaml index 6208c9ba1d3c..b87612461923 100644 --- a/specification/ai/Azure.AI.Projects/tspconfig.yaml +++ b/specification/ai/Azure.AI.Projects/tspconfig.yaml @@ -13,6 +13,7 @@ options: package-mode: "dataplane" package-dir: "azure-ai-projects-dp1" package-name: "{package-dir}" + api-version: "2025-05-15-preview" flavor: azure generate-test: false generate-sample: false @@ -21,12 +22,14 @@ options: package-dir: "Azure.AI.Projects.1DP" namespace: "Azure.AI.Projects.1DP" package-name: "{package-dir}" + api-version: "2025-05-15-preview" model-namespace: false flavor: azure generate-test: false generate-sample: false "@azure-tools/typespec-ts": package-dir: "ai-projects-1dp" + api-version: "2025-05-15-preview" generateTest: true generateMetadata: false packageDetails: From 7c1587659d6235b6b31c2f8db6113f395199f57d Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Thu, 3 Apr 2025 09:28:21 -0700 Subject: [PATCH 091/143] Fix output folder structure in emitted Python code --- specification/ai/Azure.AI.Projects/tspconfig.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/specification/ai/Azure.AI.Projects/tspconfig.yaml b/specification/ai/Azure.AI.Projects/tspconfig.yaml index b87612461923..56a868099e11 100644 --- a/specification/ai/Azure.AI.Projects/tspconfig.yaml +++ b/specification/ai/Azure.AI.Projects/tspconfig.yaml @@ -13,6 +13,7 @@ options: package-mode: "dataplane" package-dir: "azure-ai-projects-dp1" package-name: "{package-dir}" + namespace: "azure.ai.projects" api-version: "2025-05-15-preview" flavor: azure generate-test: false From 0e94eff64c4ada94d0fae3b0f4383d9bc2e71aee Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Thu, 3 Apr 2025 17:01:05 -0400 Subject: [PATCH 092/143] Fix startPendingUpload path for versioned API (#33710) --- specification/ai/Azure.AI.Projects/datasets/routes.tsp | 1 + .../preview/2025-05-15-preview/azure-ai-projects-1dp.json | 2 +- .../stable/2025-05-01/azure-ai-projects-1dp.json | 2 +- .../Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/datasets/routes.tsp b/specification/ai/Azure.AI.Projects/datasets/routes.tsp index f52bdf13a490..18dfb632cbf8 100644 --- a/specification/ai/Azure.AI.Projects/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/routes.tsp @@ -39,6 +39,7 @@ interface Datasets ListDatasetVersionsParameters > { @doc("Create or start a pending upload of a dataset for a specific version.") + @Rest.action("startPendingUpload") startPendingUploadVersion is ServicePatterns.VersionedResourceAction< DatasetVersion, PendingUploadRequest, diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index 70625d9123ef..89e75246a568 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -670,7 +670,7 @@ } } }, - "/datasets/{name}/versions/{version}/startPendingUploadVersion": { + "/datasets/{name}/versions/{version}/startPendingUpload": { "post": { "operationId": "Datasets_StartPendingUploadVersion", "description": "Create or start a pending upload of a dataset for a specific version.", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json index 2bb9db995e10..615e08308862 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json @@ -670,7 +670,7 @@ } } }, - "/datasets/{name}/versions/{version}/startPendingUploadVersion": { + "/datasets/{name}/versions/{version}/startPendingUpload": { "post": { "operationId": "Datasets_StartPendingUploadVersion", "description": "Create or start a pending upload of a dataset for a specific version.", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json index 5721cbb51e01..837cc9414b21 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json @@ -670,7 +670,7 @@ } } }, - "/datasets/{name}/versions/{version}/startPendingUploadVersion": { + "/datasets/{name}/versions/{version}/startPendingUpload": { "post": { "operationId": "Datasets_StartPendingUploadVersion", "description": "Create or start a pending upload of a dataset for a specific version.", From 942a952377778852a4828a3444a1d962b0841320 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Thu, 3 Apr 2025 16:37:41 -0700 Subject: [PATCH 093/143] Make sure this TypeSpec PR is green with regards to Python SDK emitter (#33712) --- specification/ai/Azure.AI.Projects/tspconfig.yaml | 8 ++++---- specification/ai/cspell.yaml | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/tspconfig.yaml b/specification/ai/Azure.AI.Projects/tspconfig.yaml index 56a868099e11..d92b893752d1 100644 --- a/specification/ai/Azure.AI.Projects/tspconfig.yaml +++ b/specification/ai/Azure.AI.Projects/tspconfig.yaml @@ -11,13 +11,13 @@ options: output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/azure-ai-projects-1dp.json" "@azure-tools/typespec-python": package-mode: "dataplane" - package-dir: "azure-ai-projects-dp1" + package-dir: "azure-ai-projects-onedp" package-name: "{package-dir}" - namespace: "azure.ai.projects" + namespace: "azure.ai.projects.onedp" api-version: "2025-05-15-preview" flavor: azure - generate-test: false - generate-sample: false + generate-test: true + generate-sample: true "@azure-tools/typespec-csharp": package-mode: "dataplane" package-dir: "Azure.AI.Projects.1DP" diff --git a/specification/ai/cspell.yaml b/specification/ai/cspell.yaml index 46eed575ae44..716df83a21f1 100644 --- a/specification/ai/cspell.yaml +++ b/specification/ai/cspell.yaml @@ -44,6 +44,7 @@ words: - wordprocessingml - azureai - atbash + - onedp overrides: - filename: >- **/specification/ai/data-plane/DocumentIntelligence/**/DocumentIntelligence.json From d88cedd032a159462997ef7cb3dd3f869d27b7c5 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Thu, 3 Apr 2025 17:39:55 -0700 Subject: [PATCH 094/143] Fix C# SdkTspConfigValidation validation failures --- specification/ai/Azure.AI.Projects/tspconfig.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/specification/ai/Azure.AI.Projects/tspconfig.yaml b/specification/ai/Azure.AI.Projects/tspconfig.yaml index d92b893752d1..76d97b4faedb 100644 --- a/specification/ai/Azure.AI.Projects/tspconfig.yaml +++ b/specification/ai/Azure.AI.Projects/tspconfig.yaml @@ -21,13 +21,14 @@ options: "@azure-tools/typespec-csharp": package-mode: "dataplane" package-dir: "Azure.AI.Projects.1DP" - namespace: "Azure.AI.Projects.1DP" + namespace: "{package-dir}" package-name: "{package-dir}" api-version: "2025-05-15-preview" model-namespace: false flavor: azure generate-test: false generate-sample: false + clear-output-folder: true "@azure-tools/typespec-ts": package-dir: "ai-projects-1dp" api-version: "2025-05-15-preview" From 64e1df4d8a5698ae9a4b9af2290a6a89edb355b5 Mon Sep 17 00:00:00 2001 From: Kayla Seager Date: Fri, 4 Apr 2025 13:11:54 -0700 Subject: [PATCH 095/143] remove eval result from public (#33729) --- .../evaluation-results/models.tsp | 66 -- .../evaluation-results/routes.tsp | 48 -- .../Azure.AI.Projects/evaluations/models.tsp | 3 - specification/ai/Azure.AI.Projects/main.tsp | 1 - .../ai/Azure.AI.Projects/red-teams/models.tsp | 4 - .../azure-ai-projects-1dp.json | 625 +----------------- 6 files changed, 1 insertion(+), 746 deletions(-) delete mode 100644 specification/ai/Azure.AI.Projects/evaluation-results/models.tsp delete mode 100644 specification/ai/Azure.AI.Projects/evaluation-results/routes.tsp diff --git a/specification/ai/Azure.AI.Projects/evaluation-results/models.tsp b/specification/ai/Azure.AI.Projects/evaluation-results/models.tsp deleted file mode 100644 index b4a941c17048..000000000000 --- a/specification/ai/Azure.AI.Projects/evaluation-results/models.tsp +++ /dev/null @@ -1,66 +0,0 @@ -import "@typespec/rest"; -import "@azure-tools/typespec-autorest"; -import "@typespec/versioning"; -import "@azure-tools/typespec-azure-core"; -import "../common/models.tsp"; -import "../main.tsp"; - -using TypeSpec.OpenAPI; -using TypeSpec.Http; -using TypeSpec.Rest; -using TypeSpec.Versioning; -using Azure.Core; -using Azure.Core.Traits; - -namespace Azure.AI.Projects; - -@doc("Evaluation Result resource Definition") -@Rest.resource("evaluationResults") -@added(Versions.v2025_05_15_preview) -@removed(Versions.v_latest) -model EvaluationResult { - @doc("Type of Evaluation result") - ResultType?: ResultType; - - @doc("Model Name") - ModelName?: string; - - @doc("Model Version") - ModelVersion?: string; - - @doc("Model Asset ID") - ModelAssetId?: string; - - @doc("Dataset Family") - DatasetFamily?: string; - - @doc("Dataset Name") - DatasetName?: string; - - @doc("Metrics") - Metrics?: Record; - - @doc("Blob URI") - BlobUri?: string; - - ...AssetBase; -} - -@doc("Type of Evaluation result") -@added(Versions.v2025_05_15_preview) -@removed(Versions.v_latest) -union ResultType { - string, - - @doc("Benchmark result") - Benchmark: "Benchmark", - - @doc("Evaluations Result") - Evaluation: "Evaluation", - - @doc("Red Team Result") - Redteam: "Redteam", - - @doc("Simulation Result") - Simulation: "Simulation", -} diff --git a/specification/ai/Azure.AI.Projects/evaluation-results/routes.tsp b/specification/ai/Azure.AI.Projects/evaluation-results/routes.tsp deleted file mode 100644 index d5a1cd0dd4ca..000000000000 --- a/specification/ai/Azure.AI.Projects/evaluation-results/routes.tsp +++ /dev/null @@ -1,48 +0,0 @@ -import "@typespec/http"; -import "@typespec/rest"; -import "@azure-tools/typespec-autorest"; -import "@typespec/versioning"; -import "@azure-tools/typespec-azure-core"; -import "../common/models.tsp"; -import "./models.tsp"; -import "../servicepatterns.tsp"; - -using TypeSpec.Http; -using TypeSpec.Versioning; - -namespace Azure.AI.Projects; - -alias ListEvaluationResultsParameters = { - @doc("Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned") - @query - top?: int32; - - @doc("Continuation token for pagination.") - @query - skip?: string; - - @doc("Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2") - @query - tags?: string; - - @doc("[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.") - @query - listViewType?: ListViewType; -}; - -#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "We are using service specific operation templates" -@added(Versions.v2025_05_15_preview) -@removed(Versions.v_latest) -interface EvaluationResults - extends ServicePatterns.VersionedOperations< - EvaluationResult, - ListEvaluationResultsParameters, - ListEvaluationResultsParameters - > { - @doc("Create or start a pending upload of a evaluation results for a specific version.") - startPendingUpload is ServicePatterns.VersionedResourceAction< - EvaluationResult, - PendingUploadRequest, - PendingUploadResponse - >; -} diff --git a/specification/ai/Azure.AI.Projects/evaluations/models.tsp b/specification/ai/Azure.AI.Projects/evaluations/models.tsp index 5cf18801fc14..9a25d2e7d154 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/models.tsp @@ -78,7 +78,4 @@ model Evaluation { @doc("Evaluators to be used for the evaluation.") evaluators: Record; - @doc("Read-only result outputs. Example: { 'evaluationResultId': 'azureai://accounts/{AccountName}/projects/{projectName}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{projectName}/datasets/{dataset-name}/{dataset-version}' }") - @visibility(Lifecycle.Read) - outputs: Record; } diff --git a/specification/ai/Azure.AI.Projects/main.tsp b/specification/ai/Azure.AI.Projects/main.tsp index 8f3f5f61ce58..367cc5b8f00b 100644 --- a/specification/ai/Azure.AI.Projects/main.tsp +++ b/specification/ai/Azure.AI.Projects/main.tsp @@ -8,7 +8,6 @@ import "./evaluations/routes.tsp"; import "./datasets/routes.tsp"; import "./indexes/routes.tsp"; import "./deployments/routes.tsp"; -import "./evaluation-results/routes.tsp"; import "./red-teams/routes.tsp"; using TypeSpec.Http; diff --git a/specification/ai/Azure.AI.Projects/red-teams/models.tsp b/specification/ai/Azure.AI.Projects/red-teams/models.tsp index 1a045ccc66af..06a467b78809 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/models.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/models.tsp @@ -99,10 +99,6 @@ model RedTeam { @doc("Simulation-only or Simulation + Evaluation. Default false, if true the scan outputs conversation not evaluation result.") simulationOnly: boolean; - @doc("Read-only result outputs. Example: { 'redTeamResultId': 'azureai://accounts/{AccountName}/projects/{projectName}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{projectName}/datasets/{dataset-name}/{dataset-version}' }") - @visibility(Lifecycle.Read) - outputs: Record; - @doc("List of risk categories to generate attack objectives for.") riskCategories: RiskCategory[]; diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index 89e75246a568..ad26e3fac345 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -839,473 +839,6 @@ } } }, - "/evaluationResults": { - "get": { - "operationId": "EvaluationResults_ListLatest", - "description": "List the latest version of each EvaluationResult", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PagedEvaluationResult" - } - }, - "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-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/evaluationResults/{name}/versions": { - "get": { - "operationId": "EvaluationResults_ListVersions", - "description": "List all versions of the given EvaluationResult", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PagedEvaluationResult" - } - }, - "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-pageable": { - "nextLinkName": "nextLink" - } - }, - "post": { - "operationId": "EvaluationResults_Create", - "description": "Create a new EvaluationResult. The version id will be generated by the service.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the EvaluationResult to create", - "required": true, - "schema": { - "$ref": "#/definitions/EvaluationResult" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/EvaluationResult" - }, - "headers": { - "Repeatability-Result": { - "type": "string", - "description": "Indicates whether the repeatable request was accepted or rejected.", - "enum": [ - "accepted", - "rejected" - ], - "x-ms-enum": { - "name": "RepeatabilityResult", - "modelAsString": false, - "values": [ - { - "name": "accepted", - "value": "accepted", - "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." - }, - { - "name": "rejected", - "value": "rejected", - "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." - } - ] - } - }, - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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." - } - } - } - } - } - }, - "/evaluationResults/{name}/versions/{version}": { - "get": { - "operationId": "EvaluationResults_GetVersion", - "description": "Get the specific version of the EvaluationResult", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The specific version id of the EvaluationResult to retrieve.", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/EvaluationResult" - } - }, - "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." - } - } - } - } - }, - "put": { - "operationId": "EvaluationResults_CreateVersion", - "description": "Create a new or replace an existing EvaluationResult with the given version id", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The specific version id of the EvaluationResult to create or replace.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the EvaluationResult to create", - "required": true, - "schema": { - "$ref": "#/definitions/EvaluationResult" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/EvaluationResult" - } - }, - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", - "schema": { - "$ref": "#/definitions/EvaluationResult" - } - }, - "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." - } - } - } - } - }, - "delete": { - "operationId": "EvaluationResults_DeleteVersion", - "description": "Delete the specific version of the EvaluationResult", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The version of the EvaluationResult to delete.", - "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." - } - } - } - } - } - }, - "/evaluationResults/{name}/versions/{version}/startPendingUpload": { - "post": { - "operationId": "EvaluationResults_StartPendingUpload", - "description": "Create or start a pending upload of a evaluation results for a specific version.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The specific version id of the EvaluationResult to operate on.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "Parameters for the action", - "required": true, - "schema": { - "$ref": "#/definitions/PendingUploadRequest" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PendingUploadResponse" - } - }, - "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." - } - } - } - } - } - }, "/evaluations/runs": { "get": { "operationId": "Evaluations_List", @@ -2540,102 +2073,12 @@ "additionalProperties": { "$ref": "#/definitions/EvaluatorConfiguration" } - }, - "outputs": { - "type": "object", - "description": "Read-only result outputs. Example: { 'evaluationResultId': 'azureai://accounts/{AccountName}/projects/{projectName}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{projectName}/datasets/{dataset-name}/{dataset-version}' }", - "additionalProperties": { - "type": "string" - }, - "readOnly": true } }, "required": [ "id", "data", - "evaluators", - "outputs" - ] - }, - "EvaluationResult": { - "type": "object", - "description": "Evaluation Result resource Definition", - "properties": { - "ResultType": { - "$ref": "#/definitions/ResultType", - "description": "Type of Evaluation result" - }, - "ModelName": { - "type": "string", - "description": "Model Name" - }, - "ModelVersion": { - "type": "string", - "description": "Model Version" - }, - "ModelAssetId": { - "type": "string", - "description": "Model Asset ID" - }, - "DatasetFamily": { - "type": "string", - "description": "Dataset Family" - }, - "DatasetName": { - "type": "string", - "description": "Dataset Name" - }, - "Metrics": { - "type": "object", - "description": "Metrics", - "additionalProperties": { - "format": "double", - "type": "number" - } - }, - "BlobUri": { - "type": "string", - "description": "Blob URI" - }, - "stage": { - "type": "string", - "description": "Asset stage", - "x-ms-mutability": [ - "read", - "update", - "create" - ] - }, - "id": { - "type": "string", - "description": "A unique identifier for the asset, assetId probably?", - "readOnly": true - }, - "name": { - "type": "string", - "description": "The name of the resource", - "readOnly": true - }, - "version": { - "type": "string", - "description": "The version of the resource", - "readOnly": true - }, - "description": { - "type": "string", - "description": "The asset description text." - }, - "tags": { - "type": "object", - "description": "Tag dictionary. Tags can be added, removed, and updated.", - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "name", - "version" + "evaluators" ] }, "EvaluatorConfiguration": { @@ -3016,27 +2459,6 @@ "value" ] }, - "PagedEvaluationResult": { - "type": "object", - "description": "Paged collection of EvaluationResult items", - "properties": { - "value": { - "type": "array", - "description": "The EvaluationResult items on this page", - "items": { - "$ref": "#/definitions/EvaluationResult" - } - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, "PagedIndex": { "type": "object", "description": "Paged collection of Index items", @@ -3210,14 +2632,6 @@ "type": "boolean", "description": "Simulation-only or Simulation + Evaluation. Default false, if true the scan outputs conversation not evaluation result." }, - "outputs": { - "type": "object", - "description": "Read-only result outputs. Example: { 'redTeamResultId': 'azureai://accounts/{AccountName}/projects/{projectName}/evaluationresults/{name}/{version}', 'logId': 'azureai://accounts/{AccountName}/projects/{projectName}/datasets/{dataset-name}/{dataset-version}' }", - "additionalProperties": { - "type": "string" - }, - "readOnly": true - }, "riskCategories": { "type": "array", "description": "List of risk categories to generate attack objectives for.", @@ -3255,46 +2669,9 @@ "numTurns", "attackStrategy", "simulationOnly", - "outputs", "riskCategories" ] }, - "ResultType": { - "type": "string", - "description": "Type of Evaluation result", - "enum": [ - "Benchmark", - "Evaluation", - "Redteam", - "Simulation" - ], - "x-ms-enum": { - "name": "ResultType", - "modelAsString": true, - "values": [ - { - "name": "Benchmark", - "value": "Benchmark", - "description": "Benchmark result" - }, - { - "name": "Evaluation", - "value": "Evaluation", - "description": "Evaluations Result" - }, - { - "name": "Redteam", - "value": "Redteam", - "description": "Red Team Result" - }, - { - "name": "Simulation", - "value": "Simulation", - "description": "Simulation Result" - } - ] - } - }, "RiskCategory": { "type": "string", "description": "Risk category for the attack objective.", From 34fb652e8aed6770c7acef0c9d651e1914095007 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Fri, 4 Apr 2025 18:20:00 -0400 Subject: [PATCH 096/143] regenerate swagger (#33739) --- specification/ai/Azure.AI.Projects/datasets/routes.tsp | 4 ++-- .../preview/2025-05-15-preview/azure-ai-projects-1dp.json | 4 ++-- .../stable/2025-05-01/azure-ai-projects-1dp.json | 4 ++-- .../stable/latest/azure-ai-projects-1dp.json | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/datasets/routes.tsp b/specification/ai/Azure.AI.Projects/datasets/routes.tsp index 18dfb632cbf8..7c80cc4eb67d 100644 --- a/specification/ai/Azure.AI.Projects/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/routes.tsp @@ -38,7 +38,7 @@ interface Datasets ListDatasetVersionsParameters, ListDatasetVersionsParameters > { - @doc("Create or start a pending upload of a dataset for a specific version.") + @doc("Start a new or get an existing pending upload of a dataset for a specific version.") @Rest.action("startPendingUpload") startPendingUploadVersion is ServicePatterns.VersionedResourceAction< DatasetVersion, @@ -46,7 +46,7 @@ interface Datasets PendingUploadResponse >; - @doc("Create or start a pending upload of a dataset. The version id will be generated by the service.") + @doc("Start a new pending upload for a dataset. The version id will be generated by the service.") @Rest.actionSeparator("/") @Rest.action("startPendingUpload") @Http.post diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index ad26e3fac345..abd36c945497 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -302,7 +302,7 @@ "/datasets/{name}/startPendingUpload": { "post": { "operationId": "Datasets_StartPendingUpload", - "description": "Create or start a pending upload of a dataset. The version id will be generated by the service.", + "description": "Start a new pending upload for a dataset. The version id will be generated by the service.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -673,7 +673,7 @@ "/datasets/{name}/versions/{version}/startPendingUpload": { "post": { "operationId": "Datasets_StartPendingUploadVersion", - "description": "Create or start a pending upload of a dataset for a specific version.", + "description": "Start a new or get an existing pending upload of a dataset for a specific version.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json index 615e08308862..26a22e24aa3e 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json @@ -302,7 +302,7 @@ "/datasets/{name}/startPendingUpload": { "post": { "operationId": "Datasets_StartPendingUpload", - "description": "Create or start a pending upload of a dataset. The version id will be generated by the service.", + "description": "Start a new pending upload for a dataset. The version id will be generated by the service.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -673,7 +673,7 @@ "/datasets/{name}/versions/{version}/startPendingUpload": { "post": { "operationId": "Datasets_StartPendingUploadVersion", - "description": "Create or start a pending upload of a dataset for a specific version.", + "description": "Start a new or get an existing pending upload of a dataset for a specific version.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json index 837cc9414b21..e06cfac1e6cc 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json @@ -302,7 +302,7 @@ "/datasets/{name}/startPendingUpload": { "post": { "operationId": "Datasets_StartPendingUpload", - "description": "Create or start a pending upload of a dataset. The version id will be generated by the service.", + "description": "Start a new pending upload for a dataset. The version id will be generated by the service.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -673,7 +673,7 @@ "/datasets/{name}/versions/{version}/startPendingUpload": { "post": { "operationId": "Datasets_StartPendingUploadVersion", - "description": "Create or start a pending upload of a dataset for a specific version.", + "description": "Start a new or get an existing pending upload of a dataset for a specific version.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" From f5cc96a9f5d6aca22d9ce14ad7074ea65e660f0d Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Wed, 9 Apr 2025 18:05:18 -0700 Subject: [PATCH 097/143] Another round of updates to /connections, /datasets & /indexes operations (#33829) --- .../Azure.AI.Projects/connections/models.tsp | 93 +++- .../Azure.AI.Projects/connections/routes.tsp | 14 +- .../ai/Azure.AI.Projects/datasets/routes.tsp | 2 + .../ai/Azure.AI.Projects/servicepatterns.tsp | 4 + .../azure-ai-projects-1dp.json | 434 ++++++++---------- .../2025-05-01/azure-ai-projects-1dp.json | 434 ++++++++---------- .../stable/latest/azure-ai-projects-1dp.json | 434 ++++++++---------- 7 files changed, 663 insertions(+), 752 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/connections/models.tsp b/specification/ai/Azure.AI.Projects/connections/models.tsp index 862e8805e293..e0a059cdd2f6 100644 --- a/specification/ai/Azure.AI.Projects/connections/models.tsp +++ b/specification/ai/Azure.AI.Projects/connections/models.tsp @@ -10,10 +10,12 @@ using TypeSpec.Versioning; namespace Azure.AI.Projects; -@doc("Response from the listSecrets operation") +@doc("Response from the list and get connections operations") @resource("connections") +@discriminator("authType") @added(Versions.v2025_05_01) model Connection { + @doc("The name of the resource") @visibility(Lifecycle.Read) @key("name") @@ -27,15 +29,78 @@ model Connection { @visibility(Lifecycle.Read) target: string; - @doc("The authentication type used by the connection") + @doc("Whether the connection is tagged as the default connection of its type") + @visibility(Lifecycle.Read) + isDefault: boolean; + + @doc("The credentials used by the connection") @visibility(Lifecycle.Read) - authType: AuthenticationType; + credentials: BaseCredentials; @doc("Metadata of the connection") @visibility(Lifecycle.Read) metadata: Record; } +@doc("A base class for connection credentials") +@discriminator("authType") +model BaseCredentials { + + @doc("The type of credential used by the connection") + @visibility(Lifecycle.Read) + authType: CredentialType; +} + +@doc("API Key Credential definition") +model ApiKeyCredentials extends BaseCredentials { + + @doc("The credentail type") + @visibility(Lifecycle.Read) + authType: CredentialType.apiKey; + + @doc("API Key") + @visibility(Lifecycle.Read) + apiKey?: string; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" +@doc("Entra ID credential definition") +model EntraIDCredentials extends BaseCredentials { + + @doc("The credential type") + @visibility(Lifecycle.Read) + authType: CredentialType.entraId; +} + +@doc("Custom credential defintion") +model CustomCredential extends BaseCredentials { + + @doc("The credential type ") + @visibility(Lifecycle.Read) + authType: CredentialType.custom; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" +@doc("Shared Access Signature (SAS) credential definition") +model SASCredentials extends BaseCredentials { + + @doc("The credential type") + @visibility(Lifecycle.Read) + authType: CredentialType.SAS; + + @doc("SAS token") + @visibility(Lifecycle.Read) + sasToken?: string; +} + +@doc("Credentials that do not require authentication") +model NoAuthenticationCredentials extends BaseCredentials { + + @doc("The credential type ") + @visibility(Lifecycle.Read) + authType: CredentialType.None; +} + // https://learn.microsoft.com/rest/api/azureml/workspace-connections/list-secrets?view=rest-azureml-2024-04-01&tabs=HTTP#ConnectionType @doc("The Type (or category) of the connection") union ConnectionType { @@ -44,9 +109,12 @@ union ConnectionType { @doc("Azure OpenAI Service") AzureOpenAI: "AzureOpenAI", //TODO: In Python this results in .AZURE_OPEN_AI. How do I make it .AZURE_OPENAI? - @doc("Azure Blob Storage") + @doc("Azure Blob Storage, with specified container") AzureBlobStorage: "AzureBlob", + @doc("Azure Blob Storage, with container not specified (used by Assistants)") + AzureStorageAccount: "AzureStorageAccount", + @doc("Azure AI Search") AzureAISearch: "CognitiveSearch", @@ -56,6 +124,9 @@ union ConnectionType { @doc("Generic connection that uses API Key authentication") APIKey: "ApiKey", + @doc("Application Configuration") + ApplicationConfiguration: "AppConfig", + @doc("Application Insights") ApplicationInsights: "AppInsights", @@ -63,22 +134,22 @@ union ConnectionType { Custom: "CustomKeys", } -@doc("The authentication type used by the connection") -union AuthenticationType { +@doc("The credential type used by the connection") +union CredentialType { string, - @doc("API Key authentication") + @doc("API Key credential") apiKey: "ApiKey", - @doc("Entra ID authentication (formerly known as AAD)") + @doc("Entra ID credential (formerly known as AAD)") entraId: "AAD", - @doc("Shared Access Signature (SAS) authentication") + @doc("Shared Access Signature (SAS) credential") SAS: "SAS", - @doc("Custom authentication") + @doc("Custom credential") custom: "CustomKeys", - @doc("No authentication") + @doc("No credential") None: "None", } diff --git a/specification/ai/Azure.AI.Projects/connections/routes.tsp b/specification/ai/Azure.AI.Projects/connections/routes.tsp index 788b79ad9a78..5009073c659c 100644 --- a/specification/ai/Azure.AI.Projects/connections/routes.tsp +++ b/specification/ai/Azure.AI.Projects/connections/routes.tsp @@ -19,17 +19,25 @@ alias ConnectionOperations = Azure.Core.ResourceOperations; - @doc("List all connections in the project") + @doc("Get a connection by name, with its connection credentials") + @Rest.actionSeparator("/") + @Rest.action("withCredentials") + getWithCredentials is ConnectionOperations.ResourceRead; + @doc("List all connections in the project, without populating connection credentials") list is ConnectionOperations.ResourceList< Connection, ListQueryParametersTrait<{ - @doc("Specific type of connection to return in list") + @doc("List connections of this specific type") @query("connectionType") connectionType?: ConnectionType; + @doc("List connections that are default connections") + @query("defaultConnection") + defaultConnection?: boolean; + ...StandardListQueryParameters; }> >; diff --git a/specification/ai/Azure.AI.Projects/datasets/routes.tsp b/specification/ai/Azure.AI.Projects/datasets/routes.tsp index 7c80cc4eb67d..5db8e1c99935 100644 --- a/specification/ai/Azure.AI.Projects/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/routes.tsp @@ -46,6 +46,7 @@ interface Datasets PendingUploadResponse >; + /* Reenable this once the service supports "unversioned" dataset operations @doc("Start a new pending upload for a dataset. The version id will be generated by the service.") @Rest.actionSeparator("/") @Rest.action("startPendingUpload") @@ -55,4 +56,5 @@ interface Datasets PendingUploadRequest, PendingUploadResponse >; + */ } diff --git a/specification/ai/Azure.AI.Projects/servicepatterns.tsp b/specification/ai/Azure.AI.Projects/servicepatterns.tsp index f79316dd4434..5ad032bfcd77 100644 --- a/specification/ai/Azure.AI.Projects/servicepatterns.tsp +++ b/specification/ai/Azure.AI.Projects/servicepatterns.tsp @@ -53,6 +53,7 @@ namespace Azure.AI.Projects.ServicePatterns { Http.NoContentResponse >; + /* Reenable this once the service supports "unversioned" operations @doc( "Create a new {name}. The version id will be generated by the service.", TEntityType @@ -69,6 +70,7 @@ namespace Azure.AI.Projects.ServicePatterns { }, TEntityType >; + */ @doc( "Create a new or replace an existing {name} with the given version id", @@ -114,6 +116,7 @@ namespace Azure.AI.Projects.ServicePatterns { TResponse >; + /* Reenable this once the service supports "unversioned" operations @Rest.action op UnversionedResourceAction< TEntityType extends Reflection.Model, @@ -128,6 +131,7 @@ namespace Azure.AI.Projects.ServicePatterns { }, TResponse >; + */ namespace BuildingBlocks { alias CoreOps = Azure.Core.StandardResourceOperations; diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index abd36c945497..acdb96f527ee 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -55,7 +55,7 @@ "/connections": { "get": { "operationId": "Connections_List", - "description": "List all connections in the project", + "description": "List all connections in the project, without populating connection credentials", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -63,15 +63,17 @@ { "name": "connectionType", "in": "query", - "description": "Specific type of connection to return in list", + "description": "List connections of this specific type", "required": false, "type": "string", "enum": [ "AzureOpenAI", "AzureBlob", + "AzureStorageAccount", "CognitiveSearch", "CosmosDB", "ApiKey", + "AppConfig", "AppInsights", "CustomKeys" ], @@ -87,7 +89,12 @@ { "name": "AzureBlobStorage", "value": "AzureBlob", - "description": "Azure Blob Storage" + "description": "Azure Blob Storage, with specified container" + }, + { + "name": "AzureStorageAccount", + "value": "AzureStorageAccount", + "description": "Azure Blob Storage, with container not specified (used by Assistants)" }, { "name": "AzureAISearch", @@ -104,6 +111,11 @@ "value": "ApiKey", "description": "Generic connection that uses API Key authentication" }, + { + "name": "ApplicationConfiguration", + "value": "AppConfig", + "description": "Application Configuration" + }, { "name": "ApplicationInsights", "value": "AppInsights", @@ -117,6 +129,13 @@ ] } }, + { + "name": "defaultConnection", + "in": "query", + "description": "List connections that are default connections", + "required": false, + "type": "boolean" + }, { "$ref": "#/parameters/Azure.Core.TopQueryParameter" }, @@ -165,7 +184,55 @@ "/connections/{name}": { "get": { "operationId": "Connections_Get", - "description": "Get a connection by name.", + "description": "Get a connection by name, without populating connection credentials", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Connection" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/connections/{name}/withCredentials": { + "get": { + "operationId": "Connections_GetWithCredentials", + "description": "Get a connection by name, with its connection credentials", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -299,53 +366,6 @@ } } }, - "/datasets/{name}/startPendingUpload": { - "post": { - "operationId": "Datasets_StartPendingUpload", - "description": "Start a new pending upload for a dataset. The version id will be generated by the service.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "Parameters for the action", - "required": true, - "schema": { - "$ref": "#/definitions/PendingUploadRequest" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PendingUploadResponse" - } - }, - "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." - } - } - } - } - } - }, "/datasets/{name}/versions": { "get": { "operationId": "Datasets_ListVersions", @@ -440,91 +460,6 @@ "x-ms-pageable": { "nextLinkName": "nextLink" } - }, - "post": { - "operationId": "Datasets_Create", - "description": "Create a new DatasetVersion. The version id will be generated by the service.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the DatasetVersion to create", - "required": true, - "schema": { - "$ref": "#/definitions/DatasetVersion" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/DatasetVersion" - }, - "headers": { - "Repeatability-Result": { - "type": "string", - "description": "Indicates whether the repeatable request was accepted or rejected.", - "enum": [ - "accepted", - "rejected" - ], - "x-ms-enum": { - "name": "RepeatabilityResult", - "modelAsString": false, - "values": [ - { - "name": "accepted", - "value": "accepted", - "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." - }, - { - "name": "rejected", - "value": "rejected", - "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." - } - ] - } - }, - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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." - } - } - } - } } }, "/datasets/{name}/versions/{version}": { @@ -1163,91 +1098,6 @@ "x-ms-pageable": { "nextLinkName": "nextLink" } - }, - "post": { - "operationId": "Indexes_Create", - "description": "Create a new Index. The version id will be generated by the service.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the Index to create", - "required": true, - "schema": { - "$ref": "#/definitions/Index" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/Index" - }, - "headers": { - "Repeatability-Result": { - "type": "string", - "description": "Indicates whether the repeatable request was accepted or rejected.", - "enum": [ - "accepted", - "rejected" - ], - "x-ms-enum": { - "name": "RepeatabilityResult", - "modelAsString": false, - "values": [ - { - "name": "accepted", - "value": "accepted", - "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." - }, - { - "name": "rejected", - "value": "rejected", - "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." - } - ] - } - }, - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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." - } - } - } - } } }, "/indexes/{name}/versions/{version}": { @@ -1754,8 +1604,13 @@ }, "Connection": { "type": "object", - "description": "Response from the listSecrets operation", + "description": "Response from the list and get connections operations", "properties": { + "authType": { + "$ref": "#/definitions/AuthenticationType", + "description": "The authentication type used by the connection", + "readOnly": true + }, "name": { "type": "string", "description": "The name of the resource", @@ -1771,9 +1626,9 @@ "description": "The connection URL to be used for this service", "readOnly": true }, - "authType": { - "$ref": "#/definitions/AuthenticationType", - "description": "The authentication type used by the connection", + "isDefault": { + "type": "boolean", + "description": "Whether the connection is tagged as the default connection of its type", "readOnly": true }, "metadata": { @@ -1785,11 +1640,13 @@ "readOnly": true } }, + "discriminator": "authType", "required": [ + "authType", "name", "type", "target", - "authType", + "isDefault", "metadata" ] }, @@ -1799,9 +1656,11 @@ "enum": [ "AzureOpenAI", "AzureBlob", + "AzureStorageAccount", "CognitiveSearch", "CosmosDB", "ApiKey", + "AppConfig", "AppInsights", "CustomKeys" ], @@ -1817,7 +1676,12 @@ { "name": "AzureBlobStorage", "value": "AzureBlob", - "description": "Azure Blob Storage" + "description": "Azure Blob Storage, with specified container" + }, + { + "name": "AzureStorageAccount", + "value": "AzureStorageAccount", + "description": "Azure Blob Storage, with container not specified (used by Assistants)" }, { "name": "AzureAISearch", @@ -1834,6 +1698,11 @@ "value": "ApiKey", "description": "Generic connection that uses API Key authentication" }, + { + "name": "ApplicationConfiguration", + "value": "AppConfig", + "description": "Application Configuration" + }, { "name": "ApplicationInsights", "value": "AppInsights", @@ -1847,6 +1716,70 @@ ] } }, + "ConnectionWithApiKeyAuth": { + "type": "object", + "description": "A connection with API key authentication", + "properties": { + "credentials": { + "$ref": "#/definitions/CredentialsApiKeyAuth", + "description": "The credentials for API-key authentication", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/Connection" + } + ], + "x-ms-discriminator-value": "ApiKey" + }, + "ConnectionWithCustomAuth": { + "type": "object", + "description": "A connection with custom authentication", + "allOf": [ + { + "$ref": "#/definitions/Connection" + } + ], + "x-ms-discriminator-value": "CustomKeys" + }, + "ConnectionWithEntraIDAuth": { + "type": "object", + "description": "A connection with EntraID authentication (aka `Entra ID passthrough`)", + "allOf": [ + { + "$ref": "#/definitions/Connection" + } + ], + "x-ms-discriminator-value": "AAD" + }, + "ConnectionWithNoAuth": { + "type": "object", + "description": "A connection with no authentication", + "allOf": [ + { + "$ref": "#/definitions/Connection" + } + ], + "x-ms-discriminator-value": "None" + }, + "ConnectionWithSASAuth": { + "type": "object", + "description": "A connection with Shared Access Signature (SAS) authentication", + "properties": { + "credentials": { + "$ref": "#/definitions/CredentialsSASAuth", + "description": "The credentials for SAS authentication", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/Connection" + } + ], + "x-ms-discriminator-value": "SAS" + }, "CosmosDBIndex": { "type": "object", "description": "CosmosDB Vector Store Index Definition", @@ -1881,6 +1814,34 @@ ], "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" }, + "CredentialsApiKeyAuth": { + "type": "object", + "description": "The credentials needed for API key authentication", + "properties": { + "key": { + "type": "string", + "description": "The API key", + "readOnly": true + } + }, + "required": [ + "key" + ] + }, + "CredentialsSASAuth": { + "type": "object", + "description": "The credentials needed for Shared Access Signatures (SAS) authentication", + "properties": { + "SAS": { + "type": "string", + "description": "The Shared Access Signatures (SAS) token", + "readOnly": true + } + }, + "required": [ + "SAS" + ] + }, "DatasetType": { "type": "string", "description": "Enum to determine the type of data.", @@ -2817,25 +2778,6 @@ "format": "int32", "x-ms-parameter-location": "method" }, - "Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent": { - "name": "Repeatability-First-Sent", - "in": "header", - "description": "Specifies the date and time at which the request was first created.", - "required": false, - "type": "string", - "format": "date-time", - "x-ms-parameter-location": "method", - "x-ms-client-name": "repeatabilityFirstSent" - }, - "Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId": { - "name": "Repeatability-Request-ID", - "in": "header", - "description": "An opaque, globally-unique, client-generated string identifier for the request.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "repeatabilityRequestId" - }, "Azure.Core.SkipQueryParameter": { "name": "skip", "in": "query", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json index 26a22e24aa3e..0767c8615a14 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json @@ -55,7 +55,7 @@ "/connections": { "get": { "operationId": "Connections_List", - "description": "List all connections in the project", + "description": "List all connections in the project, without populating connection credentials", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -63,15 +63,17 @@ { "name": "connectionType", "in": "query", - "description": "Specific type of connection to return in list", + "description": "List connections of this specific type", "required": false, "type": "string", "enum": [ "AzureOpenAI", "AzureBlob", + "AzureStorageAccount", "CognitiveSearch", "CosmosDB", "ApiKey", + "AppConfig", "AppInsights", "CustomKeys" ], @@ -87,7 +89,12 @@ { "name": "AzureBlobStorage", "value": "AzureBlob", - "description": "Azure Blob Storage" + "description": "Azure Blob Storage, with specified container" + }, + { + "name": "AzureStorageAccount", + "value": "AzureStorageAccount", + "description": "Azure Blob Storage, with container not specified (used by Assistants)" }, { "name": "AzureAISearch", @@ -104,6 +111,11 @@ "value": "ApiKey", "description": "Generic connection that uses API Key authentication" }, + { + "name": "ApplicationConfiguration", + "value": "AppConfig", + "description": "Application Configuration" + }, { "name": "ApplicationInsights", "value": "AppInsights", @@ -117,6 +129,13 @@ ] } }, + { + "name": "defaultConnection", + "in": "query", + "description": "List connections that are default connections", + "required": false, + "type": "boolean" + }, { "$ref": "#/parameters/Azure.Core.TopQueryParameter" }, @@ -165,7 +184,55 @@ "/connections/{name}": { "get": { "operationId": "Connections_Get", - "description": "Get a connection by name.", + "description": "Get a connection by name, without populating connection credentials", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Connection" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/connections/{name}/withCredentials": { + "get": { + "operationId": "Connections_GetWithCredentials", + "description": "Get a connection by name, with its connection credentials", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -299,53 +366,6 @@ } } }, - "/datasets/{name}/startPendingUpload": { - "post": { - "operationId": "Datasets_StartPendingUpload", - "description": "Start a new pending upload for a dataset. The version id will be generated by the service.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "Parameters for the action", - "required": true, - "schema": { - "$ref": "#/definitions/PendingUploadRequest" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PendingUploadResponse" - } - }, - "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." - } - } - } - } - } - }, "/datasets/{name}/versions": { "get": { "operationId": "Datasets_ListVersions", @@ -440,91 +460,6 @@ "x-ms-pageable": { "nextLinkName": "nextLink" } - }, - "post": { - "operationId": "Datasets_Create", - "description": "Create a new DatasetVersion. The version id will be generated by the service.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the DatasetVersion to create", - "required": true, - "schema": { - "$ref": "#/definitions/DatasetVersion" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/DatasetVersion" - }, - "headers": { - "Repeatability-Result": { - "type": "string", - "description": "Indicates whether the repeatable request was accepted or rejected.", - "enum": [ - "accepted", - "rejected" - ], - "x-ms-enum": { - "name": "RepeatabilityResult", - "modelAsString": false, - "values": [ - { - "name": "accepted", - "value": "accepted", - "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." - }, - { - "name": "rejected", - "value": "rejected", - "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." - } - ] - } - }, - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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." - } - } - } - } } }, "/datasets/{name}/versions/{version}": { @@ -1022,91 +957,6 @@ "x-ms-pageable": { "nextLinkName": "nextLink" } - }, - "post": { - "operationId": "Indexes_Create", - "description": "Create a new Index. The version id will be generated by the service.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the Index to create", - "required": true, - "schema": { - "$ref": "#/definitions/Index" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/Index" - }, - "headers": { - "Repeatability-Result": { - "type": "string", - "description": "Indicates whether the repeatable request was accepted or rejected.", - "enum": [ - "accepted", - "rejected" - ], - "x-ms-enum": { - "name": "RepeatabilityResult", - "modelAsString": false, - "values": [ - { - "name": "accepted", - "value": "accepted", - "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." - }, - { - "name": "rejected", - "value": "rejected", - "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." - } - ] - } - }, - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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." - } - } - } - } } }, "/indexes/{name}/versions/{version}": { @@ -1406,8 +1256,13 @@ }, "Connection": { "type": "object", - "description": "Response from the listSecrets operation", + "description": "Response from the list and get connections operations", "properties": { + "authType": { + "$ref": "#/definitions/AuthenticationType", + "description": "The authentication type used by the connection", + "readOnly": true + }, "name": { "type": "string", "description": "The name of the resource", @@ -1423,9 +1278,9 @@ "description": "The connection URL to be used for this service", "readOnly": true }, - "authType": { - "$ref": "#/definitions/AuthenticationType", - "description": "The authentication type used by the connection", + "isDefault": { + "type": "boolean", + "description": "Whether the connection is tagged as the default connection of its type", "readOnly": true }, "metadata": { @@ -1437,11 +1292,13 @@ "readOnly": true } }, + "discriminator": "authType", "required": [ + "authType", "name", "type", "target", - "authType", + "isDefault", "metadata" ] }, @@ -1451,9 +1308,11 @@ "enum": [ "AzureOpenAI", "AzureBlob", + "AzureStorageAccount", "CognitiveSearch", "CosmosDB", "ApiKey", + "AppConfig", "AppInsights", "CustomKeys" ], @@ -1469,7 +1328,12 @@ { "name": "AzureBlobStorage", "value": "AzureBlob", - "description": "Azure Blob Storage" + "description": "Azure Blob Storage, with specified container" + }, + { + "name": "AzureStorageAccount", + "value": "AzureStorageAccount", + "description": "Azure Blob Storage, with container not specified (used by Assistants)" }, { "name": "AzureAISearch", @@ -1486,6 +1350,11 @@ "value": "ApiKey", "description": "Generic connection that uses API Key authentication" }, + { + "name": "ApplicationConfiguration", + "value": "AppConfig", + "description": "Application Configuration" + }, { "name": "ApplicationInsights", "value": "AppInsights", @@ -1499,6 +1368,70 @@ ] } }, + "ConnectionWithApiKeyAuth": { + "type": "object", + "description": "A connection with API key authentication", + "properties": { + "credentials": { + "$ref": "#/definitions/CredentialsApiKeyAuth", + "description": "The credentials for API-key authentication", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/Connection" + } + ], + "x-ms-discriminator-value": "ApiKey" + }, + "ConnectionWithCustomAuth": { + "type": "object", + "description": "A connection with custom authentication", + "allOf": [ + { + "$ref": "#/definitions/Connection" + } + ], + "x-ms-discriminator-value": "CustomKeys" + }, + "ConnectionWithEntraIDAuth": { + "type": "object", + "description": "A connection with EntraID authentication (aka `Entra ID passthrough`)", + "allOf": [ + { + "$ref": "#/definitions/Connection" + } + ], + "x-ms-discriminator-value": "AAD" + }, + "ConnectionWithNoAuth": { + "type": "object", + "description": "A connection with no authentication", + "allOf": [ + { + "$ref": "#/definitions/Connection" + } + ], + "x-ms-discriminator-value": "None" + }, + "ConnectionWithSASAuth": { + "type": "object", + "description": "A connection with Shared Access Signature (SAS) authentication", + "properties": { + "credentials": { + "$ref": "#/definitions/CredentialsSASAuth", + "description": "The credentials for SAS authentication", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/Connection" + } + ], + "x-ms-discriminator-value": "SAS" + }, "CosmosDBIndex": { "type": "object", "description": "CosmosDB Vector Store Index Definition", @@ -1533,6 +1466,34 @@ ], "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" }, + "CredentialsApiKeyAuth": { + "type": "object", + "description": "The credentials needed for API key authentication", + "properties": { + "key": { + "type": "string", + "description": "The API key", + "readOnly": true + } + }, + "required": [ + "key" + ] + }, + "CredentialsSASAuth": { + "type": "object", + "description": "The credentials needed for Shared Access Signatures (SAS) authentication", + "properties": { + "SAS": { + "type": "string", + "description": "The Shared Access Signatures (SAS) token", + "readOnly": true + } + }, + "required": [ + "SAS" + ] + }, "DatasetType": { "type": "string", "description": "Enum to determine the type of data.", @@ -2192,25 +2153,6 @@ "format": "int32", "x-ms-parameter-location": "method" }, - "Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent": { - "name": "Repeatability-First-Sent", - "in": "header", - "description": "Specifies the date and time at which the request was first created.", - "required": false, - "type": "string", - "format": "date-time", - "x-ms-parameter-location": "method", - "x-ms-client-name": "repeatabilityFirstSent" - }, - "Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId": { - "name": "Repeatability-Request-ID", - "in": "header", - "description": "An opaque, globally-unique, client-generated string identifier for the request.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "repeatabilityRequestId" - }, "Azure.Core.SkipQueryParameter": { "name": "skip", "in": "query", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json index e06cfac1e6cc..ff677de4cabb 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json @@ -55,7 +55,7 @@ "/connections": { "get": { "operationId": "Connections_List", - "description": "List all connections in the project", + "description": "List all connections in the project, without populating connection credentials", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -63,15 +63,17 @@ { "name": "connectionType", "in": "query", - "description": "Specific type of connection to return in list", + "description": "List connections of this specific type", "required": false, "type": "string", "enum": [ "AzureOpenAI", "AzureBlob", + "AzureStorageAccount", "CognitiveSearch", "CosmosDB", "ApiKey", + "AppConfig", "AppInsights", "CustomKeys" ], @@ -87,7 +89,12 @@ { "name": "AzureBlobStorage", "value": "AzureBlob", - "description": "Azure Blob Storage" + "description": "Azure Blob Storage, with specified container" + }, + { + "name": "AzureStorageAccount", + "value": "AzureStorageAccount", + "description": "Azure Blob Storage, with container not specified (used by Assistants)" }, { "name": "AzureAISearch", @@ -104,6 +111,11 @@ "value": "ApiKey", "description": "Generic connection that uses API Key authentication" }, + { + "name": "ApplicationConfiguration", + "value": "AppConfig", + "description": "Application Configuration" + }, { "name": "ApplicationInsights", "value": "AppInsights", @@ -117,6 +129,13 @@ ] } }, + { + "name": "defaultConnection", + "in": "query", + "description": "List connections that are default connections", + "required": false, + "type": "boolean" + }, { "$ref": "#/parameters/Azure.Core.TopQueryParameter" }, @@ -165,7 +184,55 @@ "/connections/{name}": { "get": { "operationId": "Connections_Get", - "description": "Get a connection by name.", + "description": "Get a connection by name, without populating connection credentials", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Connection" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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." + } + } + } + } + } + }, + "/connections/{name}/withCredentials": { + "get": { + "operationId": "Connections_GetWithCredentials", + "description": "Get a connection by name, with its connection credentials", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -299,53 +366,6 @@ } } }, - "/datasets/{name}/startPendingUpload": { - "post": { - "operationId": "Datasets_StartPendingUpload", - "description": "Start a new pending upload for a dataset. The version id will be generated by the service.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "Parameters for the action", - "required": true, - "schema": { - "$ref": "#/definitions/PendingUploadRequest" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PendingUploadResponse" - } - }, - "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." - } - } - } - } - } - }, "/datasets/{name}/versions": { "get": { "operationId": "Datasets_ListVersions", @@ -440,91 +460,6 @@ "x-ms-pageable": { "nextLinkName": "nextLink" } - }, - "post": { - "operationId": "Datasets_Create", - "description": "Create a new DatasetVersion. The version id will be generated by the service.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the DatasetVersion to create", - "required": true, - "schema": { - "$ref": "#/definitions/DatasetVersion" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/DatasetVersion" - }, - "headers": { - "Repeatability-Result": { - "type": "string", - "description": "Indicates whether the repeatable request was accepted or rejected.", - "enum": [ - "accepted", - "rejected" - ], - "x-ms-enum": { - "name": "RepeatabilityResult", - "modelAsString": false, - "values": [ - { - "name": "accepted", - "value": "accepted", - "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." - }, - { - "name": "rejected", - "value": "rejected", - "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." - } - ] - } - }, - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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." - } - } - } - } } }, "/datasets/{name}/versions/{version}": { @@ -1022,91 +957,6 @@ "x-ms-pageable": { "nextLinkName": "nextLink" } - }, - "post": { - "operationId": "Indexes_Create", - "description": "Create a new Index. The version id will be generated by the service.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId" - }, - { - "$ref": "#/parameters/Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the Index to create", - "required": true, - "schema": { - "$ref": "#/definitions/Index" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/Index" - }, - "headers": { - "Repeatability-Result": { - "type": "string", - "description": "Indicates whether the repeatable request was accepted or rejected.", - "enum": [ - "accepted", - "rejected" - ], - "x-ms-enum": { - "name": "RepeatabilityResult", - "modelAsString": false, - "values": [ - { - "name": "accepted", - "value": "accepted", - "description": "If the request was accepted and the server guarantees that the server state reflects a single execution of the operation." - }, - { - "name": "rejected", - "value": "rejected", - "description": "If the request was rejected because the combination of Repeatability-First-Sent and Repeatability-Request-ID were invalid\nor because the Repeatability-First-Sent value was outside the range of values held by the server." - } - ] - } - }, - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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." - } - } - } - } } }, "/indexes/{name}/versions/{version}": { @@ -1406,8 +1256,13 @@ }, "Connection": { "type": "object", - "description": "Response from the listSecrets operation", + "description": "Response from the list and get connections operations", "properties": { + "authType": { + "$ref": "#/definitions/AuthenticationType", + "description": "The authentication type used by the connection", + "readOnly": true + }, "name": { "type": "string", "description": "The name of the resource", @@ -1423,9 +1278,9 @@ "description": "The connection URL to be used for this service", "readOnly": true }, - "authType": { - "$ref": "#/definitions/AuthenticationType", - "description": "The authentication type used by the connection", + "isDefault": { + "type": "boolean", + "description": "Whether the connection is tagged as the default connection of its type", "readOnly": true }, "metadata": { @@ -1437,11 +1292,13 @@ "readOnly": true } }, + "discriminator": "authType", "required": [ + "authType", "name", "type", "target", - "authType", + "isDefault", "metadata" ] }, @@ -1451,9 +1308,11 @@ "enum": [ "AzureOpenAI", "AzureBlob", + "AzureStorageAccount", "CognitiveSearch", "CosmosDB", "ApiKey", + "AppConfig", "AppInsights", "CustomKeys" ], @@ -1469,7 +1328,12 @@ { "name": "AzureBlobStorage", "value": "AzureBlob", - "description": "Azure Blob Storage" + "description": "Azure Blob Storage, with specified container" + }, + { + "name": "AzureStorageAccount", + "value": "AzureStorageAccount", + "description": "Azure Blob Storage, with container not specified (used by Assistants)" }, { "name": "AzureAISearch", @@ -1486,6 +1350,11 @@ "value": "ApiKey", "description": "Generic connection that uses API Key authentication" }, + { + "name": "ApplicationConfiguration", + "value": "AppConfig", + "description": "Application Configuration" + }, { "name": "ApplicationInsights", "value": "AppInsights", @@ -1499,6 +1368,70 @@ ] } }, + "ConnectionWithApiKeyAuth": { + "type": "object", + "description": "A connection with API key authentication", + "properties": { + "credentials": { + "$ref": "#/definitions/CredentialsApiKeyAuth", + "description": "The credentials for API-key authentication", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/Connection" + } + ], + "x-ms-discriminator-value": "ApiKey" + }, + "ConnectionWithCustomAuth": { + "type": "object", + "description": "A connection with custom authentication", + "allOf": [ + { + "$ref": "#/definitions/Connection" + } + ], + "x-ms-discriminator-value": "CustomKeys" + }, + "ConnectionWithEntraIDAuth": { + "type": "object", + "description": "A connection with EntraID authentication (aka `Entra ID passthrough`)", + "allOf": [ + { + "$ref": "#/definitions/Connection" + } + ], + "x-ms-discriminator-value": "AAD" + }, + "ConnectionWithNoAuth": { + "type": "object", + "description": "A connection with no authentication", + "allOf": [ + { + "$ref": "#/definitions/Connection" + } + ], + "x-ms-discriminator-value": "None" + }, + "ConnectionWithSASAuth": { + "type": "object", + "description": "A connection with Shared Access Signature (SAS) authentication", + "properties": { + "credentials": { + "$ref": "#/definitions/CredentialsSASAuth", + "description": "The credentials for SAS authentication", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/Connection" + } + ], + "x-ms-discriminator-value": "SAS" + }, "CosmosDBIndex": { "type": "object", "description": "CosmosDB Vector Store Index Definition", @@ -1533,6 +1466,34 @@ ], "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" }, + "CredentialsApiKeyAuth": { + "type": "object", + "description": "The credentials needed for API key authentication", + "properties": { + "key": { + "type": "string", + "description": "The API key", + "readOnly": true + } + }, + "required": [ + "key" + ] + }, + "CredentialsSASAuth": { + "type": "object", + "description": "The credentials needed for Shared Access Signatures (SAS) authentication", + "properties": { + "SAS": { + "type": "string", + "description": "The Shared Access Signatures (SAS) token", + "readOnly": true + } + }, + "required": [ + "SAS" + ] + }, "DatasetType": { "type": "string", "description": "Enum to determine the type of data.", @@ -2192,25 +2153,6 @@ "format": "int32", "x-ms-parameter-location": "method" }, - "Azure.Core.RepeatabilityRequestHeaders.repeatabilityFirstSent": { - "name": "Repeatability-First-Sent", - "in": "header", - "description": "Specifies the date and time at which the request was first created.", - "required": false, - "type": "string", - "format": "date-time", - "x-ms-parameter-location": "method", - "x-ms-client-name": "repeatabilityFirstSent" - }, - "Azure.Core.RepeatabilityRequestHeaders.repeatabilityRequestId": { - "name": "Repeatability-Request-ID", - "in": "header", - "description": "An opaque, globally-unique, client-generated string identifier for the request.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "repeatabilityRequestId" - }, "Azure.Core.SkipQueryParameter": { "name": "skip", "in": "query", From 124f9c4526d56c1da3b0a8ad59673e16178423d8 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Wed, 9 Apr 2025 18:08:32 -0700 Subject: [PATCH 098/143] Update swagger files --- .../azure-ai-projects-1dp.json | 258 +++++++++--------- .../2025-05-01/azure-ai-projects-1dp.json | 254 +++++++++-------- .../stable/latest/azure-ai-projects-1dp.json | 254 +++++++++-------- 3 files changed, 371 insertions(+), 395 deletions(-) diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index acdb96f527ee..7f03c21acdba 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -1386,6 +1386,23 @@ } }, "definitions": { + "ApiKeyCredentials": { + "type": "object", + "description": "API Key Credential definition", + "properties": { + "apiKey": { + "type": "string", + "description": "API Key", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/BaseCredentials" + } + ], + "x-ms-discriminator-value": "ApiKey" + }, "AttackStrategy": { "type": "string", "description": "Strategies for attacks.", @@ -1452,48 +1469,6 @@ ] } }, - "AuthenticationType": { - "type": "string", - "description": "The authentication type used by the connection", - "enum": [ - "ApiKey", - "AAD", - "SAS", - "CustomKeys", - "None" - ], - "x-ms-enum": { - "name": "AuthenticationType", - "modelAsString": true, - "values": [ - { - "name": "apiKey", - "value": "ApiKey", - "description": "API Key authentication" - }, - { - "name": "entraId", - "value": "AAD", - "description": "Entra ID authentication (formerly known as AAD)" - }, - { - "name": "SAS", - "value": "SAS", - "description": "Shared Access Signature (SAS) authentication" - }, - { - "name": "custom", - "value": "CustomKeys", - "description": "Custom authentication" - }, - { - "name": "None", - "value": "None", - "description": "No authentication" - } - ] - } - }, "Azure.Core.Foundations.Error": { "type": "object", "description": "The error object.", @@ -1579,6 +1554,21 @@ ], "x-ms-discriminator-value": "AzureSearch" }, + "BaseCredentials": { + "type": "object", + "description": "A base class for connection credentials", + "properties": { + "authType": { + "$ref": "#/definitions/CredentialType", + "description": "The type of credential used by the connection", + "readOnly": true + } + }, + "discriminator": "authType", + "required": [ + "authType" + ] + }, "BlobReferenceForConsumption": { "type": "object", "description": "Represents a reference to a blob for consumption", @@ -1607,9 +1597,8 @@ "description": "Response from the list and get connections operations", "properties": { "authType": { - "$ref": "#/definitions/AuthenticationType", - "description": "The authentication type used by the connection", - "readOnly": true + "type": "string", + "description": "Discriminator property for Connection." }, "name": { "type": "string", @@ -1631,6 +1620,11 @@ "description": "Whether the connection is tagged as the default connection of its type", "readOnly": true }, + "credentials": { + "$ref": "#/definitions/BaseCredentials", + "description": "The credentials used by the connection", + "readOnly": true + }, "metadata": { "type": "object", "description": "Metadata of the connection", @@ -1647,6 +1641,7 @@ "type", "target", "isDefault", + "credentials", "metadata" ] }, @@ -1716,70 +1711,6 @@ ] } }, - "ConnectionWithApiKeyAuth": { - "type": "object", - "description": "A connection with API key authentication", - "properties": { - "credentials": { - "$ref": "#/definitions/CredentialsApiKeyAuth", - "description": "The credentials for API-key authentication", - "readOnly": true - } - }, - "allOf": [ - { - "$ref": "#/definitions/Connection" - } - ], - "x-ms-discriminator-value": "ApiKey" - }, - "ConnectionWithCustomAuth": { - "type": "object", - "description": "A connection with custom authentication", - "allOf": [ - { - "$ref": "#/definitions/Connection" - } - ], - "x-ms-discriminator-value": "CustomKeys" - }, - "ConnectionWithEntraIDAuth": { - "type": "object", - "description": "A connection with EntraID authentication (aka `Entra ID passthrough`)", - "allOf": [ - { - "$ref": "#/definitions/Connection" - } - ], - "x-ms-discriminator-value": "AAD" - }, - "ConnectionWithNoAuth": { - "type": "object", - "description": "A connection with no authentication", - "allOf": [ - { - "$ref": "#/definitions/Connection" - } - ], - "x-ms-discriminator-value": "None" - }, - "ConnectionWithSASAuth": { - "type": "object", - "description": "A connection with Shared Access Signature (SAS) authentication", - "properties": { - "credentials": { - "$ref": "#/definitions/CredentialsSASAuth", - "description": "The credentials for SAS authentication", - "readOnly": true - } - }, - "allOf": [ - { - "$ref": "#/definitions/Connection" - } - ], - "x-ms-discriminator-value": "SAS" - }, "CosmosDBIndex": { "type": "object", "description": "CosmosDB Vector Store Index Definition", @@ -1814,33 +1745,57 @@ ], "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" }, - "CredentialsApiKeyAuth": { - "type": "object", - "description": "The credentials needed for API key authentication", - "properties": { - "key": { - "type": "string", - "description": "The API key", - "readOnly": true - } - }, - "required": [ - "key" - ] + "CredentialType": { + "type": "string", + "description": "The credential type used by the connection", + "enum": [ + "ApiKey", + "AAD", + "SAS", + "CustomKeys", + "None" + ], + "x-ms-enum": { + "name": "CredentialType", + "modelAsString": true, + "values": [ + { + "name": "apiKey", + "value": "ApiKey", + "description": "API Key credential" + }, + { + "name": "entraId", + "value": "AAD", + "description": "Entra ID credential (formerly known as AAD)" + }, + { + "name": "SAS", + "value": "SAS", + "description": "Shared Access Signature (SAS) credential" + }, + { + "name": "custom", + "value": "CustomKeys", + "description": "Custom credential" + }, + { + "name": "None", + "value": "None", + "description": "No credential" + } + ] + } }, - "CredentialsSASAuth": { + "CustomCredential": { "type": "object", - "description": "The credentials needed for Shared Access Signatures (SAS) authentication", - "properties": { - "SAS": { - "type": "string", - "description": "The Shared Access Signatures (SAS) token", - "readOnly": true + "description": "Custom credential defintion", + "allOf": [ + { + "$ref": "#/definitions/BaseCredentials" } - }, - "required": [ - "SAS" - ] + ], + "x-ms-discriminator-value": "CustomKeys" }, "DatasetType": { "type": "string", @@ -1988,6 +1943,16 @@ "embeddingField" ] }, + "EntraIDCredentials": { + "type": "object", + "description": "Entra ID credential definition", + "allOf": [ + { + "$ref": "#/definitions/BaseCredentials" + } + ], + "x-ms-discriminator-value": "AAD" + }, "Evaluation": { "type": "object", "description": "Evaluation Definition", @@ -2334,6 +2299,16 @@ ], "x-ms-discriminator-value": "ModelDeployment" }, + "NoAuthenticationCredentials": { + "type": "object", + "description": "Credentials that do not require authentication", + "allOf": [ + { + "$ref": "#/definitions/BaseCredentials" + } + ], + "x-ms-discriminator-value": "None" + }, "PagedConnection": { "type": "object", "description": "Paged collection of Connection items", @@ -2687,6 +2662,23 @@ ] } }, + "SASCredentials": { + "type": "object", + "description": "Shared Access Signature (SAS) credential definition", + "properties": { + "sasToken": { + "type": "string", + "description": "SAS token", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/BaseCredentials" + } + ], + "x-ms-discriminator-value": "SAS" + }, "SasCredential": { "type": "object", "description": "SAS Credential definition", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json index 0767c8615a14..f9d8e07f0c30 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json @@ -1104,47 +1104,22 @@ } }, "definitions": { - "AuthenticationType": { - "type": "string", - "description": "The authentication type used by the connection", - "enum": [ - "ApiKey", - "AAD", - "SAS", - "CustomKeys", - "None" + "ApiKeyCredentials": { + "type": "object", + "description": "API Key Credential definition", + "properties": { + "apiKey": { + "type": "string", + "description": "API Key", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/BaseCredentials" + } ], - "x-ms-enum": { - "name": "AuthenticationType", - "modelAsString": true, - "values": [ - { - "name": "apiKey", - "value": "ApiKey", - "description": "API Key authentication" - }, - { - "name": "entraId", - "value": "AAD", - "description": "Entra ID authentication (formerly known as AAD)" - }, - { - "name": "SAS", - "value": "SAS", - "description": "Shared Access Signature (SAS) authentication" - }, - { - "name": "custom", - "value": "CustomKeys", - "description": "Custom authentication" - }, - { - "name": "None", - "value": "None", - "description": "No authentication" - } - ] - } + "x-ms-discriminator-value": "ApiKey" }, "Azure.Core.Foundations.Error": { "type": "object", @@ -1231,6 +1206,21 @@ ], "x-ms-discriminator-value": "AzureSearch" }, + "BaseCredentials": { + "type": "object", + "description": "A base class for connection credentials", + "properties": { + "authType": { + "$ref": "#/definitions/CredentialType", + "description": "The type of credential used by the connection", + "readOnly": true + } + }, + "discriminator": "authType", + "required": [ + "authType" + ] + }, "BlobReferenceForConsumption": { "type": "object", "description": "Represents a reference to a blob for consumption", @@ -1259,9 +1249,8 @@ "description": "Response from the list and get connections operations", "properties": { "authType": { - "$ref": "#/definitions/AuthenticationType", - "description": "The authentication type used by the connection", - "readOnly": true + "type": "string", + "description": "Discriminator property for Connection." }, "name": { "type": "string", @@ -1283,6 +1272,11 @@ "description": "Whether the connection is tagged as the default connection of its type", "readOnly": true }, + "credentials": { + "$ref": "#/definitions/BaseCredentials", + "description": "The credentials used by the connection", + "readOnly": true + }, "metadata": { "type": "object", "description": "Metadata of the connection", @@ -1299,6 +1293,7 @@ "type", "target", "isDefault", + "credentials", "metadata" ] }, @@ -1368,70 +1363,6 @@ ] } }, - "ConnectionWithApiKeyAuth": { - "type": "object", - "description": "A connection with API key authentication", - "properties": { - "credentials": { - "$ref": "#/definitions/CredentialsApiKeyAuth", - "description": "The credentials for API-key authentication", - "readOnly": true - } - }, - "allOf": [ - { - "$ref": "#/definitions/Connection" - } - ], - "x-ms-discriminator-value": "ApiKey" - }, - "ConnectionWithCustomAuth": { - "type": "object", - "description": "A connection with custom authentication", - "allOf": [ - { - "$ref": "#/definitions/Connection" - } - ], - "x-ms-discriminator-value": "CustomKeys" - }, - "ConnectionWithEntraIDAuth": { - "type": "object", - "description": "A connection with EntraID authentication (aka `Entra ID passthrough`)", - "allOf": [ - { - "$ref": "#/definitions/Connection" - } - ], - "x-ms-discriminator-value": "AAD" - }, - "ConnectionWithNoAuth": { - "type": "object", - "description": "A connection with no authentication", - "allOf": [ - { - "$ref": "#/definitions/Connection" - } - ], - "x-ms-discriminator-value": "None" - }, - "ConnectionWithSASAuth": { - "type": "object", - "description": "A connection with Shared Access Signature (SAS) authentication", - "properties": { - "credentials": { - "$ref": "#/definitions/CredentialsSASAuth", - "description": "The credentials for SAS authentication", - "readOnly": true - } - }, - "allOf": [ - { - "$ref": "#/definitions/Connection" - } - ], - "x-ms-discriminator-value": "SAS" - }, "CosmosDBIndex": { "type": "object", "description": "CosmosDB Vector Store Index Definition", @@ -1466,33 +1397,57 @@ ], "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" }, - "CredentialsApiKeyAuth": { - "type": "object", - "description": "The credentials needed for API key authentication", - "properties": { - "key": { - "type": "string", - "description": "The API key", - "readOnly": true - } - }, - "required": [ - "key" - ] + "CredentialType": { + "type": "string", + "description": "The credential type used by the connection", + "enum": [ + "ApiKey", + "AAD", + "SAS", + "CustomKeys", + "None" + ], + "x-ms-enum": { + "name": "CredentialType", + "modelAsString": true, + "values": [ + { + "name": "apiKey", + "value": "ApiKey", + "description": "API Key credential" + }, + { + "name": "entraId", + "value": "AAD", + "description": "Entra ID credential (formerly known as AAD)" + }, + { + "name": "SAS", + "value": "SAS", + "description": "Shared Access Signature (SAS) credential" + }, + { + "name": "custom", + "value": "CustomKeys", + "description": "Custom credential" + }, + { + "name": "None", + "value": "None", + "description": "No credential" + } + ] + } }, - "CredentialsSASAuth": { + "CustomCredential": { "type": "object", - "description": "The credentials needed for Shared Access Signatures (SAS) authentication", - "properties": { - "SAS": { - "type": "string", - "description": "The Shared Access Signatures (SAS) token", - "readOnly": true + "description": "Custom credential defintion", + "allOf": [ + { + "$ref": "#/definitions/BaseCredentials" } - }, - "required": [ - "SAS" - ] + ], + "x-ms-discriminator-value": "CustomKeys" }, "DatasetType": { "type": "string", @@ -1640,6 +1595,16 @@ "embeddingField" ] }, + "EntraIDCredentials": { + "type": "object", + "description": "Entra ID credential definition", + "allOf": [ + { + "$ref": "#/definitions/BaseCredentials" + } + ], + "x-ms-discriminator-value": "AAD" + }, "FileDatasetVersion": { "type": "object", "description": "FileDatasetVersion Definition", @@ -1874,6 +1839,16 @@ ], "x-ms-discriminator-value": "ModelDeployment" }, + "NoAuthenticationCredentials": { + "type": "object", + "description": "Credentials that do not require authentication", + "allOf": [ + { + "$ref": "#/definitions/BaseCredentials" + } + ], + "x-ms-discriminator-value": "None" + }, "PagedConnection": { "type": "object", "description": "Paged collection of Connection items", @@ -2062,6 +2037,23 @@ ] } }, + "SASCredentials": { + "type": "object", + "description": "Shared Access Signature (SAS) credential definition", + "properties": { + "sasToken": { + "type": "string", + "description": "SAS token", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/BaseCredentials" + } + ], + "x-ms-discriminator-value": "SAS" + }, "SasCredential": { "type": "object", "description": "SAS Credential definition", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json index ff677de4cabb..1e7bbaf6d488 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json @@ -1104,47 +1104,22 @@ } }, "definitions": { - "AuthenticationType": { - "type": "string", - "description": "The authentication type used by the connection", - "enum": [ - "ApiKey", - "AAD", - "SAS", - "CustomKeys", - "None" + "ApiKeyCredentials": { + "type": "object", + "description": "API Key Credential definition", + "properties": { + "apiKey": { + "type": "string", + "description": "API Key", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/BaseCredentials" + } ], - "x-ms-enum": { - "name": "AuthenticationType", - "modelAsString": true, - "values": [ - { - "name": "apiKey", - "value": "ApiKey", - "description": "API Key authentication" - }, - { - "name": "entraId", - "value": "AAD", - "description": "Entra ID authentication (formerly known as AAD)" - }, - { - "name": "SAS", - "value": "SAS", - "description": "Shared Access Signature (SAS) authentication" - }, - { - "name": "custom", - "value": "CustomKeys", - "description": "Custom authentication" - }, - { - "name": "None", - "value": "None", - "description": "No authentication" - } - ] - } + "x-ms-discriminator-value": "ApiKey" }, "Azure.Core.Foundations.Error": { "type": "object", @@ -1231,6 +1206,21 @@ ], "x-ms-discriminator-value": "AzureSearch" }, + "BaseCredentials": { + "type": "object", + "description": "A base class for connection credentials", + "properties": { + "authType": { + "$ref": "#/definitions/CredentialType", + "description": "The type of credential used by the connection", + "readOnly": true + } + }, + "discriminator": "authType", + "required": [ + "authType" + ] + }, "BlobReferenceForConsumption": { "type": "object", "description": "Represents a reference to a blob for consumption", @@ -1259,9 +1249,8 @@ "description": "Response from the list and get connections operations", "properties": { "authType": { - "$ref": "#/definitions/AuthenticationType", - "description": "The authentication type used by the connection", - "readOnly": true + "type": "string", + "description": "Discriminator property for Connection." }, "name": { "type": "string", @@ -1283,6 +1272,11 @@ "description": "Whether the connection is tagged as the default connection of its type", "readOnly": true }, + "credentials": { + "$ref": "#/definitions/BaseCredentials", + "description": "The credentials used by the connection", + "readOnly": true + }, "metadata": { "type": "object", "description": "Metadata of the connection", @@ -1299,6 +1293,7 @@ "type", "target", "isDefault", + "credentials", "metadata" ] }, @@ -1368,70 +1363,6 @@ ] } }, - "ConnectionWithApiKeyAuth": { - "type": "object", - "description": "A connection with API key authentication", - "properties": { - "credentials": { - "$ref": "#/definitions/CredentialsApiKeyAuth", - "description": "The credentials for API-key authentication", - "readOnly": true - } - }, - "allOf": [ - { - "$ref": "#/definitions/Connection" - } - ], - "x-ms-discriminator-value": "ApiKey" - }, - "ConnectionWithCustomAuth": { - "type": "object", - "description": "A connection with custom authentication", - "allOf": [ - { - "$ref": "#/definitions/Connection" - } - ], - "x-ms-discriminator-value": "CustomKeys" - }, - "ConnectionWithEntraIDAuth": { - "type": "object", - "description": "A connection with EntraID authentication (aka `Entra ID passthrough`)", - "allOf": [ - { - "$ref": "#/definitions/Connection" - } - ], - "x-ms-discriminator-value": "AAD" - }, - "ConnectionWithNoAuth": { - "type": "object", - "description": "A connection with no authentication", - "allOf": [ - { - "$ref": "#/definitions/Connection" - } - ], - "x-ms-discriminator-value": "None" - }, - "ConnectionWithSASAuth": { - "type": "object", - "description": "A connection with Shared Access Signature (SAS) authentication", - "properties": { - "credentials": { - "$ref": "#/definitions/CredentialsSASAuth", - "description": "The credentials for SAS authentication", - "readOnly": true - } - }, - "allOf": [ - { - "$ref": "#/definitions/Connection" - } - ], - "x-ms-discriminator-value": "SAS" - }, "CosmosDBIndex": { "type": "object", "description": "CosmosDB Vector Store Index Definition", @@ -1466,33 +1397,57 @@ ], "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" }, - "CredentialsApiKeyAuth": { - "type": "object", - "description": "The credentials needed for API key authentication", - "properties": { - "key": { - "type": "string", - "description": "The API key", - "readOnly": true - } - }, - "required": [ - "key" - ] + "CredentialType": { + "type": "string", + "description": "The credential type used by the connection", + "enum": [ + "ApiKey", + "AAD", + "SAS", + "CustomKeys", + "None" + ], + "x-ms-enum": { + "name": "CredentialType", + "modelAsString": true, + "values": [ + { + "name": "apiKey", + "value": "ApiKey", + "description": "API Key credential" + }, + { + "name": "entraId", + "value": "AAD", + "description": "Entra ID credential (formerly known as AAD)" + }, + { + "name": "SAS", + "value": "SAS", + "description": "Shared Access Signature (SAS) credential" + }, + { + "name": "custom", + "value": "CustomKeys", + "description": "Custom credential" + }, + { + "name": "None", + "value": "None", + "description": "No credential" + } + ] + } }, - "CredentialsSASAuth": { + "CustomCredential": { "type": "object", - "description": "The credentials needed for Shared Access Signatures (SAS) authentication", - "properties": { - "SAS": { - "type": "string", - "description": "The Shared Access Signatures (SAS) token", - "readOnly": true + "description": "Custom credential defintion", + "allOf": [ + { + "$ref": "#/definitions/BaseCredentials" } - }, - "required": [ - "SAS" - ] + ], + "x-ms-discriminator-value": "CustomKeys" }, "DatasetType": { "type": "string", @@ -1640,6 +1595,16 @@ "embeddingField" ] }, + "EntraIDCredentials": { + "type": "object", + "description": "Entra ID credential definition", + "allOf": [ + { + "$ref": "#/definitions/BaseCredentials" + } + ], + "x-ms-discriminator-value": "AAD" + }, "FileDatasetVersion": { "type": "object", "description": "FileDatasetVersion Definition", @@ -1874,6 +1839,16 @@ ], "x-ms-discriminator-value": "ModelDeployment" }, + "NoAuthenticationCredentials": { + "type": "object", + "description": "Credentials that do not require authentication", + "allOf": [ + { + "$ref": "#/definitions/BaseCredentials" + } + ], + "x-ms-discriminator-value": "None" + }, "PagedConnection": { "type": "object", "description": "Paged collection of Connection items", @@ -2062,6 +2037,23 @@ ] } }, + "SASCredentials": { + "type": "object", + "description": "Shared Access Signature (SAS) credential definition", + "properties": { + "sasToken": { + "type": "string", + "description": "SAS token", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/BaseCredentials" + } + ], + "x-ms-discriminator-value": "SAS" + }, "SasCredential": { "type": "object", "description": "SAS Credential definition", From 6808e705e4b272b3eb1edd29ff7df92c3658131c Mon Sep 17 00:00:00 2001 From: Andrew Schonhoffer Date: Thu, 10 Apr 2025 11:00:59 -0400 Subject: [PATCH 099/143] Get download sas API (#33845) * Get download sas API * Update specification/ai/Azure.AI.Projects/datasets/routes.tsp Co-authored-by: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> * Update specification/ai/Azure.AI.Projects/datasets/routes.tsp Co-authored-by: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> --------- Co-authored-by: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> --- specification/ai/Azure.AI.Projects/common/models.tsp | 6 ++++++ .../ai/Azure.AI.Projects/datasets/routes.tsp | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/specification/ai/Azure.AI.Projects/common/models.tsp b/specification/ai/Azure.AI.Projects/common/models.tsp index ae84f9603d46..d7dc89981e25 100644 --- a/specification/ai/Azure.AI.Projects/common/models.tsp +++ b/specification/ai/Azure.AI.Projects/common/models.tsp @@ -138,3 +138,9 @@ model BlobReferenceForConsumption { @doc("Credential info to access the storage account.") credential: SasCredential; } + +@doc("Represents a reference to a blob for consumption") +model AssetCredentialResponse { + @doc("Credential info to access the storage account.") + blobReferenceForConsumption: BlobReferenceForConsumption; +} diff --git a/specification/ai/Azure.AI.Projects/datasets/routes.tsp b/specification/ai/Azure.AI.Projects/datasets/routes.tsp index 5db8e1c99935..cbf22eba4739 100644 --- a/specification/ai/Azure.AI.Projects/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/routes.tsp @@ -57,4 +57,16 @@ interface Datasets PendingUploadResponse >; */ + + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("Get download sas for dataset version.") + @post + @Rest.action("credentials") + @Rest.actionSeparator("/") + getCredentials is ServicePatterns.VersionedResourceAction< + DatasetVersion, + {}, + AssetCredentialResponse + >; } From 158c8057495e7e18ee667cf9916ff0d47549a4e4 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Fri, 11 Apr 2025 13:24:30 -0400 Subject: [PATCH 100/143] updated swaggers (#33898) --- .../azure-ai-projects-1dp.json | 67 +++++++++++++++++++ .../2025-05-01/azure-ai-projects-1dp.json | 67 +++++++++++++++++++ .../stable/latest/azure-ai-projects-1dp.json | 67 +++++++++++++++++++ 3 files changed, 201 insertions(+) diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index 7f03c21acdba..07c1ebad19f7 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -605,6 +605,60 @@ } } }, + "/datasets/{name}/versions/{version}/credentials": { + "post": { + "operationId": "Datasets_GetCredentials", + "description": "Get download sas for dataset version.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the DatasetVersion to operate on.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "Parameters for the action", + "required": true, + "schema": { + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/AssetCredentialResponse" + } + }, + "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." + } + } + } + } + } + }, "/datasets/{name}/versions/{version}/startPendingUpload": { "post": { "operationId": "Datasets_StartPendingUploadVersion", @@ -1403,6 +1457,19 @@ ], "x-ms-discriminator-value": "ApiKey" }, + "AssetCredentialResponse": { + "type": "object", + "description": "Represents a reference to a blob for consumption", + "properties": { + "blobReferenceForConsumption": { + "$ref": "#/definitions/BlobReferenceForConsumption", + "description": "Credential info to access the storage account." + } + }, + "required": [ + "blobReferenceForConsumption" + ] + }, "AttackStrategy": { "type": "string", "description": "Strategies for attacks.", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json index f9d8e07f0c30..7c1b91502f14 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json @@ -605,6 +605,60 @@ } } }, + "/datasets/{name}/versions/{version}/credentials": { + "post": { + "operationId": "Datasets_GetCredentials", + "description": "Get download sas for dataset version.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the DatasetVersion to operate on.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "Parameters for the action", + "required": true, + "schema": { + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/AssetCredentialResponse" + } + }, + "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." + } + } + } + } + } + }, "/datasets/{name}/versions/{version}/startPendingUpload": { "post": { "operationId": "Datasets_StartPendingUploadVersion", @@ -1121,6 +1175,19 @@ ], "x-ms-discriminator-value": "ApiKey" }, + "AssetCredentialResponse": { + "type": "object", + "description": "Represents a reference to a blob for consumption", + "properties": { + "blobReferenceForConsumption": { + "$ref": "#/definitions/BlobReferenceForConsumption", + "description": "Credential info to access the storage account." + } + }, + "required": [ + "blobReferenceForConsumption" + ] + }, "Azure.Core.Foundations.Error": { "type": "object", "description": "The error object.", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json index 1e7bbaf6d488..31fb0938415a 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json @@ -605,6 +605,60 @@ } } }, + "/datasets/{name}/versions/{version}/credentials": { + "post": { + "operationId": "Datasets_GetCredentials", + "description": "Get download sas for dataset version.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the DatasetVersion to operate on.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "Parameters for the action", + "required": true, + "schema": { + "type": "object" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/AssetCredentialResponse" + } + }, + "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." + } + } + } + } + } + }, "/datasets/{name}/versions/{version}/startPendingUpload": { "post": { "operationId": "Datasets_StartPendingUploadVersion", @@ -1121,6 +1175,19 @@ ], "x-ms-discriminator-value": "ApiKey" }, + "AssetCredentialResponse": { + "type": "object", + "description": "Represents a reference to a blob for consumption", + "properties": { + "blobReferenceForConsumption": { + "$ref": "#/definitions/BlobReferenceForConsumption", + "description": "Credential info to access the storage account." + } + }, + "required": [ + "blobReferenceForConsumption" + ] + }, "Azure.Core.Foundations.Error": { "type": "object", "description": "The error object.", From ee660236ef26d2c6a80a574982bd2a81713f0dfe Mon Sep 17 00:00:00 2001 From: Ankit Singhal <30610298+singankit@users.noreply.github.com> Date: Tue, 15 Apr 2025 13:15:07 -0700 Subject: [PATCH 101/143] Users/singankit/evaluation create return 201 (#33946) * Evalaution create is LRO so service returns 201 * Adding updated swagger * 201 for read team run --- specification/ai/Azure.AI.Projects/evaluations/routes.tsp | 2 +- specification/ai/Azure.AI.Projects/red-teams/routes.tsp | 2 +- .../preview/2025-05-15-preview/azure-ai-projects-1dp.json | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp index f98fd2ca0774..082f1a969678 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp @@ -40,6 +40,6 @@ interface Evaluations { @body evaluation: Evaluation; }, - Evaluation + ResourceCreatedResponse >; } diff --git a/specification/ai/Azure.AI.Projects/red-teams/routes.tsp b/specification/ai/Azure.AI.Projects/red-teams/routes.tsp index 5e9531bcf61d..3e2c7258c97c 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/routes.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/routes.tsp @@ -42,6 +42,6 @@ interface RedTeams { @body RedTeam: RedTeam; }, - RedTeam + ResourceCreatedResponse >; } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index 07c1ebad19f7..61de4d68e4d6 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -948,8 +948,8 @@ } ], "responses": { - "200": { - "description": "The request has succeeded.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { "$ref": "#/definitions/Evaluation" } @@ -1417,8 +1417,8 @@ } ], "responses": { - "200": { - "description": "The request has succeeded.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { "$ref": "#/definitions/RedTeam" } From cfbfe4a023e0d196cb49b9cc03ed698ae7e8d07c Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Wed, 16 Apr 2025 14:25:21 -0700 Subject: [PATCH 102/143] Add connection operations with credentials (#33929) --- .../Azure.AI.Projects/connections/models.tsp | 7 - .../Azure.AI.Projects/connections/routes.tsp | 32 +++- .../Azure.AI.Projects/evaluations/models.tsp | 1 - specification/ai/Azure.AI.Projects/main.tsp | 5 +- .../azure-ai-projects-1dp.json | 155 +++++++++++++++++- .../2025-05-01/azure-ai-projects-1dp.json | 155 +++++++++++++++++- .../stable/latest/azure-ai-projects-1dp.json | 155 +++++++++++++++++- 7 files changed, 494 insertions(+), 16 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/connections/models.tsp b/specification/ai/Azure.AI.Projects/connections/models.tsp index e0a059cdd2f6..738de331bb60 100644 --- a/specification/ai/Azure.AI.Projects/connections/models.tsp +++ b/specification/ai/Azure.AI.Projects/connections/models.tsp @@ -15,7 +15,6 @@ namespace Azure.AI.Projects; @discriminator("authType") @added(Versions.v2025_05_01) model Connection { - @doc("The name of the resource") @visibility(Lifecycle.Read) @key("name") @@ -45,7 +44,6 @@ model Connection { @doc("A base class for connection credentials") @discriminator("authType") model BaseCredentials { - @doc("The type of credential used by the connection") @visibility(Lifecycle.Read) authType: CredentialType; @@ -53,7 +51,6 @@ model BaseCredentials { @doc("API Key Credential definition") model ApiKeyCredentials extends BaseCredentials { - @doc("The credentail type") @visibility(Lifecycle.Read) authType: CredentialType.apiKey; @@ -66,7 +63,6 @@ model ApiKeyCredentials extends BaseCredentials { #suppress "@azure-tools/typespec-azure-core/casing-style" @doc("Entra ID credential definition") model EntraIDCredentials extends BaseCredentials { - @doc("The credential type") @visibility(Lifecycle.Read) authType: CredentialType.entraId; @@ -74,7 +70,6 @@ model EntraIDCredentials extends BaseCredentials { @doc("Custom credential defintion") model CustomCredential extends BaseCredentials { - @doc("The credential type ") @visibility(Lifecycle.Read) authType: CredentialType.custom; @@ -83,7 +78,6 @@ model CustomCredential extends BaseCredentials { #suppress "@azure-tools/typespec-azure-core/casing-style" @doc("Shared Access Signature (SAS) credential definition") model SASCredentials extends BaseCredentials { - @doc("The credential type") @visibility(Lifecycle.Read) authType: CredentialType.SAS; @@ -95,7 +89,6 @@ model SASCredentials extends BaseCredentials { @doc("Credentials that do not require authentication") model NoAuthenticationCredentials extends BaseCredentials { - @doc("The credential type ") @visibility(Lifecycle.Read) authType: CredentialType.None; diff --git a/specification/ai/Azure.AI.Projects/connections/routes.tsp b/specification/ai/Azure.AI.Projects/connections/routes.tsp index 5009073c659c..adc1c5a8473b 100644 --- a/specification/ai/Azure.AI.Projects/connections/routes.tsp +++ b/specification/ai/Azure.AI.Projects/connections/routes.tsp @@ -23,9 +23,15 @@ interface Connections { get is ConnectionOperations.ResourceRead; @doc("Get a connection by name, with its connection credentials") + @TypeSpec.Http.post @Rest.actionSeparator("/") @Rest.action("withCredentials") - getWithCredentials is ConnectionOperations.ResourceRead; + getWithCredentials is ConnectionOperations.ResourceAction< + Connection, + {}, + Connection + >; + @doc("List all connections in the project, without populating connection credentials") list is ConnectionOperations.ResourceList< Connection, @@ -41,4 +47,28 @@ interface Connections { ...StandardListQueryParameters; }> >; + + @doc("List all connections in the project, with their connection credentials") + @TypeSpec.Http.post + @Rest.actionSeparator("/") + @Rest.action("withCredentials") + listWithCredentials is ConnectionOperations.ResourceCollectionAction< + Connection, + { + @doc("List connections of this specific type") + @query("connectionType") + connectionType?: ConnectionType; + + @doc("List connections that are default connections") + @query("defaultConnection") + defaultConnection?: boolean; + + ...StandardListQueryParameters; + }, + Internal.ConnectionPaged + >; +} + +namespace Internal { + model ConnectionPaged is Azure.Core.Page; } diff --git a/specification/ai/Azure.AI.Projects/evaluations/models.tsp b/specification/ai/Azure.AI.Projects/evaluations/models.tsp index 9a25d2e7d154..8b0ba0f283df 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/models.tsp @@ -77,5 +77,4 @@ model Evaluation { @doc("Evaluators to be used for the evaluation.") evaluators: Record; - } diff --git a/specification/ai/Azure.AI.Projects/main.tsp b/specification/ai/Azure.AI.Projects/main.tsp index 367cc5b8f00b..076330a08d0b 100644 --- a/specification/ai/Azure.AI.Projects/main.tsp +++ b/specification/ai/Azure.AI.Projects/main.tsp @@ -34,7 +34,10 @@ namespace Azure.AI { "Azure AI", { @doc(""" - Project endpoint in the form of: https://.services.ai.azure.com/api/projects/ + Project endpoint. In the form "https://.services.ai.azure.com/api/projects/_project" + if your Foundry Hub has only one Project, or to use the default Project in your Hub. Or in the form + "https://.services.ai.azure.com/api/projects/" if you want to explicitly + specify the Foundry Project name. """) endpoint: url, } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index 61de4d68e4d6..62f2c639353c 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -19,7 +19,7 @@ { "name": "endpoint", "in": "path", - "description": "Project endpoint in the form of: https://.services.ai.azure.com/api/projects/", + "description": "Project endpoint. In the form \"https://.services.ai.azure.com/api/projects/_project\"\nif your Foundry Hub has only one Project, or to use the default Project in your Hub. Or in the form \n\"https://.services.ai.azure.com/api/projects/\" if you want to explicitly\nspecify the Foundry Project name.", "required": true, "type": "string", "format": "uri", @@ -230,7 +230,7 @@ } }, "/connections/{name}/withCredentials": { - "get": { + "post": { "operationId": "Connections_GetWithCredentials", "description": "Get a connection by name, with its connection credentials", "parameters": [ @@ -277,6 +277,135 @@ } } }, + "/connections/withCredentials": { + "post": { + "operationId": "Connections_ListWithCredentials", + "description": "List all connections in the project, with their connection credentials", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "connectionType", + "in": "query", + "description": "List connections of this specific type", + "required": false, + "type": "string", + "enum": [ + "AzureOpenAI", + "AzureBlob", + "AzureStorageAccount", + "CognitiveSearch", + "CosmosDB", + "ApiKey", + "AppConfig", + "AppInsights", + "CustomKeys" + ], + "x-ms-enum": { + "name": "ConnectionType", + "modelAsString": true, + "values": [ + { + "name": "AzureOpenAI", + "value": "AzureOpenAI", + "description": "Azure OpenAI Service" + }, + { + "name": "AzureBlobStorage", + "value": "AzureBlob", + "description": "Azure Blob Storage, with specified container" + }, + { + "name": "AzureStorageAccount", + "value": "AzureStorageAccount", + "description": "Azure Blob Storage, with container not specified (used by Assistants)" + }, + { + "name": "AzureAISearch", + "value": "CognitiveSearch", + "description": "Azure AI Search" + }, + { + "name": "CosmosDB", + "value": "CosmosDB", + "description": "CosmosDB" + }, + { + "name": "APIKey", + "value": "ApiKey", + "description": "Generic connection that uses API Key authentication" + }, + { + "name": "ApplicationConfiguration", + "value": "AppConfig", + "description": "Application Configuration" + }, + { + "name": "ApplicationInsights", + "value": "AppInsights", + "description": "Application Insights" + }, + { + "name": "Custom", + "value": "CustomKeys", + "description": "Custom Keys" + } + ] + } + }, + { + "name": "defaultConnection", + "in": "query", + "description": "List connections that are default connections", + "required": false, + "type": "boolean" + }, + { + "$ref": "#/parameters/Azure.Core.TopQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.SkipQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Internal.ConnectionPaged" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, "/datasets": { "get": { "operationId": "Datasets_ListLatest", @@ -2241,6 +2370,28 @@ ], "x-ms-discriminator-value": "dataset" }, + "Internal.ConnectionPaged": { + "type": "object", + "description": "Paged collection of Connection items", + "properties": { + "value": { + "type": "array", + "description": "The Connection items on this page", + "items": { + "$ref": "#/definitions/Connection" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, "ListSortOrder": { "type": "string", "description": "The available sorting options when requesting a list of response objects.", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json index 7c1b91502f14..b55f77784708 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json @@ -19,7 +19,7 @@ { "name": "endpoint", "in": "path", - "description": "Project endpoint in the form of: https://.services.ai.azure.com/api/projects/", + "description": "Project endpoint. In the form \"https://.services.ai.azure.com/api/projects/_project\"\nif your Foundry Hub has only one Project, or to use the default Project in your Hub. Or in the form \n\"https://.services.ai.azure.com/api/projects/\" if you want to explicitly\nspecify the Foundry Project name.", "required": true, "type": "string", "format": "uri", @@ -230,7 +230,7 @@ } }, "/connections/{name}/withCredentials": { - "get": { + "post": { "operationId": "Connections_GetWithCredentials", "description": "Get a connection by name, with its connection credentials", "parameters": [ @@ -277,6 +277,135 @@ } } }, + "/connections/withCredentials": { + "post": { + "operationId": "Connections_ListWithCredentials", + "description": "List all connections in the project, with their connection credentials", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "connectionType", + "in": "query", + "description": "List connections of this specific type", + "required": false, + "type": "string", + "enum": [ + "AzureOpenAI", + "AzureBlob", + "AzureStorageAccount", + "CognitiveSearch", + "CosmosDB", + "ApiKey", + "AppConfig", + "AppInsights", + "CustomKeys" + ], + "x-ms-enum": { + "name": "ConnectionType", + "modelAsString": true, + "values": [ + { + "name": "AzureOpenAI", + "value": "AzureOpenAI", + "description": "Azure OpenAI Service" + }, + { + "name": "AzureBlobStorage", + "value": "AzureBlob", + "description": "Azure Blob Storage, with specified container" + }, + { + "name": "AzureStorageAccount", + "value": "AzureStorageAccount", + "description": "Azure Blob Storage, with container not specified (used by Assistants)" + }, + { + "name": "AzureAISearch", + "value": "CognitiveSearch", + "description": "Azure AI Search" + }, + { + "name": "CosmosDB", + "value": "CosmosDB", + "description": "CosmosDB" + }, + { + "name": "APIKey", + "value": "ApiKey", + "description": "Generic connection that uses API Key authentication" + }, + { + "name": "ApplicationConfiguration", + "value": "AppConfig", + "description": "Application Configuration" + }, + { + "name": "ApplicationInsights", + "value": "AppInsights", + "description": "Application Insights" + }, + { + "name": "Custom", + "value": "CustomKeys", + "description": "Custom Keys" + } + ] + } + }, + { + "name": "defaultConnection", + "in": "query", + "description": "List connections that are default connections", + "required": false, + "type": "boolean" + }, + { + "$ref": "#/parameters/Azure.Core.TopQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.SkipQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Internal.ConnectionPaged" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, "/datasets": { "get": { "operationId": "Datasets_ListLatest", @@ -1781,6 +1910,28 @@ ] } }, + "Internal.ConnectionPaged": { + "type": "object", + "description": "Paged collection of Connection items", + "properties": { + "value": { + "type": "array", + "description": "The Connection items on this page", + "items": { + "$ref": "#/definitions/Connection" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, "ListSortOrder": { "type": "string", "description": "The available sorting options when requesting a list of response objects.", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json index 31fb0938415a..46b392b25d19 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json @@ -19,7 +19,7 @@ { "name": "endpoint", "in": "path", - "description": "Project endpoint in the form of: https://.services.ai.azure.com/api/projects/", + "description": "Project endpoint. In the form \"https://.services.ai.azure.com/api/projects/_project\"\nif your Foundry Hub has only one Project, or to use the default Project in your Hub. Or in the form \n\"https://.services.ai.azure.com/api/projects/\" if you want to explicitly\nspecify the Foundry Project name.", "required": true, "type": "string", "format": "uri", @@ -230,7 +230,7 @@ } }, "/connections/{name}/withCredentials": { - "get": { + "post": { "operationId": "Connections_GetWithCredentials", "description": "Get a connection by name, with its connection credentials", "parameters": [ @@ -277,6 +277,135 @@ } } }, + "/connections/withCredentials": { + "post": { + "operationId": "Connections_ListWithCredentials", + "description": "List all connections in the project, with their connection credentials", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "connectionType", + "in": "query", + "description": "List connections of this specific type", + "required": false, + "type": "string", + "enum": [ + "AzureOpenAI", + "AzureBlob", + "AzureStorageAccount", + "CognitiveSearch", + "CosmosDB", + "ApiKey", + "AppConfig", + "AppInsights", + "CustomKeys" + ], + "x-ms-enum": { + "name": "ConnectionType", + "modelAsString": true, + "values": [ + { + "name": "AzureOpenAI", + "value": "AzureOpenAI", + "description": "Azure OpenAI Service" + }, + { + "name": "AzureBlobStorage", + "value": "AzureBlob", + "description": "Azure Blob Storage, with specified container" + }, + { + "name": "AzureStorageAccount", + "value": "AzureStorageAccount", + "description": "Azure Blob Storage, with container not specified (used by Assistants)" + }, + { + "name": "AzureAISearch", + "value": "CognitiveSearch", + "description": "Azure AI Search" + }, + { + "name": "CosmosDB", + "value": "CosmosDB", + "description": "CosmosDB" + }, + { + "name": "APIKey", + "value": "ApiKey", + "description": "Generic connection that uses API Key authentication" + }, + { + "name": "ApplicationConfiguration", + "value": "AppConfig", + "description": "Application Configuration" + }, + { + "name": "ApplicationInsights", + "value": "AppInsights", + "description": "Application Insights" + }, + { + "name": "Custom", + "value": "CustomKeys", + "description": "Custom Keys" + } + ] + } + }, + { + "name": "defaultConnection", + "in": "query", + "description": "List connections that are default connections", + "required": false, + "type": "boolean" + }, + { + "$ref": "#/parameters/Azure.Core.TopQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.SkipQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Internal.ConnectionPaged" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "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-pageable": { + "nextLinkName": "nextLink" + } + } + }, "/datasets": { "get": { "operationId": "Datasets_ListLatest", @@ -1781,6 +1910,28 @@ ] } }, + "Internal.ConnectionPaged": { + "type": "object", + "description": "Paged collection of Connection items", + "properties": { + "value": { + "type": "array", + "description": "The Connection items on this page", + "items": { + "$ref": "#/definitions/Connection" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, "ListSortOrder": { "type": "string", "description": "The available sorting options when requesting a list of response objects.", From ad7c697d7621201c249932b1be99a81942c1fdba Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Thu, 17 Apr 2025 19:06:57 -0400 Subject: [PATCH 103/143] Add PATCH for Asset Create/Update (#34021) * Add PATCH for asset create/update * Update specification/ai/Azure.AI.Projects/servicepatterns.tsp Co-authored-by: Johan Stenberg (MSFT) --------- Co-authored-by: Neehar Duvvuri Co-authored-by: Johan Stenberg (MSFT) --- .../ai/Azure.AI.Projects/common/models.tsp | 2 + .../ai/Azure.AI.Projects/indexes/models.tsp | 9 + .../ai/Azure.AI.Projects/servicepatterns.tsp | 23 ++ .../azure-ai-projects-1dp.json | 325 +++++++++++++++++- .../2025-05-01/azure-ai-projects-1dp.json | 325 +++++++++++++++++- .../stable/latest/azure-ai-projects-1dp.json | 325 +++++++++++++++++- 6 files changed, 970 insertions(+), 39 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/common/models.tsp b/specification/ai/Azure.AI.Projects/common/models.tsp index d7dc89981e25..8ed2b8786f34 100644 --- a/specification/ai/Azure.AI.Projects/common/models.tsp +++ b/specification/ai/Azure.AI.Projects/common/models.tsp @@ -51,9 +51,11 @@ alias AssetBase = { version: string; @doc("The asset description text.") + @visibility(Lifecycle.Create, Lifecycle.Update) description?: string; @doc("Tag dictionary. Tags can be added, removed, and updated.") + @visibility(Lifecycle.Create, Lifecycle.Update) tags?: Record; }; diff --git a/specification/ai/Azure.AI.Projects/indexes/models.tsp b/specification/ai/Azure.AI.Projects/indexes/models.tsp index ad27843bace9..4b43af09bb83 100644 --- a/specification/ai/Azure.AI.Projects/indexes/models.tsp +++ b/specification/ai/Azure.AI.Projects/indexes/models.tsp @@ -27,9 +27,11 @@ model AzureAISearchIndex extends Index { type: IndexType.azureSearch; @doc("Name of connection to Azure AI Search") + @visibility(Lifecycle.Create) connectionName: string; @doc("Name of index in Azure AI Search resource to attach") + @visibility(Lifecycle.Create) indexName: string; } @@ -40,6 +42,7 @@ model ManagedAzureAISearchIndex extends Index { type: IndexType.managedAzureSearch; @doc("Vector store id of managed index") + @visibility(Lifecycle.Create) vectorStoreId: string; } @@ -50,15 +53,19 @@ model CosmosDBIndex extends Index { type: IndexType.cosmosDB; @doc("Name of connection to CosmosDB") + @visibility(Lifecycle.Create) connectionName: string; @doc("Name of the CosmosDB Database") + @visibility(Lifecycle.Create) databaseName: string; @doc("Name of CosmosDB Container") + @visibility(Lifecycle.Create) containerName: string; @doc("Embedding model configuration") + @visibility(Lifecycle.Create) embeddingConfiguration: EmbeddingConfiguration; } @@ -66,9 +73,11 @@ model CosmosDBIndex extends Index { @added(Versions.v2025_05_01) model EmbeddingConfiguration { @doc("Deployment name of embedding model. It can point to a model deployment either in the parent AIServices or a connection.") + @visibility(Lifecycle.Create) modelDeploymentName: string; @doc("Embedding field") + @visibility(Lifecycle.Create) embeddingField: string; } diff --git a/specification/ai/Azure.AI.Projects/servicepatterns.tsp b/specification/ai/Azure.AI.Projects/servicepatterns.tsp index 5ad032bfcd77..8f7aeda4a975 100644 --- a/specification/ai/Azure.AI.Projects/servicepatterns.tsp +++ b/specification/ai/Azure.AI.Projects/servicepatterns.tsp @@ -94,6 +94,29 @@ namespace Azure.AI.Projects.ServicePatterns { }, Azure.Core.Foundations.ResourceCreatedOrOkResponse >; + + @doc( + "Create a new or update an existing {name} with the given version id", + TEntityType + ) + @Http.patch + createOrUpdateVersion is Azure.Core.Foundations.ResourceOperation< + TEntityType, + { + @doc( + "The specific version id of the {name} to create or replace.", + TEntityType + ) + @Rest.segment("versions") + @Http.path + version: string; + + @doc("The definition of the {name} to create or update", TEntityType) + @Http.bodyRoot + body: TEntityType; + }, + Azure.Core.Foundations.ResourceCreatedOrOkResponse + >; } @Rest.action diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index 62f2c639353c..e7235ed770b5 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -693,6 +693,64 @@ } } }, + "patch": { + "operationId": "Datasets_CreateOrUpdateVersion", + "description": "Create a new or update an existing DatasetVersion with the given version id", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the DatasetVersion to create or replace.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the DatasetVersion to create", + "required": true, + "schema": { + "$ref": "#/definitions/DatasetVersionUpdate" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + }, + "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." + } + } + } + } + }, "delete": { "operationId": "Datasets_DeleteVersion", "description": "Delete the specific version of the DatasetVersion", @@ -1385,6 +1443,64 @@ } } }, + "patch": { + "operationId": "Indexes_CreateOrUpdateVersion", + "description": "Create a new or update an existing Index with the given version id", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the Index to create or replace.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the Index to create", + "required": true, + "schema": { + "$ref": "#/definitions/IndexUpdate" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "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." + } + } + } + } + }, "delete": { "operationId": "Indexes_DeleteVersion", "description": "Delete the specific version of the Index", @@ -1732,11 +1848,17 @@ "properties": { "connectionName": { "type": "string", - "description": "Name of connection to Azure AI Search" + "description": "Name of connection to Azure AI Search", + "x-ms-mutability": [ + "create" + ] }, "indexName": { "type": "string", - "description": "Name of index in Azure AI Search resource to attach" + "description": "Name of index in Azure AI Search resource to attach", + "x-ms-mutability": [ + "create" + ] } }, "required": [ @@ -1750,6 +1872,16 @@ ], "x-ms-discriminator-value": "AzureSearch" }, + "AzureAISearchIndexUpdate": { + "type": "object", + "description": "Azure AI Search Index Definition", + "allOf": [ + { + "$ref": "#/definitions/IndexUpdate" + } + ], + "x-ms-discriminator-value": "AzureSearch" + }, "BaseCredentials": { "type": "object", "description": "A base class for connection credentials", @@ -1913,19 +2045,31 @@ "properties": { "connectionName": { "type": "string", - "description": "Name of connection to CosmosDB" + "description": "Name of connection to CosmosDB", + "x-ms-mutability": [ + "create" + ] }, "databaseName": { "type": "string", - "description": "Name of the CosmosDB Database" + "description": "Name of the CosmosDB Database", + "x-ms-mutability": [ + "create" + ] }, "containerName": { "type": "string", - "description": "Name of CosmosDB Container" + "description": "Name of CosmosDB Container", + "x-ms-mutability": [ + "create" + ] }, "embeddingConfiguration": { "$ref": "#/definitions/EmbeddingConfiguration", - "description": "Embedding model configuration" + "description": "Embedding model configuration", + "x-ms-mutability": [ + "create" + ] } }, "required": [ @@ -1941,6 +2085,16 @@ ], "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" }, + "CosmosDBIndexUpdate": { + "type": "object", + "description": "CosmosDB Vector Store Index Definition", + "allOf": [ + { + "$ref": "#/definitions/IndexUpdate" + } + ], + "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" + }, "CredentialType": { "type": "string", "description": "The credential type used by the connection", @@ -2066,14 +2220,22 @@ }, "description": { "type": "string", - "description": "The asset description text." + "description": "The asset description text.", + "x-ms-mutability": [ + "update", + "create" + ] }, "tags": { "type": "object", "description": "Tag dictionary. Tags can be added, removed, and updated.", "additionalProperties": { "type": "string" - } + }, + "x-ms-mutability": [ + "update", + "create" + ] } }, "discriminator": "type", @@ -2084,6 +2246,48 @@ "version" ] }, + "DatasetVersionUpdate": { + "type": "object", + "description": "DatasetVersion Definition", + "properties": { + "type": { + "$ref": "#/definitions/DatasetType", + "description": "Dataset type" + }, + "stage": { + "type": "string", + "description": "Asset stage", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "description": { + "type": "string", + "description": "The asset description text.", + "x-ms-mutability": [ + "update", + "create" + ] + }, + "tags": { + "type": "object", + "description": "Tag dictionary. Tags can be added, removed, and updated.", + "additionalProperties": { + "type": "string" + }, + "x-ms-mutability": [ + "update", + "create" + ] + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, "Deployment": { "type": "object", "description": "Model Deployment Definition", @@ -2127,11 +2331,17 @@ "properties": { "modelDeploymentName": { "type": "string", - "description": "Deployment name of embedding model. It can point to a model deployment either in the parent AIServices or a connection." + "description": "Deployment name of embedding model. It can point to a model deployment either in the parent AIServices or a connection.", + "x-ms-mutability": [ + "create" + ] }, "embeddingField": { "type": "string", - "description": "Embedding field" + "description": "Embedding field", + "x-ms-mutability": [ + "create" + ] } }, "required": [ @@ -2247,6 +2457,22 @@ ], "x-ms-discriminator-value": "uri_file" }, + "FileDatasetVersionUpdate": { + "type": "object", + "description": "FileDatasetVersion Definition", + "properties": { + "openAIPurpose": { + "type": "string", + "description": "Indicates OpenAI Purpose. FileDatasets created with this field will be compatible with OpenAI-specific features" + } + }, + "allOf": [ + { + "$ref": "#/definitions/DatasetVersionUpdate" + } + ], + "x-ms-discriminator-value": "uri_file" + }, "FolderDatasetVersion": { "type": "object", "description": "FileDatasetVersion Definition", @@ -2257,6 +2483,16 @@ ], "x-ms-discriminator-value": "uri_folder" }, + "FolderDatasetVersionUpdate": { + "type": "object", + "description": "FileDatasetVersion Definition", + "allOf": [ + { + "$ref": "#/definitions/DatasetVersionUpdate" + } + ], + "x-ms-discriminator-value": "uri_folder" + }, "Index": { "type": "object", "description": "Index resource Definition", @@ -2291,14 +2527,22 @@ }, "description": { "type": "string", - "description": "The asset description text." + "description": "The asset description text.", + "x-ms-mutability": [ + "update", + "create" + ] }, "tags": { "type": "object", "description": "Tag dictionary. Tags can be added, removed, and updated.", "additionalProperties": { "type": "string" - } + }, + "x-ms-mutability": [ + "update", + "create" + ] } }, "discriminator": "type", @@ -2337,6 +2581,48 @@ ] } }, + "IndexUpdate": { + "type": "object", + "description": "Index resource Definition", + "properties": { + "type": { + "$ref": "#/definitions/IndexType", + "description": "Type of index" + }, + "stage": { + "type": "string", + "description": "Asset stage", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "description": { + "type": "string", + "description": "The asset description text.", + "x-ms-mutability": [ + "update", + "create" + ] + }, + "tags": { + "type": "object", + "description": "Tag dictionary. Tags can be added, removed, and updated.", + "additionalProperties": { + "type": "string" + }, + "x-ms-mutability": [ + "update", + "create" + ] + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, "InputData": { "type": "object", "description": "Abstract data class.", @@ -2452,7 +2738,10 @@ "properties": { "vectorStoreId": { "type": "string", - "description": "Vector store id of managed index" + "description": "Vector store id of managed index", + "x-ms-mutability": [ + "create" + ] } }, "required": [ @@ -2465,6 +2754,16 @@ ], "x-ms-discriminator-value": "ManagedAzureSearch" }, + "ManagedAzureAISearchIndexUpdate": { + "type": "object", + "description": "Managed Azure AI Search Index Definition", + "allOf": [ + { + "$ref": "#/definitions/IndexUpdate" + } + ], + "x-ms-discriminator-value": "ManagedAzureSearch" + }, "ModelDeployment": { "type": "object", "description": "Model Deployment Definition", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json index b55f77784708..ef090de6db30 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json @@ -693,6 +693,64 @@ } } }, + "patch": { + "operationId": "Datasets_CreateOrUpdateVersion", + "description": "Create a new or update an existing DatasetVersion with the given version id", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the DatasetVersion to create or replace.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the DatasetVersion to create", + "required": true, + "schema": { + "$ref": "#/definitions/DatasetVersionUpdate" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + }, + "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." + } + } + } + } + }, "delete": { "operationId": "Datasets_DeleteVersion", "description": "Delete the specific version of the DatasetVersion", @@ -1244,6 +1302,64 @@ } } }, + "patch": { + "operationId": "Indexes_CreateOrUpdateVersion", + "description": "Create a new or update an existing Index with the given version id", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the Index to create or replace.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the Index to create", + "required": true, + "schema": { + "$ref": "#/definitions/IndexUpdate" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "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." + } + } + } + } + }, "delete": { "operationId": "Indexes_DeleteVersion", "description": "Delete the specific version of the Index", @@ -1384,11 +1500,17 @@ "properties": { "connectionName": { "type": "string", - "description": "Name of connection to Azure AI Search" + "description": "Name of connection to Azure AI Search", + "x-ms-mutability": [ + "create" + ] }, "indexName": { "type": "string", - "description": "Name of index in Azure AI Search resource to attach" + "description": "Name of index in Azure AI Search resource to attach", + "x-ms-mutability": [ + "create" + ] } }, "required": [ @@ -1402,6 +1524,16 @@ ], "x-ms-discriminator-value": "AzureSearch" }, + "AzureAISearchIndexUpdate": { + "type": "object", + "description": "Azure AI Search Index Definition", + "allOf": [ + { + "$ref": "#/definitions/IndexUpdate" + } + ], + "x-ms-discriminator-value": "AzureSearch" + }, "BaseCredentials": { "type": "object", "description": "A base class for connection credentials", @@ -1565,19 +1697,31 @@ "properties": { "connectionName": { "type": "string", - "description": "Name of connection to CosmosDB" + "description": "Name of connection to CosmosDB", + "x-ms-mutability": [ + "create" + ] }, "databaseName": { "type": "string", - "description": "Name of the CosmosDB Database" + "description": "Name of the CosmosDB Database", + "x-ms-mutability": [ + "create" + ] }, "containerName": { "type": "string", - "description": "Name of CosmosDB Container" + "description": "Name of CosmosDB Container", + "x-ms-mutability": [ + "create" + ] }, "embeddingConfiguration": { "$ref": "#/definitions/EmbeddingConfiguration", - "description": "Embedding model configuration" + "description": "Embedding model configuration", + "x-ms-mutability": [ + "create" + ] } }, "required": [ @@ -1593,6 +1737,16 @@ ], "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" }, + "CosmosDBIndexUpdate": { + "type": "object", + "description": "CosmosDB Vector Store Index Definition", + "allOf": [ + { + "$ref": "#/definitions/IndexUpdate" + } + ], + "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" + }, "CredentialType": { "type": "string", "description": "The credential type used by the connection", @@ -1718,14 +1872,22 @@ }, "description": { "type": "string", - "description": "The asset description text." + "description": "The asset description text.", + "x-ms-mutability": [ + "update", + "create" + ] }, "tags": { "type": "object", "description": "Tag dictionary. Tags can be added, removed, and updated.", "additionalProperties": { "type": "string" - } + }, + "x-ms-mutability": [ + "update", + "create" + ] } }, "discriminator": "type", @@ -1736,6 +1898,48 @@ "version" ] }, + "DatasetVersionUpdate": { + "type": "object", + "description": "DatasetVersion Definition", + "properties": { + "type": { + "$ref": "#/definitions/DatasetType", + "description": "Dataset type" + }, + "stage": { + "type": "string", + "description": "Asset stage", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "description": { + "type": "string", + "description": "The asset description text.", + "x-ms-mutability": [ + "update", + "create" + ] + }, + "tags": { + "type": "object", + "description": "Tag dictionary. Tags can be added, removed, and updated.", + "additionalProperties": { + "type": "string" + }, + "x-ms-mutability": [ + "update", + "create" + ] + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, "Deployment": { "type": "object", "description": "Model Deployment Definition", @@ -1779,11 +1983,17 @@ "properties": { "modelDeploymentName": { "type": "string", - "description": "Deployment name of embedding model. It can point to a model deployment either in the parent AIServices or a connection." + "description": "Deployment name of embedding model. It can point to a model deployment either in the parent AIServices or a connection.", + "x-ms-mutability": [ + "create" + ] }, "embeddingField": { "type": "string", - "description": "Embedding field" + "description": "Embedding field", + "x-ms-mutability": [ + "create" + ] } }, "required": [ @@ -1820,6 +2030,22 @@ ], "x-ms-discriminator-value": "uri_file" }, + "FileDatasetVersionUpdate": { + "type": "object", + "description": "FileDatasetVersion Definition", + "properties": { + "openAIPurpose": { + "type": "string", + "description": "Indicates OpenAI Purpose. FileDatasets created with this field will be compatible with OpenAI-specific features" + } + }, + "allOf": [ + { + "$ref": "#/definitions/DatasetVersionUpdate" + } + ], + "x-ms-discriminator-value": "uri_file" + }, "FolderDatasetVersion": { "type": "object", "description": "FileDatasetVersion Definition", @@ -1830,6 +2056,16 @@ ], "x-ms-discriminator-value": "uri_folder" }, + "FolderDatasetVersionUpdate": { + "type": "object", + "description": "FileDatasetVersion Definition", + "allOf": [ + { + "$ref": "#/definitions/DatasetVersionUpdate" + } + ], + "x-ms-discriminator-value": "uri_folder" + }, "Index": { "type": "object", "description": "Index resource Definition", @@ -1864,14 +2100,22 @@ }, "description": { "type": "string", - "description": "The asset description text." + "description": "The asset description text.", + "x-ms-mutability": [ + "update", + "create" + ] }, "tags": { "type": "object", "description": "Tag dictionary. Tags can be added, removed, and updated.", "additionalProperties": { "type": "string" - } + }, + "x-ms-mutability": [ + "update", + "create" + ] } }, "discriminator": "type", @@ -1910,6 +2154,48 @@ ] } }, + "IndexUpdate": { + "type": "object", + "description": "Index resource Definition", + "properties": { + "type": { + "$ref": "#/definitions/IndexType", + "description": "Type of index" + }, + "stage": { + "type": "string", + "description": "Asset stage", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "description": { + "type": "string", + "description": "The asset description text.", + "x-ms-mutability": [ + "update", + "create" + ] + }, + "tags": { + "type": "object", + "description": "Tag dictionary. Tags can be added, removed, and updated.", + "additionalProperties": { + "type": "string" + }, + "x-ms-mutability": [ + "update", + "create" + ] + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, "Internal.ConnectionPaged": { "type": "object", "description": "Paged collection of Connection items", @@ -1992,7 +2278,10 @@ "properties": { "vectorStoreId": { "type": "string", - "description": "Vector store id of managed index" + "description": "Vector store id of managed index", + "x-ms-mutability": [ + "create" + ] } }, "required": [ @@ -2005,6 +2294,16 @@ ], "x-ms-discriminator-value": "ManagedAzureSearch" }, + "ManagedAzureAISearchIndexUpdate": { + "type": "object", + "description": "Managed Azure AI Search Index Definition", + "allOf": [ + { + "$ref": "#/definitions/IndexUpdate" + } + ], + "x-ms-discriminator-value": "ManagedAzureSearch" + }, "ModelDeployment": { "type": "object", "description": "Model Deployment Definition", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json index 46b392b25d19..3b7b6180315b 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json @@ -693,6 +693,64 @@ } } }, + "patch": { + "operationId": "Datasets_CreateOrUpdateVersion", + "description": "Create a new or update an existing DatasetVersion with the given version id", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the DatasetVersion to create or replace.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the DatasetVersion to create", + "required": true, + "schema": { + "$ref": "#/definitions/DatasetVersionUpdate" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/DatasetVersion" + } + }, + "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." + } + } + } + } + }, "delete": { "operationId": "Datasets_DeleteVersion", "description": "Delete the specific version of the DatasetVersion", @@ -1244,6 +1302,64 @@ } } }, + "patch": { + "operationId": "Indexes_CreateOrUpdateVersion", + "description": "Create a new or update an existing Index with the given version id", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the resource", + "required": true, + "type": "string" + }, + { + "name": "version", + "in": "path", + "description": "The specific version id of the Index to create or replace.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "The definition of the Index to create", + "required": true, + "schema": { + "$ref": "#/definitions/IndexUpdate" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/Index" + } + }, + "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." + } + } + } + } + }, "delete": { "operationId": "Indexes_DeleteVersion", "description": "Delete the specific version of the Index", @@ -1384,11 +1500,17 @@ "properties": { "connectionName": { "type": "string", - "description": "Name of connection to Azure AI Search" + "description": "Name of connection to Azure AI Search", + "x-ms-mutability": [ + "create" + ] }, "indexName": { "type": "string", - "description": "Name of index in Azure AI Search resource to attach" + "description": "Name of index in Azure AI Search resource to attach", + "x-ms-mutability": [ + "create" + ] } }, "required": [ @@ -1402,6 +1524,16 @@ ], "x-ms-discriminator-value": "AzureSearch" }, + "AzureAISearchIndexUpdate": { + "type": "object", + "description": "Azure AI Search Index Definition", + "allOf": [ + { + "$ref": "#/definitions/IndexUpdate" + } + ], + "x-ms-discriminator-value": "AzureSearch" + }, "BaseCredentials": { "type": "object", "description": "A base class for connection credentials", @@ -1565,19 +1697,31 @@ "properties": { "connectionName": { "type": "string", - "description": "Name of connection to CosmosDB" + "description": "Name of connection to CosmosDB", + "x-ms-mutability": [ + "create" + ] }, "databaseName": { "type": "string", - "description": "Name of the CosmosDB Database" + "description": "Name of the CosmosDB Database", + "x-ms-mutability": [ + "create" + ] }, "containerName": { "type": "string", - "description": "Name of CosmosDB Container" + "description": "Name of CosmosDB Container", + "x-ms-mutability": [ + "create" + ] }, "embeddingConfiguration": { "$ref": "#/definitions/EmbeddingConfiguration", - "description": "Embedding model configuration" + "description": "Embedding model configuration", + "x-ms-mutability": [ + "create" + ] } }, "required": [ @@ -1593,6 +1737,16 @@ ], "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" }, + "CosmosDBIndexUpdate": { + "type": "object", + "description": "CosmosDB Vector Store Index Definition", + "allOf": [ + { + "$ref": "#/definitions/IndexUpdate" + } + ], + "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" + }, "CredentialType": { "type": "string", "description": "The credential type used by the connection", @@ -1718,14 +1872,22 @@ }, "description": { "type": "string", - "description": "The asset description text." + "description": "The asset description text.", + "x-ms-mutability": [ + "update", + "create" + ] }, "tags": { "type": "object", "description": "Tag dictionary. Tags can be added, removed, and updated.", "additionalProperties": { "type": "string" - } + }, + "x-ms-mutability": [ + "update", + "create" + ] } }, "discriminator": "type", @@ -1736,6 +1898,48 @@ "version" ] }, + "DatasetVersionUpdate": { + "type": "object", + "description": "DatasetVersion Definition", + "properties": { + "type": { + "$ref": "#/definitions/DatasetType", + "description": "Dataset type" + }, + "stage": { + "type": "string", + "description": "Asset stage", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "description": { + "type": "string", + "description": "The asset description text.", + "x-ms-mutability": [ + "update", + "create" + ] + }, + "tags": { + "type": "object", + "description": "Tag dictionary. Tags can be added, removed, and updated.", + "additionalProperties": { + "type": "string" + }, + "x-ms-mutability": [ + "update", + "create" + ] + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, "Deployment": { "type": "object", "description": "Model Deployment Definition", @@ -1779,11 +1983,17 @@ "properties": { "modelDeploymentName": { "type": "string", - "description": "Deployment name of embedding model. It can point to a model deployment either in the parent AIServices or a connection." + "description": "Deployment name of embedding model. It can point to a model deployment either in the parent AIServices or a connection.", + "x-ms-mutability": [ + "create" + ] }, "embeddingField": { "type": "string", - "description": "Embedding field" + "description": "Embedding field", + "x-ms-mutability": [ + "create" + ] } }, "required": [ @@ -1820,6 +2030,22 @@ ], "x-ms-discriminator-value": "uri_file" }, + "FileDatasetVersionUpdate": { + "type": "object", + "description": "FileDatasetVersion Definition", + "properties": { + "openAIPurpose": { + "type": "string", + "description": "Indicates OpenAI Purpose. FileDatasets created with this field will be compatible with OpenAI-specific features" + } + }, + "allOf": [ + { + "$ref": "#/definitions/DatasetVersionUpdate" + } + ], + "x-ms-discriminator-value": "uri_file" + }, "FolderDatasetVersion": { "type": "object", "description": "FileDatasetVersion Definition", @@ -1830,6 +2056,16 @@ ], "x-ms-discriminator-value": "uri_folder" }, + "FolderDatasetVersionUpdate": { + "type": "object", + "description": "FileDatasetVersion Definition", + "allOf": [ + { + "$ref": "#/definitions/DatasetVersionUpdate" + } + ], + "x-ms-discriminator-value": "uri_folder" + }, "Index": { "type": "object", "description": "Index resource Definition", @@ -1864,14 +2100,22 @@ }, "description": { "type": "string", - "description": "The asset description text." + "description": "The asset description text.", + "x-ms-mutability": [ + "update", + "create" + ] }, "tags": { "type": "object", "description": "Tag dictionary. Tags can be added, removed, and updated.", "additionalProperties": { "type": "string" - } + }, + "x-ms-mutability": [ + "update", + "create" + ] } }, "discriminator": "type", @@ -1910,6 +2154,48 @@ ] } }, + "IndexUpdate": { + "type": "object", + "description": "Index resource Definition", + "properties": { + "type": { + "$ref": "#/definitions/IndexType", + "description": "Type of index" + }, + "stage": { + "type": "string", + "description": "Asset stage", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "description": { + "type": "string", + "description": "The asset description text.", + "x-ms-mutability": [ + "update", + "create" + ] + }, + "tags": { + "type": "object", + "description": "Tag dictionary. Tags can be added, removed, and updated.", + "additionalProperties": { + "type": "string" + }, + "x-ms-mutability": [ + "update", + "create" + ] + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, "Internal.ConnectionPaged": { "type": "object", "description": "Paged collection of Connection items", @@ -1992,7 +2278,10 @@ "properties": { "vectorStoreId": { "type": "string", - "description": "Vector store id of managed index" + "description": "Vector store id of managed index", + "x-ms-mutability": [ + "create" + ] } }, "required": [ @@ -2005,6 +2294,16 @@ ], "x-ms-discriminator-value": "ManagedAzureSearch" }, + "ManagedAzureAISearchIndexUpdate": { + "type": "object", + "description": "Managed Azure AI Search Index Definition", + "allOf": [ + { + "$ref": "#/definitions/IndexUpdate" + } + ], + "x-ms-discriminator-value": "ManagedAzureSearch" + }, "ModelDeployment": { "type": "object", "description": "Model Deployment Definition", From fb7f51d5942561194f910fb898ac2093968dc819 Mon Sep 17 00:00:00 2001 From: Kayla Seager Date: Mon, 21 Apr 2025 09:56:40 -0700 Subject: [PATCH 104/143] RedTeam Updates from implementation (#34023) * updates from implementation * update to match docs: https://learn.microsoft.com/en-us/azure/ai-foundry/concepts/ai-red-teaming-agent#supported-attack-strategies --- .../ai/Azure.AI.Projects/red-teams/models.tsp | 67 ++++++++-- .../azure-ai-projects-1dp.json | 115 ++++++++++++++++-- 2 files changed, 158 insertions(+), 24 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/red-teams/models.tsp b/specification/ai/Azure.AI.Projects/red-teams/models.tsp index 06a467b78809..a9c2175cdd68 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/models.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/models.tsp @@ -21,32 +21,77 @@ namespace Azure.AI.Projects; union AttackStrategy { string, - @doc("Represents a default set of easy complexity attacks. Easy complexity attack strategies are defined as attacks that do not require any Large Language Model to convert or orchestrate.") + @doc("Represents a default set of easy complexity attacks. Easy complexity attacks require less effort, such as translation of a prompt into some encoding, and does not require any Large Language Model to convert or orchestrate.") Easy: "easy", - @doc("Represents ASCII art, a graphic design technique that uses printable characters.") + @doc("Represents a default set of moderate complexity attacks. Moderate complexity attacks require having access to resources such as another generative AI model.") + Moderate: "moderate", + + @doc("Represents a default set of difficult complexity attacks. Difficult complexity attacks include attacks that require access to significant resources and effort to execute an attack such as knowledge of search-based algorithms in addition to a generative AI model.") + Difficult: "difficult", + + @doc("Generates visual art using ASCII characters, often used for creative or obfuscation purposes.") AsciiArt: "ascii_art", - @doc("Represents ASCII smuggling, a technique for encoding or hiding data.") + @doc("Conceals data within ASCII characters, making it harder to detect.") AsciiSmuggler: "ascii_smuggler", - @doc("Represents the Atbash cipher, a substitution cipher that reverses the alphabet.") + @doc("Implements the Atbash cipher, a simple substitution cipher where each letter is mapped to its reverse.") Atbash: "atbash", - @doc("Represents Base64 encoding, a method for encoding binary data as text.") + @doc("Encodes binary data into a text format using Base64, commonly used for data transmission.") Base64: "base64", - @doc("Represents binary encoding, a representation of data in binary format.") + @doc("Converts text into binary code, representing data in a series of 0s and 1s.") Binary: "binary", - @doc("Represents the Caesar cipher, a substitution cipher that shifts characters.") + @doc("Applies the Caesar cipher, a substitution cipher that shifts characters by a fixed number of positions.") Caesar: "caesar", - @doc("Represents character space manipulation, a technique involving spacing between characters.") + @doc("Alters text by adding spaces between characters, often used for obfuscation.") CharacterSpace: "character_space", - @doc("Represents character swapping, a technique for rearranging characters in text.") + @doc("Injects specially crafted prompts to bypass AI safeguards, known as User Injected Prompt Attacks (UPIA).") Jailbreak: "jailbreak", + + @doc("Utilizes ANSI escape sequences to manipulate text appearance and behavior.") + AnsiiAttack: "ansii_attack", + + @doc("Swaps characters within text to create variations or obfuscate the original content.") + CharacterSwap: "character_swap", + + @doc("Appends an adversarial suffix to the prompt.") + SuffixAppend: "suffix_append", + + @doc("Joins multiple strings together, often used for concatenation or obfuscation.") + StringJoin: "string_join", + + @doc("Uses Unicode characters that look similar to standard characters, creating visual confusion.") + UnicodeConfusable: "unicode_confusable", + + @doc("Substitutes standard characters with Unicode equivalents, often for obfuscation.") + UnicodeSubstitution: "unicode_substitution", + + @doc("Adds diacritical marks to characters, changing their appearance and sometimes their meaning.") + Diacritic: "diacritic", + + @doc("Flips characters from front to back, creating a mirrored effect.") + Flip: "flip", + + @doc("Transforms text into Leetspeak, a form of encoding that replaces letters with similar-looking numbers or symbols.") + Leetspeak: "leetspeak", + + @doc("Applies the ROT13 cipher, a simple substitution cipher that shifts characters by 13 positions.") + ROT13: "rot13", + + @doc("Encodes text into Morse code, using dots and dashes to represent characters.") + Morse: "morse", + + @doc("Encodes text into URL format.") + Url: "url", + + @doc("Represents the baseline direct adversarial probing, which is used by attack strategies as the attack objective.") + Baseline: "baseline" } @doc("Risk category for the attack objective.") @@ -88,13 +133,13 @@ model RedTeam { id: string; @doc("Name of the red-team scan.") - scanName: string; + scanName?: string; @doc("Number of simulation rounds.") numTurns: int32; @doc("List of attack strategies or nested lists of attack strategies.") - attackStrategy: AttackStrategy[]; + attackStrategies: AttackStrategy[]; @doc("Simulation-only or Simulation + Evaluation. Default false, if true the scan outputs conversation not evaluation result.") simulationOnly: boolean; diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index e7235ed770b5..19905c68dac2 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -1720,6 +1720,8 @@ "description": "Strategies for attacks.", "enum": [ "easy", + "moderate", + "difficult", "ascii_art", "ascii_smuggler", "atbash", @@ -1727,7 +1729,20 @@ "binary", "caesar", "character_space", - "jailbreak" + "jailbreak", + "ansii_attack", + "character_swap", + "suffix_append", + "string_join", + "unicode_confusable", + "unicode_substitution", + "diacritic", + "flip", + "leetspeak", + "rot13", + "morse", + "url", + "baseline" ], "x-ms-enum": { "name": "AttackStrategy", @@ -1736,47 +1751,122 @@ { "name": "Easy", "value": "easy", - "description": "Represents a default set of easy complexity attacks. Easy complexity attack strategies are defined as attacks that do not require any Large Language Model to convert or orchestrate." + "description": "Represents a default set of easy complexity attacks. Easy complexity attacks require less effort, such as translation of a prompt into some encoding, and does not require any Large Language Model to convert or orchestrate." + }, + { + "name": "Moderate", + "value": "moderate", + "description": "Represents a default set of moderate complexity attacks. Moderate complexity attacks require having access to resources such as another generative AI model." + }, + { + "name": "Difficult", + "value": "difficult", + "description": "Represents a default set of difficult complexity attacks. Difficult complexity attacks include attacks that require access to significant resources and effort to execute an attack such as knowledge of search-based algorithms in addition to a generative AI model." }, { "name": "AsciiArt", "value": "ascii_art", - "description": "Represents ASCII art, a graphic design technique that uses printable characters." + "description": "Generates visual art using ASCII characters, often used for creative or obfuscation purposes." }, { "name": "AsciiSmuggler", "value": "ascii_smuggler", - "description": "Represents ASCII smuggling, a technique for encoding or hiding data." + "description": "Conceals data within ASCII characters, making it harder to detect." }, { "name": "Atbash", "value": "atbash", - "description": "Represents the Atbash cipher, a substitution cipher that reverses the alphabet." + "description": "Implements the Atbash cipher, a simple substitution cipher where each letter is mapped to its reverse." }, { "name": "Base64", "value": "base64", - "description": "Represents Base64 encoding, a method for encoding binary data as text." + "description": "Encodes binary data into a text format using Base64, commonly used for data transmission." }, { "name": "Binary", "value": "binary", - "description": "Represents binary encoding, a representation of data in binary format." + "description": "Converts text into binary code, representing data in a series of 0s and 1s." }, { "name": "Caesar", "value": "caesar", - "description": "Represents the Caesar cipher, a substitution cipher that shifts characters." + "description": "Applies the Caesar cipher, a substitution cipher that shifts characters by a fixed number of positions." }, { "name": "CharacterSpace", "value": "character_space", - "description": "Represents character space manipulation, a technique involving spacing between characters." + "description": "Alters text by adding spaces between characters, often used for obfuscation." }, { "name": "Jailbreak", "value": "jailbreak", - "description": "Represents character swapping, a technique for rearranging characters in text." + "description": "Injects specially crafted prompts to bypass AI safeguards, known as User Injected Prompt Attacks (UPIA)." + }, + { + "name": "AnsiiAttack", + "value": "ansii_attack", + "description": "Utilizes ANSI escape sequences to manipulate text appearance and behavior." + }, + { + "name": "CharacterSwap", + "value": "character_swap", + "description": "Swaps characters within text to create variations or obfuscate the original content." + }, + { + "name": "SuffixAppend", + "value": "suffix_append", + "description": "Appends an adversarial suffix to the prompt." + }, + { + "name": "StringJoin", + "value": "string_join", + "description": "Joins multiple strings together, often used for concatenation or obfuscation." + }, + { + "name": "UnicodeConfusable", + "value": "unicode_confusable", + "description": "Uses Unicode characters that look similar to standard characters, creating visual confusion." + }, + { + "name": "UnicodeSubstitution", + "value": "unicode_substitution", + "description": "Substitutes standard characters with Unicode equivalents, often for obfuscation." + }, + { + "name": "Diacritic", + "value": "diacritic", + "description": "Adds diacritical marks to characters, changing their appearance and sometimes their meaning." + }, + { + "name": "Flip", + "value": "flip", + "description": "Flips characters from front to back, creating a mirrored effect." + }, + { + "name": "Leetspeak", + "value": "leetspeak", + "description": "Transforms text into Leetspeak, a form of encoding that replaces letters with similar-looking numbers or symbols." + }, + { + "name": "ROT13", + "value": "rot13", + "description": "Applies the ROT13 cipher, a simple substitution cipher that shifts characters by 13 positions." + }, + { + "name": "Morse", + "value": "morse", + "description": "Encodes text into Morse code, using dots and dashes to represent characters." + }, + { + "name": "Url", + "value": "url", + "description": "Encodes text into URL format." + }, + { + "name": "Baseline", + "value": "baseline", + "description": "Represents the baseline direct adversarial probing, which is used by attack strategies as the attack objective." } ] } @@ -3074,7 +3164,7 @@ "format": "int32", "description": "Number of simulation rounds." }, - "attackStrategy": { + "attackStrategies": { "type": "array", "description": "List of attack strategies or nested lists of attack strategies.", "items": { @@ -3118,9 +3208,8 @@ }, "required": [ "id", - "scanName", "numTurns", - "attackStrategy", + "attackStrategies", "simulationOnly", "riskCategories" ] From e18c2b32b9483118f3ef410f7a4d0421647270a1 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Tue, 22 Apr 2025 06:00:49 -0700 Subject: [PATCH 105/143] Remove api-key auth (#34097) --- specification/ai/Azure.AI.Projects/main.tsp | 4 ++-- specification/ai/Azure.AI.Projects/red-teams/models.tsp | 2 +- .../preview/2025-05-15-preview/azure-ai-projects-1dp.json | 4 ++-- .../stable/2025-05-01/azure-ai-projects-1dp.json | 4 ++-- .../stable/latest/azure-ai-projects-1dp.json | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/main.tsp b/specification/ai/Azure.AI.Projects/main.tsp index 076330a08d0b..f73cca1b3c5d 100644 --- a/specification/ai/Azure.AI.Projects/main.tsp +++ b/specification/ai/Azure.AI.Projects/main.tsp @@ -20,11 +20,11 @@ namespace Azure.AI { #suppress "@azure-tools/typespec-autorest/unsupported-http-auth-scheme" @useAuth( - BearerAuth | OAuth2Auth<[ + OAuth2Auth<[ { type: OAuth2FlowType.implicit, authorizationUrl: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", - scopes: ["https://cognitiveservices.azure.com/.default"], + scopes: ["https://cognitiveservices.azure.com/.default"], // TODO: Replace with ["https://ai.azure.com/.default"] } ]> ) diff --git a/specification/ai/Azure.AI.Projects/red-teams/models.tsp b/specification/ai/Azure.AI.Projects/red-teams/models.tsp index a9c2175cdd68..db9b001a1ef1 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/models.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/models.tsp @@ -91,7 +91,7 @@ union AttackStrategy { Url: "url", @doc("Represents the baseline direct adversarial probing, which is used by attack strategies as the attack objective.") - Baseline: "baseline" + Baseline: "baseline", } @doc("Risk category for the attack objective.") diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index 19905c68dac2..cebe7d9b3a1c 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -717,7 +717,7 @@ { "name": "body", "in": "body", - "description": "The definition of the DatasetVersion to create", + "description": "The definition of the DatasetVersion to create or update", "required": true, "schema": { "$ref": "#/definitions/DatasetVersionUpdate" @@ -1467,7 +1467,7 @@ { "name": "body", "in": "body", - "description": "The definition of the Index to create", + "description": "The definition of the Index to create or update", "required": true, "schema": { "$ref": "#/definitions/IndexUpdate" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json index ef090de6db30..b8954a9c94bb 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json @@ -717,7 +717,7 @@ { "name": "body", "in": "body", - "description": "The definition of the DatasetVersion to create", + "description": "The definition of the DatasetVersion to create or update", "required": true, "schema": { "$ref": "#/definitions/DatasetVersionUpdate" @@ -1326,7 +1326,7 @@ { "name": "body", "in": "body", - "description": "The definition of the Index to create", + "description": "The definition of the Index to create or update", "required": true, "schema": { "$ref": "#/definitions/IndexUpdate" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json index 3b7b6180315b..55c422f287e0 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json @@ -717,7 +717,7 @@ { "name": "body", "in": "body", - "description": "The definition of the DatasetVersion to create", + "description": "The definition of the DatasetVersion to create or update", "required": true, "schema": { "$ref": "#/definitions/DatasetVersionUpdate" @@ -1326,7 +1326,7 @@ { "name": "body", "in": "body", - "description": "The definition of the Index to create", + "description": "The definition of the Index to create or update", "required": true, "schema": { "$ref": "#/definitions/IndexUpdate" From 3daea9518b913f1e24c9cb0e019014de4ce499b6 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Tue, 22 Apr 2025 13:32:10 -0400 Subject: [PATCH 106/143] Remove Asset PUT (#34133) * Update servicepatterns.tsp * add swaggers --------- Co-authored-by: Neehar Duvvuri --- .../ai/Azure.AI.Projects/servicepatterns.tsp | 23 ---- .../azure-ai-projects-1dp.json | 116 ------------------ .../2025-05-01/azure-ai-projects-1dp.json | 116 ------------------ .../stable/latest/azure-ai-projects-1dp.json | 116 ------------------ 4 files changed, 371 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/servicepatterns.tsp b/specification/ai/Azure.AI.Projects/servicepatterns.tsp index 8f7aeda4a975..376184787b32 100644 --- a/specification/ai/Azure.AI.Projects/servicepatterns.tsp +++ b/specification/ai/Azure.AI.Projects/servicepatterns.tsp @@ -72,29 +72,6 @@ namespace Azure.AI.Projects.ServicePatterns { >; */ - @doc( - "Create a new or replace an existing {name} with the given version id", - TEntityType - ) - @Http.put - createVersion is Azure.Core.Foundations.ResourceOperation< - TEntityType, - { - @doc( - "The specific version id of the {name} to create or replace.", - TEntityType - ) - @Rest.segment("versions") - @Http.path - version: string; - - @doc("The definition of the {name} to create", TEntityType) - @Http.bodyRoot - body: TEntityType; - }, - Azure.Core.Foundations.ResourceCreatedOrOkResponse - >; - @doc( "Create a new or update an existing {name} with the given version id", TEntityType diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index cebe7d9b3a1c..ff30baadfe99 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -635,64 +635,6 @@ } } }, - "put": { - "operationId": "Datasets_CreateVersion", - "description": "Create a new or replace an existing DatasetVersion with the given version id", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The specific version id of the DatasetVersion to create or replace.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the DatasetVersion to create", - "required": true, - "schema": { - "$ref": "#/definitions/DatasetVersion" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/DatasetVersion" - } - }, - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", - "schema": { - "$ref": "#/definitions/DatasetVersion" - } - }, - "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." - } - } - } - } - }, "patch": { "operationId": "Datasets_CreateOrUpdateVersion", "description": "Create a new or update an existing DatasetVersion with the given version id", @@ -1385,64 +1327,6 @@ } } }, - "put": { - "operationId": "Indexes_CreateVersion", - "description": "Create a new or replace an existing Index with the given version id", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The specific version id of the Index to create or replace.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the Index to create", - "required": true, - "schema": { - "$ref": "#/definitions/Index" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/Index" - } - }, - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", - "schema": { - "$ref": "#/definitions/Index" - } - }, - "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." - } - } - } - } - }, "patch": { "operationId": "Indexes_CreateOrUpdateVersion", "description": "Create a new or update an existing Index with the given version id", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json index b8954a9c94bb..67542569e819 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json @@ -635,64 +635,6 @@ } } }, - "put": { - "operationId": "Datasets_CreateVersion", - "description": "Create a new or replace an existing DatasetVersion with the given version id", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The specific version id of the DatasetVersion to create or replace.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the DatasetVersion to create", - "required": true, - "schema": { - "$ref": "#/definitions/DatasetVersion" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/DatasetVersion" - } - }, - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", - "schema": { - "$ref": "#/definitions/DatasetVersion" - } - }, - "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." - } - } - } - } - }, "patch": { "operationId": "Datasets_CreateOrUpdateVersion", "description": "Create a new or update an existing DatasetVersion with the given version id", @@ -1244,64 +1186,6 @@ } } }, - "put": { - "operationId": "Indexes_CreateVersion", - "description": "Create a new or replace an existing Index with the given version id", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The specific version id of the Index to create or replace.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the Index to create", - "required": true, - "schema": { - "$ref": "#/definitions/Index" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/Index" - } - }, - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", - "schema": { - "$ref": "#/definitions/Index" - } - }, - "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." - } - } - } - } - }, "patch": { "operationId": "Indexes_CreateOrUpdateVersion", "description": "Create a new or update an existing Index with the given version id", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json index 55c422f287e0..afa57194016c 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json @@ -635,64 +635,6 @@ } } }, - "put": { - "operationId": "Datasets_CreateVersion", - "description": "Create a new or replace an existing DatasetVersion with the given version id", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The specific version id of the DatasetVersion to create or replace.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the DatasetVersion to create", - "required": true, - "schema": { - "$ref": "#/definitions/DatasetVersion" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/DatasetVersion" - } - }, - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", - "schema": { - "$ref": "#/definitions/DatasetVersion" - } - }, - "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." - } - } - } - } - }, "patch": { "operationId": "Datasets_CreateOrUpdateVersion", "description": "Create a new or update an existing DatasetVersion with the given version id", @@ -1244,64 +1186,6 @@ } } }, - "put": { - "operationId": "Indexes_CreateVersion", - "description": "Create a new or replace an existing Index with the given version id", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "name", - "in": "path", - "description": "The name of the resource", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "The specific version id of the Index to create or replace.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "The definition of the Index to create", - "required": true, - "schema": { - "$ref": "#/definitions/Index" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/Index" - } - }, - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", - "schema": { - "$ref": "#/definitions/Index" - } - }, - "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." - } - } - } - } - }, "patch": { "operationId": "Indexes_CreateOrUpdateVersion", "description": "Create a new or update an existing Index with the given version id", From 1826d5d3bf107528469b532cf7fdcaa0c204354c Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Tue, 22 Apr 2025 14:01:56 -0700 Subject: [PATCH 107/143] Update comment from `Assistants` to `Agents`, since we decided to use `Agents` terminology --- specification/ai/Azure.AI.Projects/connections/models.tsp | 2 +- .../preview/2025-05-15-preview/azure-ai-projects-1dp.json | 6 +++--- .../stable/2025-05-01/azure-ai-projects-1dp.json | 6 +++--- .../stable/latest/azure-ai-projects-1dp.json | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/connections/models.tsp b/specification/ai/Azure.AI.Projects/connections/models.tsp index 738de331bb60..d0ffded6e217 100644 --- a/specification/ai/Azure.AI.Projects/connections/models.tsp +++ b/specification/ai/Azure.AI.Projects/connections/models.tsp @@ -105,7 +105,7 @@ union ConnectionType { @doc("Azure Blob Storage, with specified container") AzureBlobStorage: "AzureBlob", - @doc("Azure Blob Storage, with container not specified (used by Assistants)") + @doc("Azure Blob Storage, with container not specified (used by Agents)") AzureStorageAccount: "AzureStorageAccount", @doc("Azure AI Search") diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index ff30baadfe99..80cbea85bf26 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -94,7 +94,7 @@ { "name": "AzureStorageAccount", "value": "AzureStorageAccount", - "description": "Azure Blob Storage, with container not specified (used by Assistants)" + "description": "Azure Blob Storage, with container not specified (used by Agents)" }, { "name": "AzureAISearch", @@ -319,7 +319,7 @@ { "name": "AzureStorageAccount", "value": "AzureStorageAccount", - "description": "Azure Blob Storage, with container not specified (used by Assistants)" + "description": "Azure Blob Storage, with container not specified (used by Agents)" }, { "name": "AzureAISearch", @@ -1978,7 +1978,7 @@ { "name": "AzureStorageAccount", "value": "AzureStorageAccount", - "description": "Azure Blob Storage, with container not specified (used by Assistants)" + "description": "Azure Blob Storage, with container not specified (used by Agents)" }, { "name": "AzureAISearch", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json index 67542569e819..ba2ca6929625 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json @@ -94,7 +94,7 @@ { "name": "AzureStorageAccount", "value": "AzureStorageAccount", - "description": "Azure Blob Storage, with container not specified (used by Assistants)" + "description": "Azure Blob Storage, with container not specified (used by Agents)" }, { "name": "AzureAISearch", @@ -319,7 +319,7 @@ { "name": "AzureStorageAccount", "value": "AzureStorageAccount", - "description": "Azure Blob Storage, with container not specified (used by Assistants)" + "description": "Azure Blob Storage, with container not specified (used by Agents)" }, { "name": "AzureAISearch", @@ -1540,7 +1540,7 @@ { "name": "AzureStorageAccount", "value": "AzureStorageAccount", - "description": "Azure Blob Storage, with container not specified (used by Assistants)" + "description": "Azure Blob Storage, with container not specified (used by Agents)" }, { "name": "AzureAISearch", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json index afa57194016c..1ee4a57e9847 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json @@ -94,7 +94,7 @@ { "name": "AzureStorageAccount", "value": "AzureStorageAccount", - "description": "Azure Blob Storage, with container not specified (used by Assistants)" + "description": "Azure Blob Storage, with container not specified (used by Agents)" }, { "name": "AzureAISearch", @@ -319,7 +319,7 @@ { "name": "AzureStorageAccount", "value": "AzureStorageAccount", - "description": "Azure Blob Storage, with container not specified (used by Assistants)" + "description": "Azure Blob Storage, with container not specified (used by Agents)" }, { "name": "AzureAISearch", @@ -1540,7 +1540,7 @@ { "name": "AzureStorageAccount", "value": "AzureStorageAccount", - "description": "Azure Blob Storage, with container not specified (used by Assistants)" + "description": "Azure Blob Storage, with container not specified (used by Agents)" }, { "name": "AzureAISearch", From 3cad6f7fec2495513891692839049302473ddd3e Mon Sep 17 00:00:00 2001 From: David Wu Date: Tue, 22 Apr 2025 14:21:41 -0700 Subject: [PATCH 108/143] API for create agent evaluation run (#34034) * Agent evaluation run request and get agent evaluation run result * Update fields to remove redundant information * Update comments for run Id * Remove API "get agent evaluation results" * Revert "Remove API "get agent evaluation results"" This reverts commit d48b192cd3ca9ca7a6c775f929ff1f979dee400a. * Update to use sync API * Update comments * Address PR feedbacks from Johan * Update long running operation response to the format closer to "runs:run" * Add RedactionConfiguration * Add docs to redactScoreProperties * Update results to result * Update threshold from 10K to 1K * Update names to group agent evaluation related fields * Align status with existing status code from RAISvc --- .../Azure.AI.Projects/evaluations/models.tsp | 91 +++++++++++++++++++ .../Azure.AI.Projects/evaluations/routes.tsp | 13 +++ 2 files changed, 104 insertions(+) diff --git a/specification/ai/Azure.AI.Projects/evaluations/models.tsp b/specification/ai/Azure.AI.Projects/evaluations/models.tsp index 8b0ba0f283df..eb2d6281a1bb 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/models.tsp @@ -78,3 +78,94 @@ model Evaluation { @doc("Evaluators to be used for the evaluation.") evaluators: Record; } + +@doc("Definition for sampling strategy.") +@added(Versions.v2025_05_15_preview) +@removed(Versions.v_latest) +model AgentEvaluationSamplingConfiguration { + @doc("Name of the sampling strategy.") + name: string; + + @doc("Percentage of sampling per hour (0-100).") + samplingPercent: float; + + @doc("Maximum request rate per hour (0 to 1000).") + maxRequestRate: float; +} + +@doc("The redaction configuration will allow the user to control what is redacted.") +@added(Versions.v2025_05_15_preview) +@removed(Versions.v_latest) +model AgentEvaluationRedactionConfiguration { + @doc("Redact score properties. If not specified, the default is to redact in production.") + redactScoreProperties?: boolean; +} + +@doc("Evaluation request for agent run.") +@added(Versions.v2025_05_15_preview) +@removed(Versions.v_latest) +model AgentEvaluationRequest { + @doc("Identifier of the agent run.") + runId: string; + + @doc("Identifier of the agent thread. This field is mandatory currently, but it will be optional in the future.") + threadId?: string; + + @doc("Evaluators to be used for the evaluation.") + evaluators: Record; + + @doc("Sampling configuration for the evaluation.") + samplingConfiguration?: AgentEvaluationSamplingConfiguration; + + @doc("Redaction configuration for the evaluation.") + redactionConfiguration?: AgentEvaluationRedactionConfiguration; + + @doc("Optional and temporary way to pass the AppInsights connection string to the evaluator. When this string is not null, the evaluation results will be logged to Azure AppInsights.") + appInsightsConnectionString?: string; +} + +@doc("Result for the agent evaluation evaluator run.") +@added(Versions.v2025_05_15_preview) +@removed(Versions.v_latest) +model AgentEvaluationResult { + @doc("Evaluator's name. This is the name of the evaluator that was used to evaluate the agent's completion.") + evaluator: string; + + @doc("Score of the given evaluator. No restriction on range.") + score: float32; + + @doc("Status of the evaluator result. Options: Running, Completed, Failed, NotApplicable.") + status: string; + + @doc("Reasoning for the evaluation result.") + reason?: string; + + @doc("Version of the evaluator that was used to evaluate the agent's completion.") + version?: string; + + @doc("The unique identifier of the thread.") + threadId?: string; + + @doc("The unique identifier of the run.") + runId: string; + + @doc("A string explaining why there was an error, if applicable.") + error?: string; + + @doc("Additional properties relevant to the evaluator. These will differ between evaluators.") + additionalDetails?: Record; +} + +@doc("Evaluation response for agent evaluation run.") +@added(Versions.v2025_05_15_preview) +@removed(Versions.v_latest) +model AgentEvaluation { + @doc("Identifier of the agent evaluation run.") + id: string; + + @doc("Status of the agent evaluation. Options: Running, Completed, Failed.") + status: string; + + @doc("The agent evaluation result.") + result?: Array; +} diff --git a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp index 082f1a969678..bafe54905cb7 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp @@ -42,4 +42,17 @@ interface Evaluations { }, ResourceCreatedResponse >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" + @doc("Creates an agent evaluation run.") + @route("runs:runAgent") + @post + createAgentEvaluation is Azure.Core.Foundations.Operation< + { + @doc("Agent evaluation to be run") + @body + evaluation: AgentEvaluationRequest; + }, + ResourceCreatedResponse + >; } From 85bc07fcdbb2161a56edf10edc42089861bd9528 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Tue, 22 Apr 2025 17:53:32 -0700 Subject: [PATCH 109/143] Fix TypeSpec compile errors from previous commit --- .../Azure.AI.Projects/evaluations/models.tsp | 4 +- .../azure-ai-projects-1dp.json | 190 ++++++++++++++++++ 2 files changed, 192 insertions(+), 2 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/evaluations/models.tsp b/specification/ai/Azure.AI.Projects/evaluations/models.tsp index eb2d6281a1bb..990f9fc35093 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/models.tsp @@ -87,10 +87,10 @@ model AgentEvaluationSamplingConfiguration { name: string; @doc("Percentage of sampling per hour (0-100).") - samplingPercent: float; + samplingPercent: float32; @doc("Maximum request rate per hour (0 to 1000).") - maxRequestRate: float; + maxRequestRate: float32; } @doc("The redaction configuration will allow the user to control what is redacted.") diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index 80cbea85bf26..5c308264bd14 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -1098,6 +1098,46 @@ } } }, + "/evaluations/runs:runAgent": { + "post": { + "operationId": "Evaluations_CreateAgentEvaluation", + "description": "Creates an agent evaluation run.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "evaluation", + "in": "body", + "description": "Agent evaluation to be run", + "required": true, + "schema": { + "$ref": "#/definitions/AgentEvaluationRequest" + } + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/AgentEvaluation" + } + }, + "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." + } + } + } + } + } + }, "/indexes": { "get": { "operationId": "Indexes_ListLatest", @@ -1569,6 +1609,156 @@ } }, "definitions": { + "AgentEvaluation": { + "type": "object", + "description": "Evaluation response for agent evaluation run.", + "properties": { + "id": { + "type": "string", + "description": "Identifier of the agent evaluation run." + }, + "status": { + "type": "string", + "description": "Status of the agent evaluation. Options: Running, Completed, Failed." + }, + "result": { + "type": "array", + "description": "The agent evaluation result.", + "items": { + "$ref": "#/definitions/AgentEvaluationResult" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "id", + "status" + ] + }, + "AgentEvaluationRedactionConfiguration": { + "type": "object", + "description": "The redaction configuration will allow the user to control what is redacted.", + "properties": { + "redactScoreProperties": { + "type": "boolean", + "description": "Redact score properties. If not specified, the default is to redact in production." + } + } + }, + "AgentEvaluationRequest": { + "type": "object", + "description": "Evaluation request for agent run.", + "properties": { + "runId": { + "type": "string", + "description": "Identifier of the agent run." + }, + "threadId": { + "type": "string", + "description": "Identifier of the agent thread. This field is mandatory currently, but it will be optional in the future." + }, + "evaluators": { + "type": "object", + "description": "Evaluators to be used for the evaluation.", + "additionalProperties": { + "$ref": "#/definitions/EvaluatorConfiguration" + } + }, + "samplingConfiguration": { + "$ref": "#/definitions/AgentEvaluationSamplingConfiguration", + "description": "Sampling configuration for the evaluation." + }, + "redactionConfiguration": { + "$ref": "#/definitions/AgentEvaluationRedactionConfiguration", + "description": "Redaction configuration for the evaluation." + }, + "appInsightsConnectionString": { + "type": "string", + "description": "Optional and temporary way to pass the AppInsights connection string to the evaluator. When this string is not null, the evaluation results will be logged to Azure AppInsights." + } + }, + "required": [ + "runId", + "evaluators" + ] + }, + "AgentEvaluationResult": { + "type": "object", + "description": "Result for the agent evaluation evaluator run.", + "properties": { + "evaluator": { + "type": "string", + "description": "Evaluator's name. This is the name of the evaluator that was used to evaluate the agent's completion." + }, + "score": { + "type": "number", + "format": "float", + "description": "Score of the given evaluator. No restriction on range." + }, + "status": { + "type": "string", + "description": "Status of the evaluator result. Options: Running, Completed, Failed, NotApplicable." + }, + "reason": { + "type": "string", + "description": "Reasoning for the evaluation result." + }, + "version": { + "type": "string", + "description": "Version of the evaluator that was used to evaluate the agent's completion." + }, + "threadId": { + "type": "string", + "description": "The unique identifier of the thread." + }, + "runId": { + "type": "string", + "description": "The unique identifier of the run." + }, + "error": { + "type": "string", + "description": "A string explaining why there was an error, if applicable." + }, + "additionalDetails": { + "type": "object", + "description": "Additional properties relevant to the evaluator. These will differ between evaluators.", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "evaluator", + "score", + "status", + "runId" + ] + }, + "AgentEvaluationSamplingConfiguration": { + "type": "object", + "description": "Definition for sampling strategy.", + "properties": { + "name": { + "type": "string", + "description": "Name of the sampling strategy." + }, + "samplingPercent": { + "type": "number", + "format": "float", + "description": "Percentage of sampling per hour (0-100)." + }, + "maxRequestRate": { + "type": "number", + "format": "float", + "description": "Maximum request rate per hour (0 to 1000)." + } + }, + "required": [ + "name", + "samplingPercent", + "maxRequestRate" + ] + }, "ApiKeyCredentials": { "type": "object", "description": "API Key Credential definition", From 6c659326ecb44f4aaa8460631ddbc8a077627027 Mon Sep 17 00:00:00 2001 From: Kayla Seager Date: Wed, 23 Apr 2025 13:29:05 -0700 Subject: [PATCH 110/143] Red-Team Target API Definition (#34144) * initial idea * update based on comments * updates from comments * casing update --- .../ai/Azure.AI.Projects/red-teams/models.tsp | 28 ++++++--- .../azure-ai-projects-1dp.json | 60 ++++++++++++------- 2 files changed, 61 insertions(+), 27 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/red-teams/models.tsp b/specification/ai/Azure.AI.Projects/red-teams/models.tsp index db9b001a1ef1..924552662e70 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/models.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/models.tsp @@ -110,16 +110,27 @@ union RiskCategory { Sexual: "Sexual", @doc("Represents content related to self-harm.") - SelfHarm: "SelfHarm", + SelfHarm: "SelfHarm" +} - @doc("Represents content involving protected material.") - ProtectedMaterial: "ProtectedMaterial", +@doc("Azure OpenAI model configuration. The API version would be selected by the service for querying the model.") +@added(Versions.v2025_05_15_preview) +@removed(Versions.v_latest) +model AzureOpenAIModelConfiguration extends TargetConfig { + @visibility(Lifecycle.Read) + type: "AzureOpenAIModel"; - @doc("Represents content related to code vulnerabilities.") - CodeVulnerability: "CodeVulnerability", + @doc("Deployment name for AOAI model. Example: gpt-4o if in AIServices or connection based `connection_name/deployment_name` (i.e. `my-aoai-connection/gpt-4o`.") + modelDeploymentName: string; +} - @doc("Represents content with ungrounded attributes.") - UngroundedAttributes: "UngroundedAttributes", +@doc("Abstract class for target configuration.") +@added(Versions.v2025_05_15_preview) +@removed(Versions.v_latest) +@discriminator("type") +model TargetConfig { + @doc("Type of the model configuration.") + type: string; } @doc("Red team details.") @@ -159,4 +170,7 @@ model RedTeam { @doc("Status of the red-team. It is set by service and is read-only.") @visibility(Lifecycle.Read) status?: string; + + @doc("Target configuration for the red-team run.") + targetConfig: TargetConfig; } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index 5c308264bd14..5da1209e6880 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -2046,6 +2046,25 @@ ], "x-ms-discriminator-value": "AzureSearch" }, + "AzureOpenAIModelConfiguration": { + "type": "object", + "description": "Azure OpenAI model configuration. The API version would be selected by the service for querying the model.", + "properties": { + "ModelDeploymentName": { + "type": "string", + "description": "Deployment name for AOAI model. Example: gpt-4o if in AIServices or connection based `connection_name/deployment_name` (i.e. `my-aoai-connection/gpt-4o`." + } + }, + "required": [ + "ModelDeploymentName" + ], + "allOf": [ + { + "$ref": "#/definitions/TargetConfig" + } + ], + "x-ms-discriminator-value": "AzureOpenAIModel" + }, "BaseCredentials": { "type": "object", "description": "A base class for connection credentials", @@ -3278,6 +3297,10 @@ "type": "string", "description": "Status of the red-team. It is set by service and is read-only.", "readOnly": true + }, + "targetConfig": { + "$ref": "#/definitions/TargetConfig", + "description": "Target configuration for the red-team run." } }, "required": [ @@ -3285,7 +3308,8 @@ "numTurns", "attackStrategies", "simulationOnly", - "riskCategories" + "riskCategories", + "targetConfig" ] }, "RiskCategory": { @@ -3295,10 +3319,7 @@ "HateUnfairness", "Violence", "Sexual", - "SelfHarm", - "ProtectedMaterial", - "CodeVulnerability", - "UngroundedAttributes" + "SelfHarm" ], "x-ms-enum": { "name": "RiskCategory", @@ -3323,21 +3344,6 @@ "name": "SelfHarm", "value": "SelfHarm", "description": "Represents content related to self-harm." - }, - { - "name": "ProtectedMaterial", - "value": "ProtectedMaterial", - "description": "Represents content involving protected material." - }, - { - "name": "CodeVulnerability", - "value": "CodeVulnerability", - "description": "Represents content related to code vulnerabilities." - }, - { - "name": "UngroundedAttributes", - "value": "UngroundedAttributes", - "description": "Represents content with ungrounded attributes." } ] } @@ -3418,6 +3424,20 @@ "size", "tier" ] + }, + "TargetConfig": { + "type": "object", + "description": "Abstract class for target configuration.", + "properties": { + "type": { + "type": "string", + "description": "Type of the model configuration." + } + }, + "discriminator": "type", + "required": [ + "type" + ] } }, "parameters": { From 18ac3feb3e67626dcc2cef8f1bcf70f49eb837a3 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Wed, 23 Apr 2025 17:47:50 -0400 Subject: [PATCH 111/143] fix spell check gate (#34181) Co-authored-by: Neehar Duvvuri --- specification/ai/cspell.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/specification/ai/cspell.yaml b/specification/ai/cspell.yaml index 716df83a21f1..287468989c1b 100644 --- a/specification/ai/cspell.yaml +++ b/specification/ai/cspell.yaml @@ -45,6 +45,9 @@ words: - azureai - atbash - onedp + - ansii + - upia + - aoai overrides: - filename: >- **/specification/ai/data-plane/DocumentIntelligence/**/DocumentIntelligence.json From 0f4d35b139351bb448ff302c29462cdf9b39785e Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Wed, 23 Apr 2025 17:39:18 -0700 Subject: [PATCH 112/143] Remove listing connections with credentials (#34148) --- .../Azure.AI.Projects/connections/models.tsp | 23 ++- .../Azure.AI.Projects/connections/routes.tsp | 24 --- .../azure-ai-projects-1dp.json | 186 +++--------------- .../2025-05-01/azure-ai-projects-1dp.json | 186 +++--------------- .../stable/latest/azure-ai-projects-1dp.json | 186 +++--------------- 5 files changed, 80 insertions(+), 525 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/connections/models.tsp b/specification/ai/Azure.AI.Projects/connections/models.tsp index d0ffded6e217..57ec759cea54 100644 --- a/specification/ai/Azure.AI.Projects/connections/models.tsp +++ b/specification/ai/Azure.AI.Projects/connections/models.tsp @@ -12,7 +12,6 @@ namespace Azure.AI.Projects; @doc("Response from the list and get connections operations") @resource("connections") -@discriminator("authType") @added(Versions.v2025_05_01) model Connection { @doc("The name of the resource") @@ -42,21 +41,22 @@ model Connection { } @doc("A base class for connection credentials") -@discriminator("authType") +@discriminator("type") model BaseCredentials { @doc("The type of credential used by the connection") @visibility(Lifecycle.Read) - authType: CredentialType; + type: CredentialType; } @doc("API Key Credential definition") model ApiKeyCredentials extends BaseCredentials { @doc("The credentail type") @visibility(Lifecycle.Read) - authType: CredentialType.apiKey; + type: CredentialType.apiKey; @doc("API Key") @visibility(Lifecycle.Read) + @encodedName("application/json", "key") apiKey?: string; } @@ -65,14 +65,18 @@ model ApiKeyCredentials extends BaseCredentials { model EntraIDCredentials extends BaseCredentials { @doc("The credential type") @visibility(Lifecycle.Read) - authType: CredentialType.entraId; + type: CredentialType.entraId; } @doc("Custom credential defintion") model CustomCredential extends BaseCredentials { - @doc("The credential type ") + @doc("The credential type") + @visibility(Lifecycle.Read) + type: CredentialType.custom; + + @doc("The credential type") @visibility(Lifecycle.Read) - authType: CredentialType.custom; + keys: Record; } #suppress "@azure-tools/typespec-azure-core/casing-style" @@ -80,10 +84,11 @@ model CustomCredential extends BaseCredentials { model SASCredentials extends BaseCredentials { @doc("The credential type") @visibility(Lifecycle.Read) - authType: CredentialType.SAS; + type: CredentialType.SAS; @doc("SAS token") @visibility(Lifecycle.Read) + @encodedName("application/json", "SAS") sasToken?: string; } @@ -91,7 +96,7 @@ model SASCredentials extends BaseCredentials { model NoAuthenticationCredentials extends BaseCredentials { @doc("The credential type ") @visibility(Lifecycle.Read) - authType: CredentialType.None; + type: CredentialType.None; } // https://learn.microsoft.com/rest/api/azureml/workspace-connections/list-secrets?view=rest-azureml-2024-04-01&tabs=HTTP#ConnectionType diff --git a/specification/ai/Azure.AI.Projects/connections/routes.tsp b/specification/ai/Azure.AI.Projects/connections/routes.tsp index adc1c5a8473b..1c928febdf52 100644 --- a/specification/ai/Azure.AI.Projects/connections/routes.tsp +++ b/specification/ai/Azure.AI.Projects/connections/routes.tsp @@ -47,28 +47,4 @@ interface Connections { ...StandardListQueryParameters; }> >; - - @doc("List all connections in the project, with their connection credentials") - @TypeSpec.Http.post - @Rest.actionSeparator("/") - @Rest.action("withCredentials") - listWithCredentials is ConnectionOperations.ResourceCollectionAction< - Connection, - { - @doc("List connections of this specific type") - @query("connectionType") - connectionType?: ConnectionType; - - @doc("List connections that are default connections") - @query("defaultConnection") - defaultConnection?: boolean; - - ...StandardListQueryParameters; - }, - Internal.ConnectionPaged - >; -} - -namespace Internal { - model ConnectionPaged is Azure.Core.Page; } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index 5da1209e6880..5f4a16d2309c 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -277,135 +277,6 @@ } } }, - "/connections/withCredentials": { - "post": { - "operationId": "Connections_ListWithCredentials", - "description": "List all connections in the project, with their connection credentials", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "connectionType", - "in": "query", - "description": "List connections of this specific type", - "required": false, - "type": "string", - "enum": [ - "AzureOpenAI", - "AzureBlob", - "AzureStorageAccount", - "CognitiveSearch", - "CosmosDB", - "ApiKey", - "AppConfig", - "AppInsights", - "CustomKeys" - ], - "x-ms-enum": { - "name": "ConnectionType", - "modelAsString": true, - "values": [ - { - "name": "AzureOpenAI", - "value": "AzureOpenAI", - "description": "Azure OpenAI Service" - }, - { - "name": "AzureBlobStorage", - "value": "AzureBlob", - "description": "Azure Blob Storage, with specified container" - }, - { - "name": "AzureStorageAccount", - "value": "AzureStorageAccount", - "description": "Azure Blob Storage, with container not specified (used by Agents)" - }, - { - "name": "AzureAISearch", - "value": "CognitiveSearch", - "description": "Azure AI Search" - }, - { - "name": "CosmosDB", - "value": "CosmosDB", - "description": "CosmosDB" - }, - { - "name": "APIKey", - "value": "ApiKey", - "description": "Generic connection that uses API Key authentication" - }, - { - "name": "ApplicationConfiguration", - "value": "AppConfig", - "description": "Application Configuration" - }, - { - "name": "ApplicationInsights", - "value": "AppInsights", - "description": "Application Insights" - }, - { - "name": "Custom", - "value": "CustomKeys", - "description": "Custom Keys" - } - ] - } - }, - { - "name": "defaultConnection", - "in": "query", - "description": "List connections that are default connections", - "required": false, - "type": "boolean" - }, - { - "$ref": "#/parameters/Azure.Core.TopQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.SkipQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/Internal.ConnectionPaged" - }, - "headers": { - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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-pageable": { - "nextLinkName": "nextLink" - } - } - }, "/datasets": { "get": { "operationId": "Datasets_ListLatest", @@ -1763,10 +1634,11 @@ "type": "object", "description": "API Key Credential definition", "properties": { - "apiKey": { + "key": { "type": "string", "description": "API Key", - "readOnly": true + "readOnly": true, + "x-ms-client-name": "apiKey" } }, "allOf": [ @@ -2069,15 +1941,15 @@ "type": "object", "description": "A base class for connection credentials", "properties": { - "authType": { + "type": { "$ref": "#/definitions/CredentialType", "description": "The type of credential used by the connection", "readOnly": true } }, - "discriminator": "authType", + "discriminator": "type", "required": [ - "authType" + "type" ] }, "BlobReferenceForConsumption": { @@ -2107,10 +1979,6 @@ "type": "object", "description": "Response from the list and get connections operations", "properties": { - "authType": { - "type": "string", - "description": "Discriminator property for Connection." - }, "name": { "type": "string", "description": "The name of the resource", @@ -2145,9 +2013,7 @@ "readOnly": true } }, - "discriminator": "authType", "required": [ - "authType", "name", "type", "target", @@ -2323,6 +2189,19 @@ "CustomCredential": { "type": "object", "description": "Custom credential defintion", + "properties": { + "keys": { + "type": "object", + "description": "The credential type", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + } + }, + "required": [ + "keys" + ], "allOf": [ { "$ref": "#/definitions/BaseCredentials" @@ -2839,28 +2718,6 @@ ], "x-ms-discriminator-value": "dataset" }, - "Internal.ConnectionPaged": { - "type": "object", - "description": "Paged collection of Connection items", - "properties": { - "value": { - "type": "array", - "description": "The Connection items on this page", - "items": { - "$ref": "#/definitions/Connection" - }, - "x-ms-identifiers": [] - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, "ListSortOrder": { "type": "string", "description": "The available sorting options when requesting a list of response objects.", @@ -3352,10 +3209,11 @@ "type": "object", "description": "Shared Access Signature (SAS) credential definition", "properties": { - "sasToken": { + "SAS": { "type": "string", "description": "SAS token", - "readOnly": true + "readOnly": true, + "x-ms-client-name": "sasToken" } }, "allOf": [ diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json index ba2ca6929625..34479092e37a 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json @@ -277,135 +277,6 @@ } } }, - "/connections/withCredentials": { - "post": { - "operationId": "Connections_ListWithCredentials", - "description": "List all connections in the project, with their connection credentials", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "connectionType", - "in": "query", - "description": "List connections of this specific type", - "required": false, - "type": "string", - "enum": [ - "AzureOpenAI", - "AzureBlob", - "AzureStorageAccount", - "CognitiveSearch", - "CosmosDB", - "ApiKey", - "AppConfig", - "AppInsights", - "CustomKeys" - ], - "x-ms-enum": { - "name": "ConnectionType", - "modelAsString": true, - "values": [ - { - "name": "AzureOpenAI", - "value": "AzureOpenAI", - "description": "Azure OpenAI Service" - }, - { - "name": "AzureBlobStorage", - "value": "AzureBlob", - "description": "Azure Blob Storage, with specified container" - }, - { - "name": "AzureStorageAccount", - "value": "AzureStorageAccount", - "description": "Azure Blob Storage, with container not specified (used by Agents)" - }, - { - "name": "AzureAISearch", - "value": "CognitiveSearch", - "description": "Azure AI Search" - }, - { - "name": "CosmosDB", - "value": "CosmosDB", - "description": "CosmosDB" - }, - { - "name": "APIKey", - "value": "ApiKey", - "description": "Generic connection that uses API Key authentication" - }, - { - "name": "ApplicationConfiguration", - "value": "AppConfig", - "description": "Application Configuration" - }, - { - "name": "ApplicationInsights", - "value": "AppInsights", - "description": "Application Insights" - }, - { - "name": "Custom", - "value": "CustomKeys", - "description": "Custom Keys" - } - ] - } - }, - { - "name": "defaultConnection", - "in": "query", - "description": "List connections that are default connections", - "required": false, - "type": "boolean" - }, - { - "$ref": "#/parameters/Azure.Core.TopQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.SkipQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/Internal.ConnectionPaged" - }, - "headers": { - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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-pageable": { - "nextLinkName": "nextLink" - } - } - }, "/datasets": { "get": { "operationId": "Datasets_ListLatest", @@ -1291,10 +1162,11 @@ "type": "object", "description": "API Key Credential definition", "properties": { - "apiKey": { + "key": { "type": "string", "description": "API Key", - "readOnly": true + "readOnly": true, + "x-ms-client-name": "apiKey" } }, "allOf": [ @@ -1422,15 +1294,15 @@ "type": "object", "description": "A base class for connection credentials", "properties": { - "authType": { + "type": { "$ref": "#/definitions/CredentialType", "description": "The type of credential used by the connection", "readOnly": true } }, - "discriminator": "authType", + "discriminator": "type", "required": [ - "authType" + "type" ] }, "BlobReferenceForConsumption": { @@ -1460,10 +1332,6 @@ "type": "object", "description": "Response from the list and get connections operations", "properties": { - "authType": { - "type": "string", - "description": "Discriminator property for Connection." - }, "name": { "type": "string", "description": "The name of the resource", @@ -1498,9 +1366,7 @@ "readOnly": true } }, - "discriminator": "authType", "required": [ - "authType", "name", "type", "target", @@ -1676,6 +1542,19 @@ "CustomCredential": { "type": "object", "description": "Custom credential defintion", + "properties": { + "keys": { + "type": "object", + "description": "The credential type", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + } + }, + "required": [ + "keys" + ], "allOf": [ { "$ref": "#/definitions/BaseCredentials" @@ -2080,28 +1959,6 @@ "type" ] }, - "Internal.ConnectionPaged": { - "type": "object", - "description": "Paged collection of Connection items", - "properties": { - "value": { - "type": "array", - "description": "The Connection items on this page", - "items": { - "$ref": "#/definitions/Connection" - }, - "x-ms-identifiers": [] - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, "ListSortOrder": { "type": "string", "description": "The available sorting options when requesting a list of response objects.", @@ -2442,10 +2299,11 @@ "type": "object", "description": "Shared Access Signature (SAS) credential definition", "properties": { - "sasToken": { + "SAS": { "type": "string", "description": "SAS token", - "readOnly": true + "readOnly": true, + "x-ms-client-name": "sasToken" } }, "allOf": [ diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json index 1ee4a57e9847..90a195f31a41 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json @@ -277,135 +277,6 @@ } } }, - "/connections/withCredentials": { - "post": { - "operationId": "Connections_ListWithCredentials", - "description": "List all connections in the project, with their connection credentials", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "connectionType", - "in": "query", - "description": "List connections of this specific type", - "required": false, - "type": "string", - "enum": [ - "AzureOpenAI", - "AzureBlob", - "AzureStorageAccount", - "CognitiveSearch", - "CosmosDB", - "ApiKey", - "AppConfig", - "AppInsights", - "CustomKeys" - ], - "x-ms-enum": { - "name": "ConnectionType", - "modelAsString": true, - "values": [ - { - "name": "AzureOpenAI", - "value": "AzureOpenAI", - "description": "Azure OpenAI Service" - }, - { - "name": "AzureBlobStorage", - "value": "AzureBlob", - "description": "Azure Blob Storage, with specified container" - }, - { - "name": "AzureStorageAccount", - "value": "AzureStorageAccount", - "description": "Azure Blob Storage, with container not specified (used by Agents)" - }, - { - "name": "AzureAISearch", - "value": "CognitiveSearch", - "description": "Azure AI Search" - }, - { - "name": "CosmosDB", - "value": "CosmosDB", - "description": "CosmosDB" - }, - { - "name": "APIKey", - "value": "ApiKey", - "description": "Generic connection that uses API Key authentication" - }, - { - "name": "ApplicationConfiguration", - "value": "AppConfig", - "description": "Application Configuration" - }, - { - "name": "ApplicationInsights", - "value": "AppInsights", - "description": "Application Insights" - }, - { - "name": "Custom", - "value": "CustomKeys", - "description": "Custom Keys" - } - ] - } - }, - { - "name": "defaultConnection", - "in": "query", - "description": "List connections that are default connections", - "required": false, - "type": "boolean" - }, - { - "$ref": "#/parameters/Azure.Core.TopQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.SkipQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/Internal.ConnectionPaged" - }, - "headers": { - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - } - } - }, - "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-pageable": { - "nextLinkName": "nextLink" - } - } - }, "/datasets": { "get": { "operationId": "Datasets_ListLatest", @@ -1291,10 +1162,11 @@ "type": "object", "description": "API Key Credential definition", "properties": { - "apiKey": { + "key": { "type": "string", "description": "API Key", - "readOnly": true + "readOnly": true, + "x-ms-client-name": "apiKey" } }, "allOf": [ @@ -1422,15 +1294,15 @@ "type": "object", "description": "A base class for connection credentials", "properties": { - "authType": { + "type": { "$ref": "#/definitions/CredentialType", "description": "The type of credential used by the connection", "readOnly": true } }, - "discriminator": "authType", + "discriminator": "type", "required": [ - "authType" + "type" ] }, "BlobReferenceForConsumption": { @@ -1460,10 +1332,6 @@ "type": "object", "description": "Response from the list and get connections operations", "properties": { - "authType": { - "type": "string", - "description": "Discriminator property for Connection." - }, "name": { "type": "string", "description": "The name of the resource", @@ -1498,9 +1366,7 @@ "readOnly": true } }, - "discriminator": "authType", "required": [ - "authType", "name", "type", "target", @@ -1676,6 +1542,19 @@ "CustomCredential": { "type": "object", "description": "Custom credential defintion", + "properties": { + "keys": { + "type": "object", + "description": "The credential type", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + } + }, + "required": [ + "keys" + ], "allOf": [ { "$ref": "#/definitions/BaseCredentials" @@ -2080,28 +1959,6 @@ "type" ] }, - "Internal.ConnectionPaged": { - "type": "object", - "description": "Paged collection of Connection items", - "properties": { - "value": { - "type": "array", - "description": "The Connection items on this page", - "items": { - "$ref": "#/definitions/Connection" - }, - "x-ms-identifiers": [] - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, "ListSortOrder": { "type": "string", "description": "The available sorting options when requesting a list of response objects.", @@ -2442,10 +2299,11 @@ "type": "object", "description": "Shared Access Signature (SAS) credential definition", "properties": { - "sasToken": { + "SAS": { "type": "string", "description": "SAS token", - "readOnly": true + "readOnly": true, + "x-ms-client-name": "sasToken" } }, "allOf": [ From 8e6db4efb4d85a4475ae1d5682233cd0510cfe42 Mon Sep 17 00:00:00 2001 From: David Wu Date: Thu, 24 Apr 2025 08:30:39 -0700 Subject: [PATCH 113/143] =?UTF-8?q?Switch=20AppInsights=20connection=20str?= =?UTF-8?q?ing=20to=20be=20mandatory=20for=20SDKs=20and=20add=E2=80=A6=20(?= =?UTF-8?q?#34198)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Switch AppInsights connection string to be mandatory for SDKs and add top level error field for get agent evaluation results API * Updated generated JSON * Update docs to address PR feedbacks * Update the generated JSON file --- .../ai/Azure.AI.Projects/evaluations/models.tsp | 7 +++++-- .../2025-05-15-preview/azure-ai-projects-1dp.json | 9 +++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/evaluations/models.tsp b/specification/ai/Azure.AI.Projects/evaluations/models.tsp index 990f9fc35093..f72bf164ab54 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/models.tsp @@ -120,8 +120,8 @@ model AgentEvaluationRequest { @doc("Redaction configuration for the evaluation.") redactionConfiguration?: AgentEvaluationRedactionConfiguration; - @doc("Optional and temporary way to pass the AppInsights connection string to the evaluator. When this string is not null, the evaluation results will be logged to Azure AppInsights.") - appInsightsConnectionString?: string; + @doc("Pass the AppInsights connection string to the agent evaluation for the evaluation results and the errors logs.") + appInsightsConnectionString: string; } @doc("Result for the agent evaluation evaluator run.") @@ -166,6 +166,9 @@ model AgentEvaluation { @doc("Status of the agent evaluation. Options: Running, Completed, Failed.") status: string; + @doc("The reason of the request failure for the long running process, if applicable.") + error?: string; + @doc("The agent evaluation result.") result?: Array; } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index 5f4a16d2309c..bd7eac5443e3 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -1492,6 +1492,10 @@ "type": "string", "description": "Status of the agent evaluation. Options: Running, Completed, Failed." }, + "error": { + "type": "string", + "description": "The reason of the request failure for the long running process, if applicable." + }, "result": { "type": "array", "description": "The agent evaluation result.", @@ -1545,12 +1549,13 @@ }, "appInsightsConnectionString": { "type": "string", - "description": "Optional and temporary way to pass the AppInsights connection string to the evaluator. When this string is not null, the evaluation results will be logged to Azure AppInsights." + "description": "Pass the AppInsights connection string to the agent evaluation for the evaluation results and the errors logs." } }, "required": [ "runId", - "evaluators" + "evaluators", + "appInsightsConnectionString" ] }, "AgentEvaluationResult": { From 0f04d880fe17e0da290f836f62dcb033e73faec4 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Fri, 25 Apr 2025 07:22:56 -0700 Subject: [PATCH 114/143] Drop the 'onedp' name in emitted Python SDK package and folder --- specification/ai/Azure.AI.Projects/tspconfig.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/tspconfig.yaml b/specification/ai/Azure.AI.Projects/tspconfig.yaml index 76d97b4faedb..e6e7a9df834a 100644 --- a/specification/ai/Azure.AI.Projects/tspconfig.yaml +++ b/specification/ai/Azure.AI.Projects/tspconfig.yaml @@ -11,9 +11,9 @@ options: output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/azure-ai-projects-1dp.json" "@azure-tools/typespec-python": package-mode: "dataplane" - package-dir: "azure-ai-projects-onedp" + package-dir: "azure-ai-projects" package-name: "{package-dir}" - namespace: "azure.ai.projects.onedp" + namespace: "azure.ai.projects" api-version: "2025-05-15-preview" flavor: azure generate-test: true From 1de9b3dac1f5a2374392b6e946ec4febd2bea2f6 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Fri, 25 Apr 2025 08:52:39 -0700 Subject: [PATCH 115/143] Update swagger --- .../preview/2025-05-15-preview/azure-ai-projects-1dp.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index bd7eac5443e3..ae3309e64636 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -1927,13 +1927,13 @@ "type": "object", "description": "Azure OpenAI model configuration. The API version would be selected by the service for querying the model.", "properties": { - "ModelDeploymentName": { + "modelDeploymentName": { "type": "string", "description": "Deployment name for AOAI model. Example: gpt-4o if in AIServices or connection based `connection_name/deployment_name` (i.e. `my-aoai-connection/gpt-4o`." } }, "required": [ - "ModelDeploymentName" + "modelDeploymentName" ], "allOf": [ { From 88f1797dc292262ccf36a806a28578afbbbb4b6b Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Fri, 25 Apr 2025 08:54:29 -0700 Subject: [PATCH 116/143] Auto fix to file red-teams/models.tsp after running `npx tsv .` --- specification/ai/Azure.AI.Projects/red-teams/models.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/ai/Azure.AI.Projects/red-teams/models.tsp b/specification/ai/Azure.AI.Projects/red-teams/models.tsp index 924552662e70..23fd2ee682b6 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/models.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/models.tsp @@ -110,7 +110,7 @@ union RiskCategory { Sexual: "Sexual", @doc("Represents content related to self-harm.") - SelfHarm: "SelfHarm" + SelfHarm: "SelfHarm", } @doc("Azure OpenAI model configuration. The API version would be selected by the service for querying the model.") From 6e1b6682e1c2034d13528e38fd3748d3c9e69c42 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Fri, 25 Apr 2025 12:42:54 -0400 Subject: [PATCH 117/143] Add Type Filter to Deployment List (#34247) * add a deployment type query param * Add deploymentType as filter to listing --------- Co-authored-by: Neehar Duvvuri --- .../Azure.AI.Projects/deployments/routes.tsp | 4 ++++ .../azure-ai-projects-1dp.json | 21 +++++++++++++++++++ .../2025-05-01/azure-ai-projects-1dp.json | 21 +++++++++++++++++++ .../stable/latest/azure-ai-projects-1dp.json | 21 +++++++++++++++++++ 4 files changed, 67 insertions(+) diff --git a/specification/ai/Azure.AI.Projects/deployments/routes.tsp b/specification/ai/Azure.AI.Projects/deployments/routes.tsp index 23b3749e2dc1..39c50921e770 100644 --- a/specification/ai/Azure.AI.Projects/deployments/routes.tsp +++ b/specification/ai/Azure.AI.Projects/deployments/routes.tsp @@ -34,6 +34,10 @@ interface Deployments { @query("modelName") modelName?: string; + @doc("Type of deployment to filter list by") + @query("deploymentType") + deploymentType?: DeploymentType; + ...StandardListQueryParameters; }> >; diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index ae3309e64636..c84137bd96ef 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -735,6 +735,27 @@ "required": false, "type": "string" }, + { + "name": "deploymentType", + "in": "query", + "description": "Type of deployment to filter list by", + "required": false, + "type": "string", + "enum": [ + "ModelDeployment" + ], + "x-ms-enum": { + "name": "DeploymentType", + "modelAsString": true, + "values": [ + { + "name": "ModelDeployment", + "value": "ModelDeployment", + "description": "Model deployment" + } + ] + } + }, { "$ref": "#/parameters/Azure.Core.TopQueryParameter" }, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json index 34479092e37a..af0cbd1f55c0 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json @@ -735,6 +735,27 @@ "required": false, "type": "string" }, + { + "name": "deploymentType", + "in": "query", + "description": "Type of deployment to filter list by", + "required": false, + "type": "string", + "enum": [ + "ModelDeployment" + ], + "x-ms-enum": { + "name": "DeploymentType", + "modelAsString": true, + "values": [ + { + "name": "ModelDeployment", + "value": "ModelDeployment", + "description": "Model deployment" + } + ] + } + }, { "$ref": "#/parameters/Azure.Core.TopQueryParameter" }, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json index 90a195f31a41..7d2a3e43ac6a 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json @@ -735,6 +735,27 @@ "required": false, "type": "string" }, + { + "name": "deploymentType", + "in": "query", + "description": "Type of deployment to filter list by", + "required": false, + "type": "string", + "enum": [ + "ModelDeployment" + ], + "x-ms-enum": { + "name": "DeploymentType", + "modelAsString": true, + "values": [ + { + "name": "ModelDeployment", + "value": "ModelDeployment", + "description": "Model deployment" + } + ] + } + }, { "$ref": "#/parameters/Azure.Core.TopQueryParameter" }, From cffd345a82bef7edb5745e2f815b57fb0c220293 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Fri, 25 Apr 2025 09:45:41 -0700 Subject: [PATCH 118/143] Fix SdkTspConfigValidation issues (#34248) * Auto fix to file red-teams/models.tsp after running `npx tsv .` * First * More fixes * More fixes --- .../ai/Azure.AI.Projects/red-teams/models.tsp | 2 +- specification/ai/Azure.AI.Projects/tspconfig.yaml | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/red-teams/models.tsp b/specification/ai/Azure.AI.Projects/red-teams/models.tsp index 924552662e70..23fd2ee682b6 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/models.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/models.tsp @@ -110,7 +110,7 @@ union RiskCategory { Sexual: "Sexual", @doc("Represents content related to self-harm.") - SelfHarm: "SelfHarm" + SelfHarm: "SelfHarm", } @doc("Azure OpenAI model configuration. The API version would be selected by the service for querying the model.") diff --git a/specification/ai/Azure.AI.Projects/tspconfig.yaml b/specification/ai/Azure.AI.Projects/tspconfig.yaml index e6e7a9df834a..47940823b97a 100644 --- a/specification/ai/Azure.AI.Projects/tspconfig.yaml +++ b/specification/ai/Azure.AI.Projects/tspconfig.yaml @@ -35,8 +35,21 @@ options: generateTest: true generateMetadata: false packageDetails: - name: "@azure/ai-projects-1dp" + name: "@azure/ai-projects-1dp" flavor: azure + "@azure-tools/typespec-java": + package-dir: "azure-ai-projects" + namespace: com.azure.ai.projects + partial-update: true + customization-class: customization/src/main/java/ProjectsCustomizations.java + enable-sync-stack: true + generate-tests: false + flavor: azure + "@azure-tools/typespec-go": + service-dir: "sdk/ai/projects" + package-dir: "azaiprojects" + generate-fakes: true + inject-spans: true linter: extends: - "@azure-tools/typespec-azure-rulesets/data-plane" From a7c428f5fd44af40c91cd67d75a28a37de6937ae Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Fri, 25 Apr 2025 14:44:08 -0400 Subject: [PATCH 119/143] Add examples and readme.md for Azure.AI.Projects (#34220) * Add examples for Azure.AI.Projects * run npx tsv * fix UUID issue * run prettier on examples * run prettier on examples * fix UUID issues in data-plane examples * add a readme * fix uuid * take bad request id * fix thing * suppress lint diff * fix suppression where * fix suppression * merge and run tsv * random string -> uuid * fix UUID issue * revert red teams change * Auto fix to file red-teams/models.tsp after running `npx tsv .` * Fix SdkTspConfigValidation issues (#34248) * Auto fix to file red-teams/models.tsp after running `npx tsv .` * First * More fixes * More fixes --------- Co-authored-by: Neehar Duvvuri Co-authored-by: Darren Cohen <39422044+dargilco@users.noreply.github.com> --- ...ons_GetWithCredentials_MaximumSet_Gen.json | 25 +++ .../Connections_Get_MaximumSet_Gen.json | 25 +++ .../Connections_List_MaximumSet_Gen.json | 34 ++++ ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 41 +++++ ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 30 ++++ ...Datasets_DeleteVersion_MaximumSet_Gen.json | 12 ++ ...Datasets_DeleteVersion_MinimumSet_Gen.json | 12 ++ ...atasets_GetCredentials_MaximumSet_Gen.json | 24 +++ ...atasets_GetCredentials_MinimumSet_Gen.json | 24 +++ .../Datasets_GetVersion_MaximumSet_Gen.json | 22 +++ .../Datasets_GetVersion_MinimumSet_Gen.json | 19 ++ .../Datasets_ListLatest_MaximumSet_Gen.json | 29 +++ .../Datasets_ListLatest_MinimumSet_Gen.json | 21 +++ .../Datasets_ListVersions_MaximumSet_Gen.json | 30 ++++ .../Datasets_ListVersions_MinimumSet_Gen.json | 22 +++ ...rtPendingUploadVersion_MaximumSet_Gen.json | 31 ++++ ...rtPendingUploadVersion_MinimumSet_Gen.json | 28 +++ .../Deployments_Get_MaximumSet_Gen.json | 17 ++ .../Deployments_List_MaximumSet_Gen.json | 26 +++ ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 37 ++++ ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 28 +++ .../Indexes_DeleteVersion_MaximumSet_Gen.json | 12 ++ .../Indexes_DeleteVersion_MinimumSet_Gen.json | 12 ++ .../Indexes_GetVersion_MaximumSet_Gen.json | 20 +++ .../Indexes_GetVersion_MinimumSet_Gen.json | 18 ++ .../Indexes_ListLatest_MaximumSet_Gen.json | 27 +++ .../Indexes_ListLatest_MinimumSet_Gen.json | 20 +++ .../Indexes_ListVersions_MaximumSet_Gen.json | 28 +++ .../Indexes_ListVersions_MinimumSet_Gen.json | 21 +++ ...ons_GetWithCredentials_MaximumSet_Gen.json | 25 +++ .../Connections_Get_MaximumSet_Gen.json | 25 +++ .../Connections_List_MaximumSet_Gen.json | 34 ++++ ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 41 +++++ ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 30 ++++ ...Datasets_DeleteVersion_MaximumSet_Gen.json | 12 ++ ...Datasets_DeleteVersion_MinimumSet_Gen.json | 12 ++ ...atasets_GetCredentials_MaximumSet_Gen.json | 24 +++ ...atasets_GetCredentials_MinimumSet_Gen.json | 24 +++ .../Datasets_GetVersion_MaximumSet_Gen.json | 22 +++ .../Datasets_GetVersion_MinimumSet_Gen.json | 19 ++ .../Datasets_ListLatest_MaximumSet_Gen.json | 29 +++ .../Datasets_ListLatest_MinimumSet_Gen.json | 21 +++ .../Datasets_ListVersions_MaximumSet_Gen.json | 30 ++++ .../Datasets_ListVersions_MinimumSet_Gen.json | 22 +++ ...rtPendingUploadVersion_MaximumSet_Gen.json | 31 ++++ ...rtPendingUploadVersion_MinimumSet_Gen.json | 28 +++ .../Deployments_Get_MaximumSet_Gen.json | 17 ++ .../Deployments_List_MaximumSet_Gen.json | 26 +++ ..._CreateAgentEvaluation_MaximumSet_Gen.json | 53 ++++++ ..._CreateAgentEvaluation_MinimumSet_Gen.json | 20 +++ .../Evaluations_CreateRun_MaximumSet_Gen.json | 57 ++++++ .../Evaluations_CreateRun_MinimumSet_Gen.json | 24 +++ .../Evaluations_Get_MaximumSet_Gen.json | 37 ++++ .../Evaluations_List_MaximumSet_Gen.json | 44 +++++ ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 37 ++++ ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 28 +++ .../Indexes_DeleteVersion_MaximumSet_Gen.json | 12 ++ .../Indexes_DeleteVersion_MinimumSet_Gen.json | 12 ++ .../Indexes_GetVersion_MaximumSet_Gen.json | 20 +++ .../Indexes_GetVersion_MinimumSet_Gen.json | 18 ++ .../Indexes_ListLatest_MaximumSet_Gen.json | 27 +++ .../Indexes_ListLatest_MinimumSet_Gen.json | 20 +++ .../Indexes_ListVersions_MaximumSet_Gen.json | 28 +++ .../Indexes_ListVersions_MinimumSet_Gen.json | 21 +++ .../RedTeams_CreateRun_MaximumSet_Gen.json | 55 ++++++ .../RedTeams_CreateRun_MinimumSet_Gen.json | 38 ++++ .../RedTeams_Get_MaximumSet_Gen.json | 36 ++++ .../RedTeams_List_MaximumSet_Gen.json | 43 +++++ ...ons_GetWithCredentials_MaximumSet_Gen.json | 25 +++ .../Connections_Get_MaximumSet_Gen.json | 25 +++ .../Connections_List_MaximumSet_Gen.json | 34 ++++ ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 41 +++++ ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 30 ++++ ...Datasets_DeleteVersion_MaximumSet_Gen.json | 12 ++ ...Datasets_DeleteVersion_MinimumSet_Gen.json | 12 ++ ...atasets_GetCredentials_MaximumSet_Gen.json | 24 +++ ...atasets_GetCredentials_MinimumSet_Gen.json | 24 +++ .../Datasets_GetVersion_MaximumSet_Gen.json | 22 +++ .../Datasets_GetVersion_MinimumSet_Gen.json | 19 ++ .../Datasets_ListLatest_MaximumSet_Gen.json | 29 +++ .../Datasets_ListLatest_MinimumSet_Gen.json | 21 +++ .../Datasets_ListVersions_MaximumSet_Gen.json | 30 ++++ .../Datasets_ListVersions_MinimumSet_Gen.json | 22 +++ ...rtPendingUploadVersion_MaximumSet_Gen.json | 31 ++++ ...rtPendingUploadVersion_MinimumSet_Gen.json | 28 +++ .../Deployments_Get_MaximumSet_Gen.json | 17 ++ .../Deployments_List_MaximumSet_Gen.json | 26 +++ ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 37 ++++ ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 28 +++ .../Indexes_DeleteVersion_MaximumSet_Gen.json | 12 ++ .../Indexes_DeleteVersion_MinimumSet_Gen.json | 12 ++ .../Indexes_GetVersion_MaximumSet_Gen.json | 20 +++ .../Indexes_GetVersion_MinimumSet_Gen.json | 18 ++ .../Indexes_ListLatest_MaximumSet_Gen.json | 27 +++ .../Indexes_ListLatest_MinimumSet_Gen.json | 20 +++ .../Indexes_ListVersions_MaximumSet_Gen.json | 28 +++ .../Indexes_ListVersions_MinimumSet_Gen.json | 21 +++ .../azure-ai-projects-1dp.json | 167 +++++++++++++++++- ...ons_GetWithCredentials_MaximumSet_Gen.json | 25 +++ .../Connections_Get_MaximumSet_Gen.json | 25 +++ .../Connections_List_MaximumSet_Gen.json | 34 ++++ ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 41 +++++ ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 30 ++++ ...Datasets_DeleteVersion_MaximumSet_Gen.json | 12 ++ ...Datasets_DeleteVersion_MinimumSet_Gen.json | 12 ++ ...atasets_GetCredentials_MaximumSet_Gen.json | 24 +++ ...atasets_GetCredentials_MinimumSet_Gen.json | 24 +++ .../Datasets_GetVersion_MaximumSet_Gen.json | 22 +++ .../Datasets_GetVersion_MinimumSet_Gen.json | 19 ++ .../Datasets_ListLatest_MaximumSet_Gen.json | 29 +++ .../Datasets_ListLatest_MinimumSet_Gen.json | 21 +++ .../Datasets_ListVersions_MaximumSet_Gen.json | 30 ++++ .../Datasets_ListVersions_MinimumSet_Gen.json | 22 +++ ...rtPendingUploadVersion_MaximumSet_Gen.json | 31 ++++ ...rtPendingUploadVersion_MinimumSet_Gen.json | 28 +++ .../Deployments_Get_MaximumSet_Gen.json | 17 ++ .../Deployments_List_MaximumSet_Gen.json | 26 +++ ..._CreateAgentEvaluation_MaximumSet_Gen.json | 53 ++++++ ..._CreateAgentEvaluation_MinimumSet_Gen.json | 20 +++ .../Evaluations_CreateRun_MaximumSet_Gen.json | 57 ++++++ .../Evaluations_CreateRun_MinimumSet_Gen.json | 24 +++ .../Evaluations_Get_MaximumSet_Gen.json | 37 ++++ .../Evaluations_List_MaximumSet_Gen.json | 44 +++++ ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 37 ++++ ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 28 +++ .../Indexes_DeleteVersion_MaximumSet_Gen.json | 12 ++ .../Indexes_DeleteVersion_MinimumSet_Gen.json | 12 ++ .../Indexes_GetVersion_MaximumSet_Gen.json | 20 +++ .../Indexes_GetVersion_MinimumSet_Gen.json | 18 ++ .../Indexes_ListLatest_MaximumSet_Gen.json | 27 +++ .../Indexes_ListLatest_MinimumSet_Gen.json | 20 +++ .../Indexes_ListVersions_MaximumSet_Gen.json | 28 +++ .../Indexes_ListVersions_MinimumSet_Gen.json | 21 +++ .../RedTeams_CreateRun_MaximumSet_Gen.json | 55 ++++++ .../RedTeams_CreateRun_MinimumSet_Gen.json | 38 ++++ .../examples/RedTeams_Get_MaximumSet_Gen.json | 36 ++++ .../RedTeams_List_MaximumSet_Gen.json | 43 +++++ .../ai/data-plane/Azure.AI.Projects/readme.md | 46 +++++ .../2025-05-01/azure-ai-projects-1dp.json | 123 ++++++++++++- ...ons_GetWithCredentials_MaximumSet_Gen.json | 25 +++ .../Connections_Get_MaximumSet_Gen.json | 25 +++ .../Connections_List_MaximumSet_Gen.json | 34 ++++ ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 41 +++++ ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 30 ++++ ...Datasets_DeleteVersion_MaximumSet_Gen.json | 12 ++ ...Datasets_DeleteVersion_MinimumSet_Gen.json | 12 ++ ...atasets_GetCredentials_MaximumSet_Gen.json | 24 +++ ...atasets_GetCredentials_MinimumSet_Gen.json | 24 +++ .../Datasets_GetVersion_MaximumSet_Gen.json | 22 +++ .../Datasets_GetVersion_MinimumSet_Gen.json | 19 ++ .../Datasets_ListLatest_MaximumSet_Gen.json | 29 +++ .../Datasets_ListLatest_MinimumSet_Gen.json | 21 +++ .../Datasets_ListVersions_MaximumSet_Gen.json | 30 ++++ .../Datasets_ListVersions_MinimumSet_Gen.json | 22 +++ ...rtPendingUploadVersion_MaximumSet_Gen.json | 31 ++++ ...rtPendingUploadVersion_MinimumSet_Gen.json | 28 +++ .../Deployments_Get_MaximumSet_Gen.json | 17 ++ .../Deployments_List_MaximumSet_Gen.json | 26 +++ ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 37 ++++ ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 28 +++ .../Indexes_DeleteVersion_MaximumSet_Gen.json | 12 ++ .../Indexes_DeleteVersion_MinimumSet_Gen.json | 12 ++ .../Indexes_GetVersion_MaximumSet_Gen.json | 20 +++ .../Indexes_GetVersion_MinimumSet_Gen.json | 18 ++ .../Indexes_ListLatest_MaximumSet_Gen.json | 27 +++ .../Indexes_ListLatest_MinimumSet_Gen.json | 20 +++ .../Indexes_ListVersions_MaximumSet_Gen.json | 28 +++ .../Indexes_ListVersions_MinimumSet_Gen.json | 21 +++ .../stable/latest/azure-ai-projects-1dp.json | 123 ++++++++++++- ...ons_GetWithCredentials_MaximumSet_Gen.json | 25 +++ .../Connections_Get_MaximumSet_Gen.json | 25 +++ .../Connections_List_MaximumSet_Gen.json | 34 ++++ ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 41 +++++ ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 30 ++++ ...Datasets_DeleteVersion_MaximumSet_Gen.json | 12 ++ ...Datasets_DeleteVersion_MinimumSet_Gen.json | 12 ++ ...atasets_GetCredentials_MaximumSet_Gen.json | 24 +++ ...atasets_GetCredentials_MinimumSet_Gen.json | 24 +++ .../Datasets_GetVersion_MaximumSet_Gen.json | 22 +++ .../Datasets_GetVersion_MinimumSet_Gen.json | 19 ++ .../Datasets_ListLatest_MaximumSet_Gen.json | 29 +++ .../Datasets_ListLatest_MinimumSet_Gen.json | 21 +++ .../Datasets_ListVersions_MaximumSet_Gen.json | 30 ++++ .../Datasets_ListVersions_MinimumSet_Gen.json | 22 +++ ...rtPendingUploadVersion_MaximumSet_Gen.json | 31 ++++ ...rtPendingUploadVersion_MinimumSet_Gen.json | 28 +++ .../Deployments_Get_MaximumSet_Gen.json | 17 ++ .../Deployments_List_MaximumSet_Gen.json | 26 +++ ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 37 ++++ ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 28 +++ .../Indexes_DeleteVersion_MaximumSet_Gen.json | 12 ++ .../Indexes_DeleteVersion_MinimumSet_Gen.json | 12 ++ .../Indexes_GetVersion_MaximumSet_Gen.json | 20 +++ .../Indexes_GetVersion_MinimumSet_Gen.json | 18 ++ .../Indexes_ListLatest_MaximumSet_Gen.json | 27 +++ .../Indexes_ListLatest_MinimumSet_Gen.json | 20 +++ .../Indexes_ListVersions_MaximumSet_Gen.json | 28 +++ .../Indexes_ListVersions_MinimumSet_Gen.json | 21 +++ 198 files changed, 5440 insertions(+), 3 deletions(-) create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_GetWithCredentials_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_Get_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_List_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_DeleteVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_DeleteVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetCredentials_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetCredentials_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListLatest_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListLatest_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListVersions_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListVersions_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Deployments_Get_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Deployments_List_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_DeleteVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_DeleteVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_GetVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_GetVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListLatest_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListLatest_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListVersions_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListVersions_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_GetWithCredentials_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_Get_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_List_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_DeleteVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_DeleteVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetCredentials_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetCredentials_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListLatest_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListLatest_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListVersions_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListVersions_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Deployments_Get_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Deployments_List_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateAgentEvaluation_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateAgentEvaluation_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateRun_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateRun_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_Get_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_List_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_DeleteVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_DeleteVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_GetVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_GetVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListLatest_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListLatest_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListVersions_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListVersions_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_CreateRun_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_CreateRun_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Get_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_List_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Connections_GetWithCredentials_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Connections_Get_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Connections_List_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Datasets_DeleteVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Datasets_DeleteVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetCredentials_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetCredentials_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListLatest_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListLatest_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListVersions_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListVersions_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Deployments_Get_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Deployments_List_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Indexes_DeleteVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Indexes_DeleteVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Indexes_GetVersion_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Indexes_GetVersion_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListLatest_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListLatest_MinimumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListVersions_MaximumSet_Gen.json create mode 100644 specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListVersions_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_GetWithCredentials_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_Get_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_List_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_DeleteVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_DeleteVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetCredentials_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetCredentials_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListLatest_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListLatest_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListVersions_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListVersions_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Deployments_Get_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Deployments_List_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateAgentEvaluation_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateAgentEvaluation_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateRun_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateRun_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_Get_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_List_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_DeleteVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_DeleteVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_GetVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_GetVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListLatest_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListLatest_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListVersions_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListVersions_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_CreateRun_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_CreateRun_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Get_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_List_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/readme.md create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_GetWithCredentials_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_Get_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_List_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_DeleteVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_DeleteVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetCredentials_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetCredentials_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListLatest_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListLatest_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListVersions_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListVersions_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Deployments_Get_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Deployments_List_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_DeleteVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_DeleteVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_GetVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_GetVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListLatest_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListLatest_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListVersions_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListVersions_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_GetWithCredentials_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_Get_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_List_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_DeleteVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_DeleteVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetCredentials_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetCredentials_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListLatest_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListLatest_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListVersions_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListVersions_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Deployments_Get_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Deployments_List_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_DeleteVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_DeleteVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_GetVersion_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_GetVersion_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListLatest_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListLatest_MinimumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListVersions_MaximumSet_Gen.json create mode 100644 specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListVersions_MinimumSet_Gen.json diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_GetWithCredentials_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_GetWithCredentials_MaximumSet_Gen.json new file mode 100644 index 000000000000..97fed0850abf --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_GetWithCredentials_MaximumSet_Gen.json @@ -0,0 +1,25 @@ +{ + "title": "Connections_GetWithCredentials_MaximumSet", + "operationId": "Connections_GetWithCredentials", + "parameters": { + "api-version": "2025-05-01", + "name": "qbcgg", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "name": "obsbzkgcpozwapujpylfjqwqpbeol", + "type": "AzureOpenAI", + "target": "rkznadqxuwnkbtb", + "isDefault": true, + "credentials": { + "type": "BaseCredentials" + }, + "metadata": { + "key8920": "utjp" + } + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_Get_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..142106a1c2e8 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_Get_MaximumSet_Gen.json @@ -0,0 +1,25 @@ +{ + "title": "Connections_Get_MaximumSet", + "operationId": "Connections_Get", + "parameters": { + "api-version": "2025-05-01", + "name": "dbxtef", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "name": "obsbzkgcpozwapujpylfjqwqpbeol", + "type": "AzureOpenAI", + "target": "rkznadqxuwnkbtb", + "isDefault": true, + "credentials": { + "type": "BaseCredentials" + }, + "metadata": { + "key8920": "utjp" + } + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_List_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..c3906181a790 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_List_MaximumSet_Gen.json @@ -0,0 +1,34 @@ +{ + "title": "Connections_List_MaximumSet", + "operationId": "Connections_List", + "parameters": { + "api-version": "2025-05-01", + "connectionType": "AzureOpenAI", + "defaultConnection": true, + "top": 29, + "skip": 27, + "maxpagesize": 25, + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "obsbzkgcpozwapujpylfjqwqpbeol", + "type": "AzureOpenAI", + "target": "rkznadqxuwnkbtb", + "isDefault": true, + "credentials": { + "type": "BaseCredentials" + }, + "metadata": { + "key8920": "utjp" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..6752aaa8bc3d --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -0,0 +1,41 @@ +{ + "title": "Datasets_CreateOrUpdateVersion_MaximumSet", + "operationId": "Datasets_CreateOrUpdateVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "grpenjfobadxmsceuqwunwqn", + "version": "dfo", + "body": { + "type": "DatasetVersionUpdate", + "stage": "ubusuwsmmlhvxacmijddhckhiixf", + "description": "zukluwbmoq", + "tags": { + "key8794": "ietydcqbwiebstkxrmqzsadlraapox" + } + } + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "arjpmieiaztcjy", + "id": "nneuypway", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + }, + "201": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "arjpmieiaztcjy", + "id": "nneuypway", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..e414bbc2c4bd --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -0,0 +1,30 @@ +{ + "title": "Datasets_CreateOrUpdateVersion_MinimumSet", + "operationId": "Datasets_CreateOrUpdateVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "rpnyigsqddnpdmrboazyi", + "version": "iplgbfirylwervrnglnnbwwzodsm", + "body": { + "type": "DatasetVersionUpdate" + } + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + }, + "201": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_DeleteVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_DeleteVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..dd4eed294b2d --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_DeleteVersion_MaximumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Datasets_DeleteVersion_MaximumSet", + "operationId": "Datasets_DeleteVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "ucurctiifkgnlmfsqjdqikngh", + "version": "ynxklccaehey" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_DeleteVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_DeleteVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..feddeb285bba --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_DeleteVersion_MinimumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Datasets_DeleteVersion_MinimumSet", + "operationId": "Datasets_DeleteVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "mah", + "version": "cyvuzcdcozazi" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetCredentials_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetCredentials_MaximumSet_Gen.json new file mode 100644 index 000000000000..7394d358dbd1 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetCredentials_MaximumSet_Gen.json @@ -0,0 +1,24 @@ +{ + "title": "Datasets_GetCredentials_MaximumSet", + "operationId": "Datasets_GetCredentials", + "parameters": { + "api-version": "2025-05-01", + "name": "ianzqjcpdiabrxkrbnstbpwlzavrmh", + "version": "nekh", + "body": {} + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "wvqzlobwdzstxryhnlqqtvp", + "storageAccountArmId": "br", + "credential": { + "sasUri": "qw", + "type": "SAS" + } + } + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetCredentials_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetCredentials_MinimumSet_Gen.json new file mode 100644 index 000000000000..7d1a0a68b2c1 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetCredentials_MinimumSet_Gen.json @@ -0,0 +1,24 @@ +{ + "title": "Datasets_GetCredentials_MinimumSet", + "operationId": "Datasets_GetCredentials", + "parameters": { + "api-version": "2025-05-01", + "name": "nydfjjrnlgs", + "version": "wskb", + "body": {} + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "wvqzlobwdzstxryhnlqqtvp", + "storageAccountArmId": "br", + "credential": { + "sasUri": "qw", + "type": "SAS" + } + } + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..a26d2acc9f90 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetVersion_MaximumSet_Gen.json @@ -0,0 +1,22 @@ +{ + "title": "Datasets_GetVersion_MaximumSet", + "operationId": "Datasets_GetVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "nynmsupycdzwlieanjigzvfcsxhghr", + "version": "efrsah" + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "arjpmieiaztcjy", + "id": "nneuypway", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..d40a24ee92e6 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetVersion_MinimumSet_Gen.json @@ -0,0 +1,19 @@ +{ + "title": "Datasets_GetVersion_MinimumSet", + "operationId": "Datasets_GetVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "nphjhqczjtdfwoxwuhcsnvfawmq", + "version": "itpmqdpptvnubbkihc" + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListLatest_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListLatest_MaximumSet_Gen.json new file mode 100644 index 000000000000..9a2a10add544 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListLatest_MaximumSet_Gen.json @@ -0,0 +1,29 @@ +{ + "title": "Datasets_ListLatest_MaximumSet", + "operationId": "Datasets_ListLatest", + "parameters": { + "api-version": "2025-05-01", + "top": 21, + "skip": "eprtlgapqpuxmkqqbyqgatazgk", + "tags": "mvcivdyuolnhvpuqdp", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "arjpmieiaztcjy", + "id": "nneuypway", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListLatest_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListLatest_MinimumSet_Gen.json new file mode 100644 index 000000000000..db0c5738de26 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListLatest_MinimumSet_Gen.json @@ -0,0 +1,21 @@ +{ + "title": "Datasets_ListLatest_MinimumSet", + "operationId": "Datasets_ListLatest", + "parameters": { + "api-version": "2025-05-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + ] + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListVersions_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListVersions_MaximumSet_Gen.json new file mode 100644 index 000000000000..ebf26ce040a4 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListVersions_MaximumSet_Gen.json @@ -0,0 +1,30 @@ +{ + "title": "Datasets_ListVersions_MaximumSet", + "operationId": "Datasets_ListVersions", + "parameters": { + "api-version": "2025-05-01", + "name": "qjknijsjewu", + "top": 13, + "skip": "wwwo", + "tags": "nfxvn", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "arjpmieiaztcjy", + "id": "nneuypway", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListVersions_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListVersions_MinimumSet_Gen.json new file mode 100644 index 000000000000..1ab1c047076a --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListVersions_MinimumSet_Gen.json @@ -0,0 +1,22 @@ +{ + "title": "Datasets_ListVersions_MinimumSet", + "operationId": "Datasets_ListVersions", + "parameters": { + "api-version": "2025-05-01", + "name": "qcoxe" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + ] + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..23e96352af95 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json @@ -0,0 +1,31 @@ +{ + "title": "Datasets_StartPendingUploadVersion_MaximumSet", + "operationId": "Datasets_StartPendingUploadVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "hvusmygqjnkihfwprkw", + "version": "zcrxyums", + "body": { + "pendingUploadId": "cnvf", + "connectionName": "qepjjlfgjlcalfuhchnojqlzhzrtcj", + "pendingUploadType": "TemporaryBlobReference" + } + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "wvqzlobwdzstxryhnlqqtvp", + "storageAccountArmId": "br", + "credential": { + "sasUri": "qw", + "type": "SAS" + } + }, + "pendingUploadId": "mdhrbpu", + "datasetVersion": "qbbmljwtqwhbgdcajnywtky", + "pendingUploadType": "TemporaryBlobReference" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..e0d8a19e6a56 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Datasets_StartPendingUploadVersion_MinimumSet", + "operationId": "Datasets_StartPendingUploadVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "esicohztsytnvxxqcpzsxnesug", + "version": "rrwerwxmkfuewptwsxeylxrcjkcp", + "body": { + "pendingUploadType": "TemporaryBlobReference" + } + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "wvqzlobwdzstxryhnlqqtvp", + "storageAccountArmId": "br", + "credential": { + "sasUri": "qw", + "type": "SAS" + } + }, + "pendingUploadId": "mdhrbpu", + "pendingUploadType": "TemporaryBlobReference" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Deployments_Get_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Deployments_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..e054205d8864 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Deployments_Get_MaximumSet_Gen.json @@ -0,0 +1,17 @@ +{ + "title": "Deployments_Get_MaximumSet", + "operationId": "Deployments_Get", + "parameters": { + "api-version": "2025-05-01", + "name": "asyfxhswpjdjtjjwrkhyxmoljgml", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "type": "Deployment", + "name": "aof" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Deployments_List_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Deployments_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..dfc8c3e12f85 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Deployments_List_MaximumSet_Gen.json @@ -0,0 +1,26 @@ +{ + "title": "Deployments_List_MaximumSet", + "operationId": "Deployments_List", + "parameters": { + "api-version": "2025-05-01", + "modelPublisher": "wpfjkjrmkxihi", + "modelName": "lxhwhobkjsyhnfvhfyqhymgosytke", + "top": 29, + "skip": 27, + "maxpagesize": 25, + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Deployment", + "name": "aof" + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..925177446e13 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -0,0 +1,37 @@ +{ + "title": "Indexes_CreateOrUpdateVersion_MaximumSet", + "operationId": "Indexes_CreateOrUpdateVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "qlslwpztrobxh", + "version": "lvwrjftywgtfixhxoxbmcs", + "body": { + "type": "IndexUpdate", + "stage": "uag", + "description": "fvbkomalkxkj", + "tags": { + "key8738": "gmejegbwwrkawbdxuv" + } + } + }, + "responses": { + "200": { + "body": { + "type": "Index", + "stage": "narfsdjafpvh", + "id": "ivqkxhapawoqvjiksau", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + }, + "201": { + "body": { + "type": "Index", + "stage": "narfsdjafpvh", + "id": "ivqkxhapawoqvjiksau", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..f6d5cf34f1c7 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Indexes_CreateOrUpdateVersion_MinimumSet", + "operationId": "Indexes_CreateOrUpdateVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "ypkrjjvche", + "version": "gmorfjnfnwawvkwsjsodunylq", + "body": { + "type": "IndexUpdate" + } + }, + "responses": { + "200": { + "body": { + "type": "Index", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + }, + "201": { + "body": { + "type": "Index", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_DeleteVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_DeleteVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..f2cb9986c7ab --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_DeleteVersion_MaximumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Indexes_DeleteVersion_MaximumSet", + "operationId": "Indexes_DeleteVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "djofiby", + "version": "wjcqszxbshmfcspufpvusvijabosg" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_DeleteVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_DeleteVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..a2aad4e2cffe --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_DeleteVersion_MinimumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Indexes_DeleteVersion_MinimumSet", + "operationId": "Indexes_DeleteVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "bhjawuegimffqwlhrxtbbeohdplmw", + "version": "o" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_GetVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_GetVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..b6adf1415eac --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_GetVersion_MaximumSet_Gen.json @@ -0,0 +1,20 @@ +{ + "title": "Indexes_GetVersion_MaximumSet", + "operationId": "Indexes_GetVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "nsgckjrartmxxbuc", + "version": "zplpqeeluwtxx" + }, + "responses": { + "200": { + "body": { + "type": "Index", + "stage": "narfsdjafpvh", + "id": "ivqkxhapawoqvjiksau", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_GetVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_GetVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..e1d022748151 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_GetVersion_MinimumSet_Gen.json @@ -0,0 +1,18 @@ +{ + "title": "Indexes_GetVersion_MinimumSet", + "operationId": "Indexes_GetVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "ssadrgeajxmatjfcakqfxm", + "version": "ckqhgdasokotj" + }, + "responses": { + "200": { + "body": { + "type": "Index", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListLatest_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListLatest_MaximumSet_Gen.json new file mode 100644 index 000000000000..4a6754396c82 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListLatest_MaximumSet_Gen.json @@ -0,0 +1,27 @@ +{ + "title": "Indexes_ListLatest_MaximumSet", + "operationId": "Indexes_ListLatest", + "parameters": { + "api-version": "2025-05-01", + "top": 27, + "skip": "pjv", + "tags": "v", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "stage": "narfsdjafpvh", + "id": "ivqkxhapawoqvjiksau", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListLatest_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListLatest_MinimumSet_Gen.json new file mode 100644 index 000000000000..5b993cdaa80f --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListLatest_MinimumSet_Gen.json @@ -0,0 +1,20 @@ +{ + "title": "Indexes_ListLatest_MinimumSet", + "operationId": "Indexes_ListLatest", + "parameters": { + "api-version": "2025-05-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + ] + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListVersions_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListVersions_MaximumSet_Gen.json new file mode 100644 index 000000000000..7883b3206847 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListVersions_MaximumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Indexes_ListVersions_MaximumSet", + "operationId": "Indexes_ListVersions", + "parameters": { + "api-version": "2025-05-01", + "name": "ympfyjkrpvirlqqfcwbrrmebc", + "top": 1, + "skip": "emybimaziwnaxdvk", + "tags": "bhuogyiydomalwcj", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "stage": "narfsdjafpvh", + "id": "ivqkxhapawoqvjiksau", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListVersions_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListVersions_MinimumSet_Gen.json new file mode 100644 index 000000000000..767f7c24591e --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListVersions_MinimumSet_Gen.json @@ -0,0 +1,21 @@ +{ + "title": "Indexes_ListVersions_MinimumSet", + "operationId": "Indexes_ListVersions", + "parameters": { + "api-version": "2025-05-01", + "name": "sgpbxddgmugf" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + ] + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_GetWithCredentials_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_GetWithCredentials_MaximumSet_Gen.json new file mode 100644 index 000000000000..373b824a835e --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_GetWithCredentials_MaximumSet_Gen.json @@ -0,0 +1,25 @@ +{ + "title": "Connections_GetWithCredentials_MaximumSet", + "operationId": "Connections_GetWithCredentials", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "bblabqcnrjcbxlyjsejqiyixfoil", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "name": "cpezssfnwhl", + "type": "AzureOpenAI", + "target": "gxrgfvtt", + "isDefault": true, + "credentials": { + "type": "BaseCredentials" + }, + "metadata": { + "key2930": "uovt" + } + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_Get_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..abc365448734 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_Get_MaximumSet_Gen.json @@ -0,0 +1,25 @@ +{ + "title": "Connections_Get_MaximumSet", + "operationId": "Connections_Get", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "ijxjmv", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "name": "cpezssfnwhl", + "type": "AzureOpenAI", + "target": "gxrgfvtt", + "isDefault": true, + "credentials": { + "type": "BaseCredentials" + }, + "metadata": { + "key2930": "uovt" + } + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_List_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..a502f6c9b88c --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_List_MaximumSet_Gen.json @@ -0,0 +1,34 @@ +{ + "title": "Connections_List_MaximumSet", + "operationId": "Connections_List", + "parameters": { + "api-version": "2025-05-15-preview", + "connectionType": "AzureOpenAI", + "defaultConnection": true, + "top": 28, + "skip": 8, + "maxpagesize": 21, + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "cpezssfnwhl", + "type": "AzureOpenAI", + "target": "gxrgfvtt", + "isDefault": true, + "credentials": { + "type": "BaseCredentials" + }, + "metadata": { + "key2930": "uovt" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..e438c67528bd --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -0,0 +1,41 @@ +{ + "title": "Datasets_CreateOrUpdateVersion_MaximumSet", + "operationId": "Datasets_CreateOrUpdateVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "vfupg", + "version": "ecacrnqtmggfqsocagocpf", + "body": { + "type": "DatasetVersionUpdate", + "stage": "fjnqgrgtfdksnqvy", + "description": "u", + "tags": { + "key7559": "ybrhnrxopsvmxqxibvysedlsy" + } + } + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "tnhmoqlcmprnxyjluyf", + "id": "hvpdyfpeoqcl", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + }, + "201": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "tnhmoqlcmprnxyjluyf", + "id": "hvpdyfpeoqcl", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..02026a92e54d --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -0,0 +1,30 @@ +{ + "title": "Datasets_CreateOrUpdateVersion_MinimumSet", + "operationId": "Datasets_CreateOrUpdateVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "ryqozexodzklgkffokixpftfkcy", + "version": "vldbiveryfmysxuzw", + "body": { + "type": "DatasetVersionUpdate" + } + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + }, + "201": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_DeleteVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_DeleteVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..76dd33d1cd39 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_DeleteVersion_MaximumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Datasets_DeleteVersion_MaximumSet", + "operationId": "Datasets_DeleteVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "alpqwogwzatcyot", + "version": "zrkxodsgcd" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_DeleteVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_DeleteVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..224647378aa1 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_DeleteVersion_MinimumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Datasets_DeleteVersion_MinimumSet", + "operationId": "Datasets_DeleteVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "wllolxqbymlz", + "version": "ch" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetCredentials_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetCredentials_MaximumSet_Gen.json new file mode 100644 index 000000000000..15a99bdd2273 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetCredentials_MaximumSet_Gen.json @@ -0,0 +1,24 @@ +{ + "title": "Datasets_GetCredentials_MaximumSet", + "operationId": "Datasets_GetCredentials", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "vzqmzhfdzfqegdk", + "version": "cuiflnznlzybcrc", + "body": {} + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "azqrjzvwamspuuvtqvvzfaxiasf", + "storageAccountArmId": "deqizonopmijpxsmmzugiwnyy", + "credential": { + "sasUri": "agojbnipwrhupvervcdiffxes", + "type": "SAS" + } + } + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetCredentials_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetCredentials_MinimumSet_Gen.json new file mode 100644 index 000000000000..2335307af0b2 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetCredentials_MinimumSet_Gen.json @@ -0,0 +1,24 @@ +{ + "title": "Datasets_GetCredentials_MinimumSet", + "operationId": "Datasets_GetCredentials", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "sbblxkyqnfvdiqacezyygvts", + "version": "ikak", + "body": {} + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "azqrjzvwamspuuvtqvvzfaxiasf", + "storageAccountArmId": "deqizonopmijpxsmmzugiwnyy", + "credential": { + "sasUri": "agojbnipwrhupvervcdiffxes", + "type": "SAS" + } + } + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..fb64479a6784 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetVersion_MaximumSet_Gen.json @@ -0,0 +1,22 @@ +{ + "title": "Datasets_GetVersion_MaximumSet", + "operationId": "Datasets_GetVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "temeurpoaslnnu", + "version": "icrcjdmwkggtdogifuoolnrg" + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "tnhmoqlcmprnxyjluyf", + "id": "hvpdyfpeoqcl", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..850587b38861 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetVersion_MinimumSet_Gen.json @@ -0,0 +1,19 @@ +{ + "title": "Datasets_GetVersion_MinimumSet", + "operationId": "Datasets_GetVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "xikgeqethuxytuseiawhklaapj", + "version": "hxksxrkgmtucfrbbnxyzwl" + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListLatest_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListLatest_MaximumSet_Gen.json new file mode 100644 index 000000000000..c100ac17c0b1 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListLatest_MaximumSet_Gen.json @@ -0,0 +1,29 @@ +{ + "title": "Datasets_ListLatest_MaximumSet", + "operationId": "Datasets_ListLatest", + "parameters": { + "api-version": "2025-05-15-preview", + "top": 26, + "skip": "lbra", + "tags": "pp", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "tnhmoqlcmprnxyjluyf", + "id": "hvpdyfpeoqcl", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListLatest_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListLatest_MinimumSet_Gen.json new file mode 100644 index 000000000000..87491bc925c4 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListLatest_MinimumSet_Gen.json @@ -0,0 +1,21 @@ +{ + "title": "Datasets_ListLatest_MinimumSet", + "operationId": "Datasets_ListLatest", + "parameters": { + "api-version": "2025-05-15-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + ] + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListVersions_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListVersions_MaximumSet_Gen.json new file mode 100644 index 000000000000..6798c80063cc --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListVersions_MaximumSet_Gen.json @@ -0,0 +1,30 @@ +{ + "title": "Datasets_ListVersions_MaximumSet", + "operationId": "Datasets_ListVersions", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "xogklfj", + "top": 18, + "skip": "qtdfikprjdlsosjaa", + "tags": "amyob", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "tnhmoqlcmprnxyjluyf", + "id": "hvpdyfpeoqcl", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListVersions_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListVersions_MinimumSet_Gen.json new file mode 100644 index 000000000000..7f85774425ec --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListVersions_MinimumSet_Gen.json @@ -0,0 +1,22 @@ +{ + "title": "Datasets_ListVersions_MinimumSet", + "operationId": "Datasets_ListVersions", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "hxemlflfomh" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + ] + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..8f300e3774ca --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json @@ -0,0 +1,31 @@ +{ + "title": "Datasets_StartPendingUploadVersion_MaximumSet", + "operationId": "Datasets_StartPendingUploadVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "sgrzyrpltz", + "version": "ozdqisviavgqgfbtnzk", + "body": { + "pendingUploadId": "mxjahcghabuplfwtlopiqgxtcyw", + "connectionName": "bknvpmlisrqxaphkf", + "pendingUploadType": "TemporaryBlobReference" + } + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "azqrjzvwamspuuvtqvvzfaxiasf", + "storageAccountArmId": "deqizonopmijpxsmmzugiwnyy", + "credential": { + "sasUri": "agojbnipwrhupvervcdiffxes", + "type": "SAS" + } + }, + "pendingUploadId": "qgizwomhljzn", + "datasetVersion": "tegswajurquatmuhfde", + "pendingUploadType": "TemporaryBlobReference" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..3fc13fb7e88a --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Datasets_StartPendingUploadVersion_MinimumSet", + "operationId": "Datasets_StartPendingUploadVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "duxoiaywfik", + "version": "yzzzt", + "body": { + "pendingUploadType": "TemporaryBlobReference" + } + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "azqrjzvwamspuuvtqvvzfaxiasf", + "storageAccountArmId": "deqizonopmijpxsmmzugiwnyy", + "credential": { + "sasUri": "agojbnipwrhupvervcdiffxes", + "type": "SAS" + } + }, + "pendingUploadId": "qgizwomhljzn", + "pendingUploadType": "TemporaryBlobReference" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Deployments_Get_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Deployments_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..795394509e35 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Deployments_Get_MaximumSet_Gen.json @@ -0,0 +1,17 @@ +{ + "title": "Deployments_Get_MaximumSet", + "operationId": "Deployments_Get", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "qqvacpzjfk", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "type": "Deployment", + "name": "pjnkbctjpshoeunqedinagotrj" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Deployments_List_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Deployments_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..8bd1e3061529 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Deployments_List_MaximumSet_Gen.json @@ -0,0 +1,26 @@ +{ + "title": "Deployments_List_MaximumSet", + "operationId": "Deployments_List", + "parameters": { + "api-version": "2025-05-15-preview", + "modelPublisher": "kznreojrvlwdq", + "modelName": "gplerszsuyisseeksnyvkaqperxox", + "top": 28, + "skip": 8, + "maxpagesize": 21, + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Deployment", + "name": "pjnkbctjpshoeunqedinagotrj" + } + ], + "nextLink": "https://microsoft.com/ahpgda" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateAgentEvaluation_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateAgentEvaluation_MaximumSet_Gen.json new file mode 100644 index 000000000000..e2ad79265104 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateAgentEvaluation_MaximumSet_Gen.json @@ -0,0 +1,53 @@ +{ + "title": "Evaluations_CreateAgentEvaluation_MaximumSet", + "operationId": "Evaluations_CreateAgentEvaluation", + "parameters": { + "api-version": "2025-05-15-preview", + "evaluation": { + "runId": "ecfcffqsrdhpecocrufffiqz", + "threadId": "cxjjsyhkeezgnaqqyerrdrbbth", + "evaluators": { + "key2653": { + "id": "gujwtvhptykq", + "initParams": {}, + "dataMapping": { + "key7400": "ijkjfvoswni" + } + } + }, + "samplingConfiguration": { + "name": "tj", + "samplingPercent": 7, + "maxRequestRate": 8 + }, + "redactionConfiguration": { + "redactScoreProperties": true + }, + "appInsightsConnectionString": "dvcnrcwar" + } + }, + "responses": { + "201": { + "body": { + "id": "gji", + "status": "ozywrhiasll", + "error": "stcjbhxgmqvjqwzmbvaa", + "result": [ + { + "evaluator": "upnt", + "score": 13, + "status": "eoxw", + "reason": "kfrjetziuketgioobeydlugonzfxo", + "version": "lfqwtzuktnbmcxxwkghmlpdtuu", + "threadId": "sldwqklyuxeayfmxpbl", + "runId": "lauehlf", + "error": "lrutmshl", + "additionalDetails": { + "key3590": "vhhneubavtiklsjcdexij" + } + } + ] + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateAgentEvaluation_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateAgentEvaluation_MinimumSet_Gen.json new file mode 100644 index 000000000000..ea7133304b73 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateAgentEvaluation_MinimumSet_Gen.json @@ -0,0 +1,20 @@ +{ + "title": "Evaluations_CreateAgentEvaluation_MinimumSet", + "operationId": "Evaluations_CreateAgentEvaluation", + "parameters": { + "api-version": "2025-05-15-preview", + "evaluation": { + "runId": "ecfcffqsrdhpecocrufffiqz", + "evaluators": {}, + "appInsightsConnectionString": "dvcnrcwar" + } + }, + "responses": { + "201": { + "body": { + "id": "gji", + "status": "ozywrhiasll" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateRun_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateRun_MaximumSet_Gen.json new file mode 100644 index 000000000000..8dc42fcc5579 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateRun_MaximumSet_Gen.json @@ -0,0 +1,57 @@ +{ + "title": "Evaluations_CreateRun_MaximumSet", + "operationId": "Evaluations_CreateRun", + "parameters": { + "api-version": "2025-05-15-preview", + "evaluation": { + "data": { + "type": "InputData" + }, + "displayName": "ymjxkodggqrhjnmusta", + "description": "cuviaxytqckkybxwc", + "tags": { + "key30": "nqrdpedyhkjzgrbtqhxbmkdmlpdf" + }, + "properties": { + "key9192": "e" + }, + "evaluators": { + "key2735": { + "id": "gujwtvhptykq", + "initParams": {}, + "dataMapping": { + "key7400": "ijkjfvoswni" + } + } + } + } + }, + "responses": { + "201": { + "body": { + "id": "aarhggbojnh", + "data": { + "type": "InputData" + }, + "displayName": "ymjxkodggqrhjnmusta", + "description": "cuviaxytqckkybxwc", + "status": "uhejnohmiiogajkx", + "tags": { + "key30": "nqrdpedyhkjzgrbtqhxbmkdmlpdf" + }, + "properties": { + "key9192": "e" + }, + "evaluators": { + "key2735": { + "id": "gujwtvhptykq", + "initParams": {}, + "dataMapping": { + "key7400": "ijkjfvoswni" + } + } + } + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateRun_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateRun_MinimumSet_Gen.json new file mode 100644 index 000000000000..fe5626cb7c85 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateRun_MinimumSet_Gen.json @@ -0,0 +1,24 @@ +{ + "title": "Evaluations_CreateRun_MinimumSet", + "operationId": "Evaluations_CreateRun", + "parameters": { + "api-version": "2025-05-15-preview", + "evaluation": { + "data": { + "type": "InputData" + }, + "evaluators": {} + } + }, + "responses": { + "201": { + "body": { + "id": "aarhggbojnh", + "data": { + "type": "InputData" + }, + "evaluators": {} + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_Get_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..834d486f6071 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_Get_MaximumSet_Gen.json @@ -0,0 +1,37 @@ +{ + "title": "Evaluations_Get_MaximumSet", + "operationId": "Evaluations_Get", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "so", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "id": "aarhggbojnh", + "data": { + "type": "InputData" + }, + "displayName": "ymjxkodggqrhjnmusta", + "description": "cuviaxytqckkybxwc", + "status": "uhejnohmiiogajkx", + "tags": { + "key30": "nqrdpedyhkjzgrbtqhxbmkdmlpdf" + }, + "properties": { + "key9192": "e" + }, + "evaluators": { + "key2735": { + "id": "gujwtvhptykq", + "initParams": {}, + "dataMapping": { + "key7400": "ijkjfvoswni" + } + } + } + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_List_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..2c8d83bdf062 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_List_MaximumSet_Gen.json @@ -0,0 +1,44 @@ +{ + "title": "Evaluations_List_MaximumSet", + "operationId": "Evaluations_List", + "parameters": { + "api-version": "2025-05-15-preview", + "top": 28, + "skip": 8, + "maxpagesize": 21, + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "aarhggbojnh", + "data": { + "type": "InputData" + }, + "displayName": "ymjxkodggqrhjnmusta", + "description": "cuviaxytqckkybxwc", + "status": "uhejnohmiiogajkx", + "tags": { + "key30": "nqrdpedyhkjzgrbtqhxbmkdmlpdf" + }, + "properties": { + "key9192": "e" + }, + "evaluators": { + "key2735": { + "id": "gujwtvhptykq", + "initParams": {}, + "dataMapping": { + "key7400": "ijkjfvoswni" + } + } + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..780520e50194 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -0,0 +1,37 @@ +{ + "title": "Indexes_CreateOrUpdateVersion_MaximumSet", + "operationId": "Indexes_CreateOrUpdateVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "tv", + "version": "emphgqdq", + "body": { + "type": "IndexUpdate", + "stage": "wvzutndojum", + "description": "vdwtgaudopguto", + "tags": { + "key8846": "serbpbugykgbwuwvh" + } + } + }, + "responses": { + "200": { + "body": { + "type": "Index", + "stage": "m", + "id": "fxdrmhqrfmclzkjmfldnszfnztla", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + }, + "201": { + "body": { + "type": "Index", + "stage": "m", + "id": "fxdrmhqrfmclzkjmfldnszfnztla", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..59fd1d9e7dd2 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Indexes_CreateOrUpdateVersion_MinimumSet", + "operationId": "Indexes_CreateOrUpdateVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "lvlygvkgvkbzutknlnretfvivdgkb", + "version": "ct", + "body": { + "type": "IndexUpdate" + } + }, + "responses": { + "200": { + "body": { + "type": "Index", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + }, + "201": { + "body": { + "type": "Index", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_DeleteVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_DeleteVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..a31c3f6e7e24 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_DeleteVersion_MaximumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Indexes_DeleteVersion_MaximumSet", + "operationId": "Indexes_DeleteVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "uxzepyytxjtpjkdrpxicavot", + "version": "vyihcshjrfglzhj" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_DeleteVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_DeleteVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..7fec5d942612 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_DeleteVersion_MinimumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Indexes_DeleteVersion_MinimumSet", + "operationId": "Indexes_DeleteVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "mzshhabnrpuocgtyxkzftkr", + "version": "orbdovkdebzfwluronkmsoty" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_GetVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_GetVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..15c262af2bfe --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_GetVersion_MaximumSet_Gen.json @@ -0,0 +1,20 @@ +{ + "title": "Indexes_GetVersion_MaximumSet", + "operationId": "Indexes_GetVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "nnhahjajcarruliib", + "version": "njynfwrxvujbklgxnibzafvcm" + }, + "responses": { + "200": { + "body": { + "type": "Index", + "stage": "m", + "id": "fxdrmhqrfmclzkjmfldnszfnztla", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_GetVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_GetVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..3d7ccc6498e6 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_GetVersion_MinimumSet_Gen.json @@ -0,0 +1,18 @@ +{ + "title": "Indexes_GetVersion_MinimumSet", + "operationId": "Indexes_GetVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "kbfueisvpmwlmmgqrylbgcwabum", + "version": "qtzhdugby" + }, + "responses": { + "200": { + "body": { + "type": "Index", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListLatest_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListLatest_MaximumSet_Gen.json new file mode 100644 index 000000000000..313d03f714cd --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListLatest_MaximumSet_Gen.json @@ -0,0 +1,27 @@ +{ + "title": "Indexes_ListLatest_MaximumSet", + "operationId": "Indexes_ListLatest", + "parameters": { + "api-version": "2025-05-15-preview", + "top": 11, + "skip": "qijkobbksrqhgvwzmujd", + "tags": "lmpvvr", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "stage": "m", + "id": "fxdrmhqrfmclzkjmfldnszfnztla", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + ], + "nextLink": "https://microsoft.com/ayyakes" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListLatest_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListLatest_MinimumSet_Gen.json new file mode 100644 index 000000000000..2c147c3ed85e --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListLatest_MinimumSet_Gen.json @@ -0,0 +1,20 @@ +{ + "title": "Indexes_ListLatest_MinimumSet", + "operationId": "Indexes_ListLatest", + "parameters": { + "api-version": "2025-05-15-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + ] + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListVersions_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListVersions_MaximumSet_Gen.json new file mode 100644 index 000000000000..ad780f5d44e6 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListVersions_MaximumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Indexes_ListVersions_MaximumSet", + "operationId": "Indexes_ListVersions", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "tvabzvonlomkdvglaubvvqmzwdaiz", + "top": 2, + "skip": "fgwrnkksjofetmtfyizikbyv", + "tags": "hymlvxullwef", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "stage": "m", + "id": "fxdrmhqrfmclzkjmfldnszfnztla", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + ], + "nextLink": "https://microsoft.com/ayyakes" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListVersions_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListVersions_MinimumSet_Gen.json new file mode 100644 index 000000000000..6e11477a0190 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListVersions_MinimumSet_Gen.json @@ -0,0 +1,21 @@ +{ + "title": "Indexes_ListVersions_MinimumSet", + "operationId": "Indexes_ListVersions", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "opimayfinqlkarudm" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + ] + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_CreateRun_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_CreateRun_MaximumSet_Gen.json new file mode 100644 index 000000000000..b259ee63baea --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_CreateRun_MaximumSet_Gen.json @@ -0,0 +1,55 @@ +{ + "title": "RedTeams_CreateRun_MaximumSet", + "operationId": "RedTeams_CreateRun", + "parameters": { + "api-version": "2025-05-15-preview", + "RedTeam": { + "scanName": "edmalfvznuay", + "numTurns": 10, + "attackStrategies": [ + "easy" + ], + "simulationOnly": true, + "riskCategories": [ + "HateUnfairness" + ], + "applicationScenario": "qaxxxhjp", + "tags": { + "key1287": "gbklekkgmxkfbhehgh" + }, + "properties": { + "key9280": "fwzjtipl" + }, + "targetConfig": { + "type": "TargetConfig" + } + } + }, + "responses": { + "201": { + "body": { + "id": "tztegmf", + "scanName": "edmalfvznuay", + "numTurns": 10, + "attackStrategies": [ + "easy" + ], + "simulationOnly": true, + "riskCategories": [ + "HateUnfairness" + ], + "applicationScenario": "qaxxxhjp", + "tags": { + "key1287": "gbklekkgmxkfbhehgh" + }, + "properties": { + "key9280": "fwzjtipl" + }, + "status": "owgxaiudnkkeqwlnhtmihvhdkbgd", + "targetConfig": { + "type": "TargetConfig" + } + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_CreateRun_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_CreateRun_MinimumSet_Gen.json new file mode 100644 index 000000000000..bcc7f8eed522 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_CreateRun_MinimumSet_Gen.json @@ -0,0 +1,38 @@ +{ + "title": "RedTeams_CreateRun_MinimumSet", + "operationId": "RedTeams_CreateRun", + "parameters": { + "api-version": "2025-05-15-preview", + "RedTeam": { + "numTurns": 10, + "attackStrategies": [ + "easy" + ], + "simulationOnly": true, + "riskCategories": [ + "HateUnfairness" + ], + "targetConfig": { + "type": "TargetConfig" + } + } + }, + "responses": { + "201": { + "body": { + "id": "tztegmf", + "numTurns": 10, + "attackStrategies": [ + "easy" + ], + "simulationOnly": true, + "riskCategories": [ + "HateUnfairness" + ], + "targetConfig": { + "type": "TargetConfig" + } + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Get_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..e806fba7a3f1 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Get_MaximumSet_Gen.json @@ -0,0 +1,36 @@ +{ + "title": "RedTeams_Get_MaximumSet", + "operationId": "RedTeams_Get", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "apwpcf", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "id": "tztegmf", + "scanName": "edmalfvznuay", + "numTurns": 10, + "attackStrategies": [ + "easy" + ], + "simulationOnly": true, + "riskCategories": [ + "HateUnfairness" + ], + "applicationScenario": "qaxxxhjp", + "tags": { + "key1287": "gbklekkgmxkfbhehgh" + }, + "properties": { + "key9280": "fwzjtipl" + }, + "status": "owgxaiudnkkeqwlnhtmihvhdkbgd", + "targetConfig": { + "type": "TargetConfig" + } + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_List_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..c1a200883f72 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_List_MaximumSet_Gen.json @@ -0,0 +1,43 @@ +{ + "title": "RedTeams_List_MaximumSet", + "operationId": "RedTeams_List", + "parameters": { + "api-version": "2025-05-15-preview", + "top": 28, + "skip": 8, + "maxpagesize": 21, + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "tztegmf", + "scanName": "edmalfvznuay", + "numTurns": 10, + "attackStrategies": [ + "easy" + ], + "simulationOnly": true, + "riskCategories": [ + "HateUnfairness" + ], + "applicationScenario": "qaxxxhjp", + "tags": { + "key1287": "gbklekkgmxkfbhehgh" + }, + "properties": { + "key9280": "fwzjtipl" + }, + "status": "owgxaiudnkkeqwlnhtmihvhdkbgd", + "targetConfig": { + "type": "TargetConfig" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Connections_GetWithCredentials_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Connections_GetWithCredentials_MaximumSet_Gen.json new file mode 100644 index 000000000000..67895f9bea5d --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Connections_GetWithCredentials_MaximumSet_Gen.json @@ -0,0 +1,25 @@ +{ + "title": "Connections_GetWithCredentials_MaximumSet", + "operationId": "Connections_GetWithCredentials", + "parameters": { + "api-version": "latest", + "name": "jqgcfdexf", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "name": "we", + "type": "AzureOpenAI", + "target": "bbzo", + "isDefault": true, + "credentials": { + "type": "BaseCredentials" + }, + "metadata": { + "key9765": "voknfqanbxnseqg" + } + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Connections_Get_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Connections_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..ddfbca57a7af --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Connections_Get_MaximumSet_Gen.json @@ -0,0 +1,25 @@ +{ + "title": "Connections_Get_MaximumSet", + "operationId": "Connections_Get", + "parameters": { + "api-version": "latest", + "name": "gvwpqdivyfaiftzdfcjoj", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "name": "we", + "type": "AzureOpenAI", + "target": "bbzo", + "isDefault": true, + "credentials": { + "type": "BaseCredentials" + }, + "metadata": { + "key9765": "voknfqanbxnseqg" + } + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Connections_List_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Connections_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..c7b15ded33a0 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Connections_List_MaximumSet_Gen.json @@ -0,0 +1,34 @@ +{ + "title": "Connections_List_MaximumSet", + "operationId": "Connections_List", + "parameters": { + "api-version": "latest", + "connectionType": "AzureOpenAI", + "defaultConnection": true, + "top": 6, + "skip": 12, + "maxpagesize": 11, + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "we", + "type": "AzureOpenAI", + "target": "bbzo", + "isDefault": true, + "credentials": { + "type": "BaseCredentials" + }, + "metadata": { + "key9765": "voknfqanbxnseqg" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..53d8e4389bc2 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -0,0 +1,41 @@ +{ + "title": "Datasets_CreateOrUpdateVersion_MaximumSet", + "operationId": "Datasets_CreateOrUpdateVersion", + "parameters": { + "api-version": "latest", + "name": "nsvugzcnsvqodrxiojanhtdymgglnx", + "version": "utbfmfka", + "body": { + "type": "DatasetVersionUpdate", + "stage": "ykhrtvapwvcodwckimsobgwdvukw", + "description": "grthjigklkewz", + "tags": { + "key868": "yjmiiufnnccqfiljtndr" + } + } + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "ovzqxbhqhq", + "id": "cfgncrzpcpqbpxefd", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + }, + "201": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "ovzqxbhqhq", + "id": "cfgncrzpcpqbpxefd", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..36b9a414c8fb --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -0,0 +1,30 @@ +{ + "title": "Datasets_CreateOrUpdateVersion_MinimumSet", + "operationId": "Datasets_CreateOrUpdateVersion", + "parameters": { + "api-version": "latest", + "name": "pluvp", + "version": "playwidjgezovivciosnkerrdwe", + "body": { + "type": "DatasetVersionUpdate" + } + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + }, + "201": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_DeleteVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_DeleteVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..d92c63fc6176 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_DeleteVersion_MaximumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Datasets_DeleteVersion_MaximumSet", + "operationId": "Datasets_DeleteVersion", + "parameters": { + "api-version": "latest", + "name": "dfmimccx", + "version": "mukc" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_DeleteVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_DeleteVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..e17560ccaff1 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_DeleteVersion_MinimumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Datasets_DeleteVersion_MinimumSet", + "operationId": "Datasets_DeleteVersion", + "parameters": { + "api-version": "latest", + "name": "nkaivxoayhkrxavagybliogwwgvbk", + "version": "pmavzwbusicqau" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetCredentials_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetCredentials_MaximumSet_Gen.json new file mode 100644 index 000000000000..36c785a9d296 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetCredentials_MaximumSet_Gen.json @@ -0,0 +1,24 @@ +{ + "title": "Datasets_GetCredentials_MaximumSet", + "operationId": "Datasets_GetCredentials", + "parameters": { + "api-version": "latest", + "name": "hpvjnkljsuospxwrypot", + "version": "rlf", + "body": {} + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "kbodccbnhdznekrtu", + "storageAccountArmId": "gcsdeid", + "credential": { + "sasUri": "mzmtfelripgmz", + "type": "SAS" + } + } + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetCredentials_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetCredentials_MinimumSet_Gen.json new file mode 100644 index 000000000000..9e55038a401e --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetCredentials_MinimumSet_Gen.json @@ -0,0 +1,24 @@ +{ + "title": "Datasets_GetCredentials_MinimumSet", + "operationId": "Datasets_GetCredentials", + "parameters": { + "api-version": "latest", + "name": "udrhdaxbjptksqqwztnfswzku", + "version": "ytogupzn", + "body": {} + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "kbodccbnhdznekrtu", + "storageAccountArmId": "gcsdeid", + "credential": { + "sasUri": "mzmtfelripgmz", + "type": "SAS" + } + } + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..09c41ef4580e --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetVersion_MaximumSet_Gen.json @@ -0,0 +1,22 @@ +{ + "title": "Datasets_GetVersion_MaximumSet", + "operationId": "Datasets_GetVersion", + "parameters": { + "api-version": "latest", + "name": "ppdba", + "version": "ttetev" + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "ovzqxbhqhq", + "id": "cfgncrzpcpqbpxefd", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..3930d62e815c --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetVersion_MinimumSet_Gen.json @@ -0,0 +1,19 @@ +{ + "title": "Datasets_GetVersion_MinimumSet", + "operationId": "Datasets_GetVersion", + "parameters": { + "api-version": "latest", + "name": "ivkedy", + "version": "vxufccznqvuctabcyagbczidvr" + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListLatest_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListLatest_MaximumSet_Gen.json new file mode 100644 index 000000000000..cbb228acbbc2 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListLatest_MaximumSet_Gen.json @@ -0,0 +1,29 @@ +{ + "title": "Datasets_ListLatest_MaximumSet", + "operationId": "Datasets_ListLatest", + "parameters": { + "api-version": "latest", + "top": 16, + "skip": "wbilbzmgugbikcwaguhtq", + "tags": "azsufezp", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "ovzqxbhqhq", + "id": "cfgncrzpcpqbpxefd", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + ], + "nextLink": "https://microsoft.com/al" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListLatest_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListLatest_MinimumSet_Gen.json new file mode 100644 index 000000000000..d47c63cf9ffe --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListLatest_MinimumSet_Gen.json @@ -0,0 +1,21 @@ +{ + "title": "Datasets_ListLatest_MinimumSet", + "operationId": "Datasets_ListLatest", + "parameters": { + "api-version": "latest" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + ] + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListVersions_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListVersions_MaximumSet_Gen.json new file mode 100644 index 000000000000..c3a191f41962 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListVersions_MaximumSet_Gen.json @@ -0,0 +1,30 @@ +{ + "title": "Datasets_ListVersions_MaximumSet", + "operationId": "Datasets_ListVersions", + "parameters": { + "api-version": "latest", + "name": "ojjzgfffyyyr", + "top": 4, + "skip": "bafjlmqcftwnjlofuwnxoc", + "tags": "taynswmfxqo", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "ovzqxbhqhq", + "id": "cfgncrzpcpqbpxefd", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + ], + "nextLink": "https://microsoft.com/al" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListVersions_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListVersions_MinimumSet_Gen.json new file mode 100644 index 000000000000..266f78fd2e6a --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListVersions_MinimumSet_Gen.json @@ -0,0 +1,22 @@ +{ + "title": "Datasets_ListVersions_MinimumSet", + "operationId": "Datasets_ListVersions", + "parameters": { + "api-version": "latest", + "name": "fauawvl" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + ] + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..c3d3de6d3966 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json @@ -0,0 +1,31 @@ +{ + "title": "Datasets_StartPendingUploadVersion_MaximumSet", + "operationId": "Datasets_StartPendingUploadVersion", + "parameters": { + "api-version": "latest", + "name": "cncrcmiaksswirlujwcptxeaef", + "version": "jkqqzmj", + "body": { + "pendingUploadId": "gxuutkdhlygsmsbtszqzx", + "connectionName": "hsgskbhwucytwglwlm", + "pendingUploadType": "TemporaryBlobReference" + } + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "kbodccbnhdznekrtu", + "storageAccountArmId": "gcsdeid", + "credential": { + "sasUri": "mzmtfelripgmz", + "type": "SAS" + } + }, + "pendingUploadId": "qdxymiww", + "datasetVersion": "bofnujdjvnnhjtzzu", + "pendingUploadType": "TemporaryBlobReference" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..841f2c320d68 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Datasets_StartPendingUploadVersion_MinimumSet", + "operationId": "Datasets_StartPendingUploadVersion", + "parameters": { + "api-version": "latest", + "name": "atopkjwxsjtforndczju", + "version": "yftpnjxwjylhixypopcytxd", + "body": { + "pendingUploadType": "TemporaryBlobReference" + } + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "kbodccbnhdznekrtu", + "storageAccountArmId": "gcsdeid", + "credential": { + "sasUri": "mzmtfelripgmz", + "type": "SAS" + } + }, + "pendingUploadId": "qdxymiww", + "pendingUploadType": "TemporaryBlobReference" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Deployments_Get_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Deployments_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..a4378ab8fcf1 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Deployments_Get_MaximumSet_Gen.json @@ -0,0 +1,17 @@ +{ + "title": "Deployments_Get_MaximumSet", + "operationId": "Deployments_Get", + "parameters": { + "api-version": "latest", + "name": "ft", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "type": "Deployment", + "name": "yfnhkglimmtfavwsetvoopcuyewygg" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Deployments_List_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Deployments_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..302a20a54724 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Deployments_List_MaximumSet_Gen.json @@ -0,0 +1,26 @@ +{ + "title": "Deployments_List_MaximumSet", + "operationId": "Deployments_List", + "parameters": { + "api-version": "latest", + "modelPublisher": "tb", + "modelName": "xdlvjxymsmdnebesolv", + "top": 6, + "skip": 12, + "maxpagesize": 11, + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Deployment", + "name": "yfnhkglimmtfavwsetvoopcuyewygg" + } + ], + "nextLink": "https://microsoft.com/aoecpoh" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..c8408389aa49 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -0,0 +1,37 @@ +{ + "title": "Indexes_CreateOrUpdateVersion_MaximumSet", + "operationId": "Indexes_CreateOrUpdateVersion", + "parameters": { + "api-version": "latest", + "name": "kptgsnpfjcunvvdgzfjdmnurq", + "version": "hxutytnzwioiijfinpdojrnrqhqb", + "body": { + "type": "IndexUpdate", + "stage": "ephc", + "description": "wtjqhnlwihffw", + "tags": { + "key1654": "aqtywrvy" + } + } + }, + "responses": { + "200": { + "body": { + "type": "Index", + "stage": "ekzfmrqim", + "id": "xtjevbrwrwuwkbujuwpq", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + }, + "201": { + "body": { + "type": "Index", + "stage": "ekzfmrqim", + "id": "xtjevbrwrwuwkbujuwpq", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..cbf4b284ded3 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Indexes_CreateOrUpdateVersion_MinimumSet", + "operationId": "Indexes_CreateOrUpdateVersion", + "parameters": { + "api-version": "latest", + "name": "dpfjghwaowffzhoyuwrnmws", + "version": "priaizsqiwxrwnhhyk", + "body": { + "type": "IndexUpdate" + } + }, + "responses": { + "200": { + "body": { + "type": "Index", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + }, + "201": { + "body": { + "type": "Index", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_DeleteVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_DeleteVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..2acc621223d6 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_DeleteVersion_MaximumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Indexes_DeleteVersion_MaximumSet", + "operationId": "Indexes_DeleteVersion", + "parameters": { + "api-version": "latest", + "name": "fb", + "version": "ajbuwvsxobvnynpcliqcylqdp" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_DeleteVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_DeleteVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..1347bd62ae4e --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_DeleteVersion_MinimumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Indexes_DeleteVersion_MinimumSet", + "operationId": "Indexes_DeleteVersion", + "parameters": { + "api-version": "latest", + "name": "zoxequ", + "version": "akulwzwrfeqxh" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_GetVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_GetVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..ac32666a5535 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_GetVersion_MaximumSet_Gen.json @@ -0,0 +1,20 @@ +{ + "title": "Indexes_GetVersion_MaximumSet", + "operationId": "Indexes_GetVersion", + "parameters": { + "api-version": "latest", + "name": "ascwgkgwpqxeinbp", + "version": "bqhzitucneeoxurvf" + }, + "responses": { + "200": { + "body": { + "type": "Index", + "stage": "ekzfmrqim", + "id": "xtjevbrwrwuwkbujuwpq", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_GetVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_GetVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..d3d8b70438fd --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_GetVersion_MinimumSet_Gen.json @@ -0,0 +1,18 @@ +{ + "title": "Indexes_GetVersion_MinimumSet", + "operationId": "Indexes_GetVersion", + "parameters": { + "api-version": "latest", + "name": "sflsamumttlwccuxveocgozlkmdme", + "version": "txg" + }, + "responses": { + "200": { + "body": { + "type": "Index", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListLatest_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListLatest_MaximumSet_Gen.json new file mode 100644 index 000000000000..57e128dd9bb8 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListLatest_MaximumSet_Gen.json @@ -0,0 +1,27 @@ +{ + "title": "Indexes_ListLatest_MaximumSet", + "operationId": "Indexes_ListLatest", + "parameters": { + "api-version": "latest", + "top": 16, + "skip": "cbeuhxuzaucwgqj", + "tags": "ecxlvszgcepwunik", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "stage": "ekzfmrqim", + "id": "xtjevbrwrwuwkbujuwpq", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + ], + "nextLink": "https://microsoft.com/av" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListLatest_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListLatest_MinimumSet_Gen.json new file mode 100644 index 000000000000..ef8435a62328 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListLatest_MinimumSet_Gen.json @@ -0,0 +1,20 @@ +{ + "title": "Indexes_ListLatest_MinimumSet", + "operationId": "Indexes_ListLatest", + "parameters": { + "api-version": "latest" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + ] + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListVersions_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListVersions_MaximumSet_Gen.json new file mode 100644 index 000000000000..6a20fa0ec6c6 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListVersions_MaximumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Indexes_ListVersions_MaximumSet", + "operationId": "Indexes_ListVersions", + "parameters": { + "api-version": "latest", + "name": "ugobcytrjfdfu", + "top": 12, + "skip": "vspvqu", + "tags": "fwbwsyszezlzabrudeswnvoqoq", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "stage": "ekzfmrqim", + "id": "xtjevbrwrwuwkbujuwpq", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + ], + "nextLink": "https://microsoft.com/av" + } + } + } +} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListVersions_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListVersions_MinimumSet_Gen.json new file mode 100644 index 000000000000..1fd65159204a --- /dev/null +++ b/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListVersions_MinimumSet_Gen.json @@ -0,0 +1,21 @@ +{ + "title": "Indexes_ListVersions_MinimumSet", + "operationId": "Indexes_ListVersions", + "parameters": { + "api-version": "latest", + "name": "lenbliqxnfqi" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + ] + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index c84137bd96ef..4931aa558888 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -176,6 +176,11 @@ } } }, + "x-ms-examples": { + "Connections_List_MaximumSet": { + "$ref": "./examples/Connections_List_MaximumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -226,6 +231,11 @@ } } } + }, + "x-ms-examples": { + "Connections_Get_MaximumSet": { + "$ref": "./examples/Connections_Get_MaximumSet_Gen.json" + } } } }, @@ -274,6 +284,11 @@ } } } + }, + "x-ms-examples": { + "Connections_GetWithCredentials_MaximumSet": { + "$ref": "./examples/Connections_GetWithCredentials_MaximumSet_Gen.json" + } } } }, @@ -361,6 +376,14 @@ } } }, + "x-ms-examples": { + "Datasets_ListLatest_MaximumSet": { + "$ref": "./examples/Datasets_ListLatest_MaximumSet_Gen.json" + }, + "Datasets_ListLatest_MinimumSet": { + "$ref": "./examples/Datasets_ListLatest_MinimumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -457,6 +480,14 @@ } } }, + "x-ms-examples": { + "Datasets_ListVersions_MaximumSet": { + "$ref": "./examples/Datasets_ListVersions_MaximumSet_Gen.json" + }, + "Datasets_ListVersions_MinimumSet": { + "$ref": "./examples/Datasets_ListVersions_MinimumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -504,6 +535,14 @@ } } } + }, + "x-ms-examples": { + "Datasets_GetVersion_MaximumSet": { + "$ref": "./examples/Datasets_GetVersion_MaximumSet_Gen.json" + }, + "Datasets_GetVersion_MinimumSet": { + "$ref": "./examples/Datasets_GetVersion_MinimumSet_Gen.json" + } } }, "patch": { @@ -562,6 +601,14 @@ } } } + }, + "x-ms-examples": { + "Datasets_CreateOrUpdateVersion_MaximumSet": { + "$ref": "./examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json" + }, + "Datasets_CreateOrUpdateVersion_MinimumSet": { + "$ref": "./examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json" + } } }, "delete": { @@ -602,6 +649,14 @@ } } } + }, + "x-ms-examples": { + "Datasets_DeleteVersion_MaximumSet": { + "$ref": "./examples/Datasets_DeleteVersion_MaximumSet_Gen.json" + }, + "Datasets_DeleteVersion_MinimumSet": { + "$ref": "./examples/Datasets_DeleteVersion_MinimumSet_Gen.json" + } } } }, @@ -656,6 +711,14 @@ } } } + }, + "x-ms-examples": { + "Datasets_GetCredentials_MaximumSet": { + "$ref": "./examples/Datasets_GetCredentials_MaximumSet_Gen.json" + }, + "Datasets_GetCredentials_MinimumSet": { + "$ref": "./examples/Datasets_GetCredentials_MinimumSet_Gen.json" + } } } }, @@ -710,6 +773,14 @@ } } } + }, + "x-ms-examples": { + "Datasets_StartPendingUploadVersion_MaximumSet": { + "$ref": "./examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json" + }, + "Datasets_StartPendingUploadVersion_MinimumSet": { + "$ref": "./examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json" + } } } }, @@ -796,6 +867,11 @@ } } }, + "x-ms-examples": { + "Deployments_List_MaximumSet": { + "$ref": "./examples/Deployments_List_MaximumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -846,6 +922,11 @@ } } } + }, + "x-ms-examples": { + "Deployments_Get_MaximumSet": { + "$ref": "./examples/Deployments_Get_MaximumSet_Gen.json" + } } } }, @@ -897,6 +978,11 @@ } } }, + "x-ms-examples": { + "Evaluations_List_MaximumSet": { + "$ref": "./examples/Evaluations_List_MaximumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -947,6 +1033,11 @@ } } } + }, + "x-ms-examples": { + "Evaluations_Get_MaximumSet": { + "$ref": "./examples/Evaluations_Get_MaximumSet_Gen.json" + } } } }, @@ -987,6 +1078,14 @@ } } } + }, + "x-ms-examples": { + "Evaluations_CreateRun_MaximumSet": { + "$ref": "./examples/Evaluations_CreateRun_MaximumSet_Gen.json" + }, + "Evaluations_CreateRun_MinimumSet": { + "$ref": "./examples/Evaluations_CreateRun_MinimumSet_Gen.json" + } } } }, @@ -1027,6 +1126,14 @@ } } } + }, + "x-ms-examples": { + "Evaluations_CreateAgentEvaluation_MaximumSet": { + "$ref": "./examples/Evaluations_CreateAgentEvaluation_MaximumSet_Gen.json" + }, + "Evaluations_CreateAgentEvaluation_MinimumSet": { + "$ref": "./examples/Evaluations_CreateAgentEvaluation_MinimumSet_Gen.json" + } } } }, @@ -1114,6 +1221,14 @@ } } }, + "x-ms-examples": { + "Indexes_ListLatest_MaximumSet": { + "$ref": "./examples/Indexes_ListLatest_MaximumSet_Gen.json" + }, + "Indexes_ListLatest_MinimumSet": { + "$ref": "./examples/Indexes_ListLatest_MinimumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -1210,6 +1325,14 @@ } } }, + "x-ms-examples": { + "Indexes_ListVersions_MaximumSet": { + "$ref": "./examples/Indexes_ListVersions_MaximumSet_Gen.json" + }, + "Indexes_ListVersions_MinimumSet": { + "$ref": "./examples/Indexes_ListVersions_MinimumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -1257,6 +1380,14 @@ } } } + }, + "x-ms-examples": { + "Indexes_GetVersion_MaximumSet": { + "$ref": "./examples/Indexes_GetVersion_MaximumSet_Gen.json" + }, + "Indexes_GetVersion_MinimumSet": { + "$ref": "./examples/Indexes_GetVersion_MinimumSet_Gen.json" + } } }, "patch": { @@ -1315,6 +1446,14 @@ } } } + }, + "x-ms-examples": { + "Indexes_CreateOrUpdateVersion_MaximumSet": { + "$ref": "./examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json" + }, + "Indexes_CreateOrUpdateVersion_MinimumSet": { + "$ref": "./examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json" + } } }, "delete": { @@ -1355,6 +1494,14 @@ } } } + }, + "x-ms-examples": { + "Indexes_DeleteVersion_MaximumSet": { + "$ref": "./examples/Indexes_DeleteVersion_MaximumSet_Gen.json" + }, + "Indexes_DeleteVersion_MinimumSet": { + "$ref": "./examples/Indexes_DeleteVersion_MinimumSet_Gen.json" + } } } }, @@ -1406,6 +1553,11 @@ } } }, + "x-ms-examples": { + "RedTeams_List_MaximumSet": { + "$ref": "./examples/RedTeams_List_MaximumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -1456,6 +1608,11 @@ } } } + }, + "x-ms-examples": { + "RedTeams_Get_MaximumSet": { + "$ref": "./examples/RedTeams_Get_MaximumSet_Gen.json" + } } } }, @@ -1496,6 +1653,14 @@ } } } + }, + "x-ms-examples": { + "RedTeams_CreateRun_MaximumSet": { + "$ref": "./examples/RedTeams_CreateRun_MaximumSet_Gen.json" + }, + "RedTeams_CreateRun_MinimumSet": { + "$ref": "./examples/RedTeams_CreateRun_MinimumSet_Gen.json" + } } } } @@ -1892,7 +2057,7 @@ }, "Azure.Core.Foundations.InnerError": { "type": "object", - "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", + "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/microsoft/api-guidelines/blob/vNext/azure/Guidelines.md#handling-errors.", "properties": { "code": { "type": "string", diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_GetWithCredentials_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_GetWithCredentials_MaximumSet_Gen.json new file mode 100644 index 000000000000..373b824a835e --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_GetWithCredentials_MaximumSet_Gen.json @@ -0,0 +1,25 @@ +{ + "title": "Connections_GetWithCredentials_MaximumSet", + "operationId": "Connections_GetWithCredentials", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "bblabqcnrjcbxlyjsejqiyixfoil", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "name": "cpezssfnwhl", + "type": "AzureOpenAI", + "target": "gxrgfvtt", + "isDefault": true, + "credentials": { + "type": "BaseCredentials" + }, + "metadata": { + "key2930": "uovt" + } + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_Get_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..abc365448734 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_Get_MaximumSet_Gen.json @@ -0,0 +1,25 @@ +{ + "title": "Connections_Get_MaximumSet", + "operationId": "Connections_Get", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "ijxjmv", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "name": "cpezssfnwhl", + "type": "AzureOpenAI", + "target": "gxrgfvtt", + "isDefault": true, + "credentials": { + "type": "BaseCredentials" + }, + "metadata": { + "key2930": "uovt" + } + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_List_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..a502f6c9b88c --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_List_MaximumSet_Gen.json @@ -0,0 +1,34 @@ +{ + "title": "Connections_List_MaximumSet", + "operationId": "Connections_List", + "parameters": { + "api-version": "2025-05-15-preview", + "connectionType": "AzureOpenAI", + "defaultConnection": true, + "top": 28, + "skip": 8, + "maxpagesize": 21, + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "cpezssfnwhl", + "type": "AzureOpenAI", + "target": "gxrgfvtt", + "isDefault": true, + "credentials": { + "type": "BaseCredentials" + }, + "metadata": { + "key2930": "uovt" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..e438c67528bd --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -0,0 +1,41 @@ +{ + "title": "Datasets_CreateOrUpdateVersion_MaximumSet", + "operationId": "Datasets_CreateOrUpdateVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "vfupg", + "version": "ecacrnqtmggfqsocagocpf", + "body": { + "type": "DatasetVersionUpdate", + "stage": "fjnqgrgtfdksnqvy", + "description": "u", + "tags": { + "key7559": "ybrhnrxopsvmxqxibvysedlsy" + } + } + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "tnhmoqlcmprnxyjluyf", + "id": "hvpdyfpeoqcl", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + }, + "201": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "tnhmoqlcmprnxyjluyf", + "id": "hvpdyfpeoqcl", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..02026a92e54d --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -0,0 +1,30 @@ +{ + "title": "Datasets_CreateOrUpdateVersion_MinimumSet", + "operationId": "Datasets_CreateOrUpdateVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "ryqozexodzklgkffokixpftfkcy", + "version": "vldbiveryfmysxuzw", + "body": { + "type": "DatasetVersionUpdate" + } + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + }, + "201": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_DeleteVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_DeleteVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..76dd33d1cd39 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_DeleteVersion_MaximumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Datasets_DeleteVersion_MaximumSet", + "operationId": "Datasets_DeleteVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "alpqwogwzatcyot", + "version": "zrkxodsgcd" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_DeleteVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_DeleteVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..224647378aa1 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_DeleteVersion_MinimumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Datasets_DeleteVersion_MinimumSet", + "operationId": "Datasets_DeleteVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "wllolxqbymlz", + "version": "ch" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetCredentials_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetCredentials_MaximumSet_Gen.json new file mode 100644 index 000000000000..15a99bdd2273 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetCredentials_MaximumSet_Gen.json @@ -0,0 +1,24 @@ +{ + "title": "Datasets_GetCredentials_MaximumSet", + "operationId": "Datasets_GetCredentials", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "vzqmzhfdzfqegdk", + "version": "cuiflnznlzybcrc", + "body": {} + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "azqrjzvwamspuuvtqvvzfaxiasf", + "storageAccountArmId": "deqizonopmijpxsmmzugiwnyy", + "credential": { + "sasUri": "agojbnipwrhupvervcdiffxes", + "type": "SAS" + } + } + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetCredentials_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetCredentials_MinimumSet_Gen.json new file mode 100644 index 000000000000..2335307af0b2 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetCredentials_MinimumSet_Gen.json @@ -0,0 +1,24 @@ +{ + "title": "Datasets_GetCredentials_MinimumSet", + "operationId": "Datasets_GetCredentials", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "sbblxkyqnfvdiqacezyygvts", + "version": "ikak", + "body": {} + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "azqrjzvwamspuuvtqvvzfaxiasf", + "storageAccountArmId": "deqizonopmijpxsmmzugiwnyy", + "credential": { + "sasUri": "agojbnipwrhupvervcdiffxes", + "type": "SAS" + } + } + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..fb64479a6784 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetVersion_MaximumSet_Gen.json @@ -0,0 +1,22 @@ +{ + "title": "Datasets_GetVersion_MaximumSet", + "operationId": "Datasets_GetVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "temeurpoaslnnu", + "version": "icrcjdmwkggtdogifuoolnrg" + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "tnhmoqlcmprnxyjluyf", + "id": "hvpdyfpeoqcl", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..850587b38861 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetVersion_MinimumSet_Gen.json @@ -0,0 +1,19 @@ +{ + "title": "Datasets_GetVersion_MinimumSet", + "operationId": "Datasets_GetVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "xikgeqethuxytuseiawhklaapj", + "version": "hxksxrkgmtucfrbbnxyzwl" + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListLatest_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListLatest_MaximumSet_Gen.json new file mode 100644 index 000000000000..c100ac17c0b1 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListLatest_MaximumSet_Gen.json @@ -0,0 +1,29 @@ +{ + "title": "Datasets_ListLatest_MaximumSet", + "operationId": "Datasets_ListLatest", + "parameters": { + "api-version": "2025-05-15-preview", + "top": 26, + "skip": "lbra", + "tags": "pp", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "tnhmoqlcmprnxyjluyf", + "id": "hvpdyfpeoqcl", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListLatest_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListLatest_MinimumSet_Gen.json new file mode 100644 index 000000000000..87491bc925c4 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListLatest_MinimumSet_Gen.json @@ -0,0 +1,21 @@ +{ + "title": "Datasets_ListLatest_MinimumSet", + "operationId": "Datasets_ListLatest", + "parameters": { + "api-version": "2025-05-15-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + ] + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListVersions_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListVersions_MaximumSet_Gen.json new file mode 100644 index 000000000000..6798c80063cc --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListVersions_MaximumSet_Gen.json @@ -0,0 +1,30 @@ +{ + "title": "Datasets_ListVersions_MaximumSet", + "operationId": "Datasets_ListVersions", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "xogklfj", + "top": 18, + "skip": "qtdfikprjdlsosjaa", + "tags": "amyob", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "tnhmoqlcmprnxyjluyf", + "id": "hvpdyfpeoqcl", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListVersions_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListVersions_MinimumSet_Gen.json new file mode 100644 index 000000000000..7f85774425ec --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListVersions_MinimumSet_Gen.json @@ -0,0 +1,22 @@ +{ + "title": "Datasets_ListVersions_MinimumSet", + "operationId": "Datasets_ListVersions", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "hxemlflfomh" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "xtdmvwhhobloqqsovgpynsnow", + "version": "eaixzft" + } + ] + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..8f300e3774ca --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json @@ -0,0 +1,31 @@ +{ + "title": "Datasets_StartPendingUploadVersion_MaximumSet", + "operationId": "Datasets_StartPendingUploadVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "sgrzyrpltz", + "version": "ozdqisviavgqgfbtnzk", + "body": { + "pendingUploadId": "mxjahcghabuplfwtlopiqgxtcyw", + "connectionName": "bknvpmlisrqxaphkf", + "pendingUploadType": "TemporaryBlobReference" + } + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "azqrjzvwamspuuvtqvvzfaxiasf", + "storageAccountArmId": "deqizonopmijpxsmmzugiwnyy", + "credential": { + "sasUri": "agojbnipwrhupvervcdiffxes", + "type": "SAS" + } + }, + "pendingUploadId": "qgizwomhljzn", + "datasetVersion": "tegswajurquatmuhfde", + "pendingUploadType": "TemporaryBlobReference" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..3fc13fb7e88a --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Datasets_StartPendingUploadVersion_MinimumSet", + "operationId": "Datasets_StartPendingUploadVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "duxoiaywfik", + "version": "yzzzt", + "body": { + "pendingUploadType": "TemporaryBlobReference" + } + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "azqrjzvwamspuuvtqvvzfaxiasf", + "storageAccountArmId": "deqizonopmijpxsmmzugiwnyy", + "credential": { + "sasUri": "agojbnipwrhupvervcdiffxes", + "type": "SAS" + } + }, + "pendingUploadId": "qgizwomhljzn", + "pendingUploadType": "TemporaryBlobReference" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Deployments_Get_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Deployments_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..795394509e35 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Deployments_Get_MaximumSet_Gen.json @@ -0,0 +1,17 @@ +{ + "title": "Deployments_Get_MaximumSet", + "operationId": "Deployments_Get", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "qqvacpzjfk", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "type": "Deployment", + "name": "pjnkbctjpshoeunqedinagotrj" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Deployments_List_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Deployments_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..8bd1e3061529 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Deployments_List_MaximumSet_Gen.json @@ -0,0 +1,26 @@ +{ + "title": "Deployments_List_MaximumSet", + "operationId": "Deployments_List", + "parameters": { + "api-version": "2025-05-15-preview", + "modelPublisher": "kznreojrvlwdq", + "modelName": "gplerszsuyisseeksnyvkaqperxox", + "top": 28, + "skip": 8, + "maxpagesize": 21, + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Deployment", + "name": "pjnkbctjpshoeunqedinagotrj" + } + ], + "nextLink": "https://microsoft.com/ahpgda" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateAgentEvaluation_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateAgentEvaluation_MaximumSet_Gen.json new file mode 100644 index 000000000000..e2ad79265104 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateAgentEvaluation_MaximumSet_Gen.json @@ -0,0 +1,53 @@ +{ + "title": "Evaluations_CreateAgentEvaluation_MaximumSet", + "operationId": "Evaluations_CreateAgentEvaluation", + "parameters": { + "api-version": "2025-05-15-preview", + "evaluation": { + "runId": "ecfcffqsrdhpecocrufffiqz", + "threadId": "cxjjsyhkeezgnaqqyerrdrbbth", + "evaluators": { + "key2653": { + "id": "gujwtvhptykq", + "initParams": {}, + "dataMapping": { + "key7400": "ijkjfvoswni" + } + } + }, + "samplingConfiguration": { + "name": "tj", + "samplingPercent": 7, + "maxRequestRate": 8 + }, + "redactionConfiguration": { + "redactScoreProperties": true + }, + "appInsightsConnectionString": "dvcnrcwar" + } + }, + "responses": { + "201": { + "body": { + "id": "gji", + "status": "ozywrhiasll", + "error": "stcjbhxgmqvjqwzmbvaa", + "result": [ + { + "evaluator": "upnt", + "score": 13, + "status": "eoxw", + "reason": "kfrjetziuketgioobeydlugonzfxo", + "version": "lfqwtzuktnbmcxxwkghmlpdtuu", + "threadId": "sldwqklyuxeayfmxpbl", + "runId": "lauehlf", + "error": "lrutmshl", + "additionalDetails": { + "key3590": "vhhneubavtiklsjcdexij" + } + } + ] + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateAgentEvaluation_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateAgentEvaluation_MinimumSet_Gen.json new file mode 100644 index 000000000000..ea7133304b73 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateAgentEvaluation_MinimumSet_Gen.json @@ -0,0 +1,20 @@ +{ + "title": "Evaluations_CreateAgentEvaluation_MinimumSet", + "operationId": "Evaluations_CreateAgentEvaluation", + "parameters": { + "api-version": "2025-05-15-preview", + "evaluation": { + "runId": "ecfcffqsrdhpecocrufffiqz", + "evaluators": {}, + "appInsightsConnectionString": "dvcnrcwar" + } + }, + "responses": { + "201": { + "body": { + "id": "gji", + "status": "ozywrhiasll" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateRun_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateRun_MaximumSet_Gen.json new file mode 100644 index 000000000000..8dc42fcc5579 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateRun_MaximumSet_Gen.json @@ -0,0 +1,57 @@ +{ + "title": "Evaluations_CreateRun_MaximumSet", + "operationId": "Evaluations_CreateRun", + "parameters": { + "api-version": "2025-05-15-preview", + "evaluation": { + "data": { + "type": "InputData" + }, + "displayName": "ymjxkodggqrhjnmusta", + "description": "cuviaxytqckkybxwc", + "tags": { + "key30": "nqrdpedyhkjzgrbtqhxbmkdmlpdf" + }, + "properties": { + "key9192": "e" + }, + "evaluators": { + "key2735": { + "id": "gujwtvhptykq", + "initParams": {}, + "dataMapping": { + "key7400": "ijkjfvoswni" + } + } + } + } + }, + "responses": { + "201": { + "body": { + "id": "aarhggbojnh", + "data": { + "type": "InputData" + }, + "displayName": "ymjxkodggqrhjnmusta", + "description": "cuviaxytqckkybxwc", + "status": "uhejnohmiiogajkx", + "tags": { + "key30": "nqrdpedyhkjzgrbtqhxbmkdmlpdf" + }, + "properties": { + "key9192": "e" + }, + "evaluators": { + "key2735": { + "id": "gujwtvhptykq", + "initParams": {}, + "dataMapping": { + "key7400": "ijkjfvoswni" + } + } + } + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateRun_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateRun_MinimumSet_Gen.json new file mode 100644 index 000000000000..fe5626cb7c85 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateRun_MinimumSet_Gen.json @@ -0,0 +1,24 @@ +{ + "title": "Evaluations_CreateRun_MinimumSet", + "operationId": "Evaluations_CreateRun", + "parameters": { + "api-version": "2025-05-15-preview", + "evaluation": { + "data": { + "type": "InputData" + }, + "evaluators": {} + } + }, + "responses": { + "201": { + "body": { + "id": "aarhggbojnh", + "data": { + "type": "InputData" + }, + "evaluators": {} + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_Get_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..834d486f6071 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_Get_MaximumSet_Gen.json @@ -0,0 +1,37 @@ +{ + "title": "Evaluations_Get_MaximumSet", + "operationId": "Evaluations_Get", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "so", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "id": "aarhggbojnh", + "data": { + "type": "InputData" + }, + "displayName": "ymjxkodggqrhjnmusta", + "description": "cuviaxytqckkybxwc", + "status": "uhejnohmiiogajkx", + "tags": { + "key30": "nqrdpedyhkjzgrbtqhxbmkdmlpdf" + }, + "properties": { + "key9192": "e" + }, + "evaluators": { + "key2735": { + "id": "gujwtvhptykq", + "initParams": {}, + "dataMapping": { + "key7400": "ijkjfvoswni" + } + } + } + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_List_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..2c8d83bdf062 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_List_MaximumSet_Gen.json @@ -0,0 +1,44 @@ +{ + "title": "Evaluations_List_MaximumSet", + "operationId": "Evaluations_List", + "parameters": { + "api-version": "2025-05-15-preview", + "top": 28, + "skip": 8, + "maxpagesize": 21, + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "aarhggbojnh", + "data": { + "type": "InputData" + }, + "displayName": "ymjxkodggqrhjnmusta", + "description": "cuviaxytqckkybxwc", + "status": "uhejnohmiiogajkx", + "tags": { + "key30": "nqrdpedyhkjzgrbtqhxbmkdmlpdf" + }, + "properties": { + "key9192": "e" + }, + "evaluators": { + "key2735": { + "id": "gujwtvhptykq", + "initParams": {}, + "dataMapping": { + "key7400": "ijkjfvoswni" + } + } + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..780520e50194 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -0,0 +1,37 @@ +{ + "title": "Indexes_CreateOrUpdateVersion_MaximumSet", + "operationId": "Indexes_CreateOrUpdateVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "tv", + "version": "emphgqdq", + "body": { + "type": "IndexUpdate", + "stage": "wvzutndojum", + "description": "vdwtgaudopguto", + "tags": { + "key8846": "serbpbugykgbwuwvh" + } + } + }, + "responses": { + "200": { + "body": { + "type": "Index", + "stage": "m", + "id": "fxdrmhqrfmclzkjmfldnszfnztla", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + }, + "201": { + "body": { + "type": "Index", + "stage": "m", + "id": "fxdrmhqrfmclzkjmfldnszfnztla", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..59fd1d9e7dd2 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Indexes_CreateOrUpdateVersion_MinimumSet", + "operationId": "Indexes_CreateOrUpdateVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "lvlygvkgvkbzutknlnretfvivdgkb", + "version": "ct", + "body": { + "type": "IndexUpdate" + } + }, + "responses": { + "200": { + "body": { + "type": "Index", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + }, + "201": { + "body": { + "type": "Index", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_DeleteVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_DeleteVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..a31c3f6e7e24 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_DeleteVersion_MaximumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Indexes_DeleteVersion_MaximumSet", + "operationId": "Indexes_DeleteVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "uxzepyytxjtpjkdrpxicavot", + "version": "vyihcshjrfglzhj" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_DeleteVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_DeleteVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..7fec5d942612 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_DeleteVersion_MinimumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Indexes_DeleteVersion_MinimumSet", + "operationId": "Indexes_DeleteVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "mzshhabnrpuocgtyxkzftkr", + "version": "orbdovkdebzfwluronkmsoty" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_GetVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_GetVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..15c262af2bfe --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_GetVersion_MaximumSet_Gen.json @@ -0,0 +1,20 @@ +{ + "title": "Indexes_GetVersion_MaximumSet", + "operationId": "Indexes_GetVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "nnhahjajcarruliib", + "version": "njynfwrxvujbklgxnibzafvcm" + }, + "responses": { + "200": { + "body": { + "type": "Index", + "stage": "m", + "id": "fxdrmhqrfmclzkjmfldnszfnztla", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_GetVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_GetVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..3d7ccc6498e6 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_GetVersion_MinimumSet_Gen.json @@ -0,0 +1,18 @@ +{ + "title": "Indexes_GetVersion_MinimumSet", + "operationId": "Indexes_GetVersion", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "kbfueisvpmwlmmgqrylbgcwabum", + "version": "qtzhdugby" + }, + "responses": { + "200": { + "body": { + "type": "Index", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListLatest_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListLatest_MaximumSet_Gen.json new file mode 100644 index 000000000000..313d03f714cd --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListLatest_MaximumSet_Gen.json @@ -0,0 +1,27 @@ +{ + "title": "Indexes_ListLatest_MaximumSet", + "operationId": "Indexes_ListLatest", + "parameters": { + "api-version": "2025-05-15-preview", + "top": 11, + "skip": "qijkobbksrqhgvwzmujd", + "tags": "lmpvvr", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "stage": "m", + "id": "fxdrmhqrfmclzkjmfldnszfnztla", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + ], + "nextLink": "https://microsoft.com/ayyakes" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListLatest_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListLatest_MinimumSet_Gen.json new file mode 100644 index 000000000000..2c147c3ed85e --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListLatest_MinimumSet_Gen.json @@ -0,0 +1,20 @@ +{ + "title": "Indexes_ListLatest_MinimumSet", + "operationId": "Indexes_ListLatest", + "parameters": { + "api-version": "2025-05-15-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + ] + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListVersions_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListVersions_MaximumSet_Gen.json new file mode 100644 index 000000000000..ad780f5d44e6 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListVersions_MaximumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Indexes_ListVersions_MaximumSet", + "operationId": "Indexes_ListVersions", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "tvabzvonlomkdvglaubvvqmzwdaiz", + "top": 2, + "skip": "fgwrnkksjofetmtfyizikbyv", + "tags": "hymlvxullwef", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "stage": "m", + "id": "fxdrmhqrfmclzkjmfldnszfnztla", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + ], + "nextLink": "https://microsoft.com/ayyakes" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListVersions_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListVersions_MinimumSet_Gen.json new file mode 100644 index 000000000000..6e11477a0190 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListVersions_MinimumSet_Gen.json @@ -0,0 +1,21 @@ +{ + "title": "Indexes_ListVersions_MinimumSet", + "operationId": "Indexes_ListVersions", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "opimayfinqlkarudm" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "name": "fiwkavutgfan", + "version": "iqupugmfgctoxzdubrcdnzx" + } + ] + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_CreateRun_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_CreateRun_MaximumSet_Gen.json new file mode 100644 index 000000000000..b259ee63baea --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_CreateRun_MaximumSet_Gen.json @@ -0,0 +1,55 @@ +{ + "title": "RedTeams_CreateRun_MaximumSet", + "operationId": "RedTeams_CreateRun", + "parameters": { + "api-version": "2025-05-15-preview", + "RedTeam": { + "scanName": "edmalfvznuay", + "numTurns": 10, + "attackStrategies": [ + "easy" + ], + "simulationOnly": true, + "riskCategories": [ + "HateUnfairness" + ], + "applicationScenario": "qaxxxhjp", + "tags": { + "key1287": "gbklekkgmxkfbhehgh" + }, + "properties": { + "key9280": "fwzjtipl" + }, + "targetConfig": { + "type": "TargetConfig" + } + } + }, + "responses": { + "201": { + "body": { + "id": "tztegmf", + "scanName": "edmalfvznuay", + "numTurns": 10, + "attackStrategies": [ + "easy" + ], + "simulationOnly": true, + "riskCategories": [ + "HateUnfairness" + ], + "applicationScenario": "qaxxxhjp", + "tags": { + "key1287": "gbklekkgmxkfbhehgh" + }, + "properties": { + "key9280": "fwzjtipl" + }, + "status": "owgxaiudnkkeqwlnhtmihvhdkbgd", + "targetConfig": { + "type": "TargetConfig" + } + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_CreateRun_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_CreateRun_MinimumSet_Gen.json new file mode 100644 index 000000000000..bcc7f8eed522 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_CreateRun_MinimumSet_Gen.json @@ -0,0 +1,38 @@ +{ + "title": "RedTeams_CreateRun_MinimumSet", + "operationId": "RedTeams_CreateRun", + "parameters": { + "api-version": "2025-05-15-preview", + "RedTeam": { + "numTurns": 10, + "attackStrategies": [ + "easy" + ], + "simulationOnly": true, + "riskCategories": [ + "HateUnfairness" + ], + "targetConfig": { + "type": "TargetConfig" + } + } + }, + "responses": { + "201": { + "body": { + "id": "tztegmf", + "numTurns": 10, + "attackStrategies": [ + "easy" + ], + "simulationOnly": true, + "riskCategories": [ + "HateUnfairness" + ], + "targetConfig": { + "type": "TargetConfig" + } + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Get_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..e806fba7a3f1 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Get_MaximumSet_Gen.json @@ -0,0 +1,36 @@ +{ + "title": "RedTeams_Get_MaximumSet", + "operationId": "RedTeams_Get", + "parameters": { + "api-version": "2025-05-15-preview", + "name": "apwpcf", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "id": "tztegmf", + "scanName": "edmalfvznuay", + "numTurns": 10, + "attackStrategies": [ + "easy" + ], + "simulationOnly": true, + "riskCategories": [ + "HateUnfairness" + ], + "applicationScenario": "qaxxxhjp", + "tags": { + "key1287": "gbklekkgmxkfbhehgh" + }, + "properties": { + "key9280": "fwzjtipl" + }, + "status": "owgxaiudnkkeqwlnhtmihvhdkbgd", + "targetConfig": { + "type": "TargetConfig" + } + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_List_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..c1a200883f72 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_List_MaximumSet_Gen.json @@ -0,0 +1,43 @@ +{ + "title": "RedTeams_List_MaximumSet", + "operationId": "RedTeams_List", + "parameters": { + "api-version": "2025-05-15-preview", + "top": 28, + "skip": 8, + "maxpagesize": 21, + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "tztegmf", + "scanName": "edmalfvznuay", + "numTurns": 10, + "attackStrategies": [ + "easy" + ], + "simulationOnly": true, + "riskCategories": [ + "HateUnfairness" + ], + "applicationScenario": "qaxxxhjp", + "tags": { + "key1287": "gbklekkgmxkfbhehgh" + }, + "properties": { + "key9280": "fwzjtipl" + }, + "status": "owgxaiudnkkeqwlnhtmihvhdkbgd", + "targetConfig": { + "type": "TargetConfig" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/readme.md b/specification/ai/data-plane/Azure.AI.Projects/readme.md new file mode 100644 index 000000000000..b63fe62467b4 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/readme.md @@ -0,0 +1,46 @@ +# Azure AI Projects SDK + +> see https://aka.ms/autorest + +Configuration for generating Azure AI Projects SDK. + +The current release is `latest`. + +``` yaml + +tag: latest +add-credentials: true +openapi-type: data-plane +``` + +# Releases + +### Release latest +These settings apply only when `--tag=latest` is specified on the command line. +``` yaml $(tag) == 'latest' +input-file: + - stable/latest/azure-ai-projects-1dp.json +``` + +### Release v2025-05-01 +These settings apply only when `--tag=v025-05-01` is specified on the command line. +``` yaml $(tag) == '2025-05-01' +input-file: + - stable/2025-05-01/azure-ai-projects-1dp.json +``` + +### Release v2025-05-15-preview +These settings apply only when `--tag=2025-05-15-preview` is specified on the command line. +``` yaml $(tag) == '2025-05-15-preview' +input-file: + - preview/2025-05-15-preview/azure-ai-projects-1dp.json +``` + +# Suppressions +``` yaml +suppressions: + - code: OperationIdNounVerb + from: azure-ai-projects-1dp.json + where: $.paths["/evaluations/runs:runAgent"].post.operationId + reason: False alert. Evaluation should appear after underscore for clarity's sake. +``` diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json index af0cbd1f55c0..6ec38b170bae 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json @@ -176,6 +176,11 @@ } } }, + "x-ms-examples": { + "Connections_List_MaximumSet": { + "$ref": "./examples/Connections_List_MaximumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -226,6 +231,11 @@ } } } + }, + "x-ms-examples": { + "Connections_Get_MaximumSet": { + "$ref": "./examples/Connections_Get_MaximumSet_Gen.json" + } } } }, @@ -274,6 +284,11 @@ } } } + }, + "x-ms-examples": { + "Connections_GetWithCredentials_MaximumSet": { + "$ref": "./examples/Connections_GetWithCredentials_MaximumSet_Gen.json" + } } } }, @@ -361,6 +376,14 @@ } } }, + "x-ms-examples": { + "Datasets_ListLatest_MaximumSet": { + "$ref": "./examples/Datasets_ListLatest_MaximumSet_Gen.json" + }, + "Datasets_ListLatest_MinimumSet": { + "$ref": "./examples/Datasets_ListLatest_MinimumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -457,6 +480,14 @@ } } }, + "x-ms-examples": { + "Datasets_ListVersions_MaximumSet": { + "$ref": "./examples/Datasets_ListVersions_MaximumSet_Gen.json" + }, + "Datasets_ListVersions_MinimumSet": { + "$ref": "./examples/Datasets_ListVersions_MinimumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -504,6 +535,14 @@ } } } + }, + "x-ms-examples": { + "Datasets_GetVersion_MaximumSet": { + "$ref": "./examples/Datasets_GetVersion_MaximumSet_Gen.json" + }, + "Datasets_GetVersion_MinimumSet": { + "$ref": "./examples/Datasets_GetVersion_MinimumSet_Gen.json" + } } }, "patch": { @@ -562,6 +601,14 @@ } } } + }, + "x-ms-examples": { + "Datasets_CreateOrUpdateVersion_MaximumSet": { + "$ref": "./examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json" + }, + "Datasets_CreateOrUpdateVersion_MinimumSet": { + "$ref": "./examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json" + } } }, "delete": { @@ -602,6 +649,14 @@ } } } + }, + "x-ms-examples": { + "Datasets_DeleteVersion_MaximumSet": { + "$ref": "./examples/Datasets_DeleteVersion_MaximumSet_Gen.json" + }, + "Datasets_DeleteVersion_MinimumSet": { + "$ref": "./examples/Datasets_DeleteVersion_MinimumSet_Gen.json" + } } } }, @@ -656,6 +711,14 @@ } } } + }, + "x-ms-examples": { + "Datasets_GetCredentials_MaximumSet": { + "$ref": "./examples/Datasets_GetCredentials_MaximumSet_Gen.json" + }, + "Datasets_GetCredentials_MinimumSet": { + "$ref": "./examples/Datasets_GetCredentials_MinimumSet_Gen.json" + } } } }, @@ -710,6 +773,14 @@ } } } + }, + "x-ms-examples": { + "Datasets_StartPendingUploadVersion_MaximumSet": { + "$ref": "./examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json" + }, + "Datasets_StartPendingUploadVersion_MinimumSet": { + "$ref": "./examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json" + } } } }, @@ -796,6 +867,11 @@ } } }, + "x-ms-examples": { + "Deployments_List_MaximumSet": { + "$ref": "./examples/Deployments_List_MaximumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -846,6 +922,11 @@ } } } + }, + "x-ms-examples": { + "Deployments_Get_MaximumSet": { + "$ref": "./examples/Deployments_Get_MaximumSet_Gen.json" + } } } }, @@ -933,6 +1014,14 @@ } } }, + "x-ms-examples": { + "Indexes_ListLatest_MaximumSet": { + "$ref": "./examples/Indexes_ListLatest_MaximumSet_Gen.json" + }, + "Indexes_ListLatest_MinimumSet": { + "$ref": "./examples/Indexes_ListLatest_MinimumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -1029,6 +1118,14 @@ } } }, + "x-ms-examples": { + "Indexes_ListVersions_MaximumSet": { + "$ref": "./examples/Indexes_ListVersions_MaximumSet_Gen.json" + }, + "Indexes_ListVersions_MinimumSet": { + "$ref": "./examples/Indexes_ListVersions_MinimumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -1076,6 +1173,14 @@ } } } + }, + "x-ms-examples": { + "Indexes_GetVersion_MaximumSet": { + "$ref": "./examples/Indexes_GetVersion_MaximumSet_Gen.json" + }, + "Indexes_GetVersion_MinimumSet": { + "$ref": "./examples/Indexes_GetVersion_MinimumSet_Gen.json" + } } }, "patch": { @@ -1134,6 +1239,14 @@ } } } + }, + "x-ms-examples": { + "Indexes_CreateOrUpdateVersion_MaximumSet": { + "$ref": "./examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json" + }, + "Indexes_CreateOrUpdateVersion_MinimumSet": { + "$ref": "./examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json" + } } }, "delete": { @@ -1174,6 +1287,14 @@ } } } + }, + "x-ms-examples": { + "Indexes_DeleteVersion_MaximumSet": { + "$ref": "./examples/Indexes_DeleteVersion_MaximumSet_Gen.json" + }, + "Indexes_DeleteVersion_MinimumSet": { + "$ref": "./examples/Indexes_DeleteVersion_MinimumSet_Gen.json" + } } } } @@ -1259,7 +1380,7 @@ }, "Azure.Core.Foundations.InnerError": { "type": "object", - "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", + "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/microsoft/api-guidelines/blob/vNext/azure/Guidelines.md#handling-errors.", "properties": { "code": { "type": "string", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_GetWithCredentials_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_GetWithCredentials_MaximumSet_Gen.json new file mode 100644 index 000000000000..97fed0850abf --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_GetWithCredentials_MaximumSet_Gen.json @@ -0,0 +1,25 @@ +{ + "title": "Connections_GetWithCredentials_MaximumSet", + "operationId": "Connections_GetWithCredentials", + "parameters": { + "api-version": "2025-05-01", + "name": "qbcgg", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "name": "obsbzkgcpozwapujpylfjqwqpbeol", + "type": "AzureOpenAI", + "target": "rkznadqxuwnkbtb", + "isDefault": true, + "credentials": { + "type": "BaseCredentials" + }, + "metadata": { + "key8920": "utjp" + } + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_Get_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..142106a1c2e8 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_Get_MaximumSet_Gen.json @@ -0,0 +1,25 @@ +{ + "title": "Connections_Get_MaximumSet", + "operationId": "Connections_Get", + "parameters": { + "api-version": "2025-05-01", + "name": "dbxtef", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "name": "obsbzkgcpozwapujpylfjqwqpbeol", + "type": "AzureOpenAI", + "target": "rkznadqxuwnkbtb", + "isDefault": true, + "credentials": { + "type": "BaseCredentials" + }, + "metadata": { + "key8920": "utjp" + } + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_List_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..c3906181a790 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_List_MaximumSet_Gen.json @@ -0,0 +1,34 @@ +{ + "title": "Connections_List_MaximumSet", + "operationId": "Connections_List", + "parameters": { + "api-version": "2025-05-01", + "connectionType": "AzureOpenAI", + "defaultConnection": true, + "top": 29, + "skip": 27, + "maxpagesize": 25, + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "obsbzkgcpozwapujpylfjqwqpbeol", + "type": "AzureOpenAI", + "target": "rkznadqxuwnkbtb", + "isDefault": true, + "credentials": { + "type": "BaseCredentials" + }, + "metadata": { + "key8920": "utjp" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..6752aaa8bc3d --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -0,0 +1,41 @@ +{ + "title": "Datasets_CreateOrUpdateVersion_MaximumSet", + "operationId": "Datasets_CreateOrUpdateVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "grpenjfobadxmsceuqwunwqn", + "version": "dfo", + "body": { + "type": "DatasetVersionUpdate", + "stage": "ubusuwsmmlhvxacmijddhckhiixf", + "description": "zukluwbmoq", + "tags": { + "key8794": "ietydcqbwiebstkxrmqzsadlraapox" + } + } + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "arjpmieiaztcjy", + "id": "nneuypway", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + }, + "201": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "arjpmieiaztcjy", + "id": "nneuypway", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..e414bbc2c4bd --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -0,0 +1,30 @@ +{ + "title": "Datasets_CreateOrUpdateVersion_MinimumSet", + "operationId": "Datasets_CreateOrUpdateVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "rpnyigsqddnpdmrboazyi", + "version": "iplgbfirylwervrnglnnbwwzodsm", + "body": { + "type": "DatasetVersionUpdate" + } + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + }, + "201": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_DeleteVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_DeleteVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..dd4eed294b2d --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_DeleteVersion_MaximumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Datasets_DeleteVersion_MaximumSet", + "operationId": "Datasets_DeleteVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "ucurctiifkgnlmfsqjdqikngh", + "version": "ynxklccaehey" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_DeleteVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_DeleteVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..feddeb285bba --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_DeleteVersion_MinimumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Datasets_DeleteVersion_MinimumSet", + "operationId": "Datasets_DeleteVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "mah", + "version": "cyvuzcdcozazi" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetCredentials_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetCredentials_MaximumSet_Gen.json new file mode 100644 index 000000000000..7394d358dbd1 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetCredentials_MaximumSet_Gen.json @@ -0,0 +1,24 @@ +{ + "title": "Datasets_GetCredentials_MaximumSet", + "operationId": "Datasets_GetCredentials", + "parameters": { + "api-version": "2025-05-01", + "name": "ianzqjcpdiabrxkrbnstbpwlzavrmh", + "version": "nekh", + "body": {} + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "wvqzlobwdzstxryhnlqqtvp", + "storageAccountArmId": "br", + "credential": { + "sasUri": "qw", + "type": "SAS" + } + } + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetCredentials_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetCredentials_MinimumSet_Gen.json new file mode 100644 index 000000000000..7d1a0a68b2c1 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetCredentials_MinimumSet_Gen.json @@ -0,0 +1,24 @@ +{ + "title": "Datasets_GetCredentials_MinimumSet", + "operationId": "Datasets_GetCredentials", + "parameters": { + "api-version": "2025-05-01", + "name": "nydfjjrnlgs", + "version": "wskb", + "body": {} + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "wvqzlobwdzstxryhnlqqtvp", + "storageAccountArmId": "br", + "credential": { + "sasUri": "qw", + "type": "SAS" + } + } + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..a26d2acc9f90 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetVersion_MaximumSet_Gen.json @@ -0,0 +1,22 @@ +{ + "title": "Datasets_GetVersion_MaximumSet", + "operationId": "Datasets_GetVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "nynmsupycdzwlieanjigzvfcsxhghr", + "version": "efrsah" + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "arjpmieiaztcjy", + "id": "nneuypway", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..d40a24ee92e6 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetVersion_MinimumSet_Gen.json @@ -0,0 +1,19 @@ +{ + "title": "Datasets_GetVersion_MinimumSet", + "operationId": "Datasets_GetVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "nphjhqczjtdfwoxwuhcsnvfawmq", + "version": "itpmqdpptvnubbkihc" + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListLatest_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListLatest_MaximumSet_Gen.json new file mode 100644 index 000000000000..9a2a10add544 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListLatest_MaximumSet_Gen.json @@ -0,0 +1,29 @@ +{ + "title": "Datasets_ListLatest_MaximumSet", + "operationId": "Datasets_ListLatest", + "parameters": { + "api-version": "2025-05-01", + "top": 21, + "skip": "eprtlgapqpuxmkqqbyqgatazgk", + "tags": "mvcivdyuolnhvpuqdp", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "arjpmieiaztcjy", + "id": "nneuypway", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListLatest_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListLatest_MinimumSet_Gen.json new file mode 100644 index 000000000000..db0c5738de26 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListLatest_MinimumSet_Gen.json @@ -0,0 +1,21 @@ +{ + "title": "Datasets_ListLatest_MinimumSet", + "operationId": "Datasets_ListLatest", + "parameters": { + "api-version": "2025-05-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + ] + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListVersions_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListVersions_MaximumSet_Gen.json new file mode 100644 index 000000000000..ebf26ce040a4 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListVersions_MaximumSet_Gen.json @@ -0,0 +1,30 @@ +{ + "title": "Datasets_ListVersions_MaximumSet", + "operationId": "Datasets_ListVersions", + "parameters": { + "api-version": "2025-05-01", + "name": "qjknijsjewu", + "top": 13, + "skip": "wwwo", + "tags": "nfxvn", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "arjpmieiaztcjy", + "id": "nneuypway", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListVersions_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListVersions_MinimumSet_Gen.json new file mode 100644 index 000000000000..1ab1c047076a --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListVersions_MinimumSet_Gen.json @@ -0,0 +1,22 @@ +{ + "title": "Datasets_ListVersions_MinimumSet", + "operationId": "Datasets_ListVersions", + "parameters": { + "api-version": "2025-05-01", + "name": "qcoxe" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "qnagvpitbcc", + "version": "vcdlshlzkzyuocakljbdjkaasc" + } + ] + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..23e96352af95 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json @@ -0,0 +1,31 @@ +{ + "title": "Datasets_StartPendingUploadVersion_MaximumSet", + "operationId": "Datasets_StartPendingUploadVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "hvusmygqjnkihfwprkw", + "version": "zcrxyums", + "body": { + "pendingUploadId": "cnvf", + "connectionName": "qepjjlfgjlcalfuhchnojqlzhzrtcj", + "pendingUploadType": "TemporaryBlobReference" + } + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "wvqzlobwdzstxryhnlqqtvp", + "storageAccountArmId": "br", + "credential": { + "sasUri": "qw", + "type": "SAS" + } + }, + "pendingUploadId": "mdhrbpu", + "datasetVersion": "qbbmljwtqwhbgdcajnywtky", + "pendingUploadType": "TemporaryBlobReference" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..e0d8a19e6a56 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Datasets_StartPendingUploadVersion_MinimumSet", + "operationId": "Datasets_StartPendingUploadVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "esicohztsytnvxxqcpzsxnesug", + "version": "rrwerwxmkfuewptwsxeylxrcjkcp", + "body": { + "pendingUploadType": "TemporaryBlobReference" + } + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "wvqzlobwdzstxryhnlqqtvp", + "storageAccountArmId": "br", + "credential": { + "sasUri": "qw", + "type": "SAS" + } + }, + "pendingUploadId": "mdhrbpu", + "pendingUploadType": "TemporaryBlobReference" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Deployments_Get_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Deployments_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..e054205d8864 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Deployments_Get_MaximumSet_Gen.json @@ -0,0 +1,17 @@ +{ + "title": "Deployments_Get_MaximumSet", + "operationId": "Deployments_Get", + "parameters": { + "api-version": "2025-05-01", + "name": "asyfxhswpjdjtjjwrkhyxmoljgml", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "type": "Deployment", + "name": "aof" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Deployments_List_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Deployments_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..dfc8c3e12f85 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Deployments_List_MaximumSet_Gen.json @@ -0,0 +1,26 @@ +{ + "title": "Deployments_List_MaximumSet", + "operationId": "Deployments_List", + "parameters": { + "api-version": "2025-05-01", + "modelPublisher": "wpfjkjrmkxihi", + "modelName": "lxhwhobkjsyhnfvhfyqhymgosytke", + "top": 29, + "skip": 27, + "maxpagesize": 25, + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Deployment", + "name": "aof" + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..925177446e13 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -0,0 +1,37 @@ +{ + "title": "Indexes_CreateOrUpdateVersion_MaximumSet", + "operationId": "Indexes_CreateOrUpdateVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "qlslwpztrobxh", + "version": "lvwrjftywgtfixhxoxbmcs", + "body": { + "type": "IndexUpdate", + "stage": "uag", + "description": "fvbkomalkxkj", + "tags": { + "key8738": "gmejegbwwrkawbdxuv" + } + } + }, + "responses": { + "200": { + "body": { + "type": "Index", + "stage": "narfsdjafpvh", + "id": "ivqkxhapawoqvjiksau", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + }, + "201": { + "body": { + "type": "Index", + "stage": "narfsdjafpvh", + "id": "ivqkxhapawoqvjiksau", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..f6d5cf34f1c7 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Indexes_CreateOrUpdateVersion_MinimumSet", + "operationId": "Indexes_CreateOrUpdateVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "ypkrjjvche", + "version": "gmorfjnfnwawvkwsjsodunylq", + "body": { + "type": "IndexUpdate" + } + }, + "responses": { + "200": { + "body": { + "type": "Index", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + }, + "201": { + "body": { + "type": "Index", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_DeleteVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_DeleteVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..f2cb9986c7ab --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_DeleteVersion_MaximumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Indexes_DeleteVersion_MaximumSet", + "operationId": "Indexes_DeleteVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "djofiby", + "version": "wjcqszxbshmfcspufpvusvijabosg" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_DeleteVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_DeleteVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..a2aad4e2cffe --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_DeleteVersion_MinimumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Indexes_DeleteVersion_MinimumSet", + "operationId": "Indexes_DeleteVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "bhjawuegimffqwlhrxtbbeohdplmw", + "version": "o" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_GetVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_GetVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..b6adf1415eac --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_GetVersion_MaximumSet_Gen.json @@ -0,0 +1,20 @@ +{ + "title": "Indexes_GetVersion_MaximumSet", + "operationId": "Indexes_GetVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "nsgckjrartmxxbuc", + "version": "zplpqeeluwtxx" + }, + "responses": { + "200": { + "body": { + "type": "Index", + "stage": "narfsdjafpvh", + "id": "ivqkxhapawoqvjiksau", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_GetVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_GetVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..e1d022748151 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_GetVersion_MinimumSet_Gen.json @@ -0,0 +1,18 @@ +{ + "title": "Indexes_GetVersion_MinimumSet", + "operationId": "Indexes_GetVersion", + "parameters": { + "api-version": "2025-05-01", + "name": "ssadrgeajxmatjfcakqfxm", + "version": "ckqhgdasokotj" + }, + "responses": { + "200": { + "body": { + "type": "Index", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListLatest_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListLatest_MaximumSet_Gen.json new file mode 100644 index 000000000000..4a6754396c82 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListLatest_MaximumSet_Gen.json @@ -0,0 +1,27 @@ +{ + "title": "Indexes_ListLatest_MaximumSet", + "operationId": "Indexes_ListLatest", + "parameters": { + "api-version": "2025-05-01", + "top": 27, + "skip": "pjv", + "tags": "v", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "stage": "narfsdjafpvh", + "id": "ivqkxhapawoqvjiksau", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListLatest_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListLatest_MinimumSet_Gen.json new file mode 100644 index 000000000000..5b993cdaa80f --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListLatest_MinimumSet_Gen.json @@ -0,0 +1,20 @@ +{ + "title": "Indexes_ListLatest_MinimumSet", + "operationId": "Indexes_ListLatest", + "parameters": { + "api-version": "2025-05-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + ] + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListVersions_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListVersions_MaximumSet_Gen.json new file mode 100644 index 000000000000..7883b3206847 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListVersions_MaximumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Indexes_ListVersions_MaximumSet", + "operationId": "Indexes_ListVersions", + "parameters": { + "api-version": "2025-05-01", + "name": "ympfyjkrpvirlqqfcwbrrmebc", + "top": 1, + "skip": "emybimaziwnaxdvk", + "tags": "bhuogyiydomalwcj", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "stage": "narfsdjafpvh", + "id": "ivqkxhapawoqvjiksau", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListVersions_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListVersions_MinimumSet_Gen.json new file mode 100644 index 000000000000..767f7c24591e --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListVersions_MinimumSet_Gen.json @@ -0,0 +1,21 @@ +{ + "title": "Indexes_ListVersions_MinimumSet", + "operationId": "Indexes_ListVersions", + "parameters": { + "api-version": "2025-05-01", + "name": "sgpbxddgmugf" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "name": "mfyjvkkukqfgrzlqtzfbtuldr", + "version": "qrygnibzlcruksqvwa" + } + ] + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json index 7d2a3e43ac6a..d862e14ebd47 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json @@ -176,6 +176,11 @@ } } }, + "x-ms-examples": { + "Connections_List_MaximumSet": { + "$ref": "./examples/Connections_List_MaximumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -226,6 +231,11 @@ } } } + }, + "x-ms-examples": { + "Connections_Get_MaximumSet": { + "$ref": "./examples/Connections_Get_MaximumSet_Gen.json" + } } } }, @@ -274,6 +284,11 @@ } } } + }, + "x-ms-examples": { + "Connections_GetWithCredentials_MaximumSet": { + "$ref": "./examples/Connections_GetWithCredentials_MaximumSet_Gen.json" + } } } }, @@ -361,6 +376,14 @@ } } }, + "x-ms-examples": { + "Datasets_ListLatest_MaximumSet": { + "$ref": "./examples/Datasets_ListLatest_MaximumSet_Gen.json" + }, + "Datasets_ListLatest_MinimumSet": { + "$ref": "./examples/Datasets_ListLatest_MinimumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -457,6 +480,14 @@ } } }, + "x-ms-examples": { + "Datasets_ListVersions_MaximumSet": { + "$ref": "./examples/Datasets_ListVersions_MaximumSet_Gen.json" + }, + "Datasets_ListVersions_MinimumSet": { + "$ref": "./examples/Datasets_ListVersions_MinimumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -504,6 +535,14 @@ } } } + }, + "x-ms-examples": { + "Datasets_GetVersion_MaximumSet": { + "$ref": "./examples/Datasets_GetVersion_MaximumSet_Gen.json" + }, + "Datasets_GetVersion_MinimumSet": { + "$ref": "./examples/Datasets_GetVersion_MinimumSet_Gen.json" + } } }, "patch": { @@ -562,6 +601,14 @@ } } } + }, + "x-ms-examples": { + "Datasets_CreateOrUpdateVersion_MaximumSet": { + "$ref": "./examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json" + }, + "Datasets_CreateOrUpdateVersion_MinimumSet": { + "$ref": "./examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json" + } } }, "delete": { @@ -602,6 +649,14 @@ } } } + }, + "x-ms-examples": { + "Datasets_DeleteVersion_MaximumSet": { + "$ref": "./examples/Datasets_DeleteVersion_MaximumSet_Gen.json" + }, + "Datasets_DeleteVersion_MinimumSet": { + "$ref": "./examples/Datasets_DeleteVersion_MinimumSet_Gen.json" + } } } }, @@ -656,6 +711,14 @@ } } } + }, + "x-ms-examples": { + "Datasets_GetCredentials_MaximumSet": { + "$ref": "./examples/Datasets_GetCredentials_MaximumSet_Gen.json" + }, + "Datasets_GetCredentials_MinimumSet": { + "$ref": "./examples/Datasets_GetCredentials_MinimumSet_Gen.json" + } } } }, @@ -710,6 +773,14 @@ } } } + }, + "x-ms-examples": { + "Datasets_StartPendingUploadVersion_MaximumSet": { + "$ref": "./examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json" + }, + "Datasets_StartPendingUploadVersion_MinimumSet": { + "$ref": "./examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json" + } } } }, @@ -796,6 +867,11 @@ } } }, + "x-ms-examples": { + "Deployments_List_MaximumSet": { + "$ref": "./examples/Deployments_List_MaximumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -846,6 +922,11 @@ } } } + }, + "x-ms-examples": { + "Deployments_Get_MaximumSet": { + "$ref": "./examples/Deployments_Get_MaximumSet_Gen.json" + } } } }, @@ -933,6 +1014,14 @@ } } }, + "x-ms-examples": { + "Indexes_ListLatest_MaximumSet": { + "$ref": "./examples/Indexes_ListLatest_MaximumSet_Gen.json" + }, + "Indexes_ListLatest_MinimumSet": { + "$ref": "./examples/Indexes_ListLatest_MinimumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -1029,6 +1118,14 @@ } } }, + "x-ms-examples": { + "Indexes_ListVersions_MaximumSet": { + "$ref": "./examples/Indexes_ListVersions_MaximumSet_Gen.json" + }, + "Indexes_ListVersions_MinimumSet": { + "$ref": "./examples/Indexes_ListVersions_MinimumSet_Gen.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -1076,6 +1173,14 @@ } } } + }, + "x-ms-examples": { + "Indexes_GetVersion_MaximumSet": { + "$ref": "./examples/Indexes_GetVersion_MaximumSet_Gen.json" + }, + "Indexes_GetVersion_MinimumSet": { + "$ref": "./examples/Indexes_GetVersion_MinimumSet_Gen.json" + } } }, "patch": { @@ -1134,6 +1239,14 @@ } } } + }, + "x-ms-examples": { + "Indexes_CreateOrUpdateVersion_MaximumSet": { + "$ref": "./examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json" + }, + "Indexes_CreateOrUpdateVersion_MinimumSet": { + "$ref": "./examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json" + } } }, "delete": { @@ -1174,6 +1287,14 @@ } } } + }, + "x-ms-examples": { + "Indexes_DeleteVersion_MaximumSet": { + "$ref": "./examples/Indexes_DeleteVersion_MaximumSet_Gen.json" + }, + "Indexes_DeleteVersion_MinimumSet": { + "$ref": "./examples/Indexes_DeleteVersion_MinimumSet_Gen.json" + } } } } @@ -1259,7 +1380,7 @@ }, "Azure.Core.Foundations.InnerError": { "type": "object", - "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", + "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/microsoft/api-guidelines/blob/vNext/azure/Guidelines.md#handling-errors.", "properties": { "code": { "type": "string", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_GetWithCredentials_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_GetWithCredentials_MaximumSet_Gen.json new file mode 100644 index 000000000000..67895f9bea5d --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_GetWithCredentials_MaximumSet_Gen.json @@ -0,0 +1,25 @@ +{ + "title": "Connections_GetWithCredentials_MaximumSet", + "operationId": "Connections_GetWithCredentials", + "parameters": { + "api-version": "latest", + "name": "jqgcfdexf", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "name": "we", + "type": "AzureOpenAI", + "target": "bbzo", + "isDefault": true, + "credentials": { + "type": "BaseCredentials" + }, + "metadata": { + "key9765": "voknfqanbxnseqg" + } + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_Get_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..ddfbca57a7af --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_Get_MaximumSet_Gen.json @@ -0,0 +1,25 @@ +{ + "title": "Connections_Get_MaximumSet", + "operationId": "Connections_Get", + "parameters": { + "api-version": "latest", + "name": "gvwpqdivyfaiftzdfcjoj", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "name": "we", + "type": "AzureOpenAI", + "target": "bbzo", + "isDefault": true, + "credentials": { + "type": "BaseCredentials" + }, + "metadata": { + "key9765": "voknfqanbxnseqg" + } + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_List_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..c7b15ded33a0 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_List_MaximumSet_Gen.json @@ -0,0 +1,34 @@ +{ + "title": "Connections_List_MaximumSet", + "operationId": "Connections_List", + "parameters": { + "api-version": "latest", + "connectionType": "AzureOpenAI", + "defaultConnection": true, + "top": 6, + "skip": 12, + "maxpagesize": 11, + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "we", + "type": "AzureOpenAI", + "target": "bbzo", + "isDefault": true, + "credentials": { + "type": "BaseCredentials" + }, + "metadata": { + "key9765": "voknfqanbxnseqg" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..53d8e4389bc2 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -0,0 +1,41 @@ +{ + "title": "Datasets_CreateOrUpdateVersion_MaximumSet", + "operationId": "Datasets_CreateOrUpdateVersion", + "parameters": { + "api-version": "latest", + "name": "nsvugzcnsvqodrxiojanhtdymgglnx", + "version": "utbfmfka", + "body": { + "type": "DatasetVersionUpdate", + "stage": "ykhrtvapwvcodwckimsobgwdvukw", + "description": "grthjigklkewz", + "tags": { + "key868": "yjmiiufnnccqfiljtndr" + } + } + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "ovzqxbhqhq", + "id": "cfgncrzpcpqbpxefd", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + }, + "201": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "ovzqxbhqhq", + "id": "cfgncrzpcpqbpxefd", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..36b9a414c8fb --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -0,0 +1,30 @@ +{ + "title": "Datasets_CreateOrUpdateVersion_MinimumSet", + "operationId": "Datasets_CreateOrUpdateVersion", + "parameters": { + "api-version": "latest", + "name": "pluvp", + "version": "playwidjgezovivciosnkerrdwe", + "body": { + "type": "DatasetVersionUpdate" + } + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + }, + "201": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_DeleteVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_DeleteVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..d92c63fc6176 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_DeleteVersion_MaximumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Datasets_DeleteVersion_MaximumSet", + "operationId": "Datasets_DeleteVersion", + "parameters": { + "api-version": "latest", + "name": "dfmimccx", + "version": "mukc" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_DeleteVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_DeleteVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..e17560ccaff1 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_DeleteVersion_MinimumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Datasets_DeleteVersion_MinimumSet", + "operationId": "Datasets_DeleteVersion", + "parameters": { + "api-version": "latest", + "name": "nkaivxoayhkrxavagybliogwwgvbk", + "version": "pmavzwbusicqau" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetCredentials_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetCredentials_MaximumSet_Gen.json new file mode 100644 index 000000000000..36c785a9d296 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetCredentials_MaximumSet_Gen.json @@ -0,0 +1,24 @@ +{ + "title": "Datasets_GetCredentials_MaximumSet", + "operationId": "Datasets_GetCredentials", + "parameters": { + "api-version": "latest", + "name": "hpvjnkljsuospxwrypot", + "version": "rlf", + "body": {} + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "kbodccbnhdznekrtu", + "storageAccountArmId": "gcsdeid", + "credential": { + "sasUri": "mzmtfelripgmz", + "type": "SAS" + } + } + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetCredentials_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetCredentials_MinimumSet_Gen.json new file mode 100644 index 000000000000..9e55038a401e --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetCredentials_MinimumSet_Gen.json @@ -0,0 +1,24 @@ +{ + "title": "Datasets_GetCredentials_MinimumSet", + "operationId": "Datasets_GetCredentials", + "parameters": { + "api-version": "latest", + "name": "udrhdaxbjptksqqwztnfswzku", + "version": "ytogupzn", + "body": {} + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "kbodccbnhdznekrtu", + "storageAccountArmId": "gcsdeid", + "credential": { + "sasUri": "mzmtfelripgmz", + "type": "SAS" + } + } + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..09c41ef4580e --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetVersion_MaximumSet_Gen.json @@ -0,0 +1,22 @@ +{ + "title": "Datasets_GetVersion_MaximumSet", + "operationId": "Datasets_GetVersion", + "parameters": { + "api-version": "latest", + "name": "ppdba", + "version": "ttetev" + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "ovzqxbhqhq", + "id": "cfgncrzpcpqbpxefd", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..3930d62e815c --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetVersion_MinimumSet_Gen.json @@ -0,0 +1,19 @@ +{ + "title": "Datasets_GetVersion_MinimumSet", + "operationId": "Datasets_GetVersion", + "parameters": { + "api-version": "latest", + "name": "ivkedy", + "version": "vxufccznqvuctabcyagbczidvr" + }, + "responses": { + "200": { + "body": { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListLatest_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListLatest_MaximumSet_Gen.json new file mode 100644 index 000000000000..cbb228acbbc2 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListLatest_MaximumSet_Gen.json @@ -0,0 +1,29 @@ +{ + "title": "Datasets_ListLatest_MaximumSet", + "operationId": "Datasets_ListLatest", + "parameters": { + "api-version": "latest", + "top": 16, + "skip": "wbilbzmgugbikcwaguhtq", + "tags": "azsufezp", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "ovzqxbhqhq", + "id": "cfgncrzpcpqbpxefd", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + ], + "nextLink": "https://microsoft.com/al" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListLatest_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListLatest_MinimumSet_Gen.json new file mode 100644 index 000000000000..d47c63cf9ffe --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListLatest_MinimumSet_Gen.json @@ -0,0 +1,21 @@ +{ + "title": "Datasets_ListLatest_MinimumSet", + "operationId": "Datasets_ListLatest", + "parameters": { + "api-version": "latest" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + ] + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListVersions_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListVersions_MaximumSet_Gen.json new file mode 100644 index 000000000000..c3a191f41962 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListVersions_MaximumSet_Gen.json @@ -0,0 +1,30 @@ +{ + "title": "Datasets_ListVersions_MaximumSet", + "operationId": "Datasets_ListVersions", + "parameters": { + "api-version": "latest", + "name": "ojjzgfffyyyr", + "top": 4, + "skip": "bafjlmqcftwnjlofuwnxoc", + "tags": "taynswmfxqo", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "isReference": true, + "stage": "ovzqxbhqhq", + "id": "cfgncrzpcpqbpxefd", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + ], + "nextLink": "https://microsoft.com/al" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListVersions_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListVersions_MinimumSet_Gen.json new file mode 100644 index 000000000000..266f78fd2e6a --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListVersions_MinimumSet_Gen.json @@ -0,0 +1,22 @@ +{ + "title": "Datasets_ListVersions_MinimumSet", + "operationId": "Datasets_ListVersions", + "parameters": { + "api-version": "latest", + "name": "fauawvl" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", + "name": "zoskzytcqmndtyqwugy", + "version": "joegai" + } + ] + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..c3d3de6d3966 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json @@ -0,0 +1,31 @@ +{ + "title": "Datasets_StartPendingUploadVersion_MaximumSet", + "operationId": "Datasets_StartPendingUploadVersion", + "parameters": { + "api-version": "latest", + "name": "cncrcmiaksswirlujwcptxeaef", + "version": "jkqqzmj", + "body": { + "pendingUploadId": "gxuutkdhlygsmsbtszqzx", + "connectionName": "hsgskbhwucytwglwlm", + "pendingUploadType": "TemporaryBlobReference" + } + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "kbodccbnhdznekrtu", + "storageAccountArmId": "gcsdeid", + "credential": { + "sasUri": "mzmtfelripgmz", + "type": "SAS" + } + }, + "pendingUploadId": "qdxymiww", + "datasetVersion": "bofnujdjvnnhjtzzu", + "pendingUploadType": "TemporaryBlobReference" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..841f2c320d68 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Datasets_StartPendingUploadVersion_MinimumSet", + "operationId": "Datasets_StartPendingUploadVersion", + "parameters": { + "api-version": "latest", + "name": "atopkjwxsjtforndczju", + "version": "yftpnjxwjylhixypopcytxd", + "body": { + "pendingUploadType": "TemporaryBlobReference" + } + }, + "responses": { + "200": { + "body": { + "blobReferenceForConsumption": { + "blobUri": "kbodccbnhdznekrtu", + "storageAccountArmId": "gcsdeid", + "credential": { + "sasUri": "mzmtfelripgmz", + "type": "SAS" + } + }, + "pendingUploadId": "qdxymiww", + "pendingUploadType": "TemporaryBlobReference" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Deployments_Get_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Deployments_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..a4378ab8fcf1 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Deployments_Get_MaximumSet_Gen.json @@ -0,0 +1,17 @@ +{ + "title": "Deployments_Get_MaximumSet", + "operationId": "Deployments_Get", + "parameters": { + "api-version": "latest", + "name": "ft", + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "type": "Deployment", + "name": "yfnhkglimmtfavwsetvoopcuyewygg" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Deployments_List_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Deployments_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..302a20a54724 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Deployments_List_MaximumSet_Gen.json @@ -0,0 +1,26 @@ +{ + "title": "Deployments_List_MaximumSet", + "operationId": "Deployments_List", + "parameters": { + "api-version": "latest", + "modelPublisher": "tb", + "modelName": "xdlvjxymsmdnebesolv", + "top": 6, + "skip": 12, + "maxpagesize": 11, + "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Deployment", + "name": "yfnhkglimmtfavwsetvoopcuyewygg" + } + ], + "nextLink": "https://microsoft.com/aoecpoh" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..c8408389aa49 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -0,0 +1,37 @@ +{ + "title": "Indexes_CreateOrUpdateVersion_MaximumSet", + "operationId": "Indexes_CreateOrUpdateVersion", + "parameters": { + "api-version": "latest", + "name": "kptgsnpfjcunvvdgzfjdmnurq", + "version": "hxutytnzwioiijfinpdojrnrqhqb", + "body": { + "type": "IndexUpdate", + "stage": "ephc", + "description": "wtjqhnlwihffw", + "tags": { + "key1654": "aqtywrvy" + } + } + }, + "responses": { + "200": { + "body": { + "type": "Index", + "stage": "ekzfmrqim", + "id": "xtjevbrwrwuwkbujuwpq", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + }, + "201": { + "body": { + "type": "Index", + "stage": "ekzfmrqim", + "id": "xtjevbrwrwuwkbujuwpq", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..cbf4b284ded3 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Indexes_CreateOrUpdateVersion_MinimumSet", + "operationId": "Indexes_CreateOrUpdateVersion", + "parameters": { + "api-version": "latest", + "name": "dpfjghwaowffzhoyuwrnmws", + "version": "priaizsqiwxrwnhhyk", + "body": { + "type": "IndexUpdate" + } + }, + "responses": { + "200": { + "body": { + "type": "Index", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + }, + "201": { + "body": { + "type": "Index", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_DeleteVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_DeleteVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..2acc621223d6 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_DeleteVersion_MaximumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Indexes_DeleteVersion_MaximumSet", + "operationId": "Indexes_DeleteVersion", + "parameters": { + "api-version": "latest", + "name": "fb", + "version": "ajbuwvsxobvnynpcliqcylqdp" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_DeleteVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_DeleteVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..1347bd62ae4e --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_DeleteVersion_MinimumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Indexes_DeleteVersion_MinimumSet", + "operationId": "Indexes_DeleteVersion", + "parameters": { + "api-version": "latest", + "name": "zoxequ", + "version": "akulwzwrfeqxh" + }, + "responses": { + "204": {} + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_GetVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_GetVersion_MaximumSet_Gen.json new file mode 100644 index 000000000000..ac32666a5535 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_GetVersion_MaximumSet_Gen.json @@ -0,0 +1,20 @@ +{ + "title": "Indexes_GetVersion_MaximumSet", + "operationId": "Indexes_GetVersion", + "parameters": { + "api-version": "latest", + "name": "ascwgkgwpqxeinbp", + "version": "bqhzitucneeoxurvf" + }, + "responses": { + "200": { + "body": { + "type": "Index", + "stage": "ekzfmrqim", + "id": "xtjevbrwrwuwkbujuwpq", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_GetVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_GetVersion_MinimumSet_Gen.json new file mode 100644 index 000000000000..d3d8b70438fd --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_GetVersion_MinimumSet_Gen.json @@ -0,0 +1,18 @@ +{ + "title": "Indexes_GetVersion_MinimumSet", + "operationId": "Indexes_GetVersion", + "parameters": { + "api-version": "latest", + "name": "sflsamumttlwccuxveocgozlkmdme", + "version": "txg" + }, + "responses": { + "200": { + "body": { + "type": "Index", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListLatest_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListLatest_MaximumSet_Gen.json new file mode 100644 index 000000000000..57e128dd9bb8 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListLatest_MaximumSet_Gen.json @@ -0,0 +1,27 @@ +{ + "title": "Indexes_ListLatest_MaximumSet", + "operationId": "Indexes_ListLatest", + "parameters": { + "api-version": "latest", + "top": 16, + "skip": "cbeuhxuzaucwgqj", + "tags": "ecxlvszgcepwunik", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "stage": "ekzfmrqim", + "id": "xtjevbrwrwuwkbujuwpq", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + ], + "nextLink": "https://microsoft.com/av" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListLatest_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListLatest_MinimumSet_Gen.json new file mode 100644 index 000000000000..ef8435a62328 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListLatest_MinimumSet_Gen.json @@ -0,0 +1,20 @@ +{ + "title": "Indexes_ListLatest_MinimumSet", + "operationId": "Indexes_ListLatest", + "parameters": { + "api-version": "latest" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + ] + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListVersions_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListVersions_MaximumSet_Gen.json new file mode 100644 index 000000000000..6a20fa0ec6c6 --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListVersions_MaximumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Indexes_ListVersions_MaximumSet", + "operationId": "Indexes_ListVersions", + "parameters": { + "api-version": "latest", + "name": "ugobcytrjfdfu", + "top": 12, + "skip": "vspvqu", + "tags": "fwbwsyszezlzabrudeswnvoqoq", + "listViewType": "ActiveOnly" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "stage": "ekzfmrqim", + "id": "xtjevbrwrwuwkbujuwpq", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + ], + "nextLink": "https://microsoft.com/av" + } + } + } +} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListVersions_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListVersions_MinimumSet_Gen.json new file mode 100644 index 000000000000..1fd65159204a --- /dev/null +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListVersions_MinimumSet_Gen.json @@ -0,0 +1,21 @@ +{ + "title": "Indexes_ListVersions_MinimumSet", + "operationId": "Indexes_ListVersions", + "parameters": { + "api-version": "latest", + "name": "lenbliqxnfqi" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Index", + "name": "wwikvkcdcobt", + "version": "swnonkxmjl" + } + ] + } + } + } +} From c4cc5cfc6febed0def54854eda605a3523eb5a02 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Fri, 25 Apr 2025 15:00:55 -0400 Subject: [PATCH 120/143] fix spell check (#34253) Co-authored-by: Neehar Duvvuri --- specification/ai/cspell.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/specification/ai/cspell.yaml b/specification/ai/cspell.yaml index 287468989c1b..33cb982b79c7 100644 --- a/specification/ai/cspell.yaml +++ b/specification/ai/cspell.yaml @@ -48,6 +48,7 @@ words: - ansii - upia - aoai + - azaiprojects overrides: - filename: >- **/specification/ai/data-plane/DocumentIntelligence/**/DocumentIntelligence.json From 791e17a29896d46abe8ce4b943fb7a6dbffc3973 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Fri, 25 Apr 2025 13:29:40 -0700 Subject: [PATCH 121/143] Fix Java language failure --- specification/ai/Azure.AI.Projects/tspconfig.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/specification/ai/Azure.AI.Projects/tspconfig.yaml b/specification/ai/Azure.AI.Projects/tspconfig.yaml index 47940823b97a..f83b1a79b6a9 100644 --- a/specification/ai/Azure.AI.Projects/tspconfig.yaml +++ b/specification/ai/Azure.AI.Projects/tspconfig.yaml @@ -41,7 +41,6 @@ options: package-dir: "azure-ai-projects" namespace: com.azure.ai.projects partial-update: true - customization-class: customization/src/main/java/ProjectsCustomizations.java enable-sync-stack: true generate-tests: false flavor: azure From 12693f911c4bff0acbe321b83a6de380d6a8787c Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Mon, 28 Apr 2025 13:50:20 -0400 Subject: [PATCH 122/143] Rename latest api version to v1 (#34288) Co-authored-by: Neehar Duvvuri --- .../Azure.AI.Projects/evaluations/models.tsp | 18 +++++++++--------- .../Azure.AI.Projects/evaluations/routes.tsp | 2 +- ...ions_GetWithCredentials_MaximumSet_Gen.json | 2 +- .../Connections_Get_MaximumSet_Gen.json | 2 +- .../v1}/Connections_List_MaximumSet_Gen.json | 2 +- ...s_CreateOrUpdateVersion_MaximumSet_Gen.json | 2 +- ...s_CreateOrUpdateVersion_MinimumSet_Gen.json | 2 +- .../Datasets_DeleteVersion_MaximumSet_Gen.json | 2 +- .../Datasets_DeleteVersion_MinimumSet_Gen.json | 2 +- ...Datasets_GetCredentials_MaximumSet_Gen.json | 2 +- ...Datasets_GetCredentials_MinimumSet_Gen.json | 2 +- .../Datasets_GetVersion_MaximumSet_Gen.json | 2 +- .../Datasets_GetVersion_MinimumSet_Gen.json | 2 +- .../Datasets_ListLatest_MaximumSet_Gen.json | 2 +- .../Datasets_ListLatest_MinimumSet_Gen.json | 2 +- .../Datasets_ListVersions_MaximumSet_Gen.json | 2 +- .../Datasets_ListVersions_MinimumSet_Gen.json | 2 +- ...artPendingUploadVersion_MaximumSet_Gen.json | 2 +- ...artPendingUploadVersion_MinimumSet_Gen.json | 2 +- .../Deployments_Get_MaximumSet_Gen.json | 2 +- .../Deployments_List_MaximumSet_Gen.json | 2 +- ...s_CreateOrUpdateVersion_MaximumSet_Gen.json | 2 +- ...s_CreateOrUpdateVersion_MinimumSet_Gen.json | 2 +- .../Indexes_DeleteVersion_MaximumSet_Gen.json | 2 +- .../Indexes_DeleteVersion_MinimumSet_Gen.json | 2 +- .../v1}/Indexes_GetVersion_MaximumSet_Gen.json | 2 +- .../Indexes_GetVersion_MinimumSet_Gen.json | 2 +- .../v1}/Indexes_ListLatest_MaximumSet_Gen.json | 2 +- .../Indexes_ListLatest_MinimumSet_Gen.json | 2 +- .../Indexes_ListVersions_MaximumSet_Gen.json | 2 +- .../Indexes_ListVersions_MinimumSet_Gen.json | 2 +- specification/ai/Azure.AI.Projects/main.tsp | 4 ++-- .../ai/Azure.AI.Projects/red-teams/models.tsp | 10 +++++----- .../ai/Azure.AI.Projects/red-teams/routes.tsp | 2 +- .../ai/data-plane/Azure.AI.Projects/readme.md | 6 +++--- .../{latest => v1}/azure-ai-projects-1dp.json | 2 +- ...ions_GetWithCredentials_MaximumSet_Gen.json | 2 +- .../Connections_Get_MaximumSet_Gen.json | 2 +- .../Connections_List_MaximumSet_Gen.json | 2 +- ...s_CreateOrUpdateVersion_MaximumSet_Gen.json | 2 +- ...s_CreateOrUpdateVersion_MinimumSet_Gen.json | 2 +- .../Datasets_DeleteVersion_MaximumSet_Gen.json | 2 +- .../Datasets_DeleteVersion_MinimumSet_Gen.json | 2 +- ...Datasets_GetCredentials_MaximumSet_Gen.json | 2 +- ...Datasets_GetCredentials_MinimumSet_Gen.json | 2 +- .../Datasets_GetVersion_MaximumSet_Gen.json | 2 +- .../Datasets_GetVersion_MinimumSet_Gen.json | 2 +- .../Datasets_ListLatest_MaximumSet_Gen.json | 2 +- .../Datasets_ListLatest_MinimumSet_Gen.json | 2 +- .../Datasets_ListVersions_MaximumSet_Gen.json | 2 +- .../Datasets_ListVersions_MinimumSet_Gen.json | 2 +- ...artPendingUploadVersion_MaximumSet_Gen.json | 2 +- ...artPendingUploadVersion_MinimumSet_Gen.json | 2 +- .../Deployments_Get_MaximumSet_Gen.json | 2 +- .../Deployments_List_MaximumSet_Gen.json | 2 +- ...s_CreateOrUpdateVersion_MaximumSet_Gen.json | 2 +- ...s_CreateOrUpdateVersion_MinimumSet_Gen.json | 2 +- .../Indexes_DeleteVersion_MaximumSet_Gen.json | 2 +- .../Indexes_DeleteVersion_MinimumSet_Gen.json | 2 +- .../Indexes_GetVersion_MaximumSet_Gen.json | 2 +- .../Indexes_GetVersion_MinimumSet_Gen.json | 2 +- .../Indexes_ListLatest_MaximumSet_Gen.json | 2 +- .../Indexes_ListLatest_MinimumSet_Gen.json | 2 +- .../Indexes_ListVersions_MaximumSet_Gen.json | 2 +- .../Indexes_ListVersions_MinimumSet_Gen.json | 2 +- 65 files changed, 80 insertions(+), 80 deletions(-) rename specification/ai/Azure.AI.Projects/examples/{latest => v1}/Connections_GetWithCredentials_MaximumSet_Gen.json (94%) rename specification/ai/Azure.AI.Projects/examples/{latest => v1}/Connections_Get_MaximumSet_Gen.json (94%) rename specification/ai/{data-plane/Azure.AI.Projects/stable/latest/examples => Azure.AI.Projects/examples/v1}/Connections_List_MaximumSet_Gen.json (96%) rename specification/ai/{data-plane/Azure.AI.Projects/stable/latest/examples => Azure.AI.Projects/examples/v1}/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json (97%) rename specification/ai/{data-plane/Azure.AI.Projects/stable/latest/examples => Azure.AI.Projects/examples/v1}/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json (96%) rename specification/ai/Azure.AI.Projects/examples/{latest => v1}/Datasets_DeleteVersion_MaximumSet_Gen.json (87%) rename specification/ai/Azure.AI.Projects/examples/{latest => v1}/Datasets_DeleteVersion_MinimumSet_Gen.json (88%) rename specification/ai/{data-plane/Azure.AI.Projects/stable/latest/examples => Azure.AI.Projects/examples/v1}/Datasets_GetCredentials_MaximumSet_Gen.json (94%) rename specification/ai/{data-plane/Azure.AI.Projects/stable/latest/examples => Azure.AI.Projects/examples/v1}/Datasets_GetCredentials_MinimumSet_Gen.json (94%) rename specification/ai/Azure.AI.Projects/examples/{latest => v1}/Datasets_GetVersion_MaximumSet_Gen.json (94%) rename specification/ai/Azure.AI.Projects/examples/{latest => v1}/Datasets_GetVersion_MinimumSet_Gen.json (93%) rename specification/ai/Azure.AI.Projects/examples/{latest => v1}/Datasets_ListLatest_MaximumSet_Gen.json (96%) rename specification/ai/Azure.AI.Projects/examples/{latest => v1}/Datasets_ListLatest_MinimumSet_Gen.json (93%) rename specification/ai/{data-plane/Azure.AI.Projects/stable/latest/examples => Azure.AI.Projects/examples/v1}/Datasets_ListVersions_MaximumSet_Gen.json (96%) rename specification/ai/{data-plane/Azure.AI.Projects/stable/latest/examples => Azure.AI.Projects/examples/v1}/Datasets_ListVersions_MinimumSet_Gen.json (94%) rename specification/ai/{data-plane/Azure.AI.Projects/stable/latest/examples => Azure.AI.Projects/examples/v1}/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json (96%) rename specification/ai/{data-plane/Azure.AI.Projects/stable/latest/examples => Azure.AI.Projects/examples/v1}/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json (95%) rename specification/ai/Azure.AI.Projects/examples/{latest => v1}/Deployments_Get_MaximumSet_Gen.json (92%) rename specification/ai/Azure.AI.Projects/examples/{latest => v1}/Deployments_List_MaximumSet_Gen.json (95%) rename specification/ai/{data-plane/Azure.AI.Projects/stable/latest/examples => Azure.AI.Projects/examples/v1}/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json (96%) rename specification/ai/Azure.AI.Projects/examples/{latest => v1}/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json (94%) rename specification/ai/{data-plane/Azure.AI.Projects/stable/latest/examples => Azure.AI.Projects/examples/v1}/Indexes_DeleteVersion_MaximumSet_Gen.json (87%) rename specification/ai/{data-plane/Azure.AI.Projects/stable/latest/examples => Azure.AI.Projects/examples/v1}/Indexes_DeleteVersion_MinimumSet_Gen.json (87%) rename specification/ai/{data-plane/Azure.AI.Projects/stable/latest/examples => Azure.AI.Projects/examples/v1}/Indexes_GetVersion_MaximumSet_Gen.json (93%) rename specification/ai/Azure.AI.Projects/examples/{latest => v1}/Indexes_GetVersion_MinimumSet_Gen.json (91%) rename specification/ai/{data-plane/Azure.AI.Projects/stable/latest/examples => Azure.AI.Projects/examples/v1}/Indexes_ListLatest_MaximumSet_Gen.json (95%) rename specification/ai/Azure.AI.Projects/examples/{latest => v1}/Indexes_ListLatest_MinimumSet_Gen.json (92%) rename specification/ai/{data-plane/Azure.AI.Projects/stable/latest/examples => Azure.AI.Projects/examples/v1}/Indexes_ListVersions_MaximumSet_Gen.json (95%) rename specification/ai/Azure.AI.Projects/examples/{latest => v1}/Indexes_ListVersions_MinimumSet_Gen.json (92%) rename specification/ai/data-plane/Azure.AI.Projects/stable/{latest => v1}/azure-ai-projects-1dp.json (99%) rename specification/ai/data-plane/Azure.AI.Projects/stable/{latest => v1}/examples/Connections_GetWithCredentials_MaximumSet_Gen.json (94%) rename specification/ai/data-plane/Azure.AI.Projects/stable/{latest => v1}/examples/Connections_Get_MaximumSet_Gen.json (94%) rename specification/ai/{Azure.AI.Projects/examples/latest => data-plane/Azure.AI.Projects/stable/v1/examples}/Connections_List_MaximumSet_Gen.json (96%) rename specification/ai/{Azure.AI.Projects/examples/latest => data-plane/Azure.AI.Projects/stable/v1/examples}/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json (97%) rename specification/ai/{Azure.AI.Projects/examples/latest => data-plane/Azure.AI.Projects/stable/v1/examples}/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json (96%) rename specification/ai/data-plane/Azure.AI.Projects/stable/{latest => v1}/examples/Datasets_DeleteVersion_MaximumSet_Gen.json (87%) rename specification/ai/data-plane/Azure.AI.Projects/stable/{latest => v1}/examples/Datasets_DeleteVersion_MinimumSet_Gen.json (88%) rename specification/ai/{Azure.AI.Projects/examples/latest => data-plane/Azure.AI.Projects/stable/v1/examples}/Datasets_GetCredentials_MaximumSet_Gen.json (94%) rename specification/ai/{Azure.AI.Projects/examples/latest => data-plane/Azure.AI.Projects/stable/v1/examples}/Datasets_GetCredentials_MinimumSet_Gen.json (94%) rename specification/ai/data-plane/Azure.AI.Projects/stable/{latest => v1}/examples/Datasets_GetVersion_MaximumSet_Gen.json (94%) rename specification/ai/data-plane/Azure.AI.Projects/stable/{latest => v1}/examples/Datasets_GetVersion_MinimumSet_Gen.json (93%) rename specification/ai/data-plane/Azure.AI.Projects/stable/{latest => v1}/examples/Datasets_ListLatest_MaximumSet_Gen.json (96%) rename specification/ai/data-plane/Azure.AI.Projects/stable/{latest => v1}/examples/Datasets_ListLatest_MinimumSet_Gen.json (93%) rename specification/ai/{Azure.AI.Projects/examples/latest => data-plane/Azure.AI.Projects/stable/v1/examples}/Datasets_ListVersions_MaximumSet_Gen.json (96%) rename specification/ai/{Azure.AI.Projects/examples/latest => data-plane/Azure.AI.Projects/stable/v1/examples}/Datasets_ListVersions_MinimumSet_Gen.json (94%) rename specification/ai/{Azure.AI.Projects/examples/latest => data-plane/Azure.AI.Projects/stable/v1/examples}/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json (96%) rename specification/ai/{Azure.AI.Projects/examples/latest => data-plane/Azure.AI.Projects/stable/v1/examples}/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json (95%) rename specification/ai/data-plane/Azure.AI.Projects/stable/{latest => v1}/examples/Deployments_Get_MaximumSet_Gen.json (92%) rename specification/ai/data-plane/Azure.AI.Projects/stable/{latest => v1}/examples/Deployments_List_MaximumSet_Gen.json (95%) rename specification/ai/{Azure.AI.Projects/examples/latest => data-plane/Azure.AI.Projects/stable/v1/examples}/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json (96%) rename specification/ai/data-plane/Azure.AI.Projects/stable/{latest => v1}/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json (94%) rename specification/ai/{Azure.AI.Projects/examples/latest => data-plane/Azure.AI.Projects/stable/v1/examples}/Indexes_DeleteVersion_MaximumSet_Gen.json (87%) rename specification/ai/{Azure.AI.Projects/examples/latest => data-plane/Azure.AI.Projects/stable/v1/examples}/Indexes_DeleteVersion_MinimumSet_Gen.json (87%) rename specification/ai/{Azure.AI.Projects/examples/latest => data-plane/Azure.AI.Projects/stable/v1/examples}/Indexes_GetVersion_MaximumSet_Gen.json (93%) rename specification/ai/data-plane/Azure.AI.Projects/stable/{latest => v1}/examples/Indexes_GetVersion_MinimumSet_Gen.json (91%) rename specification/ai/{Azure.AI.Projects/examples/latest => data-plane/Azure.AI.Projects/stable/v1/examples}/Indexes_ListLatest_MaximumSet_Gen.json (95%) rename specification/ai/data-plane/Azure.AI.Projects/stable/{latest => v1}/examples/Indexes_ListLatest_MinimumSet_Gen.json (92%) rename specification/ai/{Azure.AI.Projects/examples/latest => data-plane/Azure.AI.Projects/stable/v1/examples}/Indexes_ListVersions_MaximumSet_Gen.json (95%) rename specification/ai/data-plane/Azure.AI.Projects/stable/{latest => v1}/examples/Indexes_ListVersions_MinimumSet_Gen.json (92%) diff --git a/specification/ai/Azure.AI.Projects/evaluations/models.tsp b/specification/ai/Azure.AI.Projects/evaluations/models.tsp index f72bf164ab54..2a325d8de4bd 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/models.tsp @@ -14,7 +14,7 @@ namespace Azure.AI.Projects; @doc("Evaluator Configuration") @added(Versions.v2025_05_15_preview) -@removed(Versions.v_latest) +@removed(Versions.v1) model EvaluatorConfiguration { @doc("Identifier of the evaluator.") id: string; @@ -30,7 +30,7 @@ model EvaluatorConfiguration { @doc("Abstract data class.") @discriminator("type") @added(Versions.v2025_05_15_preview) -@removed(Versions.v_latest) +@removed(Versions.v1) model InputData { @doc("Type of the data") type: string; @@ -38,7 +38,7 @@ model InputData { @doc("Dataset as source for evaluation.") @added(Versions.v2025_05_15_preview) -@removed(Versions.v_latest) +@removed(Versions.v1) model InputDataset extends InputData { type: "dataset"; @@ -49,7 +49,7 @@ model InputDataset extends InputData { @doc("Evaluation Definition") @resource("runs") @added(Versions.v2025_05_15_preview) -@removed(Versions.v_latest) +@removed(Versions.v1) model Evaluation { @doc("Identifier of the evaluation.") @key("name") @@ -81,7 +81,7 @@ model Evaluation { @doc("Definition for sampling strategy.") @added(Versions.v2025_05_15_preview) -@removed(Versions.v_latest) +@removed(Versions.v1) model AgentEvaluationSamplingConfiguration { @doc("Name of the sampling strategy.") name: string; @@ -95,7 +95,7 @@ model AgentEvaluationSamplingConfiguration { @doc("The redaction configuration will allow the user to control what is redacted.") @added(Versions.v2025_05_15_preview) -@removed(Versions.v_latest) +@removed(Versions.v1) model AgentEvaluationRedactionConfiguration { @doc("Redact score properties. If not specified, the default is to redact in production.") redactScoreProperties?: boolean; @@ -103,7 +103,7 @@ model AgentEvaluationRedactionConfiguration { @doc("Evaluation request for agent run.") @added(Versions.v2025_05_15_preview) -@removed(Versions.v_latest) +@removed(Versions.v1) model AgentEvaluationRequest { @doc("Identifier of the agent run.") runId: string; @@ -126,7 +126,7 @@ model AgentEvaluationRequest { @doc("Result for the agent evaluation evaluator run.") @added(Versions.v2025_05_15_preview) -@removed(Versions.v_latest) +@removed(Versions.v1) model AgentEvaluationResult { @doc("Evaluator's name. This is the name of the evaluator that was used to evaluate the agent's completion.") evaluator: string; @@ -158,7 +158,7 @@ model AgentEvaluationResult { @doc("Evaluation response for agent evaluation run.") @added(Versions.v2025_05_15_preview) -@removed(Versions.v_latest) +@removed(Versions.v1) model AgentEvaluation { @doc("Identifier of the agent evaluation run.") id: string; diff --git a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp index bafe54905cb7..a183d73dcab2 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp @@ -19,7 +19,7 @@ alias EvaluationsOperations = Azure.Core.ResourceOperations; @route("evaluations") @added(Versions.v2025_05_15_preview) -@removed(Versions.v_latest) +@removed(Versions.v1) interface Evaluations { @doc("Get an evaluation run by name.") get is EvaluationsOperations.ResourceRead; diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Connections_GetWithCredentials_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Connections_GetWithCredentials_MaximumSet_Gen.json similarity index 94% rename from specification/ai/Azure.AI.Projects/examples/latest/Connections_GetWithCredentials_MaximumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Connections_GetWithCredentials_MaximumSet_Gen.json index 67895f9bea5d..482313fd7f9a 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Connections_GetWithCredentials_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Connections_GetWithCredentials_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Connections_GetWithCredentials_MaximumSet", "operationId": "Connections_GetWithCredentials", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "jqgcfdexf", "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" }, diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Connections_Get_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Connections_Get_MaximumSet_Gen.json similarity index 94% rename from specification/ai/Azure.AI.Projects/examples/latest/Connections_Get_MaximumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Connections_Get_MaximumSet_Gen.json index ddfbca57a7af..7c728024c7e0 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Connections_Get_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Connections_Get_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Connections_Get_MaximumSet", "operationId": "Connections_Get", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "gvwpqdivyfaiftzdfcjoj", "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" }, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_List_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Connections_List_MaximumSet_Gen.json similarity index 96% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_List_MaximumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Connections_List_MaximumSet_Gen.json index c7b15ded33a0..4ddfc1005468 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_List_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Connections_List_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Connections_List_MaximumSet", "operationId": "Connections_List", "parameters": { - "api-version": "latest", + "api-version": "v1", "connectionType": "AzureOpenAI", "defaultConnection": true, "top": 6, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json similarity index 97% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json index 53d8e4389bc2..fdc318b8ad4c 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_CreateOrUpdateVersion_MaximumSet", "operationId": "Datasets_CreateOrUpdateVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "nsvugzcnsvqodrxiojanhtdymgglnx", "version": "utbfmfka", "body": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json similarity index 96% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json index 36b9a414c8fb..717e125e8fc1 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_CreateOrUpdateVersion_MinimumSet", "operationId": "Datasets_CreateOrUpdateVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "pluvp", "version": "playwidjgezovivciosnkerrdwe", "body": { diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_DeleteVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_DeleteVersion_MaximumSet_Gen.json similarity index 87% rename from specification/ai/Azure.AI.Projects/examples/latest/Datasets_DeleteVersion_MaximumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Datasets_DeleteVersion_MaximumSet_Gen.json index d92c63fc6176..6d32c7b8bd30 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_DeleteVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_DeleteVersion_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_DeleteVersion_MaximumSet", "operationId": "Datasets_DeleteVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "dfmimccx", "version": "mukc" }, diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_DeleteVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_DeleteVersion_MinimumSet_Gen.json similarity index 88% rename from specification/ai/Azure.AI.Projects/examples/latest/Datasets_DeleteVersion_MinimumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Datasets_DeleteVersion_MinimumSet_Gen.json index e17560ccaff1..7c629dd22c35 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_DeleteVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_DeleteVersion_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_DeleteVersion_MinimumSet", "operationId": "Datasets_DeleteVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "nkaivxoayhkrxavagybliogwwgvbk", "version": "pmavzwbusicqau" }, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetCredentials_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetCredentials_MaximumSet_Gen.json similarity index 94% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetCredentials_MaximumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetCredentials_MaximumSet_Gen.json index 36c785a9d296..a65b58a588c3 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetCredentials_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetCredentials_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_GetCredentials_MaximumSet", "operationId": "Datasets_GetCredentials", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "hpvjnkljsuospxwrypot", "version": "rlf", "body": {} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetCredentials_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetCredentials_MinimumSet_Gen.json similarity index 94% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetCredentials_MinimumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetCredentials_MinimumSet_Gen.json index 9e55038a401e..04278e63d1f0 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetCredentials_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetCredentials_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_GetCredentials_MinimumSet", "operationId": "Datasets_GetCredentials", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "udrhdaxbjptksqqwztnfswzku", "version": "ytogupzn", "body": {} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetVersion_MaximumSet_Gen.json similarity index 94% rename from specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetVersion_MaximumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetVersion_MaximumSet_Gen.json index 09c41ef4580e..01e572590dc5 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetVersion_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_GetVersion_MaximumSet", "operationId": "Datasets_GetVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "ppdba", "version": "ttetev" }, diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetVersion_MinimumSet_Gen.json similarity index 93% rename from specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetVersion_MinimumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetVersion_MinimumSet_Gen.json index 3930d62e815c..103a5ec40cf3 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetVersion_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_GetVersion_MinimumSet", "operationId": "Datasets_GetVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "ivkedy", "version": "vxufccznqvuctabcyagbczidvr" }, diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListLatest_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListLatest_MaximumSet_Gen.json similarity index 96% rename from specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListLatest_MaximumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListLatest_MaximumSet_Gen.json index cbb228acbbc2..55f7743c6902 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListLatest_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListLatest_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_ListLatest_MaximumSet", "operationId": "Datasets_ListLatest", "parameters": { - "api-version": "latest", + "api-version": "v1", "top": 16, "skip": "wbilbzmgugbikcwaguhtq", "tags": "azsufezp", diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListLatest_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListLatest_MinimumSet_Gen.json similarity index 93% rename from specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListLatest_MinimumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListLatest_MinimumSet_Gen.json index d47c63cf9ffe..948ca26a188a 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListLatest_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListLatest_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_ListLatest_MinimumSet", "operationId": "Datasets_ListLatest", "parameters": { - "api-version": "latest" + "api-version": "v1" }, "responses": { "200": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListVersions_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListVersions_MaximumSet_Gen.json similarity index 96% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListVersions_MaximumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListVersions_MaximumSet_Gen.json index c3a191f41962..5f6bdfb1ab2f 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListVersions_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListVersions_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_ListVersions_MaximumSet", "operationId": "Datasets_ListVersions", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "ojjzgfffyyyr", "top": 4, "skip": "bafjlmqcftwnjlofuwnxoc", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListVersions_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListVersions_MinimumSet_Gen.json similarity index 94% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListVersions_MinimumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListVersions_MinimumSet_Gen.json index 266f78fd2e6a..664c90c1d672 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListVersions_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListVersions_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_ListVersions_MinimumSet", "operationId": "Datasets_ListVersions", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "fauawvl" }, "responses": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json similarity index 96% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json index c3d3de6d3966..b2361fc032f3 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_StartPendingUploadVersion_MaximumSet", "operationId": "Datasets_StartPendingUploadVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "cncrcmiaksswirlujwcptxeaef", "version": "jkqqzmj", "body": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json similarity index 95% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json index 841f2c320d68..bcd3ee591099 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_StartPendingUploadVersion_MinimumSet", "operationId": "Datasets_StartPendingUploadVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "atopkjwxsjtforndczju", "version": "yftpnjxwjylhixypopcytxd", "body": { diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Deployments_Get_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Deployments_Get_MaximumSet_Gen.json similarity index 92% rename from specification/ai/Azure.AI.Projects/examples/latest/Deployments_Get_MaximumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Deployments_Get_MaximumSet_Gen.json index a4378ab8fcf1..8023d41a5e89 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Deployments_Get_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Deployments_Get_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Deployments_Get_MaximumSet", "operationId": "Deployments_Get", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "ft", "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" }, diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Deployments_List_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Deployments_List_MaximumSet_Gen.json similarity index 95% rename from specification/ai/Azure.AI.Projects/examples/latest/Deployments_List_MaximumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Deployments_List_MaximumSet_Gen.json index 302a20a54724..5e6110856a4b 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Deployments_List_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Deployments_List_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Deployments_List_MaximumSet", "operationId": "Deployments_List", "parameters": { - "api-version": "latest", + "api-version": "v1", "modelPublisher": "tb", "modelName": "xdlvjxymsmdnebesolv", "top": 6, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json similarity index 96% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json index c8408389aa49..ff3a22cb16ab 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_CreateOrUpdateVersion_MaximumSet", "operationId": "Indexes_CreateOrUpdateVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "kptgsnpfjcunvvdgzfjdmnurq", "version": "hxutytnzwioiijfinpdojrnrqhqb", "body": { diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json similarity index 94% rename from specification/ai/Azure.AI.Projects/examples/latest/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json index cbf4b284ded3..003e2d0b162b 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_CreateOrUpdateVersion_MinimumSet", "operationId": "Indexes_CreateOrUpdateVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "dpfjghwaowffzhoyuwrnmws", "version": "priaizsqiwxrwnhhyk", "body": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_DeleteVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_DeleteVersion_MaximumSet_Gen.json similarity index 87% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_DeleteVersion_MaximumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Indexes_DeleteVersion_MaximumSet_Gen.json index 2acc621223d6..abca9b51ee02 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_DeleteVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_DeleteVersion_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_DeleteVersion_MaximumSet", "operationId": "Indexes_DeleteVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "fb", "version": "ajbuwvsxobvnynpcliqcylqdp" }, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_DeleteVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_DeleteVersion_MinimumSet_Gen.json similarity index 87% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_DeleteVersion_MinimumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Indexes_DeleteVersion_MinimumSet_Gen.json index 1347bd62ae4e..b8742995962a 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_DeleteVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_DeleteVersion_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_DeleteVersion_MinimumSet", "operationId": "Indexes_DeleteVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "zoxequ", "version": "akulwzwrfeqxh" }, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_GetVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_GetVersion_MaximumSet_Gen.json similarity index 93% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_GetVersion_MaximumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Indexes_GetVersion_MaximumSet_Gen.json index ac32666a5535..f45394f89cf7 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_GetVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_GetVersion_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_GetVersion_MaximumSet", "operationId": "Indexes_GetVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "ascwgkgwpqxeinbp", "version": "bqhzitucneeoxurvf" }, diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_GetVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_GetVersion_MinimumSet_Gen.json similarity index 91% rename from specification/ai/Azure.AI.Projects/examples/latest/Indexes_GetVersion_MinimumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Indexes_GetVersion_MinimumSet_Gen.json index d3d8b70438fd..f3918ab409a3 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_GetVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_GetVersion_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_GetVersion_MinimumSet", "operationId": "Indexes_GetVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "sflsamumttlwccuxveocgozlkmdme", "version": "txg" }, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListLatest_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListLatest_MaximumSet_Gen.json similarity index 95% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListLatest_MaximumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListLatest_MaximumSet_Gen.json index 57e128dd9bb8..f46b82f038a6 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListLatest_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListLatest_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_ListLatest_MaximumSet", "operationId": "Indexes_ListLatest", "parameters": { - "api-version": "latest", + "api-version": "v1", "top": 16, "skip": "cbeuhxuzaucwgqj", "tags": "ecxlvszgcepwunik", diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListLatest_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListLatest_MinimumSet_Gen.json similarity index 92% rename from specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListLatest_MinimumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListLatest_MinimumSet_Gen.json index ef8435a62328..9ee9e1422b9c 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListLatest_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListLatest_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_ListLatest_MinimumSet", "operationId": "Indexes_ListLatest", "parameters": { - "api-version": "latest" + "api-version": "v1" }, "responses": { "200": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListVersions_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListVersions_MaximumSet_Gen.json similarity index 95% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListVersions_MaximumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListVersions_MaximumSet_Gen.json index 6a20fa0ec6c6..3efa91a588c9 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListVersions_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListVersions_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_ListVersions_MaximumSet", "operationId": "Indexes_ListVersions", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "ugobcytrjfdfu", "top": 12, "skip": "vspvqu", diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListVersions_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListVersions_MinimumSet_Gen.json similarity index 92% rename from specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListVersions_MinimumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListVersions_MinimumSet_Gen.json index 1fd65159204a..ba599e422489 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListVersions_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListVersions_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_ListVersions_MinimumSet", "operationId": "Indexes_ListVersions", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "lenbliqxnfqi" }, "responses": { diff --git a/specification/ai/Azure.AI.Projects/main.tsp b/specification/ai/Azure.AI.Projects/main.tsp index f73cca1b3c5d..b9c609375026 100644 --- a/specification/ai/Azure.AI.Projects/main.tsp +++ b/specification/ai/Azure.AI.Projects/main.tsp @@ -54,8 +54,8 @@ namespace Azure.AI.Projects { @useDependency(Azure.Core.Versions.v1_0_Preview_2) v2025_05_15_preview: "2025-05-15-preview", - @doc("Azure AI API version latest.") + @doc("Azure AI API version v1.") @useDependency(Azure.Core.Versions.v1_0_Preview_2) - v_latest: "latest", + v1: "v1", } } diff --git a/specification/ai/Azure.AI.Projects/red-teams/models.tsp b/specification/ai/Azure.AI.Projects/red-teams/models.tsp index 23fd2ee682b6..20081058185c 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/models.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/models.tsp @@ -17,7 +17,7 @@ namespace Azure.AI.Projects; @doc("Strategies for attacks.") @added(Versions.v2025_05_15_preview) -@removed(Versions.v_latest) +@removed(Versions.v1) union AttackStrategy { string, @@ -96,7 +96,7 @@ union AttackStrategy { @doc("Risk category for the attack objective.") @added(Versions.v2025_05_15_preview) -@removed(Versions.v_latest) +@removed(Versions.v1) union RiskCategory { string, @@ -115,7 +115,7 @@ union RiskCategory { @doc("Azure OpenAI model configuration. The API version would be selected by the service for querying the model.") @added(Versions.v2025_05_15_preview) -@removed(Versions.v_latest) +@removed(Versions.v1) model AzureOpenAIModelConfiguration extends TargetConfig { @visibility(Lifecycle.Read) type: "AzureOpenAIModel"; @@ -126,7 +126,7 @@ model AzureOpenAIModelConfiguration extends TargetConfig { @doc("Abstract class for target configuration.") @added(Versions.v2025_05_15_preview) -@removed(Versions.v_latest) +@removed(Versions.v1) @discriminator("type") model TargetConfig { @doc("Type of the model configuration.") @@ -136,7 +136,7 @@ model TargetConfig { @doc("Red team details.") @resource("runs") @added(Versions.v2025_05_15_preview) -@removed(Versions.v_latest) +@removed(Versions.v1) model RedTeam { @doc("Identifier of the red team.") @key("name") diff --git a/specification/ai/Azure.AI.Projects/red-teams/routes.tsp b/specification/ai/Azure.AI.Projects/red-teams/routes.tsp index 3e2c7258c97c..bd06de36df4e 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/routes.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/routes.tsp @@ -21,7 +21,7 @@ alias RedTeamOperations = Azure.Core.ResourceOperations; @route("redTeams") @added(Versions.v2025_05_15_preview) -@removed(Versions.v_latest) +@removed(Versions.v1) interface RedTeams { @doc("Get a redteam by name.") get is RedTeamOperations.ResourceRead; diff --git a/specification/ai/data-plane/Azure.AI.Projects/readme.md b/specification/ai/data-plane/Azure.AI.Projects/readme.md index b63fe62467b4..b11e4bcd9332 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/readme.md +++ b/specification/ai/data-plane/Azure.AI.Projects/readme.md @@ -15,11 +15,11 @@ openapi-type: data-plane # Releases -### Release latest -These settings apply only when `--tag=latest` is specified on the command line. +### Release v1 +These settings apply only when `--tag=v1` is specified on the command line. ``` yaml $(tag) == 'latest' input-file: - - stable/latest/azure-ai-projects-1dp.json + - stable/v1/azure-ai-projects-1dp.json ``` ### Release v2025-05-01 diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json similarity index 99% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json index d862e14ebd47..9ce7570bddfa 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json @@ -2,7 +2,7 @@ "swagger": "2.0", "info": { "title": "Azure AI", - "version": "latest", + "version": "v1", "x-typespec-generated": [ { "emitter": "@azure-tools/typespec-autorest" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_GetWithCredentials_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_GetWithCredentials_MaximumSet_Gen.json similarity index 94% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_GetWithCredentials_MaximumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_GetWithCredentials_MaximumSet_Gen.json index 67895f9bea5d..482313fd7f9a 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_GetWithCredentials_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_GetWithCredentials_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Connections_GetWithCredentials_MaximumSet", "operationId": "Connections_GetWithCredentials", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "jqgcfdexf", "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" }, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_Get_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_Get_MaximumSet_Gen.json similarity index 94% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_Get_MaximumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_Get_MaximumSet_Gen.json index ddfbca57a7af..7c728024c7e0 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Connections_Get_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_Get_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Connections_Get_MaximumSet", "operationId": "Connections_Get", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "gvwpqdivyfaiftzdfcjoj", "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" }, diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Connections_List_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_List_MaximumSet_Gen.json similarity index 96% rename from specification/ai/Azure.AI.Projects/examples/latest/Connections_List_MaximumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_List_MaximumSet_Gen.json index c7b15ded33a0..4ddfc1005468 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Connections_List_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_List_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Connections_List_MaximumSet", "operationId": "Connections_List", "parameters": { - "api-version": "latest", + "api-version": "v1", "connectionType": "AzureOpenAI", "defaultConnection": true, "top": 6, diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json similarity index 97% rename from specification/ai/Azure.AI.Projects/examples/latest/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json index 53d8e4389bc2..fdc318b8ad4c 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_CreateOrUpdateVersion_MaximumSet", "operationId": "Datasets_CreateOrUpdateVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "nsvugzcnsvqodrxiojanhtdymgglnx", "version": "utbfmfka", "body": { diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json similarity index 96% rename from specification/ai/Azure.AI.Projects/examples/latest/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json index 36b9a414c8fb..717e125e8fc1 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_CreateOrUpdateVersion_MinimumSet", "operationId": "Datasets_CreateOrUpdateVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "pluvp", "version": "playwidjgezovivciosnkerrdwe", "body": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_DeleteVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_DeleteVersion_MaximumSet_Gen.json similarity index 87% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_DeleteVersion_MaximumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_DeleteVersion_MaximumSet_Gen.json index d92c63fc6176..6d32c7b8bd30 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_DeleteVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_DeleteVersion_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_DeleteVersion_MaximumSet", "operationId": "Datasets_DeleteVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "dfmimccx", "version": "mukc" }, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_DeleteVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_DeleteVersion_MinimumSet_Gen.json similarity index 88% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_DeleteVersion_MinimumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_DeleteVersion_MinimumSet_Gen.json index e17560ccaff1..7c629dd22c35 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_DeleteVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_DeleteVersion_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_DeleteVersion_MinimumSet", "operationId": "Datasets_DeleteVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "nkaivxoayhkrxavagybliogwwgvbk", "version": "pmavzwbusicqau" }, diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetCredentials_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetCredentials_MaximumSet_Gen.json similarity index 94% rename from specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetCredentials_MaximumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetCredentials_MaximumSet_Gen.json index 36c785a9d296..a65b58a588c3 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetCredentials_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetCredentials_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_GetCredentials_MaximumSet", "operationId": "Datasets_GetCredentials", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "hpvjnkljsuospxwrypot", "version": "rlf", "body": {} diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetCredentials_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetCredentials_MinimumSet_Gen.json similarity index 94% rename from specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetCredentials_MinimumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetCredentials_MinimumSet_Gen.json index 9e55038a401e..04278e63d1f0 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_GetCredentials_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetCredentials_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_GetCredentials_MinimumSet", "operationId": "Datasets_GetCredentials", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "udrhdaxbjptksqqwztnfswzku", "version": "ytogupzn", "body": {} diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetVersion_MaximumSet_Gen.json similarity index 94% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetVersion_MaximumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetVersion_MaximumSet_Gen.json index 09c41ef4580e..01e572590dc5 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetVersion_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_GetVersion_MaximumSet", "operationId": "Datasets_GetVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "ppdba", "version": "ttetev" }, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetVersion_MinimumSet_Gen.json similarity index 93% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetVersion_MinimumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetVersion_MinimumSet_Gen.json index 3930d62e815c..103a5ec40cf3 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_GetVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetVersion_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_GetVersion_MinimumSet", "operationId": "Datasets_GetVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "ivkedy", "version": "vxufccznqvuctabcyagbczidvr" }, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListLatest_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListLatest_MaximumSet_Gen.json similarity index 96% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListLatest_MaximumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListLatest_MaximumSet_Gen.json index cbb228acbbc2..55f7743c6902 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListLatest_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListLatest_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_ListLatest_MaximumSet", "operationId": "Datasets_ListLatest", "parameters": { - "api-version": "latest", + "api-version": "v1", "top": 16, "skip": "wbilbzmgugbikcwaguhtq", "tags": "azsufezp", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListLatest_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListLatest_MinimumSet_Gen.json similarity index 93% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListLatest_MinimumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListLatest_MinimumSet_Gen.json index d47c63cf9ffe..948ca26a188a 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Datasets_ListLatest_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListLatest_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_ListLatest_MinimumSet", "operationId": "Datasets_ListLatest", "parameters": { - "api-version": "latest" + "api-version": "v1" }, "responses": { "200": { diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListVersions_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListVersions_MaximumSet_Gen.json similarity index 96% rename from specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListVersions_MaximumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListVersions_MaximumSet_Gen.json index c3a191f41962..5f6bdfb1ab2f 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListVersions_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListVersions_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_ListVersions_MaximumSet", "operationId": "Datasets_ListVersions", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "ojjzgfffyyyr", "top": 4, "skip": "bafjlmqcftwnjlofuwnxoc", diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListVersions_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListVersions_MinimumSet_Gen.json similarity index 94% rename from specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListVersions_MinimumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListVersions_MinimumSet_Gen.json index 266f78fd2e6a..664c90c1d672 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_ListVersions_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListVersions_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_ListVersions_MinimumSet", "operationId": "Datasets_ListVersions", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "fauawvl" }, "responses": { diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json similarity index 96% rename from specification/ai/Azure.AI.Projects/examples/latest/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json index c3d3de6d3966..b2361fc032f3 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_StartPendingUploadVersion_MaximumSet", "operationId": "Datasets_StartPendingUploadVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "cncrcmiaksswirlujwcptxeaef", "version": "jkqqzmj", "body": { diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json similarity index 95% rename from specification/ai/Azure.AI.Projects/examples/latest/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json index 841f2c320d68..bcd3ee591099 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Datasets_StartPendingUploadVersion_MinimumSet", "operationId": "Datasets_StartPendingUploadVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "atopkjwxsjtforndczju", "version": "yftpnjxwjylhixypopcytxd", "body": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Deployments_Get_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Deployments_Get_MaximumSet_Gen.json similarity index 92% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Deployments_Get_MaximumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Deployments_Get_MaximumSet_Gen.json index a4378ab8fcf1..8023d41a5e89 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Deployments_Get_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Deployments_Get_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Deployments_Get_MaximumSet", "operationId": "Deployments_Get", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "ft", "x-ms-client-request-id": "cf35b680-dc80-4815-ab83-9364acc3bce6" }, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Deployments_List_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Deployments_List_MaximumSet_Gen.json similarity index 95% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Deployments_List_MaximumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Deployments_List_MaximumSet_Gen.json index 302a20a54724..5e6110856a4b 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Deployments_List_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Deployments_List_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Deployments_List_MaximumSet", "operationId": "Deployments_List", "parameters": { - "api-version": "latest", + "api-version": "v1", "modelPublisher": "tb", "modelName": "xdlvjxymsmdnebesolv", "top": 6, diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json similarity index 96% rename from specification/ai/Azure.AI.Projects/examples/latest/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json index c8408389aa49..ff3a22cb16ab 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_CreateOrUpdateVersion_MaximumSet", "operationId": "Indexes_CreateOrUpdateVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "kptgsnpfjcunvvdgzfjdmnurq", "version": "hxutytnzwioiijfinpdojrnrqhqb", "body": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json similarity index 94% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json index cbf4b284ded3..003e2d0b162b 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_CreateOrUpdateVersion_MinimumSet", "operationId": "Indexes_CreateOrUpdateVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "dpfjghwaowffzhoyuwrnmws", "version": "priaizsqiwxrwnhhyk", "body": { diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_DeleteVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_DeleteVersion_MaximumSet_Gen.json similarity index 87% rename from specification/ai/Azure.AI.Projects/examples/latest/Indexes_DeleteVersion_MaximumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_DeleteVersion_MaximumSet_Gen.json index 2acc621223d6..abca9b51ee02 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_DeleteVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_DeleteVersion_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_DeleteVersion_MaximumSet", "operationId": "Indexes_DeleteVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "fb", "version": "ajbuwvsxobvnynpcliqcylqdp" }, diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_DeleteVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_DeleteVersion_MinimumSet_Gen.json similarity index 87% rename from specification/ai/Azure.AI.Projects/examples/latest/Indexes_DeleteVersion_MinimumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_DeleteVersion_MinimumSet_Gen.json index 1347bd62ae4e..b8742995962a 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_DeleteVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_DeleteVersion_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_DeleteVersion_MinimumSet", "operationId": "Indexes_DeleteVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "zoxequ", "version": "akulwzwrfeqxh" }, diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_GetVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_GetVersion_MaximumSet_Gen.json similarity index 93% rename from specification/ai/Azure.AI.Projects/examples/latest/Indexes_GetVersion_MaximumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_GetVersion_MaximumSet_Gen.json index ac32666a5535..f45394f89cf7 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_GetVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_GetVersion_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_GetVersion_MaximumSet", "operationId": "Indexes_GetVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "ascwgkgwpqxeinbp", "version": "bqhzitucneeoxurvf" }, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_GetVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_GetVersion_MinimumSet_Gen.json similarity index 91% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_GetVersion_MinimumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_GetVersion_MinimumSet_Gen.json index d3d8b70438fd..f3918ab409a3 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_GetVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_GetVersion_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_GetVersion_MinimumSet", "operationId": "Indexes_GetVersion", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "sflsamumttlwccuxveocgozlkmdme", "version": "txg" }, diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListLatest_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListLatest_MaximumSet_Gen.json similarity index 95% rename from specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListLatest_MaximumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListLatest_MaximumSet_Gen.json index 57e128dd9bb8..f46b82f038a6 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListLatest_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListLatest_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_ListLatest_MaximumSet", "operationId": "Indexes_ListLatest", "parameters": { - "api-version": "latest", + "api-version": "v1", "top": 16, "skip": "cbeuhxuzaucwgqj", "tags": "ecxlvszgcepwunik", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListLatest_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListLatest_MinimumSet_Gen.json similarity index 92% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListLatest_MinimumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListLatest_MinimumSet_Gen.json index ef8435a62328..9ee9e1422b9c 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListLatest_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListLatest_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_ListLatest_MinimumSet", "operationId": "Indexes_ListLatest", "parameters": { - "api-version": "latest" + "api-version": "v1" }, "responses": { "200": { diff --git a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListVersions_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListVersions_MaximumSet_Gen.json similarity index 95% rename from specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListVersions_MaximumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListVersions_MaximumSet_Gen.json index 6a20fa0ec6c6..3efa91a588c9 100644 --- a/specification/ai/Azure.AI.Projects/examples/latest/Indexes_ListVersions_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListVersions_MaximumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_ListVersions_MaximumSet", "operationId": "Indexes_ListVersions", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "ugobcytrjfdfu", "top": 12, "skip": "vspvqu", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListVersions_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListVersions_MinimumSet_Gen.json similarity index 92% rename from specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListVersions_MinimumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListVersions_MinimumSet_Gen.json index 1fd65159204a..ba599e422489 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/latest/examples/Indexes_ListVersions_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListVersions_MinimumSet_Gen.json @@ -2,7 +2,7 @@ "title": "Indexes_ListVersions_MinimumSet", "operationId": "Indexes_ListVersions", "parameters": { - "api-version": "latest", + "api-version": "v1", "name": "lenbliqxnfqi" }, "responses": { From 8a44a2e4400999bcdf42c7e63a3e4cd378115cf9 Mon Sep 17 00:00:00 2001 From: Ankit Singhal <30610298+singankit@users.noreply.github.com> Date: Mon, 28 Apr 2025 15:49:46 -0700 Subject: [PATCH 123/143] Users/singankit/update evaluation name (#34301) * Update models.tsp * Adding updated swaggers --- specification/ai/Azure.AI.Projects/evaluations/models.tsp | 3 ++- .../preview/2025-05-15-preview/azure-ai-projects-1dp.json | 8 +++++--- .../stable/2025-05-01/azure-ai-projects-1dp.json | 2 +- .../stable/v1/azure-ai-projects-1dp.json | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/evaluations/models.tsp b/specification/ai/Azure.AI.Projects/evaluations/models.tsp index 2a325d8de4bd..6fe7a05bda28 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/models.tsp @@ -53,8 +53,9 @@ model InputDataset extends InputData { model Evaluation { @doc("Identifier of the evaluation.") @key("name") + @encodedName("application/json", "id") @visibility(Lifecycle.Read) - id: string; + name: string; @doc("Data for evaluation.") data: InputData; diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index 4931aa558888..a8865719685d 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -2057,7 +2057,7 @@ }, "Azure.Core.Foundations.InnerError": { "type": "object", - "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/microsoft/api-guidelines/blob/vNext/azure/Guidelines.md#handling-errors.", + "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", "properties": { "code": { "type": "string", @@ -2619,7 +2619,8 @@ "id": { "type": "string", "description": "Identifier of the evaluation.", - "readOnly": true + "readOnly": true, + "x-ms-client-name": "name" }, "data": { "$ref": "#/definitions/InputData", @@ -3131,7 +3132,8 @@ "description": "The Evaluation items on this page", "items": { "$ref": "#/definitions/Evaluation" - } + }, + "x-ms-identifiers": [] }, "nextLink": { "type": "string", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json index 6ec38b170bae..6f232882345d 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json @@ -1380,7 +1380,7 @@ }, "Azure.Core.Foundations.InnerError": { "type": "object", - "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/microsoft/api-guidelines/blob/vNext/azure/Guidelines.md#handling-errors.", + "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", "properties": { "code": { "type": "string", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json index 9ce7570bddfa..a2357a83b307 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json @@ -1380,7 +1380,7 @@ }, "Azure.Core.Foundations.InnerError": { "type": "object", - "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/microsoft/api-guidelines/blob/vNext/azure/Guidelines.md#handling-errors.", + "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", "properties": { "code": { "type": "string", From 7169a245080f3e46fee379606e5e93734052a118 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Mon, 28 Apr 2025 22:00:04 -0700 Subject: [PATCH 124/143] Fix all Java, Go & Python issues in SdkTspConfigValidation when running "npx tsv ." (#34272) --- .../ai/Azure.AI.Projects/suppressions.yaml | 12 ++++++++++++ .../ai/Azure.AI.Projects/tspconfig.yaml | 19 ++++++++----------- .../azure-ai-projects-1dp.json | 2 +- .../2025-05-01/azure-ai-projects-1dp.json | 2 +- .../stable/v1/azure-ai-projects-1dp.json | 2 +- 5 files changed, 23 insertions(+), 14 deletions(-) create mode 100644 specification/ai/Azure.AI.Projects/suppressions.yaml diff --git a/specification/ai/Azure.AI.Projects/suppressions.yaml b/specification/ai/Azure.AI.Projects/suppressions.yaml new file mode 100644 index 000000000000..112e8f4e9857 --- /dev/null +++ b/specification/ai/Azure.AI.Projects/suppressions.yaml @@ -0,0 +1,12 @@ +- tool: TypeSpecValidation + paths: + - tspconfig.yaml + rules: + - SdkTspConfigValidation + sub-rules: + # Suppress validation for a Go emitter options + - options.@azure-tools/typespec-go.generate-fakes + - options.@azure-tools/typespec-go.inject-spans + - options.@azure-tools/typespec-go.service-dir + - options.@azure-tools/typespec-go.package-dir + reason: 'We do not yet have a Go client library' \ No newline at end of file diff --git a/specification/ai/Azure.AI.Projects/tspconfig.yaml b/specification/ai/Azure.AI.Projects/tspconfig.yaml index f83b1a79b6a9..582b8fb2ea7a 100644 --- a/specification/ai/Azure.AI.Projects/tspconfig.yaml +++ b/specification/ai/Azure.AI.Projects/tspconfig.yaml @@ -20,7 +20,7 @@ options: generate-sample: true "@azure-tools/typespec-csharp": package-mode: "dataplane" - package-dir: "Azure.AI.Projects.1DP" + package-dir: "Azure.AI.Projects" namespace: "{package-dir}" package-name: "{package-dir}" api-version: "2025-05-15-preview" @@ -30,12 +30,14 @@ options: generate-sample: false clear-output-folder: true "@azure-tools/typespec-ts": - package-dir: "ai-projects-1dp" + package-dir: "ai-projects" api-version: "2025-05-15-preview" - generateTest: true - generateMetadata: false - packageDetails: - name: "@azure/ai-projects-1dp" + is-modular-library: true + generate-test: true + generate-metadata: false + package-details: + name: "@azure/ai-projects" + description: "Azure AI Projects Client" flavor: azure "@azure-tools/typespec-java": package-dir: "azure-ai-projects" @@ -44,11 +46,6 @@ options: enable-sync-stack: true generate-tests: false flavor: azure - "@azure-tools/typespec-go": - service-dir: "sdk/ai/projects" - package-dir: "azaiprojects" - generate-fakes: true - inject-spans: true linter: extends: - "@azure-tools/typespec-azure-rulesets/data-plane" diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index a8865719685d..8b0259804ddd 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -2057,7 +2057,7 @@ }, "Azure.Core.Foundations.InnerError": { "type": "object", - "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", + "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/microsoft/api-guidelines/blob/vNext/azure/Guidelines.md#handling-errors.", "properties": { "code": { "type": "string", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json index 6f232882345d..6ec38b170bae 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json @@ -1380,7 +1380,7 @@ }, "Azure.Core.Foundations.InnerError": { "type": "object", - "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", + "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/microsoft/api-guidelines/blob/vNext/azure/Guidelines.md#handling-errors.", "properties": { "code": { "type": "string", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json index a2357a83b307..9ce7570bddfa 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json @@ -1380,7 +1380,7 @@ }, "Azure.Core.Foundations.InnerError": { "type": "object", - "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", + "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/microsoft/api-guidelines/blob/vNext/azure/Guidelines.md#handling-errors.", "properties": { "code": { "type": "string", From ae3b04fbffd98b793e668dc07eff5a69fe1bc210 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Mon, 28 Apr 2025 22:24:09 -0700 Subject: [PATCH 125/143] Suppress JS emitter errors related to package and dir name missing the word `rest` in them. We do not use RLC in JS --- specification/ai/Azure.AI.Projects/suppressions.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/specification/ai/Azure.AI.Projects/suppressions.yaml b/specification/ai/Azure.AI.Projects/suppressions.yaml index 112e8f4e9857..a816f7f88a71 100644 --- a/specification/ai/Azure.AI.Projects/suppressions.yaml +++ b/specification/ai/Azure.AI.Projects/suppressions.yaml @@ -9,4 +9,7 @@ - options.@azure-tools/typespec-go.inject-spans - options.@azure-tools/typespec-go.service-dir - options.@azure-tools/typespec-go.package-dir - reason: 'We do not yet have a Go client library' \ No newline at end of file + # Suppress JS package & dir names related to RLC, which require "rest" in the name. We do not use RLC. + - options.@azure-tools/typespec-ts.package-dir + - options.@azure-tools/typespec-ts.package-details.name + reason: 'We do not yet have a Go client library. We do not use RLC for JS.' From 1ada3b6367ec4c3ae8ae02ce839515ef4acc8341 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Tue, 29 Apr 2025 06:10:09 -0700 Subject: [PATCH 126/143] Address comments from SDK review meeting (#34273) --- specification/ai/Azure.AI.Projects/client.tsp | 33 +++++++++++++++++++ .../Azure.AI.Projects/connections/models.tsp | 2 +- .../ai/Azure.AI.Projects/datasets/routes.tsp | 2 +- .../ai/Azure.AI.Projects/servicepatterns.tsp | 18 +++++----- .../ai/Azure.AI.Projects/suppressions.yaml | 4 ++- .../ai/Azure.AI.Projects/tspconfig.yaml | 2 +- .../azure-ai-projects-1dp.json | 4 +-- .../2025-05-01/azure-ai-projects-1dp.json | 4 +-- .../stable/v1/azure-ai-projects-1dp.json | 4 +-- 9 files changed, 55 insertions(+), 18 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/client.tsp b/specification/ai/Azure.AI.Projects/client.tsp index 1428265619ad..f90a88b505a4 100644 --- a/specification/ai/Azure.AI.Projects/client.tsp +++ b/specification/ai/Azure.AI.Projects/client.tsp @@ -4,3 +4,36 @@ import "./main.tsp"; using Azure.ClientGenerator.Core; @@clientName(Azure.AI.Projects, "AIProjectClient"); + +// Shorter method names for SDK datasets operations +@@clientName(Azure.AI.Projects.Datasets.listLatest, "list"); +@@clientName(Azure.AI.Projects.Datasets.getVersion, "get"); +@@clientName(Azure.AI.Projects.Datasets.deleteVersion, "delete"); +@@clientName(Azure.AI.Projects.Datasets.createOrUpdateVersion, + "createOrUpdate" +); +@@clientName(Azure.AI.Projects.Datasets.startPendingUploadVersion, + "pendingUpload" +); + +// Shorter method names for SDK Index operations +@@clientName(Azure.AI.Projects.Indexes.listLatest, "list"); +@@clientName(Azure.AI.Projects.Indexes.getVersion, "get"); +@@clientName(Azure.AI.Projects.Indexes.deleteVersion, "delete"); +@@clientName(Azure.AI.Projects.Indexes.createOrUpdateVersion, "createOrUpdate"); + +// In Python, the emitter changes "keys" to "keys_property", since there is already +// a "keys" method in the generated code due to usage of MutableMapping. Call it credential_keys instead. +@@clientName(Azure.AI.Projects.CustomCredential.keys, + "credential_keys", + "python" +); + +// Make these two internal, since all SDKs hand-write a single public method with boolean "includeCredentials" +// input parameter that calls either on these two. +@@access(Azure.AI.Projects.Connections.get, Access.internal); +@@access(Azure.AI.Projects.Connections.getWithCredentials, Access.internal); + +// For some reason for Python the emitter creates an empty ServicePatternsOperations operation +// class. Mark it as internal here. Apply to all languages just in case. +//@@access(Azure.AI.Projects.ServicePatterns, Access.internal); <== this did not work. It makes all methods internal. diff --git a/specification/ai/Azure.AI.Projects/connections/models.tsp b/specification/ai/Azure.AI.Projects/connections/models.tsp index 57ec759cea54..2c968865b2c0 100644 --- a/specification/ai/Azure.AI.Projects/connections/models.tsp +++ b/specification/ai/Azure.AI.Projects/connections/models.tsp @@ -68,7 +68,7 @@ model EntraIDCredentials extends BaseCredentials { type: CredentialType.entraId; } -@doc("Custom credential defintion") +@doc("Custom credential definition") model CustomCredential extends BaseCredentials { @doc("The credential type") @visibility(Lifecycle.Read) diff --git a/specification/ai/Azure.AI.Projects/datasets/routes.tsp b/specification/ai/Azure.AI.Projects/datasets/routes.tsp index cbf22eba4739..dc283e2a7c79 100644 --- a/specification/ai/Azure.AI.Projects/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/routes.tsp @@ -60,7 +60,7 @@ interface Datasets #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" #suppress "@azure-tools/typespec-azure-core/use-standard-operations" - @doc("Get download sas for dataset version.") + @doc("Get the SAS credential to access the storage account associated with a Dataset version.") @post @Rest.action("credentials") @Rest.actionSeparator("/") diff --git a/specification/ai/Azure.AI.Projects/servicepatterns.tsp b/specification/ai/Azure.AI.Projects/servicepatterns.tsp index 376184787b32..35e53d56c8c0 100644 --- a/specification/ai/Azure.AI.Projects/servicepatterns.tsp +++ b/specification/ai/Azure.AI.Projects/servicepatterns.tsp @@ -80,6 +80,10 @@ namespace Azure.AI.Projects.ServicePatterns { createOrUpdateVersion is Azure.Core.Foundations.ResourceOperation< TEntityType, { + @doc("The definition of the {name} to create or update", TEntityType) + @Http.bodyRoot + body: TEntityType; + @doc( "The specific version id of the {name} to create or replace.", TEntityType @@ -87,10 +91,6 @@ namespace Azure.AI.Projects.ServicePatterns { @Rest.segment("versions") @Http.path version: string; - - @doc("The definition of the {name} to create or update", TEntityType) - @Http.bodyRoot - body: TEntityType; }, Azure.Core.Foundations.ResourceCreatedOrOkResponse >; @@ -104,14 +104,14 @@ namespace Azure.AI.Projects.ServicePatterns { > is Azure.Core.Foundations.ResourceOperation< TEntityType, { + @doc("Parameters for the action") + @Http.bodyRoot + body: TParams; + @doc("The specific version id of the {name} to operate on.", TEntityType) @Rest.segment("versions") @Http.path version: string; - - @doc("Parameters for the action") - @Http.bodyRoot - body: TParams; }, TResponse >; @@ -135,8 +135,10 @@ namespace Azure.AI.Projects.ServicePatterns { namespace BuildingBlocks { alias CoreOps = Azure.Core.StandardResourceOperations; + /* alias RepeatableCoreOps = Azure.Core.ResourceOperations; + */ } } diff --git a/specification/ai/Azure.AI.Projects/suppressions.yaml b/specification/ai/Azure.AI.Projects/suppressions.yaml index a816f7f88a71..0c482b38e9ad 100644 --- a/specification/ai/Azure.AI.Projects/suppressions.yaml +++ b/specification/ai/Azure.AI.Projects/suppressions.yaml @@ -12,4 +12,6 @@ # Suppress JS package & dir names related to RLC, which require "rest" in the name. We do not use RLC. - options.@azure-tools/typespec-ts.package-dir - options.@azure-tools/typespec-ts.package-details.name - reason: 'We do not yet have a Go client library. We do not use RLC for JS.' + # Do not force me to generate Python samples + - options.@azure-tools/typespec-python.generate-sample + reason: 'See above comments for details' diff --git a/specification/ai/Azure.AI.Projects/tspconfig.yaml b/specification/ai/Azure.AI.Projects/tspconfig.yaml index 582b8fb2ea7a..b4bb1ea518e8 100644 --- a/specification/ai/Azure.AI.Projects/tspconfig.yaml +++ b/specification/ai/Azure.AI.Projects/tspconfig.yaml @@ -17,7 +17,7 @@ options: api-version: "2025-05-15-preview" flavor: azure generate-test: true - generate-sample: true + generate-sample: false "@azure-tools/typespec-csharp": package-mode: "dataplane" package-dir: "Azure.AI.Projects" diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index 8b0259804ddd..4f0f9d90e970 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -663,7 +663,7 @@ "/datasets/{name}/versions/{version}/credentials": { "post": { "operationId": "Datasets_GetCredentials", - "description": "Get download sas for dataset version.", + "description": "Get the SAS credential to access the storage account associated with a Dataset version.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -2379,7 +2379,7 @@ }, "CustomCredential": { "type": "object", - "description": "Custom credential defintion", + "description": "Custom credential definition", "properties": { "keys": { "type": "object", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json index 6ec38b170bae..6828e8cba4f4 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json @@ -663,7 +663,7 @@ "/datasets/{name}/versions/{version}/credentials": { "post": { "operationId": "Datasets_GetCredentials", - "description": "Get download sas for dataset version.", + "description": "Get the SAS credential to access the storage account associated with a Dataset version.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -1683,7 +1683,7 @@ }, "CustomCredential": { "type": "object", - "description": "Custom credential defintion", + "description": "Custom credential definition", "properties": { "keys": { "type": "object", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json index 9ce7570bddfa..72d868f6dc04 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json @@ -663,7 +663,7 @@ "/datasets/{name}/versions/{version}/credentials": { "post": { "operationId": "Datasets_GetCredentials", - "description": "Get download sas for dataset version.", + "description": "Get the SAS credential to access the storage account associated with a Dataset version.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -1683,7 +1683,7 @@ }, "CustomCredential": { "type": "object", - "description": "Custom credential defintion", + "description": "Custom credential definition", "properties": { "keys": { "type": "object", From a1a907a743c4e5342403befbc4511f664ea2eb1e Mon Sep 17 00:00:00 2001 From: adyada <118839465+adyada@users.noreply.github.com> Date: Tue, 29 Apr 2025 09:35:34 -0400 Subject: [PATCH 127/143] asset contract changes. (#34197) --- .../ai/Azure.AI.Projects/common/models.tsp | 53 +-- .../ai/Azure.AI.Projects/datasets/models.tsp | 5 +- .../ai/Azure.AI.Projects/datasets/routes.tsp | 14 +- .../ai/Azure.AI.Projects/indexes/routes.tsp | 14 +- .../azure-ai-projects-1dp.json | 347 ++---------------- .../2025-05-01/azure-ai-projects-1dp.json | 347 ++---------------- .../stable/v1/azure-ai-projects-1dp.json | 347 ++---------------- 7 files changed, 90 insertions(+), 1037 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/common/models.tsp b/specification/ai/Azure.AI.Projects/common/models.tsp index 8ed2b8786f34..86858eb0f339 100644 --- a/specification/ai/Azure.AI.Projects/common/models.tsp +++ b/specification/ai/Azure.AI.Projects/common/models.tsp @@ -7,37 +7,8 @@ using TypeSpec.Http; namespace Azure.AI.Projects; -@doc("The available sorting options when requesting a list of response objects.") -union ListSortOrder { - string, - - @doc("Specifies an ascending sort order.") - ascending: "asc", - - @doc("Specifies a descending sort order.") - descending: "desc", -} - -@doc("List View Type Definition") -union ListViewType { - string, - - @doc("List only active items.") - ActiveOnly: "ActiveOnly", - - @doc("List only archived items.") - ArchivedOnly: "ArchivedOnly", - - @doc("List all items.") - All: "All", -} - alias AssetBase = { - @doc("Asset stage") - @visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update) - stage?: string; - - @doc("A unique identifier for the asset, assetId probably?") + @doc("Asset ID, a unique identifier for the asset") @visibility(Lifecycle.Read) id?: string; @@ -79,8 +50,8 @@ union PendingUploadType { @doc("No pending upload.") none: "None", - @doc("Temporary Blob Reference is the only supported type.") - temporaryBlobReference: "TemporaryBlobReference", + @doc("Blob Reference is the only supported type.") + BlobReference: "BlobReference", } @doc("The type of credential used to access the storage account.") @@ -99,23 +70,23 @@ model PendingUploadRequest { @doc("Name of Azure blob storage connection to use for generating temporary SAS token") connectionName?: string; - @doc("TemporaryBlobReference is the only supported type.") - pendingUploadType: PendingUploadType.temporaryBlobReference; + @doc("BlobReference is the only supported type.") + pendingUploadType: PendingUploadType.BlobReference; } @doc("Represents the response for a pending upload request") model PendingUploadResponse { @doc("Container-level read, write, list SAS.") - blobReferenceForConsumption: BlobReferenceForConsumption; + blobReference: BlobReference; @doc("ID for this upload request.") pendingUploadId: string; - @doc("Version of dataset to be created if user did not specify version when initially creating upload") - datasetVersion?: string; + @doc("Version of asset to be created if user did not specify version when initially creating upload") + version?: string; @doc("TemporaryBlobReference is the only supported type") - pendingUploadType: PendingUploadType.temporaryBlobReference; + pendingUploadType: PendingUploadType.BlobReference; } @doc("SAS Credential definition") @@ -129,8 +100,8 @@ model SasCredential { type: "SAS"; } -@doc("Represents a reference to a blob for consumption") -model BlobReferenceForConsumption { +@doc("Blob reference details.") +model BlobReference { @doc("Blob URI path for client to upload data. Example: https://blob.windows.core.net/Container/Path") blobUri: Uri; @@ -144,5 +115,5 @@ model BlobReferenceForConsumption { @doc("Represents a reference to a blob for consumption") model AssetCredentialResponse { @doc("Credential info to access the storage account.") - blobReferenceForConsumption: BlobReferenceForConsumption; + blobReference: BlobReference; } diff --git a/specification/ai/Azure.AI.Projects/datasets/models.tsp b/specification/ai/Azure.AI.Projects/datasets/models.tsp index e8f23ef6404f..f371c6c2e745 100644 --- a/specification/ai/Azure.AI.Projects/datasets/models.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/models.tsp @@ -32,7 +32,7 @@ model DatasetVersion { @visibility(Lifecycle.Read, Lifecycle.Create) @minLength(1) @pattern("[a-zA-Z0-9_]") - datasetUri: string; + dataUri: string; @doc("Dataset type") type: DatasetType; @@ -49,9 +49,6 @@ model DatasetVersion { model FileDatasetVersion extends DatasetVersion { @doc("Dataset type") type: DatasetType.uri_file; - - @doc("Indicates OpenAI Purpose. FileDatasets created with this field will be compatible with OpenAI-specific features") - openAIPurpose: string; } @doc("FileDatasetVersion Definition") diff --git a/specification/ai/Azure.AI.Projects/datasets/routes.tsp b/specification/ai/Azure.AI.Projects/datasets/routes.tsp index dc283e2a7c79..8a359758efc3 100644 --- a/specification/ai/Azure.AI.Projects/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/routes.tsp @@ -13,21 +13,9 @@ using TypeSpec.Versioning; namespace Azure.AI.Projects; alias ListDatasetVersionsParameters = { - @doc("Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned") - @query - top?: int32; - @doc("Continuation token for pagination.") @query - skip?: string; - - @doc("Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2") - @query - tags?: string; - - @doc("[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.") - @query - listViewType?: ListViewType; + continuationToken?: string; }; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "We are using service specific operation templates" diff --git a/specification/ai/Azure.AI.Projects/indexes/routes.tsp b/specification/ai/Azure.AI.Projects/indexes/routes.tsp index af56cb0149e4..d01c5d9fb166 100644 --- a/specification/ai/Azure.AI.Projects/indexes/routes.tsp +++ b/specification/ai/Azure.AI.Projects/indexes/routes.tsp @@ -12,21 +12,9 @@ using TypeSpec.Versioning; namespace Azure.AI.Projects; alias ListIndexVersionParameters = { - @doc("Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned") - @query - top?: int32; - @doc("Continuation token for pagination.") @query - skip?: string; - - @doc("Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2") - @query - tags?: string; - - @doc("[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.") - @query - listViewType?: ListViewType; + continuationToken?: string; }; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "We are using service specific operation templates" diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index 4f0f9d90e970..3489f4f51648 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -301,59 +301,11 @@ "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", + "name": "continuationToken", "in": "query", "description": "Continuation token for pagination.", "required": false, "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } } ], "responses": { @@ -405,59 +357,11 @@ "type": "string" }, { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", + "name": "continuationToken", "in": "query", "description": "Continuation token for pagination.", "required": false, "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } } ], "responses": { @@ -1146,59 +1050,11 @@ "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", + "name": "continuationToken", "in": "query", "description": "Continuation token for pagination.", "required": false, "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } } ], "responses": { @@ -1250,59 +1106,11 @@ "type": "string" }, { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", + "name": "continuationToken", "in": "query", "description": "Continuation token for pagination.", "required": false, "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } } ], "responses": { @@ -1843,13 +1651,13 @@ "type": "object", "description": "Represents a reference to a blob for consumption", "properties": { - "blobReferenceForConsumption": { - "$ref": "#/definitions/BlobReferenceForConsumption", + "blobReference": { + "$ref": "#/definitions/BlobReference", "description": "Credential info to access the storage account." } }, "required": [ - "blobReferenceForConsumption" + "blobReference" ] }, "AttackStrategy": { @@ -2143,9 +1951,9 @@ "type" ] }, - "BlobReferenceForConsumption": { + "BlobReference": { "type": "object", - "description": "Represents a reference to a blob for consumption", + "description": "Blob reference details.", "properties": { "blobUri": { "type": "string", @@ -2428,7 +2236,7 @@ "type": "object", "description": "DatasetVersion Definition", "properties": { - "datasetUri": { + "dataUri": { "type": "string", "description": "[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330", "minLength": 1, @@ -2447,18 +2255,9 @@ "description": "Indicates if dataset is reference only or managed by dataset service. If true, the underlying data will be deleted when the dataset version is deleted", "readOnly": true }, - "stage": { - "type": "string", - "description": "Asset stage", - "x-ms-mutability": [ - "read", - "update", - "create" - ] - }, "id": { "type": "string", - "description": "A unique identifier for the asset, assetId probably?", + "description": "Asset ID, a unique identifier for the asset", "readOnly": true }, "name": { @@ -2493,7 +2292,7 @@ }, "discriminator": "type", "required": [ - "datasetUri", + "dataUri", "type", "name", "version" @@ -2507,15 +2306,6 @@ "$ref": "#/definitions/DatasetType", "description": "Dataset type" }, - "stage": { - "type": "string", - "description": "Asset stage", - "x-ms-mutability": [ - "read", - "update", - "create" - ] - }, "description": { "type": "string", "description": "The asset description text.", @@ -2695,15 +2485,6 @@ "FileDatasetVersion": { "type": "object", "description": "FileDatasetVersion Definition", - "properties": { - "openAIPurpose": { - "type": "string", - "description": "Indicates OpenAI Purpose. FileDatasets created with this field will be compatible with OpenAI-specific features" - } - }, - "required": [ - "openAIPurpose" - ], "allOf": [ { "$ref": "#/definitions/DatasetVersion" @@ -2714,12 +2495,6 @@ "FileDatasetVersionUpdate": { "type": "object", "description": "FileDatasetVersion Definition", - "properties": { - "openAIPurpose": { - "type": "string", - "description": "Indicates OpenAI Purpose. FileDatasets created with this field will be compatible with OpenAI-specific features" - } - }, "allOf": [ { "$ref": "#/definitions/DatasetVersionUpdate" @@ -2755,18 +2530,9 @@ "$ref": "#/definitions/IndexType", "description": "Type of index" }, - "stage": { - "type": "string", - "description": "Asset stage", - "x-ms-mutability": [ - "read", - "update", - "create" - ] - }, "id": { "type": "string", - "description": "A unique identifier for the asset, assetId probably?", + "description": "Asset ID, a unique identifier for the asset", "readOnly": true }, "name": { @@ -2843,15 +2609,6 @@ "$ref": "#/definitions/IndexType", "description": "Type of index" }, - "stage": { - "type": "string", - "description": "Asset stage", - "x-ms-mutability": [ - "read", - "update", - "create" - ] - }, "description": { "type": "string", "description": "The asset description text.", @@ -2910,60 +2667,6 @@ ], "x-ms-discriminator-value": "dataset" }, - "ListSortOrder": { - "type": "string", - "description": "The available sorting options when requesting a list of response objects.", - "enum": [ - "asc", - "desc" - ], - "x-ms-enum": { - "name": "ListSortOrder", - "modelAsString": true, - "values": [ - { - "name": "ascending", - "value": "asc", - "description": "Specifies an ascending sort order." - }, - { - "name": "descending", - "value": "desc", - "description": "Specifies a descending sort order." - } - ] - } - }, - "ListViewType": { - "type": "string", - "description": "List View Type Definition", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } - }, "ManagedAzureAISearchIndex": { "type": "object", "description": "Managed Azure AI Search Index Definition", @@ -3219,9 +2922,9 @@ }, "pendingUploadType": { "type": "string", - "description": "TemporaryBlobReference is the only supported type.", + "description": "BlobReference is the only supported type.", "enum": [ - "TemporaryBlobReference" + "BlobReference" ], "x-ms-enum": { "modelAsString": false @@ -3236,23 +2939,23 @@ "type": "object", "description": "Represents the response for a pending upload request", "properties": { - "blobReferenceForConsumption": { - "$ref": "#/definitions/BlobReferenceForConsumption", + "blobReference": { + "$ref": "#/definitions/BlobReference", "description": "Container-level read, write, list SAS." }, "pendingUploadId": { "type": "string", "description": "ID for this upload request." }, - "datasetVersion": { + "version": { "type": "string", - "description": "Version of dataset to be created if user did not specify version when initially creating upload" + "description": "Version of asset to be created if user did not specify version when initially creating upload" }, "pendingUploadType": { "type": "string", "description": "TemporaryBlobReference is the only supported type", "enum": [ - "TemporaryBlobReference" + "BlobReference" ], "x-ms-enum": { "modelAsString": false @@ -3260,7 +2963,7 @@ } }, "required": [ - "blobReferenceForConsumption", + "blobReference", "pendingUploadId", "pendingUploadType" ] @@ -3270,7 +2973,7 @@ "description": "The type of pending upload.", "enum": [ "None", - "TemporaryBlobReference" + "BlobReference" ], "x-ms-enum": { "name": "PendingUploadType", @@ -3282,9 +2985,9 @@ "description": "No pending upload." }, { - "name": "temporaryBlobReference", - "value": "TemporaryBlobReference", - "description": "Temporary Blob Reference is the only supported type." + "name": "BlobReference", + "value": "BlobReference", + "description": "Blob Reference is the only supported type." } ] } diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json index 6828e8cba4f4..0604659116eb 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json @@ -301,59 +301,11 @@ "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", + "name": "continuationToken", "in": "query", "description": "Continuation token for pagination.", "required": false, "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } } ], "responses": { @@ -405,59 +357,11 @@ "type": "string" }, { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", + "name": "continuationToken", "in": "query", "description": "Continuation token for pagination.", "required": false, "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } } ], "responses": { @@ -939,59 +843,11 @@ "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", + "name": "continuationToken", "in": "query", "description": "Continuation token for pagination.", "required": false, "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } } ], "responses": { @@ -1043,59 +899,11 @@ "type": "string" }, { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", + "name": "continuationToken", "in": "query", "description": "Continuation token for pagination.", "required": false, "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } } ], "responses": { @@ -1322,13 +1130,13 @@ "type": "object", "description": "Represents a reference to a blob for consumption", "properties": { - "blobReferenceForConsumption": { - "$ref": "#/definitions/BlobReferenceForConsumption", + "blobReference": { + "$ref": "#/definitions/BlobReference", "description": "Credential info to access the storage account." } }, "required": [ - "blobReferenceForConsumption" + "blobReference" ] }, "Azure.Core.Foundations.Error": { @@ -1447,9 +1255,9 @@ "type" ] }, - "BlobReferenceForConsumption": { + "BlobReference": { "type": "object", - "description": "Represents a reference to a blob for consumption", + "description": "Blob reference details.", "properties": { "blobUri": { "type": "string", @@ -1732,7 +1540,7 @@ "type": "object", "description": "DatasetVersion Definition", "properties": { - "datasetUri": { + "dataUri": { "type": "string", "description": "[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330", "minLength": 1, @@ -1751,18 +1559,9 @@ "description": "Indicates if dataset is reference only or managed by dataset service. If true, the underlying data will be deleted when the dataset version is deleted", "readOnly": true }, - "stage": { - "type": "string", - "description": "Asset stage", - "x-ms-mutability": [ - "read", - "update", - "create" - ] - }, "id": { "type": "string", - "description": "A unique identifier for the asset, assetId probably?", + "description": "Asset ID, a unique identifier for the asset", "readOnly": true }, "name": { @@ -1797,7 +1596,7 @@ }, "discriminator": "type", "required": [ - "datasetUri", + "dataUri", "type", "name", "version" @@ -1811,15 +1610,6 @@ "$ref": "#/definitions/DatasetType", "description": "Dataset type" }, - "stage": { - "type": "string", - "description": "Asset stage", - "x-ms-mutability": [ - "read", - "update", - "create" - ] - }, "description": { "type": "string", "description": "The asset description text.", @@ -1919,15 +1709,6 @@ "FileDatasetVersion": { "type": "object", "description": "FileDatasetVersion Definition", - "properties": { - "openAIPurpose": { - "type": "string", - "description": "Indicates OpenAI Purpose. FileDatasets created with this field will be compatible with OpenAI-specific features" - } - }, - "required": [ - "openAIPurpose" - ], "allOf": [ { "$ref": "#/definitions/DatasetVersion" @@ -1938,12 +1719,6 @@ "FileDatasetVersionUpdate": { "type": "object", "description": "FileDatasetVersion Definition", - "properties": { - "openAIPurpose": { - "type": "string", - "description": "Indicates OpenAI Purpose. FileDatasets created with this field will be compatible with OpenAI-specific features" - } - }, "allOf": [ { "$ref": "#/definitions/DatasetVersionUpdate" @@ -1979,18 +1754,9 @@ "$ref": "#/definitions/IndexType", "description": "Type of index" }, - "stage": { - "type": "string", - "description": "Asset stage", - "x-ms-mutability": [ - "read", - "update", - "create" - ] - }, "id": { "type": "string", - "description": "A unique identifier for the asset, assetId probably?", + "description": "Asset ID, a unique identifier for the asset", "readOnly": true }, "name": { @@ -2067,15 +1833,6 @@ "$ref": "#/definitions/IndexType", "description": "Type of index" }, - "stage": { - "type": "string", - "description": "Asset stage", - "x-ms-mutability": [ - "read", - "update", - "create" - ] - }, "description": { "type": "string", "description": "The asset description text.", @@ -2101,60 +1858,6 @@ "type" ] }, - "ListSortOrder": { - "type": "string", - "description": "The available sorting options when requesting a list of response objects.", - "enum": [ - "asc", - "desc" - ], - "x-ms-enum": { - "name": "ListSortOrder", - "modelAsString": true, - "values": [ - { - "name": "ascending", - "value": "asc", - "description": "Specifies an ascending sort order." - }, - { - "name": "descending", - "value": "desc", - "description": "Specifies a descending sort order." - } - ] - } - }, - "ListViewType": { - "type": "string", - "description": "List View Type Definition", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } - }, "ManagedAzureAISearchIndex": { "type": "object", "description": "Managed Azure AI Search Index Definition", @@ -2367,9 +2070,9 @@ }, "pendingUploadType": { "type": "string", - "description": "TemporaryBlobReference is the only supported type.", + "description": "BlobReference is the only supported type.", "enum": [ - "TemporaryBlobReference" + "BlobReference" ], "x-ms-enum": { "modelAsString": false @@ -2384,23 +2087,23 @@ "type": "object", "description": "Represents the response for a pending upload request", "properties": { - "blobReferenceForConsumption": { - "$ref": "#/definitions/BlobReferenceForConsumption", + "blobReference": { + "$ref": "#/definitions/BlobReference", "description": "Container-level read, write, list SAS." }, "pendingUploadId": { "type": "string", "description": "ID for this upload request." }, - "datasetVersion": { + "version": { "type": "string", - "description": "Version of dataset to be created if user did not specify version when initially creating upload" + "description": "Version of asset to be created if user did not specify version when initially creating upload" }, "pendingUploadType": { "type": "string", "description": "TemporaryBlobReference is the only supported type", "enum": [ - "TemporaryBlobReference" + "BlobReference" ], "x-ms-enum": { "modelAsString": false @@ -2408,7 +2111,7 @@ } }, "required": [ - "blobReferenceForConsumption", + "blobReference", "pendingUploadId", "pendingUploadType" ] @@ -2418,7 +2121,7 @@ "description": "The type of pending upload.", "enum": [ "None", - "TemporaryBlobReference" + "BlobReference" ], "x-ms-enum": { "name": "PendingUploadType", @@ -2430,9 +2133,9 @@ "description": "No pending upload." }, { - "name": "temporaryBlobReference", - "value": "TemporaryBlobReference", - "description": "Temporary Blob Reference is the only supported type." + "name": "BlobReference", + "value": "BlobReference", + "description": "Blob Reference is the only supported type." } ] } diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json index 72d868f6dc04..195635ee0e74 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json @@ -301,59 +301,11 @@ "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", + "name": "continuationToken", "in": "query", "description": "Continuation token for pagination.", "required": false, "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } } ], "responses": { @@ -405,59 +357,11 @@ "type": "string" }, { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", + "name": "continuationToken", "in": "query", "description": "Continuation token for pagination.", "required": false, "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } } ], "responses": { @@ -939,59 +843,11 @@ "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", + "name": "continuationToken", "in": "query", "description": "Continuation token for pagination.", "required": false, "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } } ], "responses": { @@ -1043,59 +899,11 @@ "type": "string" }, { - "name": "top", - "in": "query", - "description": "Top count of results, top count cannot be greater than the page size. If topCount > page size, results with be default page size count will be returned", - "required": false, - "type": "integer", - "format": "int32" - }, - { - "name": "skip", + "name": "continuationToken", "in": "query", "description": "Continuation token for pagination.", "required": false, "type": "string" - }, - { - "name": "tags", - "in": "query", - "description": "Comma-separated list of tag names (and optionally values). Example: tag1,tag2=value2", - "required": false, - "type": "string" - }, - { - "name": "listViewType", - "in": "query", - "description": "[ListViewType.ActiveOnly, ListViewType.ArchivedOnly, ListViewType.All] View type for including/excluding (for example) archived entities.", - "required": false, - "type": "string", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } } ], "responses": { @@ -1322,13 +1130,13 @@ "type": "object", "description": "Represents a reference to a blob for consumption", "properties": { - "blobReferenceForConsumption": { - "$ref": "#/definitions/BlobReferenceForConsumption", + "blobReference": { + "$ref": "#/definitions/BlobReference", "description": "Credential info to access the storage account." } }, "required": [ - "blobReferenceForConsumption" + "blobReference" ] }, "Azure.Core.Foundations.Error": { @@ -1447,9 +1255,9 @@ "type" ] }, - "BlobReferenceForConsumption": { + "BlobReference": { "type": "object", - "description": "Represents a reference to a blob for consumption", + "description": "Blob reference details.", "properties": { "blobUri": { "type": "string", @@ -1732,7 +1540,7 @@ "type": "object", "description": "DatasetVersion Definition", "properties": { - "datasetUri": { + "dataUri": { "type": "string", "description": "[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330", "minLength": 1, @@ -1751,18 +1559,9 @@ "description": "Indicates if dataset is reference only or managed by dataset service. If true, the underlying data will be deleted when the dataset version is deleted", "readOnly": true }, - "stage": { - "type": "string", - "description": "Asset stage", - "x-ms-mutability": [ - "read", - "update", - "create" - ] - }, "id": { "type": "string", - "description": "A unique identifier for the asset, assetId probably?", + "description": "Asset ID, a unique identifier for the asset", "readOnly": true }, "name": { @@ -1797,7 +1596,7 @@ }, "discriminator": "type", "required": [ - "datasetUri", + "dataUri", "type", "name", "version" @@ -1811,15 +1610,6 @@ "$ref": "#/definitions/DatasetType", "description": "Dataset type" }, - "stage": { - "type": "string", - "description": "Asset stage", - "x-ms-mutability": [ - "read", - "update", - "create" - ] - }, "description": { "type": "string", "description": "The asset description text.", @@ -1919,15 +1709,6 @@ "FileDatasetVersion": { "type": "object", "description": "FileDatasetVersion Definition", - "properties": { - "openAIPurpose": { - "type": "string", - "description": "Indicates OpenAI Purpose. FileDatasets created with this field will be compatible with OpenAI-specific features" - } - }, - "required": [ - "openAIPurpose" - ], "allOf": [ { "$ref": "#/definitions/DatasetVersion" @@ -1938,12 +1719,6 @@ "FileDatasetVersionUpdate": { "type": "object", "description": "FileDatasetVersion Definition", - "properties": { - "openAIPurpose": { - "type": "string", - "description": "Indicates OpenAI Purpose. FileDatasets created with this field will be compatible with OpenAI-specific features" - } - }, "allOf": [ { "$ref": "#/definitions/DatasetVersionUpdate" @@ -1979,18 +1754,9 @@ "$ref": "#/definitions/IndexType", "description": "Type of index" }, - "stage": { - "type": "string", - "description": "Asset stage", - "x-ms-mutability": [ - "read", - "update", - "create" - ] - }, "id": { "type": "string", - "description": "A unique identifier for the asset, assetId probably?", + "description": "Asset ID, a unique identifier for the asset", "readOnly": true }, "name": { @@ -2067,15 +1833,6 @@ "$ref": "#/definitions/IndexType", "description": "Type of index" }, - "stage": { - "type": "string", - "description": "Asset stage", - "x-ms-mutability": [ - "read", - "update", - "create" - ] - }, "description": { "type": "string", "description": "The asset description text.", @@ -2101,60 +1858,6 @@ "type" ] }, - "ListSortOrder": { - "type": "string", - "description": "The available sorting options when requesting a list of response objects.", - "enum": [ - "asc", - "desc" - ], - "x-ms-enum": { - "name": "ListSortOrder", - "modelAsString": true, - "values": [ - { - "name": "ascending", - "value": "asc", - "description": "Specifies an ascending sort order." - }, - { - "name": "descending", - "value": "desc", - "description": "Specifies a descending sort order." - } - ] - } - }, - "ListViewType": { - "type": "string", - "description": "List View Type Definition", - "enum": [ - "ActiveOnly", - "ArchivedOnly", - "All" - ], - "x-ms-enum": { - "name": "ListViewType", - "modelAsString": true, - "values": [ - { - "name": "ActiveOnly", - "value": "ActiveOnly", - "description": "List only active items." - }, - { - "name": "ArchivedOnly", - "value": "ArchivedOnly", - "description": "List only archived items." - }, - { - "name": "All", - "value": "All", - "description": "List all items." - } - ] - } - }, "ManagedAzureAISearchIndex": { "type": "object", "description": "Managed Azure AI Search Index Definition", @@ -2367,9 +2070,9 @@ }, "pendingUploadType": { "type": "string", - "description": "TemporaryBlobReference is the only supported type.", + "description": "BlobReference is the only supported type.", "enum": [ - "TemporaryBlobReference" + "BlobReference" ], "x-ms-enum": { "modelAsString": false @@ -2384,23 +2087,23 @@ "type": "object", "description": "Represents the response for a pending upload request", "properties": { - "blobReferenceForConsumption": { - "$ref": "#/definitions/BlobReferenceForConsumption", + "blobReference": { + "$ref": "#/definitions/BlobReference", "description": "Container-level read, write, list SAS." }, "pendingUploadId": { "type": "string", "description": "ID for this upload request." }, - "datasetVersion": { + "version": { "type": "string", - "description": "Version of dataset to be created if user did not specify version when initially creating upload" + "description": "Version of asset to be created if user did not specify version when initially creating upload" }, "pendingUploadType": { "type": "string", "description": "TemporaryBlobReference is the only supported type", "enum": [ - "TemporaryBlobReference" + "BlobReference" ], "x-ms-enum": { "modelAsString": false @@ -2408,7 +2111,7 @@ } }, "required": [ - "blobReferenceForConsumption", + "blobReference", "pendingUploadId", "pendingUploadType" ] @@ -2418,7 +2121,7 @@ "description": "The type of pending upload.", "enum": [ "None", - "TemporaryBlobReference" + "BlobReference" ], "x-ms-enum": { "name": "PendingUploadType", @@ -2430,9 +2133,9 @@ "description": "No pending upload." }, { - "name": "temporaryBlobReference", - "value": "TemporaryBlobReference", - "description": "Temporary Blob Reference is the only supported type." + "name": "BlobReference", + "value": "BlobReference", + "description": "Blob Reference is the only supported type." } ] } From 8bd4f873bf178aa26fb94525deebc311f07d9e07 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Tue, 29 Apr 2025 13:04:01 -0400 Subject: [PATCH 128/143] Fix Dataset Swagger Validation (#34339) * Update dataset examples * fix tsp validation * remove unused stage * fix datasetVersion -> version --------- Co-authored-by: Neehar Duvvuri --- specification/ai/Azure.AI.Projects/common/models.tsp | 2 +- .../Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json | 7 ++----- .../Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json | 4 ++-- .../Datasets_GetCredentials_MaximumSet_Gen.json | 2 +- .../Datasets_GetCredentials_MinimumSet_Gen.json | 2 +- .../2025-05-01/Datasets_GetVersion_MaximumSet_Gen.json | 3 +-- .../2025-05-01/Datasets_GetVersion_MinimumSet_Gen.json | 2 +- .../2025-05-01/Datasets_ListLatest_MaximumSet_Gen.json | 3 +-- .../2025-05-01/Datasets_ListLatest_MinimumSet_Gen.json | 2 +- .../2025-05-01/Datasets_ListVersions_MaximumSet_Gen.json | 3 +-- .../2025-05-01/Datasets_ListVersions_MinimumSet_Gen.json | 2 +- ...Datasets_StartPendingUploadVersion_MaximumSet_Gen.json | 8 ++++---- ...Datasets_StartPendingUploadVersion_MinimumSet_Gen.json | 6 +++--- .../Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json | 3 --- .../2025-05-01/Indexes_GetVersion_MaximumSet_Gen.json | 1 - .../2025-05-01/Indexes_ListLatest_MaximumSet_Gen.json | 1 - .../2025-05-01/Indexes_ListVersions_MaximumSet_Gen.json | 1 - .../Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json | 7 ++----- .../Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json | 4 ++-- .../Datasets_GetCredentials_MaximumSet_Gen.json | 2 +- .../Datasets_GetCredentials_MinimumSet_Gen.json | 2 +- .../Datasets_GetVersion_MaximumSet_Gen.json | 3 +-- .../Datasets_GetVersion_MinimumSet_Gen.json | 2 +- .../Datasets_ListLatest_MaximumSet_Gen.json | 3 +-- .../Datasets_ListLatest_MinimumSet_Gen.json | 2 +- .../Datasets_ListVersions_MaximumSet_Gen.json | 3 +-- .../Datasets_ListVersions_MinimumSet_Gen.json | 2 +- ...Datasets_StartPendingUploadVersion_MaximumSet_Gen.json | 8 ++++---- ...Datasets_StartPendingUploadVersion_MinimumSet_Gen.json | 6 +++--- .../Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json | 3 --- .../Indexes_GetVersion_MaximumSet_Gen.json | 1 - .../Indexes_ListLatest_MaximumSet_Gen.json | 1 - .../Indexes_ListVersions_MaximumSet_Gen.json | 1 - .../v1/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json | 7 ++----- .../v1/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json | 4 ++-- .../v1/Datasets_GetCredentials_MaximumSet_Gen.json | 2 +- .../v1/Datasets_GetCredentials_MinimumSet_Gen.json | 2 +- .../examples/v1/Datasets_GetVersion_MaximumSet_Gen.json | 3 +-- .../examples/v1/Datasets_GetVersion_MinimumSet_Gen.json | 2 +- .../examples/v1/Datasets_ListLatest_MaximumSet_Gen.json | 3 +-- .../examples/v1/Datasets_ListLatest_MinimumSet_Gen.json | 2 +- .../examples/v1/Datasets_ListVersions_MaximumSet_Gen.json | 3 +-- .../examples/v1/Datasets_ListVersions_MinimumSet_Gen.json | 2 +- ...Datasets_StartPendingUploadVersion_MaximumSet_Gen.json | 8 ++++---- ...Datasets_StartPendingUploadVersion_MinimumSet_Gen.json | 6 +++--- .../v1/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json | 3 --- .../examples/v1/Indexes_GetVersion_MaximumSet_Gen.json | 1 - .../examples/v1/Indexes_ListLatest_MaximumSet_Gen.json | 1 - .../examples/v1/Indexes_ListVersions_MaximumSet_Gen.json | 1 - .../preview/2025-05-15-preview/azure-ai-projects-1dp.json | 2 +- .../Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json | 7 ++----- .../Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json | 4 ++-- .../examples/Datasets_GetCredentials_MaximumSet_Gen.json | 2 +- .../examples/Datasets_GetCredentials_MinimumSet_Gen.json | 2 +- .../examples/Datasets_GetVersion_MaximumSet_Gen.json | 3 +-- .../examples/Datasets_GetVersion_MinimumSet_Gen.json | 2 +- .../examples/Datasets_ListLatest_MaximumSet_Gen.json | 3 +-- .../examples/Datasets_ListLatest_MinimumSet_Gen.json | 2 +- .../examples/Datasets_ListVersions_MaximumSet_Gen.json | 3 +-- .../examples/Datasets_ListVersions_MinimumSet_Gen.json | 2 +- ...Datasets_StartPendingUploadVersion_MaximumSet_Gen.json | 8 ++++---- ...Datasets_StartPendingUploadVersion_MinimumSet_Gen.json | 6 +++--- .../Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json | 3 --- .../examples/Indexes_GetVersion_MaximumSet_Gen.json | 1 - .../examples/Indexes_ListLatest_MaximumSet_Gen.json | 1 - .../examples/Indexes_ListVersions_MaximumSet_Gen.json | 1 - .../stable/2025-05-01/azure-ai-projects-1dp.json | 2 +- .../Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json | 7 ++----- .../Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json | 4 ++-- .../examples/Datasets_GetCredentials_MaximumSet_Gen.json | 2 +- .../examples/Datasets_GetCredentials_MinimumSet_Gen.json | 2 +- .../examples/Datasets_GetVersion_MaximumSet_Gen.json | 3 +-- .../examples/Datasets_GetVersion_MinimumSet_Gen.json | 2 +- .../examples/Datasets_ListLatest_MaximumSet_Gen.json | 3 +-- .../examples/Datasets_ListLatest_MinimumSet_Gen.json | 2 +- .../examples/Datasets_ListVersions_MaximumSet_Gen.json | 3 +-- .../examples/Datasets_ListVersions_MinimumSet_Gen.json | 2 +- ...Datasets_StartPendingUploadVersion_MaximumSet_Gen.json | 8 ++++---- ...Datasets_StartPendingUploadVersion_MinimumSet_Gen.json | 6 +++--- .../Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json | 3 --- .../examples/Indexes_GetVersion_MaximumSet_Gen.json | 1 - .../examples/Indexes_ListLatest_MaximumSet_Gen.json | 1 - .../examples/Indexes_ListVersions_MaximumSet_Gen.json | 1 - .../stable/v1/azure-ai-projects-1dp.json | 2 +- .../Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json | 7 ++----- .../Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json | 4 ++-- .../examples/Datasets_GetCredentials_MaximumSet_Gen.json | 2 +- .../examples/Datasets_GetCredentials_MinimumSet_Gen.json | 2 +- .../v1/examples/Datasets_GetVersion_MaximumSet_Gen.json | 3 +-- .../v1/examples/Datasets_GetVersion_MinimumSet_Gen.json | 2 +- .../v1/examples/Datasets_ListLatest_MaximumSet_Gen.json | 3 +-- .../v1/examples/Datasets_ListLatest_MinimumSet_Gen.json | 2 +- .../v1/examples/Datasets_ListVersions_MaximumSet_Gen.json | 3 +-- .../v1/examples/Datasets_ListVersions_MinimumSet_Gen.json | 2 +- ...Datasets_StartPendingUploadVersion_MaximumSet_Gen.json | 8 ++++---- ...Datasets_StartPendingUploadVersion_MinimumSet_Gen.json | 6 +++--- .../Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json | 3 --- .../v1/examples/Indexes_GetVersion_MaximumSet_Gen.json | 1 - .../v1/examples/Indexes_ListLatest_MaximumSet_Gen.json | 1 - .../v1/examples/Indexes_ListVersions_MaximumSet_Gen.json | 1 - 100 files changed, 118 insertions(+), 190 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/common/models.tsp b/specification/ai/Azure.AI.Projects/common/models.tsp index 86858eb0f339..b7a0f35517f4 100644 --- a/specification/ai/Azure.AI.Projects/common/models.tsp +++ b/specification/ai/Azure.AI.Projects/common/models.tsp @@ -85,7 +85,7 @@ model PendingUploadResponse { @doc("Version of asset to be created if user did not specify version when initially creating upload") version?: string; - @doc("TemporaryBlobReference is the only supported type") + @doc("BlobReference is the only supported type") pendingUploadType: PendingUploadType.BlobReference; } diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json index 6752aaa8bc3d..ebcb2307dccd 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -7,7 +7,6 @@ "version": "dfo", "body": { "type": "DatasetVersionUpdate", - "stage": "ubusuwsmmlhvxacmijddhckhiixf", "description": "zukluwbmoq", "tags": { "key8794": "ietydcqbwiebstkxrmqzsadlraapox" @@ -17,10 +16,9 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "arjpmieiaztcjy", "id": "nneuypway", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" @@ -28,10 +26,9 @@ }, "201": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "arjpmieiaztcjy", "id": "nneuypway", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json index e414bbc2c4bd..6df225061c08 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -12,7 +12,7 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" @@ -20,7 +20,7 @@ }, "201": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetCredentials_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetCredentials_MaximumSet_Gen.json index 7394d358dbd1..7f1a1fc3d0a0 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetCredentials_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetCredentials_MaximumSet_Gen.json @@ -10,7 +10,7 @@ "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "wvqzlobwdzstxryhnlqqtvp", "storageAccountArmId": "br", "credential": { diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetCredentials_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetCredentials_MinimumSet_Gen.json index 7d1a0a68b2c1..697c2a12a07f 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetCredentials_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetCredentials_MinimumSet_Gen.json @@ -10,7 +10,7 @@ "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "wvqzlobwdzstxryhnlqqtvp", "storageAccountArmId": "br", "credential": { diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetVersion_MaximumSet_Gen.json index a26d2acc9f90..ae873e09f984 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetVersion_MaximumSet_Gen.json @@ -9,10 +9,9 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "arjpmieiaztcjy", "id": "nneuypway", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetVersion_MinimumSet_Gen.json index d40a24ee92e6..704b7791d6c5 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_GetVersion_MinimumSet_Gen.json @@ -9,7 +9,7 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListLatest_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListLatest_MaximumSet_Gen.json index 9a2a10add544..85f841a8d488 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListLatest_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListLatest_MaximumSet_Gen.json @@ -13,10 +13,9 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "arjpmieiaztcjy", "id": "nneuypway", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListLatest_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListLatest_MinimumSet_Gen.json index db0c5738de26..f76f06e31a8c 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListLatest_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListLatest_MinimumSet_Gen.json @@ -9,7 +9,7 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListVersions_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListVersions_MaximumSet_Gen.json index ebf26ce040a4..dcfefdba5120 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListVersions_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListVersions_MaximumSet_Gen.json @@ -14,10 +14,9 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "arjpmieiaztcjy", "id": "nneuypway", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListVersions_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListVersions_MinimumSet_Gen.json index 1ab1c047076a..176b7e2e7237 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListVersions_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_ListVersions_MinimumSet_Gen.json @@ -10,7 +10,7 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json index 23e96352af95..084b9473a76d 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json @@ -8,13 +8,13 @@ "body": { "pendingUploadId": "cnvf", "connectionName": "qepjjlfgjlcalfuhchnojqlzhzrtcj", - "pendingUploadType": "TemporaryBlobReference" + "pendingUploadType": "BlobReference" } }, "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "wvqzlobwdzstxryhnlqqtvp", "storageAccountArmId": "br", "credential": { @@ -23,8 +23,8 @@ } }, "pendingUploadId": "mdhrbpu", - "datasetVersion": "qbbmljwtqwhbgdcajnywtky", - "pendingUploadType": "TemporaryBlobReference" + "version": "qbbmljwtqwhbgdcajnywtky", + "pendingUploadType": "BlobReference" } } } diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json index e0d8a19e6a56..d7100cf468ab 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json @@ -6,13 +6,13 @@ "name": "esicohztsytnvxxqcpzsxnesug", "version": "rrwerwxmkfuewptwsxeylxrcjkcp", "body": { - "pendingUploadType": "TemporaryBlobReference" + "pendingUploadType": "BlobReference" } }, "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "wvqzlobwdzstxryhnlqqtvp", "storageAccountArmId": "br", "credential": { @@ -21,7 +21,7 @@ } }, "pendingUploadId": "mdhrbpu", - "pendingUploadType": "TemporaryBlobReference" + "pendingUploadType": "BlobReference" } } } diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json index 925177446e13..c4d4e5e89412 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -7,7 +7,6 @@ "version": "lvwrjftywgtfixhxoxbmcs", "body": { "type": "IndexUpdate", - "stage": "uag", "description": "fvbkomalkxkj", "tags": { "key8738": "gmejegbwwrkawbdxuv" @@ -18,7 +17,6 @@ "200": { "body": { "type": "Index", - "stage": "narfsdjafpvh", "id": "ivqkxhapawoqvjiksau", "name": "mfyjvkkukqfgrzlqtzfbtuldr", "version": "qrygnibzlcruksqvwa" @@ -27,7 +25,6 @@ "201": { "body": { "type": "Index", - "stage": "narfsdjafpvh", "id": "ivqkxhapawoqvjiksau", "name": "mfyjvkkukqfgrzlqtzfbtuldr", "version": "qrygnibzlcruksqvwa" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_GetVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_GetVersion_MaximumSet_Gen.json index b6adf1415eac..641bb03093fa 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_GetVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_GetVersion_MaximumSet_Gen.json @@ -10,7 +10,6 @@ "200": { "body": { "type": "Index", - "stage": "narfsdjafpvh", "id": "ivqkxhapawoqvjiksau", "name": "mfyjvkkukqfgrzlqtzfbtuldr", "version": "qrygnibzlcruksqvwa" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListLatest_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListLatest_MaximumSet_Gen.json index 4a6754396c82..1e185187835c 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListLatest_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListLatest_MaximumSet_Gen.json @@ -14,7 +14,6 @@ "value": [ { "type": "Index", - "stage": "narfsdjafpvh", "id": "ivqkxhapawoqvjiksau", "name": "mfyjvkkukqfgrzlqtzfbtuldr", "version": "qrygnibzlcruksqvwa" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListVersions_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListVersions_MaximumSet_Gen.json index 7883b3206847..c2d1bda61ccf 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListVersions_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_ListVersions_MaximumSet_Gen.json @@ -15,7 +15,6 @@ "value": [ { "type": "Index", - "stage": "narfsdjafpvh", "id": "ivqkxhapawoqvjiksau", "name": "mfyjvkkukqfgrzlqtzfbtuldr", "version": "qrygnibzlcruksqvwa" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json index e438c67528bd..daccfcebabde 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -7,7 +7,6 @@ "version": "ecacrnqtmggfqsocagocpf", "body": { "type": "DatasetVersionUpdate", - "stage": "fjnqgrgtfdksnqvy", "description": "u", "tags": { "key7559": "ybrhnrxopsvmxqxibvysedlsy" @@ -17,10 +16,9 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "tnhmoqlcmprnxyjluyf", "id": "hvpdyfpeoqcl", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" @@ -28,10 +26,9 @@ }, "201": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "tnhmoqlcmprnxyjluyf", "id": "hvpdyfpeoqcl", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json index 02026a92e54d..3aa2f26de687 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -12,7 +12,7 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" @@ -20,7 +20,7 @@ }, "201": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetCredentials_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetCredentials_MaximumSet_Gen.json index 15a99bdd2273..45b5ee7ea754 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetCredentials_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetCredentials_MaximumSet_Gen.json @@ -10,7 +10,7 @@ "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "azqrjzvwamspuuvtqvvzfaxiasf", "storageAccountArmId": "deqizonopmijpxsmmzugiwnyy", "credential": { diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetCredentials_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetCredentials_MinimumSet_Gen.json index 2335307af0b2..9edf4191722b 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetCredentials_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetCredentials_MinimumSet_Gen.json @@ -10,7 +10,7 @@ "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "azqrjzvwamspuuvtqvvzfaxiasf", "storageAccountArmId": "deqizonopmijpxsmmzugiwnyy", "credential": { diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetVersion_MaximumSet_Gen.json index fb64479a6784..0e6641b1292e 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetVersion_MaximumSet_Gen.json @@ -9,10 +9,9 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "tnhmoqlcmprnxyjluyf", "id": "hvpdyfpeoqcl", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetVersion_MinimumSet_Gen.json index 850587b38861..2d7eff038cd2 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_GetVersion_MinimumSet_Gen.json @@ -9,7 +9,7 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListLatest_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListLatest_MaximumSet_Gen.json index c100ac17c0b1..c3d33fdcbe7c 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListLatest_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListLatest_MaximumSet_Gen.json @@ -13,10 +13,9 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "tnhmoqlcmprnxyjluyf", "id": "hvpdyfpeoqcl", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListLatest_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListLatest_MinimumSet_Gen.json index 87491bc925c4..9ec0c6d4ca45 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListLatest_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListLatest_MinimumSet_Gen.json @@ -9,7 +9,7 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListVersions_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListVersions_MaximumSet_Gen.json index 6798c80063cc..3ec8c8a774c7 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListVersions_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListVersions_MaximumSet_Gen.json @@ -14,10 +14,9 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "tnhmoqlcmprnxyjluyf", "id": "hvpdyfpeoqcl", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListVersions_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListVersions_MinimumSet_Gen.json index 7f85774425ec..ebdfaedd1954 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListVersions_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_ListVersions_MinimumSet_Gen.json @@ -10,7 +10,7 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json index 8f300e3774ca..d3713678fa88 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json @@ -8,13 +8,13 @@ "body": { "pendingUploadId": "mxjahcghabuplfwtlopiqgxtcyw", "connectionName": "bknvpmlisrqxaphkf", - "pendingUploadType": "TemporaryBlobReference" + "pendingUploadType": "BlobReference" } }, "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "azqrjzvwamspuuvtqvvzfaxiasf", "storageAccountArmId": "deqizonopmijpxsmmzugiwnyy", "credential": { @@ -23,8 +23,8 @@ } }, "pendingUploadId": "qgizwomhljzn", - "datasetVersion": "tegswajurquatmuhfde", - "pendingUploadType": "TemporaryBlobReference" + "version": "tegswajurquatmuhfde", + "pendingUploadType": "BlobReference" } } } diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json index 3fc13fb7e88a..e1df69a932f5 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json @@ -6,13 +6,13 @@ "name": "duxoiaywfik", "version": "yzzzt", "body": { - "pendingUploadType": "TemporaryBlobReference" + "pendingUploadType": "BlobReference" } }, "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "azqrjzvwamspuuvtqvvzfaxiasf", "storageAccountArmId": "deqizonopmijpxsmmzugiwnyy", "credential": { @@ -21,7 +21,7 @@ } }, "pendingUploadId": "qgizwomhljzn", - "pendingUploadType": "TemporaryBlobReference" + "pendingUploadType": "BlobReference" } } } diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json index 780520e50194..abc4405e5623 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -7,7 +7,6 @@ "version": "emphgqdq", "body": { "type": "IndexUpdate", - "stage": "wvzutndojum", "description": "vdwtgaudopguto", "tags": { "key8846": "serbpbugykgbwuwvh" @@ -18,7 +17,6 @@ "200": { "body": { "type": "Index", - "stage": "m", "id": "fxdrmhqrfmclzkjmfldnszfnztla", "name": "fiwkavutgfan", "version": "iqupugmfgctoxzdubrcdnzx" @@ -27,7 +25,6 @@ "201": { "body": { "type": "Index", - "stage": "m", "id": "fxdrmhqrfmclzkjmfldnszfnztla", "name": "fiwkavutgfan", "version": "iqupugmfgctoxzdubrcdnzx" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_GetVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_GetVersion_MaximumSet_Gen.json index 15c262af2bfe..5324a2883934 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_GetVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_GetVersion_MaximumSet_Gen.json @@ -10,7 +10,6 @@ "200": { "body": { "type": "Index", - "stage": "m", "id": "fxdrmhqrfmclzkjmfldnszfnztla", "name": "fiwkavutgfan", "version": "iqupugmfgctoxzdubrcdnzx" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListLatest_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListLatest_MaximumSet_Gen.json index 313d03f714cd..67ebe012f8e9 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListLatest_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListLatest_MaximumSet_Gen.json @@ -14,7 +14,6 @@ "value": [ { "type": "Index", - "stage": "m", "id": "fxdrmhqrfmclzkjmfldnszfnztla", "name": "fiwkavutgfan", "version": "iqupugmfgctoxzdubrcdnzx" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListVersions_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListVersions_MaximumSet_Gen.json index ad780f5d44e6..f776245cff56 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListVersions_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_ListVersions_MaximumSet_Gen.json @@ -15,7 +15,6 @@ "value": [ { "type": "Index", - "stage": "m", "id": "fxdrmhqrfmclzkjmfldnszfnztla", "name": "fiwkavutgfan", "version": "iqupugmfgctoxzdubrcdnzx" diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json index fdc318b8ad4c..5d7bc41a8dc0 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -7,7 +7,6 @@ "version": "utbfmfka", "body": { "type": "DatasetVersionUpdate", - "stage": "ykhrtvapwvcodwckimsobgwdvukw", "description": "grthjigklkewz", "tags": { "key868": "yjmiiufnnccqfiljtndr" @@ -17,10 +16,9 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "ovzqxbhqhq", "id": "cfgncrzpcpqbpxefd", "name": "zoskzytcqmndtyqwugy", "version": "joegai" @@ -28,10 +26,9 @@ }, "201": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "ovzqxbhqhq", "id": "cfgncrzpcpqbpxefd", "name": "zoskzytcqmndtyqwugy", "version": "joegai" diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json index 717e125e8fc1..d5614dd8f9f2 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -12,7 +12,7 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "zoskzytcqmndtyqwugy", "version": "joegai" @@ -20,7 +20,7 @@ }, "201": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "zoskzytcqmndtyqwugy", "version": "joegai" diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetCredentials_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetCredentials_MaximumSet_Gen.json index a65b58a588c3..3a94a266ebd4 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetCredentials_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetCredentials_MaximumSet_Gen.json @@ -10,7 +10,7 @@ "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "kbodccbnhdznekrtu", "storageAccountArmId": "gcsdeid", "credential": { diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetCredentials_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetCredentials_MinimumSet_Gen.json index 04278e63d1f0..acaebdaeb748 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetCredentials_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetCredentials_MinimumSet_Gen.json @@ -10,7 +10,7 @@ "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "kbodccbnhdznekrtu", "storageAccountArmId": "gcsdeid", "credential": { diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetVersion_MaximumSet_Gen.json index 01e572590dc5..5e8855d2e79b 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetVersion_MaximumSet_Gen.json @@ -9,10 +9,9 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "ovzqxbhqhq", "id": "cfgncrzpcpqbpxefd", "name": "zoskzytcqmndtyqwugy", "version": "joegai" diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetVersion_MinimumSet_Gen.json index 103a5ec40cf3..f3295b63731b 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_GetVersion_MinimumSet_Gen.json @@ -9,7 +9,7 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "zoskzytcqmndtyqwugy", "version": "joegai" diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListLatest_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListLatest_MaximumSet_Gen.json index 55f7743c6902..9f3ef0ba4438 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListLatest_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListLatest_MaximumSet_Gen.json @@ -13,10 +13,9 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "ovzqxbhqhq", "id": "cfgncrzpcpqbpxefd", "name": "zoskzytcqmndtyqwugy", "version": "joegai" diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListLatest_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListLatest_MinimumSet_Gen.json index 948ca26a188a..31fc6a22a0fb 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListLatest_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListLatest_MinimumSet_Gen.json @@ -9,7 +9,7 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "zoskzytcqmndtyqwugy", "version": "joegai" diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListVersions_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListVersions_MaximumSet_Gen.json index 5f6bdfb1ab2f..eea8f66948db 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListVersions_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListVersions_MaximumSet_Gen.json @@ -14,10 +14,9 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "ovzqxbhqhq", "id": "cfgncrzpcpqbpxefd", "name": "zoskzytcqmndtyqwugy", "version": "joegai" diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListVersions_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListVersions_MinimumSet_Gen.json index 664c90c1d672..eb947adf9e1c 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListVersions_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_ListVersions_MinimumSet_Gen.json @@ -10,7 +10,7 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "zoskzytcqmndtyqwugy", "version": "joegai" diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json index b2361fc032f3..dec49019bfd6 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json @@ -8,13 +8,13 @@ "body": { "pendingUploadId": "gxuutkdhlygsmsbtszqzx", "connectionName": "hsgskbhwucytwglwlm", - "pendingUploadType": "TemporaryBlobReference" + "pendingUploadType": "BlobReference" } }, "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "kbodccbnhdznekrtu", "storageAccountArmId": "gcsdeid", "credential": { @@ -23,8 +23,8 @@ } }, "pendingUploadId": "qdxymiww", - "datasetVersion": "bofnujdjvnnhjtzzu", - "pendingUploadType": "TemporaryBlobReference" + "version": "bofnujdjvnnhjtzzu", + "pendingUploadType": "BlobReference" } } } diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json index bcd3ee591099..8df70d95ceab 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json @@ -6,13 +6,13 @@ "name": "atopkjwxsjtforndczju", "version": "yftpnjxwjylhixypopcytxd", "body": { - "pendingUploadType": "TemporaryBlobReference" + "pendingUploadType": "BlobReference" } }, "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "kbodccbnhdznekrtu", "storageAccountArmId": "gcsdeid", "credential": { @@ -21,7 +21,7 @@ } }, "pendingUploadId": "qdxymiww", - "pendingUploadType": "TemporaryBlobReference" + "pendingUploadType": "BlobReference" } } } diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json index ff3a22cb16ab..af165cd1ed1f 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -7,7 +7,6 @@ "version": "hxutytnzwioiijfinpdojrnrqhqb", "body": { "type": "IndexUpdate", - "stage": "ephc", "description": "wtjqhnlwihffw", "tags": { "key1654": "aqtywrvy" @@ -18,7 +17,6 @@ "200": { "body": { "type": "Index", - "stage": "ekzfmrqim", "id": "xtjevbrwrwuwkbujuwpq", "name": "wwikvkcdcobt", "version": "swnonkxmjl" @@ -27,7 +25,6 @@ "201": { "body": { "type": "Index", - "stage": "ekzfmrqim", "id": "xtjevbrwrwuwkbujuwpq", "name": "wwikvkcdcobt", "version": "swnonkxmjl" diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Indexes_GetVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_GetVersion_MaximumSet_Gen.json index f45394f89cf7..22119a544952 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Indexes_GetVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_GetVersion_MaximumSet_Gen.json @@ -10,7 +10,6 @@ "200": { "body": { "type": "Index", - "stage": "ekzfmrqim", "id": "xtjevbrwrwuwkbujuwpq", "name": "wwikvkcdcobt", "version": "swnonkxmjl" diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListLatest_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListLatest_MaximumSet_Gen.json index f46b82f038a6..5a34d862b95c 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListLatest_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListLatest_MaximumSet_Gen.json @@ -14,7 +14,6 @@ "value": [ { "type": "Index", - "stage": "ekzfmrqim", "id": "xtjevbrwrwuwkbujuwpq", "name": "wwikvkcdcobt", "version": "swnonkxmjl" diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListVersions_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListVersions_MaximumSet_Gen.json index 3efa91a588c9..63e20b44b11a 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListVersions_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_ListVersions_MaximumSet_Gen.json @@ -15,7 +15,6 @@ "value": [ { "type": "Index", - "stage": "ekzfmrqim", "id": "xtjevbrwrwuwkbujuwpq", "name": "wwikvkcdcobt", "version": "swnonkxmjl" diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json index 3489f4f51648..61c810b6413d 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json @@ -2953,7 +2953,7 @@ }, "pendingUploadType": { "type": "string", - "description": "TemporaryBlobReference is the only supported type", + "description": "BlobReference is the only supported type", "enum": [ "BlobReference" ], diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json index e438c67528bd..daccfcebabde 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -7,7 +7,6 @@ "version": "ecacrnqtmggfqsocagocpf", "body": { "type": "DatasetVersionUpdate", - "stage": "fjnqgrgtfdksnqvy", "description": "u", "tags": { "key7559": "ybrhnrxopsvmxqxibvysedlsy" @@ -17,10 +16,9 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "tnhmoqlcmprnxyjluyf", "id": "hvpdyfpeoqcl", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" @@ -28,10 +26,9 @@ }, "201": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "tnhmoqlcmprnxyjluyf", "id": "hvpdyfpeoqcl", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json index 02026a92e54d..3aa2f26de687 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -12,7 +12,7 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" @@ -20,7 +20,7 @@ }, "201": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetCredentials_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetCredentials_MaximumSet_Gen.json index 15a99bdd2273..45b5ee7ea754 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetCredentials_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetCredentials_MaximumSet_Gen.json @@ -10,7 +10,7 @@ "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "azqrjzvwamspuuvtqvvzfaxiasf", "storageAccountArmId": "deqizonopmijpxsmmzugiwnyy", "credential": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetCredentials_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetCredentials_MinimumSet_Gen.json index 2335307af0b2..9edf4191722b 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetCredentials_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetCredentials_MinimumSet_Gen.json @@ -10,7 +10,7 @@ "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "azqrjzvwamspuuvtqvvzfaxiasf", "storageAccountArmId": "deqizonopmijpxsmmzugiwnyy", "credential": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetVersion_MaximumSet_Gen.json index fb64479a6784..0e6641b1292e 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetVersion_MaximumSet_Gen.json @@ -9,10 +9,9 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "tnhmoqlcmprnxyjluyf", "id": "hvpdyfpeoqcl", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetVersion_MinimumSet_Gen.json index 850587b38861..2d7eff038cd2 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_GetVersion_MinimumSet_Gen.json @@ -9,7 +9,7 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListLatest_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListLatest_MaximumSet_Gen.json index c100ac17c0b1..c3d33fdcbe7c 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListLatest_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListLatest_MaximumSet_Gen.json @@ -13,10 +13,9 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "tnhmoqlcmprnxyjluyf", "id": "hvpdyfpeoqcl", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListLatest_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListLatest_MinimumSet_Gen.json index 87491bc925c4..9ec0c6d4ca45 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListLatest_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListLatest_MinimumSet_Gen.json @@ -9,7 +9,7 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListVersions_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListVersions_MaximumSet_Gen.json index 6798c80063cc..3ec8c8a774c7 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListVersions_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListVersions_MaximumSet_Gen.json @@ -14,10 +14,9 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "tnhmoqlcmprnxyjluyf", "id": "hvpdyfpeoqcl", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListVersions_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListVersions_MinimumSet_Gen.json index 7f85774425ec..ebdfaedd1954 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListVersions_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_ListVersions_MinimumSet_Gen.json @@ -10,7 +10,7 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "xtdmvwhhobloqqsovgpynsnow", "version": "eaixzft" diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json index 8f300e3774ca..d3713678fa88 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json @@ -8,13 +8,13 @@ "body": { "pendingUploadId": "mxjahcghabuplfwtlopiqgxtcyw", "connectionName": "bknvpmlisrqxaphkf", - "pendingUploadType": "TemporaryBlobReference" + "pendingUploadType": "BlobReference" } }, "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "azqrjzvwamspuuvtqvvzfaxiasf", "storageAccountArmId": "deqizonopmijpxsmmzugiwnyy", "credential": { @@ -23,8 +23,8 @@ } }, "pendingUploadId": "qgizwomhljzn", - "datasetVersion": "tegswajurquatmuhfde", - "pendingUploadType": "TemporaryBlobReference" + "version": "tegswajurquatmuhfde", + "pendingUploadType": "BlobReference" } } } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json index 3fc13fb7e88a..e1df69a932f5 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json @@ -6,13 +6,13 @@ "name": "duxoiaywfik", "version": "yzzzt", "body": { - "pendingUploadType": "TemporaryBlobReference" + "pendingUploadType": "BlobReference" } }, "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "azqrjzvwamspuuvtqvvzfaxiasf", "storageAccountArmId": "deqizonopmijpxsmmzugiwnyy", "credential": { @@ -21,7 +21,7 @@ } }, "pendingUploadId": "qgizwomhljzn", - "pendingUploadType": "TemporaryBlobReference" + "pendingUploadType": "BlobReference" } } } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json index 780520e50194..abc4405e5623 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -7,7 +7,6 @@ "version": "emphgqdq", "body": { "type": "IndexUpdate", - "stage": "wvzutndojum", "description": "vdwtgaudopguto", "tags": { "key8846": "serbpbugykgbwuwvh" @@ -18,7 +17,6 @@ "200": { "body": { "type": "Index", - "stage": "m", "id": "fxdrmhqrfmclzkjmfldnszfnztla", "name": "fiwkavutgfan", "version": "iqupugmfgctoxzdubrcdnzx" @@ -27,7 +25,6 @@ "201": { "body": { "type": "Index", - "stage": "m", "id": "fxdrmhqrfmclzkjmfldnszfnztla", "name": "fiwkavutgfan", "version": "iqupugmfgctoxzdubrcdnzx" diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_GetVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_GetVersion_MaximumSet_Gen.json index 15c262af2bfe..5324a2883934 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_GetVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_GetVersion_MaximumSet_Gen.json @@ -10,7 +10,6 @@ "200": { "body": { "type": "Index", - "stage": "m", "id": "fxdrmhqrfmclzkjmfldnszfnztla", "name": "fiwkavutgfan", "version": "iqupugmfgctoxzdubrcdnzx" diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListLatest_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListLatest_MaximumSet_Gen.json index 313d03f714cd..67ebe012f8e9 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListLatest_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListLatest_MaximumSet_Gen.json @@ -14,7 +14,6 @@ "value": [ { "type": "Index", - "stage": "m", "id": "fxdrmhqrfmclzkjmfldnszfnztla", "name": "fiwkavutgfan", "version": "iqupugmfgctoxzdubrcdnzx" diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListVersions_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListVersions_MaximumSet_Gen.json index ad780f5d44e6..f776245cff56 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListVersions_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_ListVersions_MaximumSet_Gen.json @@ -15,7 +15,6 @@ "value": [ { "type": "Index", - "stage": "m", "id": "fxdrmhqrfmclzkjmfldnszfnztla", "name": "fiwkavutgfan", "version": "iqupugmfgctoxzdubrcdnzx" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json index 0604659116eb..b92db8831a02 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json @@ -2101,7 +2101,7 @@ }, "pendingUploadType": { "type": "string", - "description": "TemporaryBlobReference is the only supported type", + "description": "BlobReference is the only supported type", "enum": [ "BlobReference" ], diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json index 6752aaa8bc3d..ebcb2307dccd 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -7,7 +7,6 @@ "version": "dfo", "body": { "type": "DatasetVersionUpdate", - "stage": "ubusuwsmmlhvxacmijddhckhiixf", "description": "zukluwbmoq", "tags": { "key8794": "ietydcqbwiebstkxrmqzsadlraapox" @@ -17,10 +16,9 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "arjpmieiaztcjy", "id": "nneuypway", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" @@ -28,10 +26,9 @@ }, "201": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "arjpmieiaztcjy", "id": "nneuypway", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json index e414bbc2c4bd..6df225061c08 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -12,7 +12,7 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" @@ -20,7 +20,7 @@ }, "201": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetCredentials_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetCredentials_MaximumSet_Gen.json index 7394d358dbd1..7f1a1fc3d0a0 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetCredentials_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetCredentials_MaximumSet_Gen.json @@ -10,7 +10,7 @@ "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "wvqzlobwdzstxryhnlqqtvp", "storageAccountArmId": "br", "credential": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetCredentials_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetCredentials_MinimumSet_Gen.json index 7d1a0a68b2c1..697c2a12a07f 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetCredentials_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetCredentials_MinimumSet_Gen.json @@ -10,7 +10,7 @@ "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "wvqzlobwdzstxryhnlqqtvp", "storageAccountArmId": "br", "credential": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetVersion_MaximumSet_Gen.json index a26d2acc9f90..ae873e09f984 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetVersion_MaximumSet_Gen.json @@ -9,10 +9,9 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "arjpmieiaztcjy", "id": "nneuypway", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetVersion_MinimumSet_Gen.json index d40a24ee92e6..704b7791d6c5 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_GetVersion_MinimumSet_Gen.json @@ -9,7 +9,7 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListLatest_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListLatest_MaximumSet_Gen.json index 9a2a10add544..85f841a8d488 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListLatest_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListLatest_MaximumSet_Gen.json @@ -13,10 +13,9 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "arjpmieiaztcjy", "id": "nneuypway", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListLatest_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListLatest_MinimumSet_Gen.json index db0c5738de26..f76f06e31a8c 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListLatest_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListLatest_MinimumSet_Gen.json @@ -9,7 +9,7 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListVersions_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListVersions_MaximumSet_Gen.json index ebf26ce040a4..dcfefdba5120 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListVersions_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListVersions_MaximumSet_Gen.json @@ -14,10 +14,9 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "arjpmieiaztcjy", "id": "nneuypway", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListVersions_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListVersions_MinimumSet_Gen.json index 1ab1c047076a..176b7e2e7237 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListVersions_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_ListVersions_MinimumSet_Gen.json @@ -10,7 +10,7 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "qnagvpitbcc", "version": "vcdlshlzkzyuocakljbdjkaasc" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json index 23e96352af95..084b9473a76d 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json @@ -8,13 +8,13 @@ "body": { "pendingUploadId": "cnvf", "connectionName": "qepjjlfgjlcalfuhchnojqlzhzrtcj", - "pendingUploadType": "TemporaryBlobReference" + "pendingUploadType": "BlobReference" } }, "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "wvqzlobwdzstxryhnlqqtvp", "storageAccountArmId": "br", "credential": { @@ -23,8 +23,8 @@ } }, "pendingUploadId": "mdhrbpu", - "datasetVersion": "qbbmljwtqwhbgdcajnywtky", - "pendingUploadType": "TemporaryBlobReference" + "version": "qbbmljwtqwhbgdcajnywtky", + "pendingUploadType": "BlobReference" } } } diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json index e0d8a19e6a56..d7100cf468ab 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json @@ -6,13 +6,13 @@ "name": "esicohztsytnvxxqcpzsxnesug", "version": "rrwerwxmkfuewptwsxeylxrcjkcp", "body": { - "pendingUploadType": "TemporaryBlobReference" + "pendingUploadType": "BlobReference" } }, "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "wvqzlobwdzstxryhnlqqtvp", "storageAccountArmId": "br", "credential": { @@ -21,7 +21,7 @@ } }, "pendingUploadId": "mdhrbpu", - "pendingUploadType": "TemporaryBlobReference" + "pendingUploadType": "BlobReference" } } } diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json index 925177446e13..c4d4e5e89412 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -7,7 +7,6 @@ "version": "lvwrjftywgtfixhxoxbmcs", "body": { "type": "IndexUpdate", - "stage": "uag", "description": "fvbkomalkxkj", "tags": { "key8738": "gmejegbwwrkawbdxuv" @@ -18,7 +17,6 @@ "200": { "body": { "type": "Index", - "stage": "narfsdjafpvh", "id": "ivqkxhapawoqvjiksau", "name": "mfyjvkkukqfgrzlqtzfbtuldr", "version": "qrygnibzlcruksqvwa" @@ -27,7 +25,6 @@ "201": { "body": { "type": "Index", - "stage": "narfsdjafpvh", "id": "ivqkxhapawoqvjiksau", "name": "mfyjvkkukqfgrzlqtzfbtuldr", "version": "qrygnibzlcruksqvwa" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_GetVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_GetVersion_MaximumSet_Gen.json index b6adf1415eac..641bb03093fa 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_GetVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_GetVersion_MaximumSet_Gen.json @@ -10,7 +10,6 @@ "200": { "body": { "type": "Index", - "stage": "narfsdjafpvh", "id": "ivqkxhapawoqvjiksau", "name": "mfyjvkkukqfgrzlqtzfbtuldr", "version": "qrygnibzlcruksqvwa" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListLatest_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListLatest_MaximumSet_Gen.json index 4a6754396c82..1e185187835c 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListLatest_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListLatest_MaximumSet_Gen.json @@ -14,7 +14,6 @@ "value": [ { "type": "Index", - "stage": "narfsdjafpvh", "id": "ivqkxhapawoqvjiksau", "name": "mfyjvkkukqfgrzlqtzfbtuldr", "version": "qrygnibzlcruksqvwa" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListVersions_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListVersions_MaximumSet_Gen.json index 7883b3206847..c2d1bda61ccf 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListVersions_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_ListVersions_MaximumSet_Gen.json @@ -15,7 +15,6 @@ "value": [ { "type": "Index", - "stage": "narfsdjafpvh", "id": "ivqkxhapawoqvjiksau", "name": "mfyjvkkukqfgrzlqtzfbtuldr", "version": "qrygnibzlcruksqvwa" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json index 195635ee0e74..68608cb5a18a 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json @@ -2101,7 +2101,7 @@ }, "pendingUploadType": { "type": "string", - "description": "TemporaryBlobReference is the only supported type", + "description": "BlobReference is the only supported type", "enum": [ "BlobReference" ], diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json index fdc318b8ad4c..5d7bc41a8dc0 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -7,7 +7,6 @@ "version": "utbfmfka", "body": { "type": "DatasetVersionUpdate", - "stage": "ykhrtvapwvcodwckimsobgwdvukw", "description": "grthjigklkewz", "tags": { "key868": "yjmiiufnnccqfiljtndr" @@ -17,10 +16,9 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "ovzqxbhqhq", "id": "cfgncrzpcpqbpxefd", "name": "zoskzytcqmndtyqwugy", "version": "joegai" @@ -28,10 +26,9 @@ }, "201": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "ovzqxbhqhq", "id": "cfgncrzpcpqbpxefd", "name": "zoskzytcqmndtyqwugy", "version": "joegai" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json index 717e125e8fc1..d5614dd8f9f2 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -12,7 +12,7 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "zoskzytcqmndtyqwugy", "version": "joegai" @@ -20,7 +20,7 @@ }, "201": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "zoskzytcqmndtyqwugy", "version": "joegai" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetCredentials_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetCredentials_MaximumSet_Gen.json index a65b58a588c3..3a94a266ebd4 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetCredentials_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetCredentials_MaximumSet_Gen.json @@ -10,7 +10,7 @@ "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "kbodccbnhdznekrtu", "storageAccountArmId": "gcsdeid", "credential": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetCredentials_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetCredentials_MinimumSet_Gen.json index 04278e63d1f0..acaebdaeb748 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetCredentials_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetCredentials_MinimumSet_Gen.json @@ -10,7 +10,7 @@ "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "kbodccbnhdznekrtu", "storageAccountArmId": "gcsdeid", "credential": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetVersion_MaximumSet_Gen.json index 01e572590dc5..5e8855d2e79b 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetVersion_MaximumSet_Gen.json @@ -9,10 +9,9 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "ovzqxbhqhq", "id": "cfgncrzpcpqbpxefd", "name": "zoskzytcqmndtyqwugy", "version": "joegai" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetVersion_MinimumSet_Gen.json index 103a5ec40cf3..f3295b63731b 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_GetVersion_MinimumSet_Gen.json @@ -9,7 +9,7 @@ "responses": { "200": { "body": { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "zoskzytcqmndtyqwugy", "version": "joegai" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListLatest_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListLatest_MaximumSet_Gen.json index 55f7743c6902..9f3ef0ba4438 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListLatest_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListLatest_MaximumSet_Gen.json @@ -13,10 +13,9 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "ovzqxbhqhq", "id": "cfgncrzpcpqbpxefd", "name": "zoskzytcqmndtyqwugy", "version": "joegai" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListLatest_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListLatest_MinimumSet_Gen.json index 948ca26a188a..31fc6a22a0fb 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListLatest_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListLatest_MinimumSet_Gen.json @@ -9,7 +9,7 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "zoskzytcqmndtyqwugy", "version": "joegai" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListVersions_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListVersions_MaximumSet_Gen.json index 5f6bdfb1ab2f..eea8f66948db 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListVersions_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListVersions_MaximumSet_Gen.json @@ -14,10 +14,9 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "isReference": true, - "stage": "ovzqxbhqhq", "id": "cfgncrzpcpqbpxefd", "name": "zoskzytcqmndtyqwugy", "version": "joegai" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListVersions_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListVersions_MinimumSet_Gen.json index 664c90c1d672..eb947adf9e1c 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListVersions_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_ListVersions_MinimumSet_Gen.json @@ -10,7 +10,7 @@ "body": { "value": [ { - "datasetUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", "type": "DatasetVersion", "name": "zoskzytcqmndtyqwugy", "version": "joegai" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json index b2361fc032f3..dec49019bfd6 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_StartPendingUploadVersion_MaximumSet_Gen.json @@ -8,13 +8,13 @@ "body": { "pendingUploadId": "gxuutkdhlygsmsbtszqzx", "connectionName": "hsgskbhwucytwglwlm", - "pendingUploadType": "TemporaryBlobReference" + "pendingUploadType": "BlobReference" } }, "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "kbodccbnhdznekrtu", "storageAccountArmId": "gcsdeid", "credential": { @@ -23,8 +23,8 @@ } }, "pendingUploadId": "qdxymiww", - "datasetVersion": "bofnujdjvnnhjtzzu", - "pendingUploadType": "TemporaryBlobReference" + "version": "bofnujdjvnnhjtzzu", + "pendingUploadType": "BlobReference" } } } diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json index bcd3ee591099..8df70d95ceab 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_StartPendingUploadVersion_MinimumSet_Gen.json @@ -6,13 +6,13 @@ "name": "atopkjwxsjtforndczju", "version": "yftpnjxwjylhixypopcytxd", "body": { - "pendingUploadType": "TemporaryBlobReference" + "pendingUploadType": "BlobReference" } }, "responses": { "200": { "body": { - "blobReferenceForConsumption": { + "blobReference": { "blobUri": "kbodccbnhdznekrtu", "storageAccountArmId": "gcsdeid", "credential": { @@ -21,7 +21,7 @@ } }, "pendingUploadId": "qdxymiww", - "pendingUploadType": "TemporaryBlobReference" + "pendingUploadType": "BlobReference" } } } diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json index ff3a22cb16ab..af165cd1ed1f 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -7,7 +7,6 @@ "version": "hxutytnzwioiijfinpdojrnrqhqb", "body": { "type": "IndexUpdate", - "stage": "ephc", "description": "wtjqhnlwihffw", "tags": { "key1654": "aqtywrvy" @@ -18,7 +17,6 @@ "200": { "body": { "type": "Index", - "stage": "ekzfmrqim", "id": "xtjevbrwrwuwkbujuwpq", "name": "wwikvkcdcobt", "version": "swnonkxmjl" @@ -27,7 +25,6 @@ "201": { "body": { "type": "Index", - "stage": "ekzfmrqim", "id": "xtjevbrwrwuwkbujuwpq", "name": "wwikvkcdcobt", "version": "swnonkxmjl" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_GetVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_GetVersion_MaximumSet_Gen.json index f45394f89cf7..22119a544952 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_GetVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_GetVersion_MaximumSet_Gen.json @@ -10,7 +10,6 @@ "200": { "body": { "type": "Index", - "stage": "ekzfmrqim", "id": "xtjevbrwrwuwkbujuwpq", "name": "wwikvkcdcobt", "version": "swnonkxmjl" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListLatest_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListLatest_MaximumSet_Gen.json index f46b82f038a6..5a34d862b95c 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListLatest_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListLatest_MaximumSet_Gen.json @@ -14,7 +14,6 @@ "value": [ { "type": "Index", - "stage": "ekzfmrqim", "id": "xtjevbrwrwuwkbujuwpq", "name": "wwikvkcdcobt", "version": "swnonkxmjl" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListVersions_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListVersions_MaximumSet_Gen.json index 3efa91a588c9..63e20b44b11a 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListVersions_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_ListVersions_MaximumSet_Gen.json @@ -15,7 +15,6 @@ "value": [ { "type": "Index", - "stage": "ekzfmrqim", "id": "xtjevbrwrwuwkbujuwpq", "name": "wwikvkcdcobt", "version": "swnonkxmjl" From 287eea221ca796aca977914e049ba3592379f0c5 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Tue, 29 Apr 2025 14:46:12 -0700 Subject: [PATCH 129/143] Additional round of updates (#34333) * Remove `-1dp` from swagger file name. Update route for get connecitons with credentials * Remove doc string comment `[Required]` * Fix swagger name in data-plane readme.md --- specification/ai/Azure.AI.Projects/connections/routes.tsp | 2 +- specification/ai/Azure.AI.Projects/datasets/models.tsp | 2 +- specification/ai/Azure.AI.Projects/tspconfig.yaml | 2 +- ...{azure-ai-projects-1dp.json => azure-ai-projects.json} | 4 ++-- specification/ai/data-plane/Azure.AI.Projects/readme.md | 8 ++++---- ...{azure-ai-projects-1dp.json => azure-ai-projects.json} | 4 ++-- ...{azure-ai-projects-1dp.json => azure-ai-projects.json} | 4 ++-- 7 files changed, 13 insertions(+), 13 deletions(-) rename specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/{azure-ai-projects-1dp.json => azure-ai-projects.json} (99%) rename specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/{azure-ai-projects-1dp.json => azure-ai-projects.json} (99%) rename specification/ai/data-plane/Azure.AI.Projects/stable/v1/{azure-ai-projects-1dp.json => azure-ai-projects.json} (99%) diff --git a/specification/ai/Azure.AI.Projects/connections/routes.tsp b/specification/ai/Azure.AI.Projects/connections/routes.tsp index 1c928febdf52..1e04fe86ac9c 100644 --- a/specification/ai/Azure.AI.Projects/connections/routes.tsp +++ b/specification/ai/Azure.AI.Projects/connections/routes.tsp @@ -25,7 +25,7 @@ interface Connections { @doc("Get a connection by name, with its connection credentials") @TypeSpec.Http.post @Rest.actionSeparator("/") - @Rest.action("withCredentials") + @Rest.action("getConnectionWithCredentials") getWithCredentials is ConnectionOperations.ResourceAction< Connection, {}, diff --git a/specification/ai/Azure.AI.Projects/datasets/models.tsp b/specification/ai/Azure.AI.Projects/datasets/models.tsp index f371c6c2e745..6b1895fd7be7 100644 --- a/specification/ai/Azure.AI.Projects/datasets/models.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/models.tsp @@ -28,7 +28,7 @@ union DatasetType { @discriminator("type") @added(Versions.v2025_05_01) model DatasetVersion { - @doc("[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330") + @doc("URI of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330") @visibility(Lifecycle.Read, Lifecycle.Create) @minLength(1) @pattern("[a-zA-Z0-9_]") diff --git a/specification/ai/Azure.AI.Projects/tspconfig.yaml b/specification/ai/Azure.AI.Projects/tspconfig.yaml index b4bb1ea518e8..3b38feb962b2 100644 --- a/specification/ai/Azure.AI.Projects/tspconfig.yaml +++ b/specification/ai/Azure.AI.Projects/tspconfig.yaml @@ -8,7 +8,7 @@ options: emitter-output-dir: "{project-root}/.." azure-resource-provider-folder: "data-plane" emit-lro-options: "none" - output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/azure-ai-projects-1dp.json" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/azure-ai-projects.json" "@azure-tools/typespec-python": package-mode: "dataplane" package-dir: "azure-ai-projects" diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json similarity index 99% rename from specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json rename to specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json index 61c810b6413d..efbc9b3dccdf 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json @@ -239,7 +239,7 @@ } } }, - "/connections/{name}/withCredentials": { + "/connections/{name}/getConnectionWithCredentials": { "post": { "operationId": "Connections_GetWithCredentials", "description": "Get a connection by name, with its connection credentials", @@ -2238,7 +2238,7 @@ "properties": { "dataUri": { "type": "string", - "description": "[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330", + "description": "URI of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330", "minLength": 1, "pattern": "[a-zA-Z0-9_]", "x-ms-mutability": [ diff --git a/specification/ai/data-plane/Azure.AI.Projects/readme.md b/specification/ai/data-plane/Azure.AI.Projects/readme.md index b11e4bcd9332..1f090a5ed13f 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/readme.md +++ b/specification/ai/data-plane/Azure.AI.Projects/readme.md @@ -19,28 +19,28 @@ openapi-type: data-plane These settings apply only when `--tag=v1` is specified on the command line. ``` yaml $(tag) == 'latest' input-file: - - stable/v1/azure-ai-projects-1dp.json + - stable/v1/azure-ai-projects.json ``` ### Release v2025-05-01 These settings apply only when `--tag=v025-05-01` is specified on the command line. ``` yaml $(tag) == '2025-05-01' input-file: - - stable/2025-05-01/azure-ai-projects-1dp.json + - stable/2025-05-01/azure-ai-projects.json ``` ### Release v2025-05-15-preview These settings apply only when `--tag=2025-05-15-preview` is specified on the command line. ``` yaml $(tag) == '2025-05-15-preview' input-file: - - preview/2025-05-15-preview/azure-ai-projects-1dp.json + - preview/2025-05-15-preview/azure-ai-projects.json ``` # Suppressions ``` yaml suppressions: - code: OperationIdNounVerb - from: azure-ai-projects-1dp.json + from: azure-ai-projects.json where: $.paths["/evaluations/runs:runAgent"].post.operationId reason: False alert. Evaluation should appear after underscore for clarity's sake. ``` diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json similarity index 99% rename from specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json index b92db8831a02..e7193f41fb9d 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json @@ -239,7 +239,7 @@ } } }, - "/connections/{name}/withCredentials": { + "/connections/{name}/getConnectionWithCredentials": { "post": { "operationId": "Connections_GetWithCredentials", "description": "Get a connection by name, with its connection credentials", @@ -1542,7 +1542,7 @@ "properties": { "dataUri": { "type": "string", - "description": "[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330", + "description": "URI of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330", "minLength": 1, "pattern": "[a-zA-Z0-9_]", "x-ms-mutability": [ diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json similarity index 99% rename from specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json rename to specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json index 68608cb5a18a..c6049688c720 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects-1dp.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json @@ -239,7 +239,7 @@ } } }, - "/connections/{name}/withCredentials": { + "/connections/{name}/getConnectionWithCredentials": { "post": { "operationId": "Connections_GetWithCredentials", "description": "Get a connection by name, with its connection credentials", @@ -1542,7 +1542,7 @@ "properties": { "dataUri": { "type": "string", - "description": "[Required] Uri of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330", + "description": "URI of the data. Example: https://go.microsoft.com/fwlink/?linkid=2202330", "minLength": 1, "pattern": "[a-zA-Z0-9_]", "x-ms-mutability": [ From 9f83acd412aa185254294752506dfcf88d401dfd Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Wed, 30 Apr 2025 12:37:06 -0400 Subject: [PATCH 130/143] Add continuationToken decorator for dataset/index list (#34372) Co-authored-by: Neehar Duvvuri --- specification/ai/Azure.AI.Projects/datasets/routes.tsp | 1 + specification/ai/Azure.AI.Projects/indexes/routes.tsp | 1 + 2 files changed, 2 insertions(+) diff --git a/specification/ai/Azure.AI.Projects/datasets/routes.tsp b/specification/ai/Azure.AI.Projects/datasets/routes.tsp index 8a359758efc3..30815691492c 100644 --- a/specification/ai/Azure.AI.Projects/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/routes.tsp @@ -15,6 +15,7 @@ namespace Azure.AI.Projects; alias ListDatasetVersionsParameters = { @doc("Continuation token for pagination.") @query + @continuationToken continuationToken?: string; }; diff --git a/specification/ai/Azure.AI.Projects/indexes/routes.tsp b/specification/ai/Azure.AI.Projects/indexes/routes.tsp index d01c5d9fb166..7c452ef5937a 100644 --- a/specification/ai/Azure.AI.Projects/indexes/routes.tsp +++ b/specification/ai/Azure.AI.Projects/indexes/routes.tsp @@ -14,6 +14,7 @@ namespace Azure.AI.Projects; alias ListIndexVersionParameters = { @doc("Continuation token for pagination.") @query + @continuationToken continuationToken?: string; }; From dfb5351fce1f2ab065bfac0cf99c3032d3cf10f4 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Thu, 1 May 2025 11:23:01 -0700 Subject: [PATCH 131/143] Update scope --- specification/ai/Azure.AI.Projects/main.tsp | 2 +- .../preview/2025-05-15-preview/azure-ai-projects.json | 4 ++-- .../stable/2025-05-01/azure-ai-projects.json | 4 ++-- .../Azure.AI.Projects/stable/v1/azure-ai-projects.json | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/main.tsp b/specification/ai/Azure.AI.Projects/main.tsp index b9c609375026..eb7edfc0664c 100644 --- a/specification/ai/Azure.AI.Projects/main.tsp +++ b/specification/ai/Azure.AI.Projects/main.tsp @@ -24,7 +24,7 @@ namespace Azure.AI { { type: OAuth2FlowType.implicit, authorizationUrl: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", - scopes: ["https://cognitiveservices.azure.com/.default"], // TODO: Replace with ["https://ai.azure.com/.default"] + scopes: ["https://ai.azure.com/.default"], } ]> ) diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json index efbc9b3dccdf..a4103e0afb6c 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json @@ -36,7 +36,7 @@ "security": [ { "OAuth2Auth": [ - "https://cognitiveservices.azure.com/.default" + "https://ai.azure.com/.default" ] } ], @@ -46,7 +46,7 @@ "flow": "implicit", "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", "scopes": { - "https://cognitiveservices.azure.com/.default": "" + "https://ai.azure.com/.default": "" } } }, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json index e7193f41fb9d..cc896f9251b1 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json @@ -36,7 +36,7 @@ "security": [ { "OAuth2Auth": [ - "https://cognitiveservices.azure.com/.default" + "https://ai.azure.com/.default" ] } ], @@ -46,7 +46,7 @@ "flow": "implicit", "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", "scopes": { - "https://cognitiveservices.azure.com/.default": "" + "https://ai.azure.com/.default": "" } } }, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json index c6049688c720..989b6eecbbef 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json @@ -36,7 +36,7 @@ "security": [ { "OAuth2Auth": [ - "https://cognitiveservices.azure.com/.default" + "https://ai.azure.com/.default" ] } ], @@ -46,7 +46,7 @@ "flow": "implicit", "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", "scopes": { - "https://cognitiveservices.azure.com/.default": "" + "https://ai.azure.com/.default": "" } } }, From cef2df389d688404dee7c639006875c658d78856 Mon Sep 17 00:00:00 2001 From: Ankit Singhal <30610298+singankit@users.noreply.github.com> Date: Fri, 2 May 2025 15:33:12 -0700 Subject: [PATCH 132/143] Usesr/singankit/evaluation review feedback (#34427) * Fixing review comments * Evaluation Review Commnets fixed * Reverting non required change --- .../Azure.AI.Projects/evaluations/routes.tsp | 2 +- ...=> Evaluations_Create_MaximumSet_Gen.json} | 4 +-- ...=> Evaluations_Create_MinimumSet_Gen.json} | 0 .../RedTeams_Create_MaximumSet_Gen.json} | 4 +-- ...on => RedTeams_Create_MinimumSet_Gen.json} | 4 +-- .../ai/Azure.AI.Projects/red-teams/models.tsp | 3 ++- .../ai/Azure.AI.Projects/red-teams/routes.tsp | 2 +- .../2025-05-15-preview/azure-ai-projects.json | 26 ++++++++++--------- ...=> Evaluations_Create_MaximumSet_Gen.json} | 4 +-- ...=> Evaluations_Create_MinimumSet_Gen.json} | 0 .../RedTeams_Create_MaximumSet_Gen.json} | 4 +-- ...on => RedTeams_Create_MinimumSet_Gen.json} | 4 +-- 12 files changed, 30 insertions(+), 27 deletions(-) rename specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/{Evaluations_CreateRun_MaximumSet_Gen.json => Evaluations_Create_MaximumSet_Gen.json} (93%) rename specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/{Evaluations_CreateRun_MinimumSet_Gen.json => Evaluations_Create_MinimumSet_Gen.json} (100%) rename specification/ai/{data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_CreateRun_MaximumSet_Gen.json => Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Create_MaximumSet_Gen.json} (93%) rename specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/{RedTeams_CreateRun_MinimumSet_Gen.json => RedTeams_Create_MinimumSet_Gen.json} (88%) rename specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/{Evaluations_CreateRun_MaximumSet_Gen.json => Evaluations_Create_MaximumSet_Gen.json} (93%) rename specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/{Evaluations_CreateRun_MinimumSet_Gen.json => Evaluations_Create_MinimumSet_Gen.json} (100%) rename specification/ai/{Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_CreateRun_MaximumSet_Gen.json => data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Create_MaximumSet_Gen.json} (93%) rename specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/{RedTeams_CreateRun_MinimumSet_Gen.json => RedTeams_Create_MinimumSet_Gen.json} (88%) diff --git a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp index a183d73dcab2..3aa1f4cfa681 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp @@ -34,7 +34,7 @@ interface Evaluations { @doc("Creates an evaluation run.") @route("runs:run") @post - createRun is Azure.Core.Foundations.Operation< + create is Azure.Core.Foundations.Operation< { @doc("Evaluation to be run") @body diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateRun_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_Create_MaximumSet_Gen.json similarity index 93% rename from specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateRun_MaximumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_Create_MaximumSet_Gen.json index 8dc42fcc5579..0315a2c4007b 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateRun_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_Create_MaximumSet_Gen.json @@ -1,6 +1,6 @@ { - "title": "Evaluations_CreateRun_MaximumSet", - "operationId": "Evaluations_CreateRun", + "title": "Evaluations_Create_MaximumSet", + "operationId": "Evaluations_Create", "parameters": { "api-version": "2025-05-15-preview", "evaluation": { diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateRun_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_Create_MinimumSet_Gen.json similarity index 100% rename from specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateRun_MinimumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_Create_MinimumSet_Gen.json diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_CreateRun_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Create_MaximumSet_Gen.json similarity index 93% rename from specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_CreateRun_MaximumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Create_MaximumSet_Gen.json index b259ee63baea..fc4451db6ef8 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_CreateRun_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Create_MaximumSet_Gen.json @@ -1,6 +1,6 @@ { - "title": "RedTeams_CreateRun_MaximumSet", - "operationId": "RedTeams_CreateRun", + "title": "RedTeams_Create_MaximumSet", + "operationId": "RedTeams_Create", "parameters": { "api-version": "2025-05-15-preview", "RedTeam": { diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_CreateRun_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Create_MinimumSet_Gen.json similarity index 88% rename from specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_CreateRun_MinimumSet_Gen.json rename to specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Create_MinimumSet_Gen.json index bcc7f8eed522..ab65fe761dd2 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_CreateRun_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Create_MinimumSet_Gen.json @@ -1,6 +1,6 @@ { - "title": "RedTeams_CreateRun_MinimumSet", - "operationId": "RedTeams_CreateRun", + "title": "RedTeams_Create_MinimumSet", + "operationId": "RedTeams_Create", "parameters": { "api-version": "2025-05-15-preview", "RedTeam": { diff --git a/specification/ai/Azure.AI.Projects/red-teams/models.tsp b/specification/ai/Azure.AI.Projects/red-teams/models.tsp index 20081058185c..ae2b7181cc33 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/models.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/models.tsp @@ -140,8 +140,9 @@ model TargetConfig { model RedTeam { @doc("Identifier of the red team.") @key("name") + @encodedName("application/json", "id") @visibility(Lifecycle.Read) - id: string; + name: string; @doc("Name of the red-team scan.") scanName?: string; diff --git a/specification/ai/Azure.AI.Projects/red-teams/routes.tsp b/specification/ai/Azure.AI.Projects/red-teams/routes.tsp index bd06de36df4e..67c5f9320a5b 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/routes.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/routes.tsp @@ -36,7 +36,7 @@ interface RedTeams { @doc("Creates a redteam run.") @route("runs:run") @post - createRun is Azure.Core.Foundations.Operation< + create is Azure.Core.Foundations.Operation< { @doc("Redteam to be run") @body diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json index a4103e0afb6c..04ef3446d292 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json @@ -947,7 +947,7 @@ }, "/evaluations/runs:run": { "post": { - "operationId": "Evaluations_CreateRun", + "operationId": "Evaluations_Create", "description": "Creates an evaluation run.", "parameters": [ { @@ -984,11 +984,11 @@ } }, "x-ms-examples": { - "Evaluations_CreateRun_MaximumSet": { - "$ref": "./examples/Evaluations_CreateRun_MaximumSet_Gen.json" + "Evaluations_Create_MaximumSet": { + "$ref": "./examples/Evaluations_Create_MaximumSet_Gen.json" }, - "Evaluations_CreateRun_MinimumSet": { - "$ref": "./examples/Evaluations_CreateRun_MinimumSet_Gen.json" + "Evaluations_Create_MinimumSet": { + "$ref": "./examples/Evaluations_Create_MinimumSet_Gen.json" } } } @@ -1426,7 +1426,7 @@ }, "/redTeams/runs:run": { "post": { - "operationId": "RedTeams_CreateRun", + "operationId": "RedTeams_Create", "description": "Creates a redteam run.", "parameters": [ { @@ -1463,11 +1463,11 @@ } }, "x-ms-examples": { - "RedTeams_CreateRun_MaximumSet": { - "$ref": "./examples/RedTeams_CreateRun_MaximumSet_Gen.json" + "RedTeams_Create_MaximumSet": { + "$ref": "./examples/RedTeams_Create_MaximumSet_Gen.json" }, - "RedTeams_CreateRun_MinimumSet": { - "$ref": "./examples/RedTeams_CreateRun_MinimumSet_Gen.json" + "RedTeams_Create_MinimumSet": { + "$ref": "./examples/RedTeams_Create_MinimumSet_Gen.json" } } } @@ -2878,7 +2878,8 @@ "description": "The RedTeam items on this page", "items": { "$ref": "#/definitions/RedTeam" - } + }, + "x-ms-identifiers": [] }, "nextLink": { "type": "string", @@ -2999,7 +3000,8 @@ "id": { "type": "string", "description": "Identifier of the red team.", - "readOnly": true + "readOnly": true, + "x-ms-client-name": "name" }, "scanName": { "type": "string", diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateRun_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_Create_MaximumSet_Gen.json similarity index 93% rename from specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateRun_MaximumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_Create_MaximumSet_Gen.json index 8dc42fcc5579..0315a2c4007b 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateRun_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_Create_MaximumSet_Gen.json @@ -1,6 +1,6 @@ { - "title": "Evaluations_CreateRun_MaximumSet", - "operationId": "Evaluations_CreateRun", + "title": "Evaluations_Create_MaximumSet", + "operationId": "Evaluations_Create", "parameters": { "api-version": "2025-05-15-preview", "evaluation": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateRun_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_Create_MinimumSet_Gen.json similarity index 100% rename from specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateRun_MinimumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_Create_MinimumSet_Gen.json diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_CreateRun_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Create_MaximumSet_Gen.json similarity index 93% rename from specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_CreateRun_MaximumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Create_MaximumSet_Gen.json index b259ee63baea..fc4451db6ef8 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_CreateRun_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Create_MaximumSet_Gen.json @@ -1,6 +1,6 @@ { - "title": "RedTeams_CreateRun_MaximumSet", - "operationId": "RedTeams_CreateRun", + "title": "RedTeams_Create_MaximumSet", + "operationId": "RedTeams_Create", "parameters": { "api-version": "2025-05-15-preview", "RedTeam": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_CreateRun_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Create_MinimumSet_Gen.json similarity index 88% rename from specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_CreateRun_MinimumSet_Gen.json rename to specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Create_MinimumSet_Gen.json index bcc7f8eed522..ab65fe761dd2 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_CreateRun_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Create_MinimumSet_Gen.json @@ -1,6 +1,6 @@ { - "title": "RedTeams_CreateRun_MinimumSet", - "operationId": "RedTeams_CreateRun", + "title": "RedTeams_Create_MinimumSet", + "operationId": "RedTeams_Create", "parameters": { "api-version": "2025-05-15-preview", "RedTeam": { From 695543077e157ae0dc10c208acf7edb2306b1c4a Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Fri, 2 May 2025 23:40:51 -0700 Subject: [PATCH 133/143] Fix typo in doc string --- specification/ai/Azure.AI.Projects/connections/models.tsp | 2 +- .../preview/2025-05-15-preview/azure-ai-projects.json | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/connections/models.tsp b/specification/ai/Azure.AI.Projects/connections/models.tsp index 2c968865b2c0..4e8284ed3a16 100644 --- a/specification/ai/Azure.AI.Projects/connections/models.tsp +++ b/specification/ai/Azure.AI.Projects/connections/models.tsp @@ -50,7 +50,7 @@ model BaseCredentials { @doc("API Key Credential definition") model ApiKeyCredentials extends BaseCredentials { - @doc("The credentail type") + @doc("The credential type") @visibility(Lifecycle.Read) type: CredentialType.apiKey; diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json index 04ef3446d292..cafd3d685837 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json @@ -986,9 +986,6 @@ "x-ms-examples": { "Evaluations_Create_MaximumSet": { "$ref": "./examples/Evaluations_Create_MaximumSet_Gen.json" - }, - "Evaluations_Create_MinimumSet": { - "$ref": "./examples/Evaluations_Create_MinimumSet_Gen.json" } } } From e4c203f206a57f129d32a249cf277b09e9fc2a85 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Sat, 3 May 2025 00:53:42 -0700 Subject: [PATCH 134/143] Fix Swagger Avocado --- .../2025-05-15-preview/Evaluations_Create_MinimumSet_Gen.json | 4 ++-- .../preview/2025-05-15-preview/azure-ai-projects.json | 3 +++ .../examples/Evaluations_Create_MinimumSet_Gen.json | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_Create_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_Create_MinimumSet_Gen.json index fe5626cb7c85..6739c8eab994 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_Create_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_Create_MinimumSet_Gen.json @@ -1,6 +1,6 @@ { - "title": "Evaluations_CreateRun_MinimumSet", - "operationId": "Evaluations_CreateRun", + "title": "Evaluations_Create_MinimumSet", + "operationId": "Evaluations_Create", "parameters": { "api-version": "2025-05-15-preview", "evaluation": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json index cafd3d685837..04ef3446d292 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json @@ -986,6 +986,9 @@ "x-ms-examples": { "Evaluations_Create_MaximumSet": { "$ref": "./examples/Evaluations_Create_MaximumSet_Gen.json" + }, + "Evaluations_Create_MinimumSet": { + "$ref": "./examples/Evaluations_Create_MinimumSet_Gen.json" } } } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_Create_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_Create_MinimumSet_Gen.json index fe5626cb7c85..6739c8eab994 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_Create_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_Create_MinimumSet_Gen.json @@ -1,6 +1,6 @@ { - "title": "Evaluations_CreateRun_MinimumSet", - "operationId": "Evaluations_CreateRun", + "title": "Evaluations_Create_MinimumSet", + "operationId": "Evaluations_Create", "parameters": { "api-version": "2025-05-15-preview", "evaluation": { From 57e9831f27b627823c986784b43640c30c4f9a7d Mon Sep 17 00:00:00 2001 From: David Wu Date: Mon, 5 May 2025 09:05:39 -0700 Subject: [PATCH 135/143] Add evaluation Id (#34391) * Add evaluation Id * Update JSON --- specification/ai/Azure.AI.Projects/evaluations/models.tsp | 3 +++ .../preview/2025-05-15-preview/azure-ai-projects.json | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/specification/ai/Azure.AI.Projects/evaluations/models.tsp b/specification/ai/Azure.AI.Projects/evaluations/models.tsp index 6fe7a05bda28..1819c1b83bc0 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/models.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/models.tsp @@ -132,6 +132,9 @@ model AgentEvaluationResult { @doc("Evaluator's name. This is the name of the evaluator that was used to evaluate the agent's completion.") evaluator: string; + @doc("Identifier of the evaluator.") + evaluatorId: string; + @doc("Score of the given evaluator. No restriction on range.") score: float32; diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json index 04ef3446d292..541d95cdd3f0 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json @@ -1560,6 +1560,10 @@ "type": "string", "description": "Evaluator's name. This is the name of the evaluator that was used to evaluate the agent's completion." }, + "evaluatorId": { + "type": "string", + "description": "Identifier of the evaluator." + }, "score": { "type": "number", "format": "float", @@ -1599,6 +1603,7 @@ }, "required": [ "evaluator", + "evaluatorId", "score", "status", "runId" From be01be1d4a387a7f23d577af63cbd80d595efcd1 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Mon, 5 May 2025 14:03:29 -0700 Subject: [PATCH 136/143] Add missing connection id (#34434) --- .../ai/Azure.AI.Projects/connections/models.tsp | 6 +++++- ...ections_GetWithCredentials_MaximumSet_Gen.json | 1 + .../Connections_Get_MaximumSet_Gen.json | 1 + .../Connections_List_MaximumSet_Gen.json | 1 + ...ections_GetWithCredentials_MaximumSet_Gen.json | 1 + .../Connections_Get_MaximumSet_Gen.json | 1 + .../Connections_List_MaximumSet_Gen.json | 1 + ...ections_GetWithCredentials_MaximumSet_Gen.json | 1 + .../v1/Connections_Get_MaximumSet_Gen.json | 1 + .../v1/Connections_List_MaximumSet_Gen.json | 1 + .../2025-05-15-preview/azure-ai-projects.json | 15 ++++++++++----- ...ections_GetWithCredentials_MaximumSet_Gen.json | 1 + .../examples/Connections_Get_MaximumSet_Gen.json | 1 + .../examples/Connections_List_MaximumSet_Gen.json | 1 + .../stable/2025-05-01/azure-ai-projects.json | 15 ++++++++++----- ...ections_GetWithCredentials_MaximumSet_Gen.json | 1 + .../examples/Connections_Get_MaximumSet_Gen.json | 1 + .../examples/Connections_List_MaximumSet_Gen.json | 1 + .../stable/v1/azure-ai-projects.json | 15 ++++++++++----- ...ections_GetWithCredentials_MaximumSet_Gen.json | 1 + .../examples/Connections_Get_MaximumSet_Gen.json | 1 + .../examples/Connections_List_MaximumSet_Gen.json | 1 + 22 files changed, 53 insertions(+), 16 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/connections/models.tsp b/specification/ai/Azure.AI.Projects/connections/models.tsp index 4e8284ed3a16..31fc746544a6 100644 --- a/specification/ai/Azure.AI.Projects/connections/models.tsp +++ b/specification/ai/Azure.AI.Projects/connections/models.tsp @@ -14,11 +14,15 @@ namespace Azure.AI.Projects; @resource("connections") @added(Versions.v2025_05_01) model Connection { - @doc("The name of the resource") + @doc("The friendly name of the connection, provided by the user.") @visibility(Lifecycle.Read) @key("name") name: string; + @doc("A unique identifier for the connection, generated by the service") + @visibility(Lifecycle.Read) + id: string; + @doc("Category of the connection") @visibility(Lifecycle.Read) type: ConnectionType; diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_GetWithCredentials_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_GetWithCredentials_MaximumSet_Gen.json index 97fed0850abf..1d0d3182016d 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_GetWithCredentials_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_GetWithCredentials_MaximumSet_Gen.json @@ -10,6 +10,7 @@ "200": { "body": { "name": "obsbzkgcpozwapujpylfjqwqpbeol", + "id": "unique-id", "type": "AzureOpenAI", "target": "rkznadqxuwnkbtb", "isDefault": true, diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_Get_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_Get_MaximumSet_Gen.json index 142106a1c2e8..50b34ecfe931 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_Get_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_Get_MaximumSet_Gen.json @@ -10,6 +10,7 @@ "200": { "body": { "name": "obsbzkgcpozwapujpylfjqwqpbeol", + "id": "unique-id", "type": "AzureOpenAI", "target": "rkznadqxuwnkbtb", "isDefault": true, diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_List_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_List_MaximumSet_Gen.json index c3906181a790..0941fa337118 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_List_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Connections_List_MaximumSet_Gen.json @@ -16,6 +16,7 @@ "value": [ { "name": "obsbzkgcpozwapujpylfjqwqpbeol", + "id": "unique-id", "type": "AzureOpenAI", "target": "rkznadqxuwnkbtb", "isDefault": true, diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_GetWithCredentials_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_GetWithCredentials_MaximumSet_Gen.json index 373b824a835e..18e95663b43e 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_GetWithCredentials_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_GetWithCredentials_MaximumSet_Gen.json @@ -10,6 +10,7 @@ "200": { "body": { "name": "cpezssfnwhl", + "id": "unique-id", "type": "AzureOpenAI", "target": "gxrgfvtt", "isDefault": true, diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_Get_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_Get_MaximumSet_Gen.json index abc365448734..9cb4ecf222bb 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_Get_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_Get_MaximumSet_Gen.json @@ -10,6 +10,7 @@ "200": { "body": { "name": "cpezssfnwhl", + "id": "unique-id", "type": "AzureOpenAI", "target": "gxrgfvtt", "isDefault": true, diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_List_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_List_MaximumSet_Gen.json index a502f6c9b88c..564378be28f9 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_List_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Connections_List_MaximumSet_Gen.json @@ -16,6 +16,7 @@ "value": [ { "name": "cpezssfnwhl", + "id": "unique-id", "type": "AzureOpenAI", "target": "gxrgfvtt", "isDefault": true, diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Connections_GetWithCredentials_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Connections_GetWithCredentials_MaximumSet_Gen.json index 482313fd7f9a..fbb3f544c752 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Connections_GetWithCredentials_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Connections_GetWithCredentials_MaximumSet_Gen.json @@ -10,6 +10,7 @@ "200": { "body": { "name": "we", + "id": "unique-id", "type": "AzureOpenAI", "target": "bbzo", "isDefault": true, diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Connections_Get_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Connections_Get_MaximumSet_Gen.json index 7c728024c7e0..1e695083b491 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Connections_Get_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Connections_Get_MaximumSet_Gen.json @@ -10,6 +10,7 @@ "200": { "body": { "name": "we", + "id": "unique-id", "type": "AzureOpenAI", "target": "bbzo", "isDefault": true, diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Connections_List_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Connections_List_MaximumSet_Gen.json index 4ddfc1005468..d4a34496485e 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Connections_List_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Connections_List_MaximumSet_Gen.json @@ -16,6 +16,7 @@ "value": [ { "name": "we", + "id": "unique-id", "type": "AzureOpenAI", "target": "bbzo", "isDefault": true, diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json index 541d95cdd3f0..7a6314ab0d1a 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json @@ -197,7 +197,7 @@ { "name": "name", "in": "path", - "description": "The name of the resource", + "description": "The friendly name of the connection, provided by the user.", "required": true, "type": "string" }, @@ -250,7 +250,7 @@ { "name": "name", "in": "path", - "description": "The name of the resource", + "description": "The friendly name of the connection, provided by the user.", "required": true, "type": "string" }, @@ -1985,7 +1985,12 @@ "properties": { "name": { "type": "string", - "description": "The name of the resource", + "description": "The friendly name of the connection, provided by the user.", + "readOnly": true + }, + "id": { + "type": "string", + "description": "A unique identifier for the connection, generated by the service", "readOnly": true }, "type": { @@ -2019,6 +2024,7 @@ }, "required": [ "name", + "id", "type", "target", "isDefault", @@ -2775,8 +2781,7 @@ "description": "The Connection items on this page", "items": { "$ref": "#/definitions/Connection" - }, - "x-ms-identifiers": [] + } }, "nextLink": { "type": "string", diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_GetWithCredentials_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_GetWithCredentials_MaximumSet_Gen.json index 373b824a835e..18e95663b43e 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_GetWithCredentials_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_GetWithCredentials_MaximumSet_Gen.json @@ -10,6 +10,7 @@ "200": { "body": { "name": "cpezssfnwhl", + "id": "unique-id", "type": "AzureOpenAI", "target": "gxrgfvtt", "isDefault": true, diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_Get_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_Get_MaximumSet_Gen.json index abc365448734..9cb4ecf222bb 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_Get_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_Get_MaximumSet_Gen.json @@ -10,6 +10,7 @@ "200": { "body": { "name": "cpezssfnwhl", + "id": "unique-id", "type": "AzureOpenAI", "target": "gxrgfvtt", "isDefault": true, diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_List_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_List_MaximumSet_Gen.json index a502f6c9b88c..564378be28f9 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_List_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Connections_List_MaximumSet_Gen.json @@ -16,6 +16,7 @@ "value": [ { "name": "cpezssfnwhl", + "id": "unique-id", "type": "AzureOpenAI", "target": "gxrgfvtt", "isDefault": true, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json index cc896f9251b1..85780632349e 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json @@ -197,7 +197,7 @@ { "name": "name", "in": "path", - "description": "The name of the resource", + "description": "The friendly name of the connection, provided by the user.", "required": true, "type": "string" }, @@ -250,7 +250,7 @@ { "name": "name", "in": "path", - "description": "The name of the resource", + "description": "The friendly name of the connection, provided by the user.", "required": true, "type": "string" }, @@ -1284,7 +1284,12 @@ "properties": { "name": { "type": "string", - "description": "The name of the resource", + "description": "The friendly name of the connection, provided by the user.", + "readOnly": true + }, + "id": { + "type": "string", + "description": "A unique identifier for the connection, generated by the service", "readOnly": true }, "type": { @@ -1318,6 +1323,7 @@ }, "required": [ "name", + "id", "type", "target", "isDefault", @@ -1961,8 +1967,7 @@ "description": "The Connection items on this page", "items": { "$ref": "#/definitions/Connection" - }, - "x-ms-identifiers": [] + } }, "nextLink": { "type": "string", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_GetWithCredentials_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_GetWithCredentials_MaximumSet_Gen.json index 97fed0850abf..1d0d3182016d 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_GetWithCredentials_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_GetWithCredentials_MaximumSet_Gen.json @@ -10,6 +10,7 @@ "200": { "body": { "name": "obsbzkgcpozwapujpylfjqwqpbeol", + "id": "unique-id", "type": "AzureOpenAI", "target": "rkznadqxuwnkbtb", "isDefault": true, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_Get_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_Get_MaximumSet_Gen.json index 142106a1c2e8..50b34ecfe931 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_Get_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_Get_MaximumSet_Gen.json @@ -10,6 +10,7 @@ "200": { "body": { "name": "obsbzkgcpozwapujpylfjqwqpbeol", + "id": "unique-id", "type": "AzureOpenAI", "target": "rkznadqxuwnkbtb", "isDefault": true, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_List_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_List_MaximumSet_Gen.json index c3906181a790..0941fa337118 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_List_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Connections_List_MaximumSet_Gen.json @@ -16,6 +16,7 @@ "value": [ { "name": "obsbzkgcpozwapujpylfjqwqpbeol", + "id": "unique-id", "type": "AzureOpenAI", "target": "rkznadqxuwnkbtb", "isDefault": true, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json index 989b6eecbbef..6b79a1673f4a 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json @@ -197,7 +197,7 @@ { "name": "name", "in": "path", - "description": "The name of the resource", + "description": "The friendly name of the connection, provided by the user.", "required": true, "type": "string" }, @@ -250,7 +250,7 @@ { "name": "name", "in": "path", - "description": "The name of the resource", + "description": "The friendly name of the connection, provided by the user.", "required": true, "type": "string" }, @@ -1284,7 +1284,12 @@ "properties": { "name": { "type": "string", - "description": "The name of the resource", + "description": "The friendly name of the connection, provided by the user.", + "readOnly": true + }, + "id": { + "type": "string", + "description": "A unique identifier for the connection, generated by the service", "readOnly": true }, "type": { @@ -1318,6 +1323,7 @@ }, "required": [ "name", + "id", "type", "target", "isDefault", @@ -1961,8 +1967,7 @@ "description": "The Connection items on this page", "items": { "$ref": "#/definitions/Connection" - }, - "x-ms-identifiers": [] + } }, "nextLink": { "type": "string", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_GetWithCredentials_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_GetWithCredentials_MaximumSet_Gen.json index 482313fd7f9a..fbb3f544c752 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_GetWithCredentials_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_GetWithCredentials_MaximumSet_Gen.json @@ -10,6 +10,7 @@ "200": { "body": { "name": "we", + "id": "unique-id", "type": "AzureOpenAI", "target": "bbzo", "isDefault": true, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_Get_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_Get_MaximumSet_Gen.json index 7c728024c7e0..1e695083b491 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_Get_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_Get_MaximumSet_Gen.json @@ -10,6 +10,7 @@ "200": { "body": { "name": "we", + "id": "unique-id", "type": "AzureOpenAI", "target": "bbzo", "isDefault": true, diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_List_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_List_MaximumSet_Gen.json index 4ddfc1005468..d4a34496485e 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_List_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Connections_List_MaximumSet_Gen.json @@ -16,6 +16,7 @@ "value": [ { "name": "we", + "id": "unique-id", "type": "AzureOpenAI", "target": "bbzo", "isDefault": true, From b12cfaa8ef51f6e0a1b54b61e76deee9f459d662 Mon Sep 17 00:00:00 2001 From: Kayla Seager Date: Mon, 5 May 2025 14:10:58 -0700 Subject: [PATCH 137/143] [Red Team] clean-up contract details (#34444) * clean-up contract details * update json/compile * scan name optional * remove stable changes --- .../ai/Azure.AI.Projects/red-teams/models.tsp | 16 +++++++------- .../2025-05-15-preview/azure-ai-projects.json | 21 ++++++++----------- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/red-teams/models.tsp b/specification/ai/Azure.AI.Projects/red-teams/models.tsp index ae2b7181cc33..fc0f50986e7f 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/models.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/models.tsp @@ -138,26 +138,26 @@ model TargetConfig { @added(Versions.v2025_05_15_preview) @removed(Versions.v1) model RedTeam { - @doc("Identifier of the red team.") + @doc("Identifier of the red team run.") @key("name") @encodedName("application/json", "id") @visibility(Lifecycle.Read) name: string; - @doc("Name of the red-team scan.") - scanName?: string; + @doc("Name of the red-team run.") + displayName?: string; @doc("Number of simulation rounds.") - numTurns: int32; + numTurns?: int32; @doc("List of attack strategies or nested lists of attack strategies.") - attackStrategies: AttackStrategy[]; + attackStrategies?: AttackStrategy[]; @doc("Simulation-only or Simulation + Evaluation. Default false, if true the scan outputs conversation not evaluation result.") - simulationOnly: boolean; + simulationOnly?: boolean = false; @doc("List of risk categories to generate attack objectives for.") - riskCategories: RiskCategory[]; + riskCategories?: RiskCategory[]; @doc("Application scenario for the red team operation, to generate scenario specific attacks.") applicationScenario?: string; @@ -173,5 +173,5 @@ model RedTeam { status?: string; @doc("Target configuration for the red-team run.") - targetConfig: TargetConfig; + target: TargetConfig; } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json index 7a6314ab0d1a..706c32c080e6 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json @@ -1382,7 +1382,7 @@ { "name": "name", "in": "path", - "description": "Identifier of the red team.", + "description": "Identifier of the red team run.", "required": true, "type": "string" }, @@ -1870,7 +1870,7 @@ }, "Azure.Core.Foundations.InnerError": { "type": "object", - "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/microsoft/api-guidelines/blob/vNext/azure/Guidelines.md#handling-errors.", + "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", "properties": { "code": { "type": "string", @@ -3009,13 +3009,13 @@ "properties": { "id": { "type": "string", - "description": "Identifier of the red team.", + "description": "Identifier of the red team run.", "readOnly": true, "x-ms-client-name": "name" }, - "scanName": { + "displayName": { "type": "string", - "description": "Name of the red-team scan." + "description": "Name of the red-team run." }, "numTurns": { "type": "integer", @@ -3031,7 +3031,8 @@ }, "simulationOnly": { "type": "boolean", - "description": "Simulation-only or Simulation + Evaluation. Default false, if true the scan outputs conversation not evaluation result." + "description": "Simulation-only or Simulation + Evaluation. Default false, if true the scan outputs conversation not evaluation result.", + "default": false }, "riskCategories": { "type": "array", @@ -3063,18 +3064,14 @@ "description": "Status of the red-team. It is set by service and is read-only.", "readOnly": true }, - "targetConfig": { + "target": { "$ref": "#/definitions/TargetConfig", "description": "Target configuration for the red-team run." } }, "required": [ "id", - "numTurns", - "attackStrategies", - "simulationOnly", - "riskCategories", - "targetConfig" + "target" ] }, "RiskCategory": { From 11c45780292685e79974fc22c50f5153eb83c784 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Mon, 5 May 2025 17:47:59 -0400 Subject: [PATCH 138/143] Make PATCH Content-Type Header application/merge-patch+json (#34449) * add content type header for patch * pull from base --------- Co-authored-by: Neehar Duvvuri --- specification/ai/Azure.AI.Projects/servicepatterns.tsp | 4 ++++ .../preview/2025-05-15-preview/azure-ai-projects.json | 8 +++++++- .../stable/2025-05-01/azure-ai-projects.json | 6 ++++++ .../Azure.AI.Projects/stable/v1/azure-ai-projects.json | 6 ++++++ 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/specification/ai/Azure.AI.Projects/servicepatterns.tsp b/specification/ai/Azure.AI.Projects/servicepatterns.tsp index 35e53d56c8c0..c5d1946adaf3 100644 --- a/specification/ai/Azure.AI.Projects/servicepatterns.tsp +++ b/specification/ai/Azure.AI.Projects/servicepatterns.tsp @@ -84,6 +84,10 @@ namespace Azure.AI.Projects.ServicePatterns { @Http.bodyRoot body: TEntityType; + @doc("Content type for patch") + @Http.header("Content-Type") + contentType: "application/merge-patch+json"; + @doc( "The specific version id of the {name} to create or replace.", TEntityType diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json index 706c32c080e6..e73bacfa6ce1 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json @@ -452,6 +452,9 @@ "patch": { "operationId": "Datasets_CreateOrUpdateVersion", "description": "Create a new or update an existing DatasetVersion with the given version id", + "consumes": [ + "application/merge-patch+json" + ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -1201,6 +1204,9 @@ "patch": { "operationId": "Indexes_CreateOrUpdateVersion", "description": "Create a new or update an existing Index with the given version id", + "consumes": [ + "application/merge-patch+json" + ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -1870,7 +1876,7 @@ }, "Azure.Core.Foundations.InnerError": { "type": "object", - "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses.", + "description": "An object containing more specific information about the error. As per Microsoft One API guidelines - https://github.com/microsoft/api-guidelines/blob/vNext/azure/Guidelines.md#handling-errors.", "properties": { "code": { "type": "string", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json index 85780632349e..69d82a899052 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json @@ -452,6 +452,9 @@ "patch": { "operationId": "Datasets_CreateOrUpdateVersion", "description": "Create a new or update an existing DatasetVersion with the given version id", + "consumes": [ + "application/merge-patch+json" + ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -994,6 +997,9 @@ "patch": { "operationId": "Indexes_CreateOrUpdateVersion", "description": "Create a new or update an existing Index with the given version id", + "consumes": [ + "application/merge-patch+json" + ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json index 6b79a1673f4a..5c9e7aee4e55 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json @@ -452,6 +452,9 @@ "patch": { "operationId": "Datasets_CreateOrUpdateVersion", "description": "Create a new or update an existing DatasetVersion with the given version id", + "consumes": [ + "application/merge-patch+json" + ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -994,6 +997,9 @@ "patch": { "operationId": "Indexes_CreateOrUpdateVersion", "description": "Create a new or update an existing Index with the given version id", + "consumes": [ + "application/merge-patch+json" + ], "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" From 6f9fde36599b2d0acb78f6c2e020cc4c08118a41 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Tue, 6 May 2025 16:09:59 -0400 Subject: [PATCH 139/143] Remove List Query Parameters and Dataset Credentials Body (#34471) * Remove List Query Params, Remove Body from Dataset Get Credentials * clean up unused imports * fix examples for swagger validation * fix samples * add missing evaluatorId * apparently evaluator/evaluator id both exist n the same payload --------- Co-authored-by: Neehar Duvvuri --- .../ai/Azure.AI.Projects/datasets/routes.tsp | 12 +--- .../Azure.AI.Projects/deployments/routes.tsp | 3 - .../Azure.AI.Projects/evaluations/routes.tsp | 6 +- ..._CreateAgentEvaluation_MaximumSet_Gen.json | 1 + .../RedTeams_Create_MaximumSet_Gen.json | 6 +- .../RedTeams_Create_MinimumSet_Gen.json | 4 +- .../RedTeams_Get_MaximumSet_Gen.json | 3 +- .../RedTeams_List_MaximumSet_Gen.json | 3 +- .../ai/Azure.AI.Projects/indexes/routes.tsp | 8 +-- .../ai/Azure.AI.Projects/red-teams/routes.tsp | 8 +-- .../ai/Azure.AI.Projects/servicepatterns.tsp | 17 ++++- .../2025-05-15-preview/azure-ai-projects.json | 64 ------------------- ..._CreateAgentEvaluation_MaximumSet_Gen.json | 1 + .../RedTeams_Create_MaximumSet_Gen.json | 6 +- .../RedTeams_Create_MinimumSet_Gen.json | 4 +- .../examples/RedTeams_Get_MaximumSet_Gen.json | 3 +- .../RedTeams_List_MaximumSet_Gen.json | 3 +- .../stable/2025-05-01/azure-ai-projects.json | 46 ------------- .../stable/v1/azure-ai-projects.json | 46 ------------- 19 files changed, 36 insertions(+), 208 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/datasets/routes.tsp b/specification/ai/Azure.AI.Projects/datasets/routes.tsp index 30815691492c..d899cfad1df5 100644 --- a/specification/ai/Azure.AI.Projects/datasets/routes.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/routes.tsp @@ -12,12 +12,7 @@ using TypeSpec.Versioning; namespace Azure.AI.Projects; -alias ListDatasetVersionsParameters = { - @doc("Continuation token for pagination.") - @query - @continuationToken - continuationToken?: string; -}; +alias ListDatasetVersionsParameters = {}; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "We are using service specific operation templates" @added(Versions.v2025_05_01) @@ -29,7 +24,7 @@ interface Datasets > { @doc("Start a new or get an existing pending upload of a dataset for a specific version.") @Rest.action("startPendingUpload") - startPendingUploadVersion is ServicePatterns.VersionedResourceAction< + startPendingUploadVersion is ServicePatterns.VersionedResourceActionWithBody< DatasetVersion, PendingUploadRequest, PendingUploadResponse @@ -53,9 +48,8 @@ interface Datasets @post @Rest.action("credentials") @Rest.actionSeparator("/") - getCredentials is ServicePatterns.VersionedResourceAction< + getCredentials is ServicePatterns.VersionedResourceActionNoBody< DatasetVersion, - {}, AssetCredentialResponse >; } diff --git a/specification/ai/Azure.AI.Projects/deployments/routes.tsp b/specification/ai/Azure.AI.Projects/deployments/routes.tsp index 39c50921e770..70782c6b7fb3 100644 --- a/specification/ai/Azure.AI.Projects/deployments/routes.tsp +++ b/specification/ai/Azure.AI.Projects/deployments/routes.tsp @@ -5,7 +5,6 @@ import "@azure-tools/typespec-azure-core"; import "./models.tsp"; using TypeSpec.Http; -using Azure.Core; using Azure.Core.Traits; using TypeSpec.Versioning; @@ -37,8 +36,6 @@ interface Deployments { @doc("Type of deployment to filter list by") @query("deploymentType") deploymentType?: DeploymentType; - - ...StandardListQueryParameters; }> >; } diff --git a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp index 3aa1f4cfa681..63b65ee97844 100644 --- a/specification/ai/Azure.AI.Projects/evaluations/routes.tsp +++ b/specification/ai/Azure.AI.Projects/evaluations/routes.tsp @@ -5,7 +5,6 @@ import "@azure-tools/typespec-azure-core"; import "./models.tsp"; using TypeSpec.Http; -using Azure.Core; using Azure.Core.Traits; using TypeSpec.Versioning; @@ -25,10 +24,7 @@ interface Evaluations { get is EvaluationsOperations.ResourceRead; @doc("List evaluation runs") - list is EvaluationsOperations.ResourceList< - Evaluation, - ListQueryParametersTrait - >; + list is EvaluationsOperations.ResourceList; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" @doc("Creates an evaluation run.") diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateAgentEvaluation_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateAgentEvaluation_MaximumSet_Gen.json index e2ad79265104..e3b597027cfb 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateAgentEvaluation_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Evaluations_CreateAgentEvaluation_MaximumSet_Gen.json @@ -35,6 +35,7 @@ "result": [ { "evaluator": "upnt", + "evaluatorId": "upnt", "score": 13, "status": "eoxw", "reason": "kfrjetziuketgioobeydlugonzfxo", diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Create_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Create_MaximumSet_Gen.json index fc4451db6ef8..60c36a639864 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Create_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Create_MaximumSet_Gen.json @@ -4,7 +4,6 @@ "parameters": { "api-version": "2025-05-15-preview", "RedTeam": { - "scanName": "edmalfvznuay", "numTurns": 10, "attackStrategies": [ "easy" @@ -20,7 +19,7 @@ "properties": { "key9280": "fwzjtipl" }, - "targetConfig": { + "target": { "type": "TargetConfig" } } @@ -29,7 +28,6 @@ "201": { "body": { "id": "tztegmf", - "scanName": "edmalfvznuay", "numTurns": 10, "attackStrategies": [ "easy" @@ -46,7 +44,7 @@ "key9280": "fwzjtipl" }, "status": "owgxaiudnkkeqwlnhtmihvhdkbgd", - "targetConfig": { + "target": { "type": "TargetConfig" } } diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Create_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Create_MinimumSet_Gen.json index ab65fe761dd2..0bca24700a8c 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Create_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Create_MinimumSet_Gen.json @@ -12,7 +12,7 @@ "riskCategories": [ "HateUnfairness" ], - "targetConfig": { + "target": { "type": "TargetConfig" } } @@ -29,7 +29,7 @@ "riskCategories": [ "HateUnfairness" ], - "targetConfig": { + "target": { "type": "TargetConfig" } } diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Get_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Get_MaximumSet_Gen.json index e806fba7a3f1..59fd9f26b81c 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Get_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_Get_MaximumSet_Gen.json @@ -10,7 +10,6 @@ "200": { "body": { "id": "tztegmf", - "scanName": "edmalfvznuay", "numTurns": 10, "attackStrategies": [ "easy" @@ -27,7 +26,7 @@ "key9280": "fwzjtipl" }, "status": "owgxaiudnkkeqwlnhtmihvhdkbgd", - "targetConfig": { + "target": { "type": "TargetConfig" } } diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_List_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_List_MaximumSet_Gen.json index c1a200883f72..10bb9532ff47 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_List_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/RedTeams_List_MaximumSet_Gen.json @@ -14,7 +14,6 @@ "value": [ { "id": "tztegmf", - "scanName": "edmalfvznuay", "numTurns": 10, "attackStrategies": [ "easy" @@ -31,7 +30,7 @@ "key9280": "fwzjtipl" }, "status": "owgxaiudnkkeqwlnhtmihvhdkbgd", - "targetConfig": { + "target": { "type": "TargetConfig" } } diff --git a/specification/ai/Azure.AI.Projects/indexes/routes.tsp b/specification/ai/Azure.AI.Projects/indexes/routes.tsp index 7c452ef5937a..0ff537f47c20 100644 --- a/specification/ai/Azure.AI.Projects/indexes/routes.tsp +++ b/specification/ai/Azure.AI.Projects/indexes/routes.tsp @@ -6,17 +6,11 @@ import "./models.tsp"; import "../servicepatterns.tsp"; import "../common/models.tsp"; -using TypeSpec.Http; using TypeSpec.Versioning; namespace Azure.AI.Projects; -alias ListIndexVersionParameters = { - @doc("Continuation token for pagination.") - @query - @continuationToken - continuationToken?: string; -}; +alias ListIndexVersionParameters = {}; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "We are using service specific operation templates" @added(Versions.v2025_05_01) diff --git a/specification/ai/Azure.AI.Projects/red-teams/routes.tsp b/specification/ai/Azure.AI.Projects/red-teams/routes.tsp index 67c5f9320a5b..9fcdf116796d 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/routes.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/routes.tsp @@ -5,11 +5,8 @@ import "@azure-tools/typespec-azure-core"; import "./models.tsp"; using TypeSpec.Http; -using TypeSpec.Rest; using TypeSpec.Versioning; -using Azure.Core; using Azure.Core.Traits; -using Azure.Core.Foundations; namespace Azure.AI.Projects; @@ -27,10 +24,7 @@ interface RedTeams { get is RedTeamOperations.ResourceRead; @doc("List a redteam by name.") - list is RedTeamOperations.ResourceList< - RedTeam, - ListQueryParametersTrait - >; + list is RedTeamOperations.ResourceList; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" @doc("Creates a redteam run.") diff --git a/specification/ai/Azure.AI.Projects/servicepatterns.tsp b/specification/ai/Azure.AI.Projects/servicepatterns.tsp index c5d1946adaf3..2dd4c36f9910 100644 --- a/specification/ai/Azure.AI.Projects/servicepatterns.tsp +++ b/specification/ai/Azure.AI.Projects/servicepatterns.tsp @@ -101,7 +101,7 @@ namespace Azure.AI.Projects.ServicePatterns { } @Rest.action - op VersionedResourceAction< + op VersionedResourceActionWithBody< TEntityType extends Reflection.Model, TParams, TResponse @@ -120,6 +120,21 @@ namespace Azure.AI.Projects.ServicePatterns { TResponse >; + @Rest.action + op VersionedResourceActionNoBody< + TEntityType extends Reflection.Model, + TResponse + > is Azure.Core.Foundations.ResourceOperation< + TEntityType, + { + @doc("The specific version id of the {name} to operate on.", TEntityType) + @Rest.segment("versions") + @Http.path + version: string; + }, + TResponse + >; + /* Reenable this once the service supports "unversioned" operations @Rest.action op UnversionedResourceAction< diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json index e73bacfa6ce1..ad4f694be3aa 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json @@ -299,13 +299,6 @@ "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "continuationToken", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" } ], "responses": { @@ -355,13 +348,6 @@ "description": "The name of the resource", "required": true, "type": "string" - }, - { - "name": "continuationToken", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" } ], "responses": { @@ -588,15 +574,6 @@ "description": "The specific version id of the DatasetVersion to operate on.", "required": true, "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "Parameters for the action", - "required": true, - "schema": { - "type": "object" - } } ], "responses": { @@ -734,15 +711,6 @@ ] } }, - { - "$ref": "#/parameters/Azure.Core.TopQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.SkipQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" - }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -845,15 +813,6 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, - { - "$ref": "#/parameters/Azure.Core.TopQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.SkipQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" - }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -1051,13 +1010,6 @@ "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "continuationToken", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" } ], "responses": { @@ -1107,13 +1059,6 @@ "description": "The name of the resource", "required": true, "type": "string" - }, - { - "name": "continuationToken", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" } ], "responses": { @@ -1327,15 +1272,6 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, - { - "$ref": "#/parameters/Azure.Core.TopQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.SkipQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" - }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateAgentEvaluation_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateAgentEvaluation_MaximumSet_Gen.json index e2ad79265104..e3b597027cfb 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateAgentEvaluation_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Evaluations_CreateAgentEvaluation_MaximumSet_Gen.json @@ -35,6 +35,7 @@ "result": [ { "evaluator": "upnt", + "evaluatorId": "upnt", "score": 13, "status": "eoxw", "reason": "kfrjetziuketgioobeydlugonzfxo", diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Create_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Create_MaximumSet_Gen.json index fc4451db6ef8..60c36a639864 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Create_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Create_MaximumSet_Gen.json @@ -4,7 +4,6 @@ "parameters": { "api-version": "2025-05-15-preview", "RedTeam": { - "scanName": "edmalfvznuay", "numTurns": 10, "attackStrategies": [ "easy" @@ -20,7 +19,7 @@ "properties": { "key9280": "fwzjtipl" }, - "targetConfig": { + "target": { "type": "TargetConfig" } } @@ -29,7 +28,6 @@ "201": { "body": { "id": "tztegmf", - "scanName": "edmalfvznuay", "numTurns": 10, "attackStrategies": [ "easy" @@ -46,7 +44,7 @@ "key9280": "fwzjtipl" }, "status": "owgxaiudnkkeqwlnhtmihvhdkbgd", - "targetConfig": { + "target": { "type": "TargetConfig" } } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Create_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Create_MinimumSet_Gen.json index ab65fe761dd2..0bca24700a8c 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Create_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Create_MinimumSet_Gen.json @@ -12,7 +12,7 @@ "riskCategories": [ "HateUnfairness" ], - "targetConfig": { + "target": { "type": "TargetConfig" } } @@ -29,7 +29,7 @@ "riskCategories": [ "HateUnfairness" ], - "targetConfig": { + "target": { "type": "TargetConfig" } } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Get_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Get_MaximumSet_Gen.json index e806fba7a3f1..59fd9f26b81c 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Get_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_Get_MaximumSet_Gen.json @@ -10,7 +10,6 @@ "200": { "body": { "id": "tztegmf", - "scanName": "edmalfvznuay", "numTurns": 10, "attackStrategies": [ "easy" @@ -27,7 +26,7 @@ "key9280": "fwzjtipl" }, "status": "owgxaiudnkkeqwlnhtmihvhdkbgd", - "targetConfig": { + "target": { "type": "TargetConfig" } } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_List_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_List_MaximumSet_Gen.json index c1a200883f72..10bb9532ff47 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_List_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/RedTeams_List_MaximumSet_Gen.json @@ -14,7 +14,6 @@ "value": [ { "id": "tztegmf", - "scanName": "edmalfvznuay", "numTurns": 10, "attackStrategies": [ "easy" @@ -31,7 +30,7 @@ "key9280": "fwzjtipl" }, "status": "owgxaiudnkkeqwlnhtmihvhdkbgd", - "targetConfig": { + "target": { "type": "TargetConfig" } } diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json index 69d82a899052..03992d5c5703 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json @@ -299,13 +299,6 @@ "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "continuationToken", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" } ], "responses": { @@ -355,13 +348,6 @@ "description": "The name of the resource", "required": true, "type": "string" - }, - { - "name": "continuationToken", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" } ], "responses": { @@ -588,15 +574,6 @@ "description": "The specific version id of the DatasetVersion to operate on.", "required": true, "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "Parameters for the action", - "required": true, - "schema": { - "type": "object" - } } ], "responses": { @@ -734,15 +711,6 @@ ] } }, - { - "$ref": "#/parameters/Azure.Core.TopQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.SkipQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" - }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -844,13 +812,6 @@ "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "continuationToken", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" } ], "responses": { @@ -900,13 +861,6 @@ "description": "The name of the resource", "required": true, "type": "string" - }, - { - "name": "continuationToken", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" } ], "responses": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json index 5c9e7aee4e55..1bff588ab00d 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json @@ -299,13 +299,6 @@ "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "continuationToken", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" } ], "responses": { @@ -355,13 +348,6 @@ "description": "The name of the resource", "required": true, "type": "string" - }, - { - "name": "continuationToken", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" } ], "responses": { @@ -588,15 +574,6 @@ "description": "The specific version id of the DatasetVersion to operate on.", "required": true, "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "Parameters for the action", - "required": true, - "schema": { - "type": "object" - } } ], "responses": { @@ -734,15 +711,6 @@ ] } }, - { - "$ref": "#/parameters/Azure.Core.TopQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.SkipQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" - }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -844,13 +812,6 @@ "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "continuationToken", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" } ], "responses": { @@ -900,13 +861,6 @@ "description": "The name of the resource", "required": true, "type": "string" - }, - { - "name": "continuationToken", - "in": "query", - "description": "Continuation token for pagination.", - "required": false, - "type": "string" } ], "responses": { From a5177cafa6b7a3e6a45103b2569bf1cb80a1c4d1 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Tue, 6 May 2025 17:54:13 -0400 Subject: [PATCH 140/143] Add Index Field Mapping (#34476) * Add FieldMapping to index * update doc string --------- Co-authored-by: Neehar Duvvuri --- .../ai/Azure.AI.Projects/indexes/models.tsp | 36 +++++++++ .../2025-05-15-preview/azure-ai-projects.json | 77 ++++++++++++++++++- .../stable/2025-05-01/azure-ai-projects.json | 77 ++++++++++++++++++- .../stable/v1/azure-ai-projects.json | 77 ++++++++++++++++++- 4 files changed, 264 insertions(+), 3 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/indexes/models.tsp b/specification/ai/Azure.AI.Projects/indexes/models.tsp index 4b43af09bb83..4bdce439118b 100644 --- a/specification/ai/Azure.AI.Projects/indexes/models.tsp +++ b/specification/ai/Azure.AI.Projects/indexes/models.tsp @@ -33,6 +33,10 @@ model AzureAISearchIndex extends Index { @doc("Name of index in Azure AI Search resource to attach") @visibility(Lifecycle.Create) indexName: string; + + @doc("Field mapping configuration") + @visibility(Lifecycle.Create) + fieldMapping?: FieldMapping; } @doc("Managed Azure AI Search Index Definition") @@ -67,6 +71,10 @@ model CosmosDBIndex extends Index { @doc("Embedding model configuration") @visibility(Lifecycle.Create) embeddingConfiguration: EmbeddingConfiguration; + + @doc("Field mapping configuration") + @visibility(Lifecycle.Create) + fieldMapping: FieldMapping; } @doc("Embedding configuration class") @@ -81,6 +89,34 @@ model EmbeddingConfiguration { embeddingField: string; } +@doc("Field mapping configuration class") +@added(Versions.v2025_05_01) +model FieldMapping { + @doc("List of fields with text content") + @visibility(Lifecycle.Create) + contentFields: string[]; + + @doc("Path of file to be used as a source of text content") + @visibility(Lifecycle.Create) + filepathField?: string; + + @doc("Field containing the title of the document") + @visibility(Lifecycle.Create) + titleField?: string; + + @doc("Field containing the url of the document") + @visibility(Lifecycle.Create) + urlField?: string; + + @doc("List of fields with vector content") + @visibility(Lifecycle.Create) + vectorFields?: string[]; + + @doc("List of fields with metadata content") + @visibility(Lifecycle.Create) + metadataFields?: string[]; +} + @added(Versions.v2025_05_01) union IndexType { string, diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json index ad4f694be3aa..2f8ab9e2f0e7 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json @@ -1841,6 +1841,13 @@ "x-ms-mutability": [ "create" ] + }, + "fieldMapping": { + "$ref": "#/definitions/FieldMapping", + "description": "Field mapping configuration", + "x-ms-mutability": [ + "create" + ] } }, "required": [ @@ -2071,13 +2078,21 @@ "x-ms-mutability": [ "create" ] + }, + "fieldMapping": { + "$ref": "#/definitions/FieldMapping", + "description": "Field mapping configuration", + "x-ms-mutability": [ + "create" + ] } }, "required": [ "connectionName", "databaseName", "containerName", - "embeddingConfiguration" + "embeddingConfiguration", + "fieldMapping" ], "allOf": [ { @@ -2435,6 +2450,66 @@ "id" ] }, + "FieldMapping": { + "type": "object", + "description": "Field mapping configuration class", + "properties": { + "contentFields": { + "type": "array", + "description": "List of fields with text content", + "items": { + "type": "string" + }, + "x-ms-mutability": [ + "create" + ] + }, + "filepathField": { + "type": "string", + "description": "Path of file to be used as a source of text content", + "x-ms-mutability": [ + "create" + ] + }, + "titleField": { + "type": "string", + "description": "Field containing the title of the document", + "x-ms-mutability": [ + "create" + ] + }, + "urlField": { + "type": "string", + "description": "Field containing the url of the document", + "x-ms-mutability": [ + "create" + ] + }, + "vectorFields": { + "type": "array", + "description": "List of fields with vector content", + "items": { + "type": "string" + }, + "x-ms-mutability": [ + "create" + ] + }, + "metadataFields": { + "type": "array", + "description": "List of fields with metadata content", + "items": { + "type": "string" + }, + "x-ms-mutability": [ + "create" + ] + } + }, + "required": [ + "contentFields" + ] + }, "FileDatasetVersion": { "type": "object", "description": "FileDatasetVersion Definition", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json index 03992d5c5703..3c96d27cf2f3 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json @@ -1177,6 +1177,13 @@ "x-ms-mutability": [ "create" ] + }, + "fieldMapping": { + "$ref": "#/definitions/FieldMapping", + "description": "Field mapping configuration", + "x-ms-mutability": [ + "create" + ] } }, "required": [ @@ -1388,13 +1395,21 @@ "x-ms-mutability": [ "create" ] + }, + "fieldMapping": { + "$ref": "#/definitions/FieldMapping", + "description": "Field mapping configuration", + "x-ms-mutability": [ + "create" + ] } }, "required": [ "connectionName", "databaseName", "containerName", - "embeddingConfiguration" + "embeddingConfiguration", + "fieldMapping" ], "allOf": [ { @@ -1672,6 +1687,66 @@ ], "x-ms-discriminator-value": "AAD" }, + "FieldMapping": { + "type": "object", + "description": "Field mapping configuration class", + "properties": { + "contentFields": { + "type": "array", + "description": "List of fields with text content", + "items": { + "type": "string" + }, + "x-ms-mutability": [ + "create" + ] + }, + "filepathField": { + "type": "string", + "description": "Path of file to be used as a source of text content", + "x-ms-mutability": [ + "create" + ] + }, + "titleField": { + "type": "string", + "description": "Field containing the title of the document", + "x-ms-mutability": [ + "create" + ] + }, + "urlField": { + "type": "string", + "description": "Field containing the url of the document", + "x-ms-mutability": [ + "create" + ] + }, + "vectorFields": { + "type": "array", + "description": "List of fields with vector content", + "items": { + "type": "string" + }, + "x-ms-mutability": [ + "create" + ] + }, + "metadataFields": { + "type": "array", + "description": "List of fields with metadata content", + "items": { + "type": "string" + }, + "x-ms-mutability": [ + "create" + ] + } + }, + "required": [ + "contentFields" + ] + }, "FileDatasetVersion": { "type": "object", "description": "FileDatasetVersion Definition", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json index 1bff588ab00d..14d9cac190fa 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json @@ -1177,6 +1177,13 @@ "x-ms-mutability": [ "create" ] + }, + "fieldMapping": { + "$ref": "#/definitions/FieldMapping", + "description": "Field mapping configuration", + "x-ms-mutability": [ + "create" + ] } }, "required": [ @@ -1388,13 +1395,21 @@ "x-ms-mutability": [ "create" ] + }, + "fieldMapping": { + "$ref": "#/definitions/FieldMapping", + "description": "Field mapping configuration", + "x-ms-mutability": [ + "create" + ] } }, "required": [ "connectionName", "databaseName", "containerName", - "embeddingConfiguration" + "embeddingConfiguration", + "fieldMapping" ], "allOf": [ { @@ -1672,6 +1687,66 @@ ], "x-ms-discriminator-value": "AAD" }, + "FieldMapping": { + "type": "object", + "description": "Field mapping configuration class", + "properties": { + "contentFields": { + "type": "array", + "description": "List of fields with text content", + "items": { + "type": "string" + }, + "x-ms-mutability": [ + "create" + ] + }, + "filepathField": { + "type": "string", + "description": "Path of file to be used as a source of text content", + "x-ms-mutability": [ + "create" + ] + }, + "titleField": { + "type": "string", + "description": "Field containing the title of the document", + "x-ms-mutability": [ + "create" + ] + }, + "urlField": { + "type": "string", + "description": "Field containing the url of the document", + "x-ms-mutability": [ + "create" + ] + }, + "vectorFields": { + "type": "array", + "description": "List of fields with vector content", + "items": { + "type": "string" + }, + "x-ms-mutability": [ + "create" + ] + }, + "metadataFields": { + "type": "array", + "description": "List of fields with metadata content", + "items": { + "type": "string" + }, + "x-ms-mutability": [ + "create" + ] + } + }, + "required": [ + "contentFields" + ] + }, "FileDatasetVersion": { "type": "object", "description": "FileDatasetVersion Definition", From 0075ada82f12109cc70f5d13b505fbb848a2a28b Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Wed, 7 May 2025 09:41:06 -0700 Subject: [PATCH 141/143] Remove pagination query params from the /connection list operation (#34486) --- .../Azure.AI.Projects/connections/routes.tsp | 2 - .../2025-05-15-preview/azure-ai-projects.json | 37 ------------------- .../stable/2025-05-01/azure-ai-projects.json | 37 ------------------- .../stable/v1/azure-ai-projects.json | 37 ------------------- 4 files changed, 113 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/connections/routes.tsp b/specification/ai/Azure.AI.Projects/connections/routes.tsp index 1e04fe86ac9c..436782b55d8e 100644 --- a/specification/ai/Azure.AI.Projects/connections/routes.tsp +++ b/specification/ai/Azure.AI.Projects/connections/routes.tsp @@ -43,8 +43,6 @@ interface Connections { @doc("List connections that are default connections") @query("defaultConnection") defaultConnection?: boolean; - - ...StandardListQueryParameters; }> >; } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json index 2f8ab9e2f0e7..6f22bba580a2 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json @@ -136,15 +136,6 @@ "required": false, "type": "boolean" }, - { - "$ref": "#/parameters/Azure.Core.TopQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.SkipQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" - }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -3240,34 +3231,6 @@ "minLength": 1, "x-ms-parameter-location": "method", "x-ms-client-name": "apiVersion" - }, - "Azure.Core.MaxPageSizeQueryParameter": { - "name": "maxpagesize", - "in": "query", - "description": "The maximum number of result items per page.", - "required": false, - "type": "integer", - "format": "int32", - "x-ms-parameter-location": "method" - }, - "Azure.Core.SkipQueryParameter": { - "name": "skip", - "in": "query", - "description": "The number of result items to skip.", - "required": false, - "type": "integer", - "format": "int32", - "default": 0, - "x-ms-parameter-location": "method" - }, - "Azure.Core.TopQueryParameter": { - "name": "top", - "in": "query", - "description": "The number of result items to return.", - "required": false, - "type": "integer", - "format": "int32", - "x-ms-parameter-location": "method" } } } diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json index 3c96d27cf2f3..4f40ddab8e44 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json @@ -136,15 +136,6 @@ "required": false, "type": "boolean" }, - { - "$ref": "#/parameters/Azure.Core.TopQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.SkipQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" - }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -2279,34 +2270,6 @@ "minLength": 1, "x-ms-parameter-location": "method", "x-ms-client-name": "apiVersion" - }, - "Azure.Core.MaxPageSizeQueryParameter": { - "name": "maxpagesize", - "in": "query", - "description": "The maximum number of result items per page.", - "required": false, - "type": "integer", - "format": "int32", - "x-ms-parameter-location": "method" - }, - "Azure.Core.SkipQueryParameter": { - "name": "skip", - "in": "query", - "description": "The number of result items to skip.", - "required": false, - "type": "integer", - "format": "int32", - "default": 0, - "x-ms-parameter-location": "method" - }, - "Azure.Core.TopQueryParameter": { - "name": "top", - "in": "query", - "description": "The number of result items to return.", - "required": false, - "type": "integer", - "format": "int32", - "x-ms-parameter-location": "method" } } } diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json index 14d9cac190fa..7bbe4c05a96c 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json @@ -136,15 +136,6 @@ "required": false, "type": "boolean" }, - { - "$ref": "#/parameters/Azure.Core.TopQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.SkipQueryParameter" - }, - { - "$ref": "#/parameters/Azure.Core.MaxPageSizeQueryParameter" - }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -2279,34 +2270,6 @@ "minLength": 1, "x-ms-parameter-location": "method", "x-ms-client-name": "apiVersion" - }, - "Azure.Core.MaxPageSizeQueryParameter": { - "name": "maxpagesize", - "in": "query", - "description": "The maximum number of result items per page.", - "required": false, - "type": "integer", - "format": "int32", - "x-ms-parameter-location": "method" - }, - "Azure.Core.SkipQueryParameter": { - "name": "skip", - "in": "query", - "description": "The number of result items to skip.", - "required": false, - "type": "integer", - "format": "int32", - "default": 0, - "x-ms-parameter-location": "method" - }, - "Azure.Core.TopQueryParameter": { - "name": "top", - "in": "query", - "description": "The number of result items to return.", - "required": false, - "type": "integer", - "format": "int32", - "x-ms-parameter-location": "method" } } } From 101e4e0833b0cb93b7dc46e23d0d824ec6054e39 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Thu, 8 May 2025 14:13:39 -0700 Subject: [PATCH 142/143] Add optional connectionName to DatasetVersion (#34521) --- specification/ai/Azure.AI.Projects/common/models.tsp | 2 +- .../ai/Azure.AI.Projects/datasets/models.tsp | 6 +++++- .../2025-05-15-preview/azure-ai-projects.json | 12 ++++++++++-- .../stable/2025-05-01/azure-ai-projects.json | 12 ++++++++++-- .../stable/v1/azure-ai-projects.json | 12 ++++++++++-- 5 files changed, 36 insertions(+), 8 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/common/models.tsp b/specification/ai/Azure.AI.Projects/common/models.tsp index b7a0f35517f4..73911039e517 100644 --- a/specification/ai/Azure.AI.Projects/common/models.tsp +++ b/specification/ai/Azure.AI.Projects/common/models.tsp @@ -67,7 +67,7 @@ model PendingUploadRequest { @doc("If PendingUploadId is not provided, a random GUID will be used.") pendingUploadId?: string; - @doc("Name of Azure blob storage connection to use for generating temporary SAS token") + @doc("Azure Storage Account connection name to use for generating temporary SAS token") connectionName?: string; @doc("BlobReference is the only supported type.") diff --git a/specification/ai/Azure.AI.Projects/datasets/models.tsp b/specification/ai/Azure.AI.Projects/datasets/models.tsp index 6b1895fd7be7..2d32aa18657b 100644 --- a/specification/ai/Azure.AI.Projects/datasets/models.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/models.tsp @@ -37,10 +37,14 @@ model DatasetVersion { @doc("Dataset type") type: DatasetType; - @doc("Indicates if dataset is reference only or managed by dataset service. If true, the underlying data will be deleted when the dataset version is deleted") + @doc("Indicates if the dataset holds a reference to the storage, or the dataset manages storage itself. If true, the underlying data will not be deleted when the dataset version is deleted") @visibility(Lifecycle.Read) isReference?: boolean; + @doc("The Azure Storage Account connection name. Required if startPendingUploadVersion was not called before creating the Dataset") + @visibility(Lifecycle.Read, Lifecycle.Create) + connectionName?: string; + ...AssetBase; } diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json index 6f22bba580a2..db1103627d27 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json @@ -2211,9 +2211,17 @@ }, "isReference": { "type": "boolean", - "description": "Indicates if dataset is reference only or managed by dataset service. If true, the underlying data will be deleted when the dataset version is deleted", + "description": "Indicates if the dataset holds a reference to the storage, or the dataset manages storage itself. If true, the underlying data will not be deleted when the dataset version is deleted", "readOnly": true }, + "connectionName": { + "type": "string", + "description": "The Azure Storage Account connection name. Required if startPendingUploadVersion was not called before creating the Dataset", + "x-ms-mutability": [ + "read", + "create" + ] + }, "id": { "type": "string", "description": "Asset ID, a unique identifier for the asset", @@ -2937,7 +2945,7 @@ }, "connectionName": { "type": "string", - "description": "Name of Azure blob storage connection to use for generating temporary SAS token" + "description": "Azure Storage Account connection name to use for generating temporary SAS token" }, "pendingUploadType": { "type": "string", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json index 4f40ddab8e44..57eccaa32a4d 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json @@ -1528,9 +1528,17 @@ }, "isReference": { "type": "boolean", - "description": "Indicates if dataset is reference only or managed by dataset service. If true, the underlying data will be deleted when the dataset version is deleted", + "description": "Indicates if the dataset holds a reference to the storage, or the dataset manages storage itself. If true, the underlying data will not be deleted when the dataset version is deleted", "readOnly": true }, + "connectionName": { + "type": "string", + "description": "The Azure Storage Account connection name. Required if startPendingUploadVersion was not called before creating the Dataset", + "x-ms-mutability": [ + "read", + "create" + ] + }, "id": { "type": "string", "description": "Asset ID, a unique identifier for the asset", @@ -2097,7 +2105,7 @@ }, "connectionName": { "type": "string", - "description": "Name of Azure blob storage connection to use for generating temporary SAS token" + "description": "Azure Storage Account connection name to use for generating temporary SAS token" }, "pendingUploadType": { "type": "string", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json index 7bbe4c05a96c..25fc189ad970 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json @@ -1528,9 +1528,17 @@ }, "isReference": { "type": "boolean", - "description": "Indicates if dataset is reference only or managed by dataset service. If true, the underlying data will be deleted when the dataset version is deleted", + "description": "Indicates if the dataset holds a reference to the storage, or the dataset manages storage itself. If true, the underlying data will not be deleted when the dataset version is deleted", "readOnly": true }, + "connectionName": { + "type": "string", + "description": "The Azure Storage Account connection name. Required if startPendingUploadVersion was not called before creating the Dataset", + "x-ms-mutability": [ + "read", + "create" + ] + }, "id": { "type": "string", "description": "Asset ID, a unique identifier for the asset", @@ -2097,7 +2105,7 @@ }, "connectionName": { "type": "string", - "description": "Name of Azure blob storage connection to use for generating temporary SAS token" + "description": "Azure Storage Account connection name to use for generating temporary SAS token" }, "pendingUploadType": { "type": "string", From 07a63adf249cb199d5abd179448c92cd6e3446c8 Mon Sep 17 00:00:00 2001 From: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> Date: Thu, 8 May 2025 17:44:04 -0400 Subject: [PATCH 143/143] Fix TypeSpec Validation and Address Minor Feedback (#34536) * Fix TypeSpec Validation * fix examples * fix swagger examples * clean up imports and delete a client file * clean up more unused imports" * fix examples --------- Co-authored-by: Neehar Duvvuri --- .../ai/Azure.AI.Projects/common/models.tsp | 2 - .../Azure.AI.Projects/connections/routes.tsp | 1 - ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 3 +- ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 3 +- ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 2 +- ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 2 +- ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 3 +- ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 3 +- ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 2 +- ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 2 +- ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 3 +- ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 3 +- ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 2 +- ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 2 +- .../ai/Azure.AI.Projects/red-teams/client.tsp | 3 - .../ai/Azure.AI.Projects/red-teams/models.tsp | 4 - .../2025-05-15-preview/azure-ai-projects.json | 120 +----------------- ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 3 +- ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 3 +- ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 2 +- ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 2 +- .../stable/2025-05-01/azure-ai-projects.json | 120 +----------------- ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 3 +- ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 3 +- ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 2 +- ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 2 +- .../stable/v1/azure-ai-projects.json | 120 +----------------- ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 3 +- ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 3 +- ..._CreateOrUpdateVersion_MaximumSet_Gen.json | 2 +- ..._CreateOrUpdateVersion_MinimumSet_Gen.json | 2 +- 31 files changed, 42 insertions(+), 388 deletions(-) delete mode 100644 specification/ai/Azure.AI.Projects/red-teams/client.tsp diff --git a/specification/ai/Azure.AI.Projects/common/models.tsp b/specification/ai/Azure.AI.Projects/common/models.tsp index 73911039e517..4d615ca7fdf6 100644 --- a/specification/ai/Azure.AI.Projects/common/models.tsp +++ b/specification/ai/Azure.AI.Projects/common/models.tsp @@ -3,8 +3,6 @@ import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; import "@azure-tools/typespec-azure-resource-manager"; -using TypeSpec.Http; - namespace Azure.AI.Projects; alias AssetBase = { diff --git a/specification/ai/Azure.AI.Projects/connections/routes.tsp b/specification/ai/Azure.AI.Projects/connections/routes.tsp index 436782b55d8e..7038a2b92c07 100644 --- a/specification/ai/Azure.AI.Projects/connections/routes.tsp +++ b/specification/ai/Azure.AI.Projects/connections/routes.tsp @@ -5,7 +5,6 @@ import "@azure-tools/typespec-azure-core"; import "./models.tsp"; using TypeSpec.Http; -using Azure.Core; using Azure.Core.Traits; using TypeSpec.Versioning; diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json index ebcb2307dccd..ac5689cf7bf9 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -6,7 +6,8 @@ "name": "grpenjfobadxmsceuqwunwqn", "version": "dfo", "body": { - "type": "DatasetVersionUpdate", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", "description": "zukluwbmoq", "tags": { "key8794": "ietydcqbwiebstkxrmqzsadlraapox" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json index 6df225061c08..b9dce746b790 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -6,7 +6,8 @@ "name": "rpnyigsqddnpdmrboazyi", "version": "iplgbfirylwervrnglnnbwwzodsm", "body": { - "type": "DatasetVersionUpdate" + "type": "DatasetVersion", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]" } }, "responses": { diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json index c4d4e5e89412..35dc866fade1 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -6,7 +6,7 @@ "name": "qlslwpztrobxh", "version": "lvwrjftywgtfixhxoxbmcs", "body": { - "type": "IndexUpdate", + "type": "Index", "description": "fvbkomalkxkj", "tags": { "key8738": "gmejegbwwrkawbdxuv" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json index f6d5cf34f1c7..96d3b1f77ded 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-01/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -6,7 +6,7 @@ "name": "ypkrjjvche", "version": "gmorfjnfnwawvkwsjsodunylq", "body": { - "type": "IndexUpdate" + "type": "Index" } }, "responses": { diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json index daccfcebabde..412da74f51ba 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -6,7 +6,8 @@ "name": "vfupg", "version": "ecacrnqtmggfqsocagocpf", "body": { - "type": "DatasetVersionUpdate", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", "description": "u", "tags": { "key7559": "ybrhnrxopsvmxqxibvysedlsy" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json index 3aa2f26de687..ce5e5dbe9e0b 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -6,7 +6,8 @@ "name": "ryqozexodzklgkffokixpftfkcy", "version": "vldbiveryfmysxuzw", "body": { - "type": "DatasetVersionUpdate" + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion" } }, "responses": { diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json index abc4405e5623..3b6ac40c5f1d 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -6,7 +6,7 @@ "name": "tv", "version": "emphgqdq", "body": { - "type": "IndexUpdate", + "type": "Index", "description": "vdwtgaudopguto", "tags": { "key8846": "serbpbugykgbwuwvh" diff --git a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json index 59fd1d9e7dd2..8b570a419db2 100644 --- a/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/2025-05-15-preview/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -6,7 +6,7 @@ "name": "lvlygvkgvkbzutknlnretfvivdgkb", "version": "ct", "body": { - "type": "IndexUpdate" + "type": "Index" } }, "responses": { diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json index 5d7bc41a8dc0..8c9bc28da150 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -6,7 +6,8 @@ "name": "nsvugzcnsvqodrxiojanhtdymgglnx", "version": "utbfmfka", "body": { - "type": "DatasetVersionUpdate", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", "description": "grthjigklkewz", "tags": { "key868": "yjmiiufnnccqfiljtndr" diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json index d5614dd8f9f2..907ad46f02a2 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -6,7 +6,8 @@ "name": "pluvp", "version": "playwidjgezovivciosnkerrdwe", "body": { - "type": "DatasetVersionUpdate" + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion" } }, "responses": { diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json index af165cd1ed1f..b43bd4b291f1 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -6,7 +6,7 @@ "name": "kptgsnpfjcunvvdgzfjdmnurq", "version": "hxutytnzwioiijfinpdojrnrqhqb", "body": { - "type": "IndexUpdate", + "type": "Index", "description": "wtjqhnlwihffw", "tags": { "key1654": "aqtywrvy" diff --git a/specification/ai/Azure.AI.Projects/examples/v1/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json index 003e2d0b162b..bf495cf8c9d5 100644 --- a/specification/ai/Azure.AI.Projects/examples/v1/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/Azure.AI.Projects/examples/v1/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -6,7 +6,7 @@ "name": "dpfjghwaowffzhoyuwrnmws", "version": "priaizsqiwxrwnhhyk", "body": { - "type": "IndexUpdate" + "type": "Index" } }, "responses": { diff --git a/specification/ai/Azure.AI.Projects/red-teams/client.tsp b/specification/ai/Azure.AI.Projects/red-teams/client.tsp deleted file mode 100644 index 3ab2f4305518..000000000000 --- a/specification/ai/Azure.AI.Projects/red-teams/client.tsp +++ /dev/null @@ -1,3 +0,0 @@ -import "@azure-tools/typespec-client-generator-core"; - -using Azure.ClientGenerator.Core; diff --git a/specification/ai/Azure.AI.Projects/red-teams/models.tsp b/specification/ai/Azure.AI.Projects/red-teams/models.tsp index fc0f50986e7f..b6ec4eb4dc58 100644 --- a/specification/ai/Azure.AI.Projects/red-teams/models.tsp +++ b/specification/ai/Azure.AI.Projects/red-teams/models.tsp @@ -6,12 +6,8 @@ import "@azure-tools/typespec-azure-core"; import "@typespec/openapi"; import "../common/models.tsp"; -using TypeSpec.OpenAPI; -using TypeSpec.Http; using TypeSpec.Rest; using TypeSpec.Versioning; -using Azure.Core; -using Azure.Core.Traits; namespace Azure.AI.Projects; diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json index db1103627d27..c9ee48da4370 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/azure-ai-projects.json @@ -456,7 +456,7 @@ "description": "The definition of the DatasetVersion to create or update", "required": true, "schema": { - "$ref": "#/definitions/DatasetVersionUpdate" + "$ref": "#/definitions/DatasetVersion" } } ], @@ -1167,7 +1167,7 @@ "description": "The definition of the Index to create or update", "required": true, "schema": { - "$ref": "#/definitions/IndexUpdate" + "$ref": "#/definitions/Index" } } ], @@ -1852,16 +1852,6 @@ ], "x-ms-discriminator-value": "AzureSearch" }, - "AzureAISearchIndexUpdate": { - "type": "object", - "description": "Azure AI Search Index Definition", - "allOf": [ - { - "$ref": "#/definitions/IndexUpdate" - } - ], - "x-ms-discriminator-value": "AzureSearch" - }, "AzureOpenAIModelConfiguration": { "type": "object", "description": "Azure OpenAI model configuration. The API version would be selected by the service for querying the model.", @@ -2092,16 +2082,6 @@ ], "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" }, - "CosmosDBIndexUpdate": { - "type": "object", - "description": "CosmosDB Vector Store Index Definition", - "allOf": [ - { - "$ref": "#/definitions/IndexUpdate" - } - ], - "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" - }, "CredentialType": { "type": "string", "description": "The credential type used by the connection", @@ -2265,39 +2245,6 @@ "version" ] }, - "DatasetVersionUpdate": { - "type": "object", - "description": "DatasetVersion Definition", - "properties": { - "type": { - "$ref": "#/definitions/DatasetType", - "description": "Dataset type" - }, - "description": { - "type": "string", - "description": "The asset description text.", - "x-ms-mutability": [ - "update", - "create" - ] - }, - "tags": { - "type": "object", - "description": "Tag dictionary. Tags can be added, removed, and updated.", - "additionalProperties": { - "type": "string" - }, - "x-ms-mutability": [ - "update", - "create" - ] - } - }, - "discriminator": "type", - "required": [ - "type" - ] - }, "Deployment": { "type": "object", "description": "Model Deployment Definition", @@ -2519,16 +2466,6 @@ ], "x-ms-discriminator-value": "uri_file" }, - "FileDatasetVersionUpdate": { - "type": "object", - "description": "FileDatasetVersion Definition", - "allOf": [ - { - "$ref": "#/definitions/DatasetVersionUpdate" - } - ], - "x-ms-discriminator-value": "uri_file" - }, "FolderDatasetVersion": { "type": "object", "description": "FileDatasetVersion Definition", @@ -2539,16 +2476,6 @@ ], "x-ms-discriminator-value": "uri_folder" }, - "FolderDatasetVersionUpdate": { - "type": "object", - "description": "FileDatasetVersion Definition", - "allOf": [ - { - "$ref": "#/definitions/DatasetVersionUpdate" - } - ], - "x-ms-discriminator-value": "uri_folder" - }, "Index": { "type": "object", "description": "Index resource Definition", @@ -2628,39 +2555,6 @@ ] } }, - "IndexUpdate": { - "type": "object", - "description": "Index resource Definition", - "properties": { - "type": { - "$ref": "#/definitions/IndexType", - "description": "Type of index" - }, - "description": { - "type": "string", - "description": "The asset description text.", - "x-ms-mutability": [ - "update", - "create" - ] - }, - "tags": { - "type": "object", - "description": "Tag dictionary. Tags can be added, removed, and updated.", - "additionalProperties": { - "type": "string" - }, - "x-ms-mutability": [ - "update", - "create" - ] - } - }, - "discriminator": "type", - "required": [ - "type" - ] - }, "InputData": { "type": "object", "description": "Abstract data class.", @@ -2716,16 +2610,6 @@ ], "x-ms-discriminator-value": "ManagedAzureSearch" }, - "ManagedAzureAISearchIndexUpdate": { - "type": "object", - "description": "Managed Azure AI Search Index Definition", - "allOf": [ - { - "$ref": "#/definitions/IndexUpdate" - } - ], - "x-ms-discriminator-value": "ManagedAzureSearch" - }, "ModelDeployment": { "type": "object", "description": "Model Deployment Definition", diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json index daccfcebabde..412da74f51ba 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -6,7 +6,8 @@ "name": "vfupg", "version": "ecacrnqtmggfqsocagocpf", "body": { - "type": "DatasetVersionUpdate", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", "description": "u", "tags": { "key7559": "ybrhnrxopsvmxqxibvysedlsy" diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json index 3aa2f26de687..ce5e5dbe9e0b 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -6,7 +6,8 @@ "name": "ryqozexodzklgkffokixpftfkcy", "version": "vldbiveryfmysxuzw", "body": { - "type": "DatasetVersionUpdate" + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion" } }, "responses": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json index abc4405e5623..3b6ac40c5f1d 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -6,7 +6,7 @@ "name": "tv", "version": "emphgqdq", "body": { - "type": "IndexUpdate", + "type": "Index", "description": "vdwtgaudopguto", "tags": { "key8846": "serbpbugykgbwuwvh" diff --git a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json index 59fd1d9e7dd2..8b570a419db2 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/preview/2025-05-15-preview/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -6,7 +6,7 @@ "name": "lvlygvkgvkbzutknlnretfvivdgkb", "version": "ct", "body": { - "type": "IndexUpdate" + "type": "Index" } }, "responses": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json index 57eccaa32a4d..3f1dd6a8941b 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/azure-ai-projects.json @@ -456,7 +456,7 @@ "description": "The definition of the DatasetVersion to create or update", "required": true, "schema": { - "$ref": "#/definitions/DatasetVersionUpdate" + "$ref": "#/definitions/DatasetVersion" } } ], @@ -969,7 +969,7 @@ "description": "The definition of the Index to create or update", "required": true, "schema": { - "$ref": "#/definitions/IndexUpdate" + "$ref": "#/definitions/Index" } } ], @@ -1188,16 +1188,6 @@ ], "x-ms-discriminator-value": "AzureSearch" }, - "AzureAISearchIndexUpdate": { - "type": "object", - "description": "Azure AI Search Index Definition", - "allOf": [ - { - "$ref": "#/definitions/IndexUpdate" - } - ], - "x-ms-discriminator-value": "AzureSearch" - }, "BaseCredentials": { "type": "object", "description": "A base class for connection credentials", @@ -1409,16 +1399,6 @@ ], "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" }, - "CosmosDBIndexUpdate": { - "type": "object", - "description": "CosmosDB Vector Store Index Definition", - "allOf": [ - { - "$ref": "#/definitions/IndexUpdate" - } - ], - "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" - }, "CredentialType": { "type": "string", "description": "The credential type used by the connection", @@ -1582,39 +1562,6 @@ "version" ] }, - "DatasetVersionUpdate": { - "type": "object", - "description": "DatasetVersion Definition", - "properties": { - "type": { - "$ref": "#/definitions/DatasetType", - "description": "Dataset type" - }, - "description": { - "type": "string", - "description": "The asset description text.", - "x-ms-mutability": [ - "update", - "create" - ] - }, - "tags": { - "type": "object", - "description": "Tag dictionary. Tags can be added, removed, and updated.", - "additionalProperties": { - "type": "string" - }, - "x-ms-mutability": [ - "update", - "create" - ] - } - }, - "discriminator": "type", - "required": [ - "type" - ] - }, "Deployment": { "type": "object", "description": "Model Deployment Definition", @@ -1756,16 +1703,6 @@ ], "x-ms-discriminator-value": "uri_file" }, - "FileDatasetVersionUpdate": { - "type": "object", - "description": "FileDatasetVersion Definition", - "allOf": [ - { - "$ref": "#/definitions/DatasetVersionUpdate" - } - ], - "x-ms-discriminator-value": "uri_file" - }, "FolderDatasetVersion": { "type": "object", "description": "FileDatasetVersion Definition", @@ -1776,16 +1713,6 @@ ], "x-ms-discriminator-value": "uri_folder" }, - "FolderDatasetVersionUpdate": { - "type": "object", - "description": "FileDatasetVersion Definition", - "allOf": [ - { - "$ref": "#/definitions/DatasetVersionUpdate" - } - ], - "x-ms-discriminator-value": "uri_folder" - }, "Index": { "type": "object", "description": "Index resource Definition", @@ -1865,39 +1792,6 @@ ] } }, - "IndexUpdate": { - "type": "object", - "description": "Index resource Definition", - "properties": { - "type": { - "$ref": "#/definitions/IndexType", - "description": "Type of index" - }, - "description": { - "type": "string", - "description": "The asset description text.", - "x-ms-mutability": [ - "update", - "create" - ] - }, - "tags": { - "type": "object", - "description": "Tag dictionary. Tags can be added, removed, and updated.", - "additionalProperties": { - "type": "string" - }, - "x-ms-mutability": [ - "update", - "create" - ] - } - }, - "discriminator": "type", - "required": [ - "type" - ] - }, "ManagedAzureAISearchIndex": { "type": "object", "description": "Managed Azure AI Search Index Definition", @@ -1920,16 +1814,6 @@ ], "x-ms-discriminator-value": "ManagedAzureSearch" }, - "ManagedAzureAISearchIndexUpdate": { - "type": "object", - "description": "Managed Azure AI Search Index Definition", - "allOf": [ - { - "$ref": "#/definitions/IndexUpdate" - } - ], - "x-ms-discriminator-value": "ManagedAzureSearch" - }, "ModelDeployment": { "type": "object", "description": "Model Deployment Definition", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json index ebcb2307dccd..ac5689cf7bf9 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -6,7 +6,8 @@ "name": "grpenjfobadxmsceuqwunwqn", "version": "dfo", "body": { - "type": "DatasetVersionUpdate", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", "description": "zukluwbmoq", "tags": { "key8794": "ietydcqbwiebstkxrmqzsadlraapox" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json index 6df225061c08..b9dce746b790 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -6,7 +6,8 @@ "name": "rpnyigsqddnpdmrboazyi", "version": "iplgbfirylwervrnglnnbwwzodsm", "body": { - "type": "DatasetVersionUpdate" + "type": "DatasetVersion", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]" } }, "responses": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json index c4d4e5e89412..35dc866fade1 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -6,7 +6,7 @@ "name": "qlslwpztrobxh", "version": "lvwrjftywgtfixhxoxbmcs", "body": { - "type": "IndexUpdate", + "type": "Index", "description": "fvbkomalkxkj", "tags": { "key8738": "gmejegbwwrkawbdxuv" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json index f6d5cf34f1c7..96d3b1f77ded 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/2025-05-01/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -6,7 +6,7 @@ "name": "ypkrjjvche", "version": "gmorfjnfnwawvkwsjsodunylq", "body": { - "type": "IndexUpdate" + "type": "Index" } }, "responses": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json index 25fc189ad970..26eff6ca54bb 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/azure-ai-projects.json @@ -456,7 +456,7 @@ "description": "The definition of the DatasetVersion to create or update", "required": true, "schema": { - "$ref": "#/definitions/DatasetVersionUpdate" + "$ref": "#/definitions/DatasetVersion" } } ], @@ -969,7 +969,7 @@ "description": "The definition of the Index to create or update", "required": true, "schema": { - "$ref": "#/definitions/IndexUpdate" + "$ref": "#/definitions/Index" } } ], @@ -1188,16 +1188,6 @@ ], "x-ms-discriminator-value": "AzureSearch" }, - "AzureAISearchIndexUpdate": { - "type": "object", - "description": "Azure AI Search Index Definition", - "allOf": [ - { - "$ref": "#/definitions/IndexUpdate" - } - ], - "x-ms-discriminator-value": "AzureSearch" - }, "BaseCredentials": { "type": "object", "description": "A base class for connection credentials", @@ -1409,16 +1399,6 @@ ], "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" }, - "CosmosDBIndexUpdate": { - "type": "object", - "description": "CosmosDB Vector Store Index Definition", - "allOf": [ - { - "$ref": "#/definitions/IndexUpdate" - } - ], - "x-ms-discriminator-value": "CosmosDBNoSqlVectorStore" - }, "CredentialType": { "type": "string", "description": "The credential type used by the connection", @@ -1582,39 +1562,6 @@ "version" ] }, - "DatasetVersionUpdate": { - "type": "object", - "description": "DatasetVersion Definition", - "properties": { - "type": { - "$ref": "#/definitions/DatasetType", - "description": "Dataset type" - }, - "description": { - "type": "string", - "description": "The asset description text.", - "x-ms-mutability": [ - "update", - "create" - ] - }, - "tags": { - "type": "object", - "description": "Tag dictionary. Tags can be added, removed, and updated.", - "additionalProperties": { - "type": "string" - }, - "x-ms-mutability": [ - "update", - "create" - ] - } - }, - "discriminator": "type", - "required": [ - "type" - ] - }, "Deployment": { "type": "object", "description": "Model Deployment Definition", @@ -1756,16 +1703,6 @@ ], "x-ms-discriminator-value": "uri_file" }, - "FileDatasetVersionUpdate": { - "type": "object", - "description": "FileDatasetVersion Definition", - "allOf": [ - { - "$ref": "#/definitions/DatasetVersionUpdate" - } - ], - "x-ms-discriminator-value": "uri_file" - }, "FolderDatasetVersion": { "type": "object", "description": "FileDatasetVersion Definition", @@ -1776,16 +1713,6 @@ ], "x-ms-discriminator-value": "uri_folder" }, - "FolderDatasetVersionUpdate": { - "type": "object", - "description": "FileDatasetVersion Definition", - "allOf": [ - { - "$ref": "#/definitions/DatasetVersionUpdate" - } - ], - "x-ms-discriminator-value": "uri_folder" - }, "Index": { "type": "object", "description": "Index resource Definition", @@ -1865,39 +1792,6 @@ ] } }, - "IndexUpdate": { - "type": "object", - "description": "Index resource Definition", - "properties": { - "type": { - "$ref": "#/definitions/IndexType", - "description": "Type of index" - }, - "description": { - "type": "string", - "description": "The asset description text.", - "x-ms-mutability": [ - "update", - "create" - ] - }, - "tags": { - "type": "object", - "description": "Tag dictionary. Tags can be added, removed, and updated.", - "additionalProperties": { - "type": "string" - }, - "x-ms-mutability": [ - "update", - "create" - ] - } - }, - "discriminator": "type", - "required": [ - "type" - ] - }, "ManagedAzureAISearchIndex": { "type": "object", "description": "Managed Azure AI Search Index Definition", @@ -1920,16 +1814,6 @@ ], "x-ms-discriminator-value": "ManagedAzureSearch" }, - "ManagedAzureAISearchIndexUpdate": { - "type": "object", - "description": "Managed Azure AI Search Index Definition", - "allOf": [ - { - "$ref": "#/definitions/IndexUpdate" - } - ], - "x-ms-discriminator-value": "ManagedAzureSearch" - }, "ModelDeployment": { "type": "object", "description": "Model Deployment Definition", diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json index 5d7bc41a8dc0..8c9bc28da150 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -6,7 +6,8 @@ "name": "nsvugzcnsvqodrxiojanhtdymgglnx", "version": "utbfmfka", "body": { - "type": "DatasetVersionUpdate", + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion", "description": "grthjigklkewz", "tags": { "key868": "yjmiiufnnccqfiljtndr" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json index d5614dd8f9f2..907ad46f02a2 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Datasets_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -6,7 +6,8 @@ "name": "pluvp", "version": "playwidjgezovivciosnkerrdwe", "body": { - "type": "DatasetVersionUpdate" + "dataUri": "Replace this value with a string matching RegExp [a-zA-Z0-9_]", + "type": "DatasetVersion" } }, "responses": { diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json index af165cd1ed1f..b43bd4b291f1 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_CreateOrUpdateVersion_MaximumSet_Gen.json @@ -6,7 +6,7 @@ "name": "kptgsnpfjcunvvdgzfjdmnurq", "version": "hxutytnzwioiijfinpdojrnrqhqb", "body": { - "type": "IndexUpdate", + "type": "Index", "description": "wtjqhnlwihffw", "tags": { "key1654": "aqtywrvy" diff --git a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json index 003e2d0b162b..bf495cf8c9d5 100644 --- a/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json +++ b/specification/ai/data-plane/Azure.AI.Projects/stable/v1/examples/Indexes_CreateOrUpdateVersion_MinimumSet_Gen.json @@ -6,7 +6,7 @@ "name": "dpfjghwaowffzhoyuwrnmws", "version": "priaizsqiwxrwnhhyk", "body": { - "type": "IndexUpdate" + "type": "Index" } }, "responses": {