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",