From 9608da1e2ed1859a08cdf3b4490c3280e1e4f6ba Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Wed, 7 May 2025 20:27:06 -0700 Subject: [PATCH 1/5] First --- specification/ai/Azure.AI.Projects/datasets/models.tsp | 3 +-- .../preview/2025-05-15-preview/azure-ai-projects.json | 7 +++++-- .../stable/2025-05-01/azure-ai-projects.json | 7 +++++-- .../Azure.AI.Projects/stable/v1/azure-ai-projects.json | 7 +++++-- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/datasets/models.tsp b/specification/ai/Azure.AI.Projects/datasets/models.tsp index 6b1895fd7be7..134b1ea73aa3 100644 --- a/specification/ai/Azure.AI.Projects/datasets/models.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/models.tsp @@ -37,8 +37,7 @@ 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") - @visibility(Lifecycle.Read) + @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") isReference?: boolean; ...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..b997a80f132d 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,8 +2211,7 @@ }, "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 + "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" }, "id": { "type": "string", @@ -2265,6 +2264,10 @@ "$ref": "#/definitions/DatasetType", "description": "Dataset type" }, + "isReference": { + "type": "boolean", + "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" + }, "description": { "type": "string", "description": "The asset description text.", 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..e5a6debacc3c 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,8 +1528,7 @@ }, "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 + "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" }, "id": { "type": "string", @@ -1582,6 +1581,10 @@ "$ref": "#/definitions/DatasetType", "description": "Dataset type" }, + "isReference": { + "type": "boolean", + "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" + }, "description": { "type": "string", "description": "The asset description text.", 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..554f540a9cd5 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,8 +1528,7 @@ }, "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 + "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" }, "id": { "type": "string", @@ -1582,6 +1581,10 @@ "$ref": "#/definitions/DatasetType", "description": "Dataset type" }, + "isReference": { + "type": "boolean", + "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" + }, "description": { "type": "string", "description": "The asset description text.", From c9202102d3e33049b3319db2170e18c2f706a807 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Thu, 8 May 2025 06:21:22 -0700 Subject: [PATCH 2/5] Updates --- specification/ai/Azure.AI.Projects/common/models.tsp | 2 +- .../ai/Azure.AI.Projects/datasets/models.tsp | 5 ++++- .../preview/2025-05-15-preview/azure-ai-projects.json | 11 ++++++++++- .../stable/2025-05-01/azure-ai-projects.json | 11 ++++++++++- .../stable/v1/azure-ai-projects.json | 11 ++++++++++- 5 files changed, 35 insertions(+), 5 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 134b1ea73aa3..4127afc23c72 100644 --- a/specification/ai/Azure.AI.Projects/datasets/models.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/models.tsp @@ -38,7 +38,10 @@ model DatasetVersion { type: DatasetType; @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") - isReference?: boolean; + isReference: boolean; + + @doc("The Azure Storage Account connection name. Required if isReference is true.") + 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 b997a80f132d..7ba12b5fe8e6 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 @@ -2213,6 +2213,10 @@ "type": "boolean", "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" }, + "connectionName": { + "type": "string", + "description": "The Azure Storage Account connection name. Required if isReference is true." + }, "id": { "type": "string", "description": "Asset ID, a unique identifier for the asset", @@ -2252,6 +2256,7 @@ "required": [ "dataUri", "type", + "isReference", "name", "version" ] @@ -2268,6 +2273,10 @@ "type": "boolean", "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" }, + "connectionName": { + "type": "string", + "description": "The Azure Storage Account connection name. Required if isReference is true." + }, "description": { "type": "string", "description": "The asset description text.", @@ -2940,7 +2949,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 e5a6debacc3c..1e9e7df24d7c 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 @@ -1530,6 +1530,10 @@ "type": "boolean", "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" }, + "connectionName": { + "type": "string", + "description": "The Azure Storage Account connection name. Required if isReference is true." + }, "id": { "type": "string", "description": "Asset ID, a unique identifier for the asset", @@ -1569,6 +1573,7 @@ "required": [ "dataUri", "type", + "isReference", "name", "version" ] @@ -1585,6 +1590,10 @@ "type": "boolean", "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" }, + "connectionName": { + "type": "string", + "description": "The Azure Storage Account connection name. Required if isReference is true." + }, "description": { "type": "string", "description": "The asset description text.", @@ -2100,7 +2109,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 554f540a9cd5..2ac284706913 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 @@ -1530,6 +1530,10 @@ "type": "boolean", "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" }, + "connectionName": { + "type": "string", + "description": "The Azure Storage Account connection name. Required if isReference is true." + }, "id": { "type": "string", "description": "Asset ID, a unique identifier for the asset", @@ -1569,6 +1573,7 @@ "required": [ "dataUri", "type", + "isReference", "name", "version" ] @@ -1585,6 +1590,10 @@ "type": "boolean", "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" }, + "connectionName": { + "type": "string", + "description": "The Azure Storage Account connection name. Required if isReference is true." + }, "description": { "type": "string", "description": "The asset description text.", @@ -2100,7 +2109,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 7cc5aa8e8efe51685a9e6ccd65f13761d3e1818d Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Thu, 8 May 2025 13:46:06 -0700 Subject: [PATCH 3/5] Update specification/ai/Azure.AI.Projects/datasets/models.tsp Co-authored-by: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> --- specification/ai/Azure.AI.Projects/datasets/models.tsp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/specification/ai/Azure.AI.Projects/datasets/models.tsp b/specification/ai/Azure.AI.Projects/datasets/models.tsp index 4127afc23c72..b9b83bc780e1 100644 --- a/specification/ai/Azure.AI.Projects/datasets/models.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/models.tsp @@ -38,7 +38,8 @@ model DatasetVersion { type: DatasetType; @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") - isReference: boolean; + @visbility(Lifecycle.Read) + isReference?: boolean; @doc("The Azure Storage Account connection name. Required if isReference is true.") connectionName?: string; From 65c54d155a9a8d42b8b9c2270aaee17ee1d39e9b Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Thu, 8 May 2025 13:46:13 -0700 Subject: [PATCH 4/5] Update specification/ai/Azure.AI.Projects/datasets/models.tsp Co-authored-by: Neehar Duvvuri <40341266+needuv@users.noreply.github.com> --- specification/ai/Azure.AI.Projects/datasets/models.tsp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/specification/ai/Azure.AI.Projects/datasets/models.tsp b/specification/ai/Azure.AI.Projects/datasets/models.tsp index b9b83bc780e1..e11ef3a6a94f 100644 --- a/specification/ai/Azure.AI.Projects/datasets/models.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/models.tsp @@ -41,7 +41,8 @@ model DatasetVersion { @visbility(Lifecycle.Read) isReference?: boolean; - @doc("The Azure Storage Account connection name. Required if isReference is true.") + @doc("The Azure Storage Account connection name. Required if pendingUpload was not called before creating dataset") + @visbility(Lifecycle.Read, Lifecycle.Write) connectionName?: string; ...AssetBase; From 7f2d7e3c668a859db540531953897ba6db36f7bb Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Thu, 8 May 2025 13:57:58 -0700 Subject: [PATCH 5/5] Follow up on Neehar's comments --- .../ai/Azure.AI.Projects/datasets/models.tsp | 6 +++--- .../2025-05-15-preview/azure-ai-projects.json | 18 +++++++----------- .../stable/2025-05-01/azure-ai-projects.json | 18 +++++++----------- .../stable/v1/azure-ai-projects.json | 18 +++++++----------- 4 files changed, 24 insertions(+), 36 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/datasets/models.tsp b/specification/ai/Azure.AI.Projects/datasets/models.tsp index e11ef3a6a94f..2d32aa18657b 100644 --- a/specification/ai/Azure.AI.Projects/datasets/models.tsp +++ b/specification/ai/Azure.AI.Projects/datasets/models.tsp @@ -38,11 +38,11 @@ model DatasetVersion { type: DatasetType; @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") - @visbility(Lifecycle.Read) + @visibility(Lifecycle.Read) isReference?: boolean; - @doc("The Azure Storage Account connection name. Required if pendingUpload was not called before creating dataset") - @visbility(Lifecycle.Read, Lifecycle.Write) + @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 7ba12b5fe8e6..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,11 +2211,16 @@ }, "isReference": { "type": "boolean", - "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" + "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 isReference is true." + "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", @@ -2256,7 +2261,6 @@ "required": [ "dataUri", "type", - "isReference", "name", "version" ] @@ -2269,14 +2273,6 @@ "$ref": "#/definitions/DatasetType", "description": "Dataset type" }, - "isReference": { - "type": "boolean", - "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" - }, - "connectionName": { - "type": "string", - "description": "The Azure Storage Account connection name. Required if isReference is true." - }, "description": { "type": "string", "description": "The asset description text.", 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 1e9e7df24d7c..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,11 +1528,16 @@ }, "isReference": { "type": "boolean", - "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" + "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 isReference is true." + "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", @@ -1573,7 +1578,6 @@ "required": [ "dataUri", "type", - "isReference", "name", "version" ] @@ -1586,14 +1590,6 @@ "$ref": "#/definitions/DatasetType", "description": "Dataset type" }, - "isReference": { - "type": "boolean", - "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" - }, - "connectionName": { - "type": "string", - "description": "The Azure Storage Account connection name. Required if isReference is true." - }, "description": { "type": "string", "description": "The asset description text.", 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 2ac284706913..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,11 +1528,16 @@ }, "isReference": { "type": "boolean", - "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" + "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 isReference is true." + "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", @@ -1573,7 +1578,6 @@ "required": [ "dataUri", "type", - "isReference", "name", "version" ] @@ -1586,14 +1590,6 @@ "$ref": "#/definitions/DatasetType", "description": "Dataset type" }, - "isReference": { - "type": "boolean", - "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" - }, - "connectionName": { - "type": "string", - "description": "The Azure Storage Account connection name. Required if isReference is true." - }, "description": { "type": "string", "description": "The asset description text.",