From 9b98c934e756ce7046f99e01f0b0e30b3efe7ae2 Mon Sep 17 00:00:00 2001 From: MinjueWu <597922968@qq.com> Date: Thu, 11 Jan 2024 16:41:41 +0800 Subject: [PATCH 1/5] Add async batch image APIs in 2024-01-30-preview --- .../ContentSafety/models.tsp | 66 ++++++ .../ContentSafety/routes.tsp | 28 +++ .../2024-01-30-preview/contentsafety.json | 214 ++++++++++++++++++ 3 files changed, 308 insertions(+) diff --git a/specification/cognitiveservices/ContentSafety/models.tsp b/specification/cognitiveservices/ContentSafety/models.tsp index 6459f69d9e01..f58825574df8 100644 --- a/specification/cognitiveservices/ContentSafety/models.tsp +++ b/specification/cognitiveservices/ContentSafety/models.tsp @@ -40,6 +40,30 @@ enum AnalyzeImageOutputType { FourSeverityLevels, } +@doc("The type of batch results storage mode.") +enum BatchResultsStorageMode { + @doc("Merge each result into one file.") + CollectiveResultFile, + + @doc("Store each result in a single file.") + IndividualResultFiles, +} + +@doc("The type of batch analysis task status.") +enum BatchTaskStatus { + @doc("The task has not started yet.") + NotStarted, + + @doc("The task is in progress.") + Running, + + @doc("The task has failed.") + Failed, + + @doc("The task has been succeeded.") + Succeeded, +} + @doc("The text analysis request.") model AnalyzeTextOptions { @doc("The text needs to be analyzed. We support a maximum of 10k Unicode characters (Unicode code points) in the text of one request.") @@ -169,6 +193,48 @@ model ImageCategoriesAnalysis { severity?: int32; } +@added(ContentSafety.Versions.v2024_01_30_Preview) +@doc("The image batch analysis request.") +model BatchAnalyzeImagesOptions { + @doc("The URL of the Azure Storage Blob containing all the images to be analyzed in the batch task.") + imagesBlobFolderUrl: url; + + @doc("The URL of the Azure Storage Blob where the batch task results will be written.") + analysisResultsBlobFolderUrl: url; + + @doc("The storage mode for the batch task results, either 'CollectiveResultFile' or 'IndividualResultFiles'.") + resultsStorageMode?: BatchResultsStorageMode = BatchResultsStorageMode.CollectiveResultFile; + + @doc("The categories will be analyzed. If they are not assigned, a default set of analysis results for the categories will be returned.") + categories?: ImageCategory[]; + + @doc("This refers to the type of image analysis output. If no value is assigned, the default value will be \"FourSeverityLevels\".") + outputType?: AnalyzeImageOutputType = AnalyzeImageOutputType.FourSeverityLevels; + + @doc("The incidents to detect.") + incidents?: IncidentOptions; +} + +@added(ContentSafety.Versions.v2024_01_30_Preview) +@doc("Image batch analyze task.") +@resource("image/batchAnalyzeTasks") +model ImageBatchTaskDetail { + @doc("The id of image batch analysis task.") + @key("taskId") + @visibility("read") + @maxLength(64) + taskId: string; + + @doc("The status of the batch image analysis task.") + status: BatchTaskStatus; + + @doc("The progress of the batch image analysis task, represented as a percentage (0-100).") + progressPercentage: float64; + + @doc("The timestamp of when batch image analysis task was created.") + taskCreatedTime: utcDateTime; +} + @doc("Text Blocklist.") @resource("text/blocklists") model TextBlocklist { diff --git a/specification/cognitiveservices/ContentSafety/routes.tsp b/specification/cognitiveservices/ContentSafety/routes.tsp index 6e0b436297b0..866a65e8f0be 100644 --- a/specification/cognitiveservices/ContentSafety/routes.tsp +++ b/specification/cognitiveservices/ContentSafety/routes.tsp @@ -79,8 +79,36 @@ interface ImageOperations { }, AnalyzeImageResult >; + + @added(ContentSafety.Versions.v2024_01_30_Preview) + @summary("Start Batch Analyze Images") + @doc("An asynchronous API for the batch analysis of potentially harmful image content. Currently, it supports four categories: Hate, SelfHarm, Sexual, and Violence.") + @route("/image:batchAnalyze") + @post + batchAnalyzeImage is Azure.Core.RpcOperation< + { + @body + @doc("The image batch analysis request.") + body: BatchAnalyzeImagesOptions; + }, + AcceptedResponse & { + @body + @doc("The image batch analysis response.") + body: ImageBatchTaskDetail; + } + >; + + @added(ContentSafety.Versions.v2024_01_30_Preview) + @summary("Get Batch Analyze Status") + @doc("Check the status of a batch image analysis task.") + getBatchTaskStatus is BatchOps.ResourceRead; } +interface BatchOps + extends Azure.Core.ResourceOperations {} + interface BlockOps extends Azure.Core.ResourceOperations Date: Thu, 11 Jan 2024 18:00:50 +0800 Subject: [PATCH 2/5] Update --- .../ContentSafety/routes.tsp | 23 ++++++++++++------- .../2024-01-30-preview/contentsafety.json | 7 +++--- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/specification/cognitiveservices/ContentSafety/routes.tsp b/specification/cognitiveservices/ContentSafety/routes.tsp index 866a65e8f0be..b29466ac1fd7 100644 --- a/specification/cognitiveservices/ContentSafety/routes.tsp +++ b/specification/cognitiveservices/ContentSafety/routes.tsp @@ -79,31 +79,38 @@ interface ImageOperations { }, AnalyzeImageResult >; +} +interface ImageBatchOperations { @added(ContentSafety.Versions.v2024_01_30_Preview) @summary("Start Batch Analyze Images") @doc("An asynchronous API for the batch analysis of potentially harmful image content. Currently, it supports four categories: Hate, SelfHarm, Sexual, and Violence.") @route("/image:batchAnalyze") - @post - batchAnalyzeImage is Azure.Core.RpcOperation< + batchAnalyzeImage is ImageLongRunningRpcOperation< { @body @doc("The image batch analysis request.") body: BatchAnalyzeImagesOptions; }, - AcceptedResponse & { - @body - @doc("The image batch analysis response.") - body: ImageBatchTaskDetail; - } + ImageBatchTaskDetail >; @added(ContentSafety.Versions.v2024_01_30_Preview) @summary("Get Batch Analyze Status") @doc("Check the status of a batch image analysis task.") - getBatchTaskStatus is BatchOps.ResourceRead; + getBatchTaskStatus is Azure.Core.ResourceRead; } +@doc("Long running RPC operation template") +op ImageLongRunningRpcOperation< + TParams extends TypeSpec.Reflection.Model, + TResponse extends TypeSpec.Reflection.Model +> is Azure.Core.Foundations.Operation< + TParams, + Azure.Core.Foundations.AcceptedResponse & TResponse, + Azure.Core.Foundations.ErrorResponse +>; + interface BatchOps extends Azure.Core.ResourceOperations Date: Thu, 11 Jan 2024 19:26:12 +0800 Subject: [PATCH 3/5] Update --- specification/cognitiveservices/ContentSafety/models.tsp | 2 ++ .../preview/2024-01-30-preview/contentsafety.json | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/specification/cognitiveservices/ContentSafety/models.tsp b/specification/cognitiveservices/ContentSafety/models.tsp index 3a3ab51554ee..9eaf0c8b935d 100644 --- a/specification/cognitiveservices/ContentSafety/models.tsp +++ b/specification/cognitiveservices/ContentSafety/models.tsp @@ -40,6 +40,7 @@ enum AnalyzeImageOutputType { FourSeverityLevels, } +@added(ContentSafety.Versions.v2024_01_30_Preview) @doc("The type of batch results storage mode.") enum BatchResultsStorageMode { @doc("Merge each result into one file.") @@ -49,6 +50,7 @@ enum BatchResultsStorageMode { IndividualResultFiles, } +@added(ContentSafety.Versions.v2024_01_30_Preview) @doc("The type of batch analysis task status.") enum BatchTaskStatus { @doc("The task has not started yet.") diff --git a/specification/cognitiveservices/data-plane/ContentSafety/preview/2024-01-30-preview/contentsafety.json b/specification/cognitiveservices/data-plane/ContentSafety/preview/2024-01-30-preview/contentsafety.json index 4b20cb9005d0..279ec0a639c7 100644 --- a/specification/cognitiveservices/data-plane/ContentSafety/preview/2024-01-30-preview/contentsafety.json +++ b/specification/cognitiveservices/data-plane/ContentSafety/preview/2024-01-30-preview/contentsafety.json @@ -553,8 +553,7 @@ } } } - }, - "x-ms-long-running-operation": true + } } }, "/imageWithText:analyze": { @@ -2517,6 +2516,7 @@ } ] } + }, "Class": { "type": "object", "description": "Label definition.", From 15adb6d1db9e8072a700fd312bafd319bd0fd032 Mon Sep 17 00:00:00 2001 From: MinjueWu <597922968@qq.com> Date: Thu, 11 Jan 2024 19:40:01 +0800 Subject: [PATCH 4/5] Add error message in GET resonse --- specification/cognitiveservices/ContentSafety/models.tsp | 3 +++ .../preview/2024-01-30-preview/contentsafety.json | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/specification/cognitiveservices/ContentSafety/models.tsp b/specification/cognitiveservices/ContentSafety/models.tsp index 9eaf0c8b935d..dfe70b289456 100644 --- a/specification/cognitiveservices/ContentSafety/models.tsp +++ b/specification/cognitiveservices/ContentSafety/models.tsp @@ -279,6 +279,9 @@ model ImageBatchTaskDetail { @doc("The timestamp of when batch image analysis task was created.") taskCreatedTime: utcDateTime; + + @doc("Return error detail when the task failed.") + error?: Azure.Core.Foundations.Error; } @doc("Text Blocklist.") diff --git a/specification/cognitiveservices/data-plane/ContentSafety/preview/2024-01-30-preview/contentsafety.json b/specification/cognitiveservices/data-plane/ContentSafety/preview/2024-01-30-preview/contentsafety.json index 279ec0a639c7..ddad37c54867 100644 --- a/specification/cognitiveservices/data-plane/ContentSafety/preview/2024-01-30-preview/contentsafety.json +++ b/specification/cognitiveservices/data-plane/ContentSafety/preview/2024-01-30-preview/contentsafety.json @@ -2687,6 +2687,10 @@ "type": "string", "format": "date-time", "description": "The timestamp of when batch image analysis task was created." + }, + "error": { + "$ref": "#/definitions/Azure.Core.Foundations.Error", + "description": "Return error detail when the task failed." } }, "required": [ From 007093e9af05038bb571dcc519eeb257668763bd Mon Sep 17 00:00:00 2001 From: MinjueWu <597922968@qq.com> Date: Mon, 29 Jan 2024 10:37:55 +0800 Subject: [PATCH 5/5] Update async batch image APIs in 2023-10-30-preview --- .../ContentSafety/models.tsp | 58 +++- .../ContentSafety/routes.tsp | 17 +- .../2023-10-30-preview/contentsafety.json | 262 +++++++++++++----- 3 files changed, 257 insertions(+), 80 deletions(-) diff --git a/specification/cognitiveservices/ContentSafety/models.tsp b/specification/cognitiveservices/ContentSafety/models.tsp index aa7bdc833a85..6a57774db27e 100644 --- a/specification/cognitiveservices/ContentSafety/models.tsp +++ b/specification/cognitiveservices/ContentSafety/models.tsp @@ -250,11 +250,11 @@ model ImageCategoriesAnalysis { @added(ContentSafety.Versions.v2023_10_30_Preview) @doc("The image batch analysis request.") model BatchAnalyzeImagesOptions { - @doc("The URL of the Azure Storage Blob containing all the images to be analyzed in the batch task.") - imagesBlobFolderUrl: url; + @doc("The blob parameters of images to be analyzed.") + images: BatchAnalyzeImages; - @doc("The URL of the Azure Storage Blob where the batch task results will be written.") - analysisResultsBlobFolderUrl: url; + @doc("The blob parameters of result files.") + analysisResults: BatchAnalyzeImagesResults; @doc("The storage mode for the batch task results, either 'CollectiveResultFile' or 'IndividualResultFiles'.") resultsStorageMode?: BatchResultsStorageMode = BatchResultsStorageMode.CollectiveResultFile; @@ -262,31 +262,63 @@ model BatchAnalyzeImagesOptions { @doc("The categories will be analyzed. If they are not assigned, a default set of analysis results for the categories will be returned.") categories?: ImageCategory[]; - @doc("This refers to the type of image analysis output. If no value is assigned, the default value will be \"FourSeverityLevels\".") + @doc("This refers to the type of image analysis output. If no value is assigned, the default value will be 'FourSeverityLevels'.") outputType?: AnalyzeImageOutputType = AnalyzeImageOutputType.FourSeverityLevels; @doc("The incidents to detect.") incidents?: IncidentOptions; } +@added(ContentSafety.Versions.v2023_10_30_Preview) +@doc("The image batch analysis input.") +model BatchAnalyzeImages { + @doc("The URL to a blob prefix which represents a directory containing all the images to be analyzed in this batch task.") + blobPrefixLocation: url; + + @doc("The delimiter character you desire to use in the location URL, typically '/'.") + delimiter: string; + + @doc("An array of strings indicating file extensions of desired images within the logical folder.") + extensions: string[]; + + @doc("The last modified time (in RFC1123 format) of blobs. Only images that were modified before this time will be analyzed.") + lastModified?: utcDateTime; +} + +@added(ContentSafety.Versions.v2023_10_30_Preview) +@doc("The image batch analysis output.") +model BatchAnalyzeImagesResults { + @doc("The URL to a blob prefix which represents a directory. The analysis result file(s) will be written to this directory.") + blobPrefixLocation: url; + + @doc("The delimiter character you desire to use in the location URL, typically '/'.") + delimiter: string; +} + @added(ContentSafety.Versions.v2023_10_30_Preview) @doc("Image batch analyze task.") -@resource("image/batchAnalyzeTasks") +@resource("image/batchAnalyses") model ImageBatchTaskDetail { @doc("The id of image batch analysis task.") - @key("taskId") - @visibility("read") + @key("operationId") + @visibility("read", "create", "query") @maxLength(64) - taskId: string; + id: string; + + @doc("The kind of operation.") + kind: string; @doc("The status of the batch image analysis task.") status: BatchTaskStatus; - @doc("The progress of the batch image analysis task, represented as a percentage (0-100).") - progressPercentage: float64; - @doc("The timestamp of when batch image analysis task was created.") - taskCreatedTime: utcDateTime; + createdTime: utcDateTime; + + @doc("The blob parameters of result files.") + analysisResults: BatchAnalyzeImagesResults; + + @doc("The progress of the batch image analysis task, represented as a percentage (0-100).") + progressPercentage: float32; @doc("Return error detail when the task failed.") error?: Azure.Core.Foundations.Error; diff --git a/specification/cognitiveservices/ContentSafety/routes.tsp b/specification/cognitiveservices/ContentSafety/routes.tsp index 4735ecf3e324..0bfd27537200 100644 --- a/specification/cognitiveservices/ContentSafety/routes.tsp +++ b/specification/cognitiveservices/ContentSafety/routes.tsp @@ -85,9 +85,14 @@ interface ImageBatchOperations { @added(ContentSafety.Versions.v2023_10_30_Preview) @summary("Start Batch Analyze Images") @doc("An asynchronous API for the batch analysis of potentially harmful image content. Currently, it supports four categories: Hate, SelfHarm, Sexual, and Violence.") - @route("/image:batchAnalyze") + @route("/image/batchAnalyses") + @put batchAnalyzeImage is ContentSafetyLongRunningRpcOperation< { + @path + @doc("The unique operation id.") + operationId: string; + @body @doc("The image batch analysis request.") body: BatchAnalyzeImagesOptions; @@ -96,9 +101,17 @@ interface ImageBatchOperations { >; @added(ContentSafety.Versions.v2023_10_30_Preview) - @summary("Get Batch Analyze Status") + @summary("Get Image Batch Analysis task Status") @doc("Check the status of a batch image analysis task.") getBatchTaskStatus is Azure.Core.ResourceRead; + + @added(ContentSafety.Versions.v2023_10_30_Preview) + @summary("List All Image Batch Analysis Tasks") + @doc("List all batch image analysis tasks.") + listBatchTasks is Azure.Core.ResourceList< + ImageBatchTaskDetail, + ListQueryParametersTrait + >; } @doc("Long running RPC operation template") diff --git a/specification/cognitiveservices/data-plane/ContentSafety/preview/2023-10-30-preview/contentsafety.json b/specification/cognitiveservices/data-plane/ContentSafety/preview/2023-10-30-preview/contentsafety.json index 95d30e1a4d91..9d266dce6be0 100644 --- a/specification/cognitiveservices/data-plane/ContentSafety/preview/2023-10-30-preview/contentsafety.json +++ b/specification/cognitiveservices/data-plane/ContentSafety/preview/2023-10-30-preview/contentsafety.json @@ -59,17 +59,61 @@ }, "tags": [], "paths": { - "/image/batchAnalyzeTasks/{taskId}": { + "/image/batchAnalyses": { + "get": { + "operationId": "ImageBatchOperations_ListBatchTasks", + "summary": "List All Image Batch Analysis Tasks", + "description": "List all batch image analysis tasks.", + "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/PagedImageBatchTaskDetail" + } + }, + "default": { + "description": "An unexpected 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" + } + } + }, + "/image/batchAnalyses/{operationId}": { "get": { "operationId": "ImageBatchOperations_GetBatchTaskStatus", - "summary": "Get Batch Analyze Status", + "summary": "Get Image Batch Analysis task Status", "description": "Check the status of a batch image analysis task.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "taskId", + "name": "operationId", "in": "path", "description": "The id of image batch analysis task.", "required": true, @@ -97,6 +141,52 @@ } } } + }, + "put": { + "operationId": "ImageBatchOperations_BatchAnalyzeImage", + "summary": "Start Batch Analyze Images", + "description": "An asynchronous API for the batch analysis of potentially harmful image content. Currently, it supports four categories: Hate, SelfHarm, Sexual, and Violence.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "operationId", + "in": "path", + "description": "The unique operation id.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "The image batch analysis request.", + "required": true, + "schema": { + "$ref": "#/definitions/BatchAnalyzeImagesOptions" + } + } + ], + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "schema": { + "$ref": "#/definitions/ImageBatchTaskDetail" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" + }, + "headers": { + "x-ms-error-code": { + "type": "string", + "description": "String error code indicating what went wrong." + } + } + } + } } }, "/image/incidents": { @@ -520,47 +610,6 @@ } } }, - "/image:batchAnalyze": { - "post": { - "operationId": "ImageBatchOperations_BatchAnalyzeImage", - "summary": "Start Batch Analyze Images", - "description": "An asynchronous API for the batch analysis of potentially harmful image content. Currently, it supports four categories: Hate, SelfHarm, Sexual, and Violence.", - "parameters": [ - { - "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" - }, - { - "name": "body", - "in": "body", - "description": "The image batch analysis request.", - "required": true, - "schema": { - "$ref": "#/definitions/BatchAnalyzeImagesOptions" - } - } - ], - "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", - "schema": { - "$ref": "#/definitions/ImageBatchTaskDetail" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" - }, - "headers": { - "x-ms-error-code": { - "type": "string", - "description": "String error code indicating what went wrong." - } - } - } - } - } - }, "/imageWithText:analyze": { "post": { "operationId": "ImageWithTextOperations_AnalyzeImageWithText", @@ -2545,19 +2594,49 @@ } } }, - "BatchAnalyzeImagesOptions": { + "BatchAnalyzeImages": { "type": "object", - "description": "The image batch analysis request.", + "description": "The image batch analysis input.", "properties": { - "imagesBlobFolderUrl": { + "blobPrefixLocation": { "type": "string", "format": "uri", - "description": "The URL of the Azure Storage Blob containing all the images to be analyzed in the batch task." + "description": "The URL to a blob prefix which represents a directory containing all the images to be analyzed in this batch task." }, - "analysisResultsBlobFolderUrl": { + "delimiter": { "type": "string", - "format": "uri", - "description": "The URL of the Azure Storage Blob where the batch task results will be written." + "description": "The delimiter character you desire to use in the location URL, typically '/'." + }, + "extensions": { + "type": "array", + "description": "An array of strings indicating file extensions of desired images within the logical folder.", + "items": { + "type": "string" + } + }, + "lastModified": { + "type": "string", + "format": "date-time", + "description": "The last modified time (in RFC1123 format) of blobs. Only images that were modified before this time will be analyzed." + } + }, + "required": [ + "blobPrefixLocation", + "delimiter", + "extensions" + ] + }, + "BatchAnalyzeImagesOptions": { + "type": "object", + "description": "The image batch analysis request.", + "properties": { + "images": { + "$ref": "#/definitions/BatchAnalyzeImages", + "description": "The blob parameters of images to be analyzed." + }, + "analysisResults": { + "$ref": "#/definitions/BatchAnalyzeImagesResults", + "description": "The blob parameters of result files." }, "resultsStorageMode": { "$ref": "#/definitions/BatchResultsStorageMode", @@ -2573,7 +2652,7 @@ }, "outputType": { "$ref": "#/definitions/AnalyzeImageOutputType", - "description": "This refers to the type of image analysis output. If no value is assigned, the default value will be \"FourSeverityLevels\".", + "description": "This refers to the type of image analysis output. If no value is assigned, the default value will be 'FourSeverityLevels'.", "default": "FourSeverityLevels" }, "incidents": { @@ -2582,8 +2661,27 @@ } }, "required": [ - "imagesBlobFolderUrl", - "analysisResultsBlobFolderUrl" + "images", + "analysisResults" + ] + }, + "BatchAnalyzeImagesResults": { + "type": "object", + "description": "The image batch analysis output.", + "properties": { + "blobPrefixLocation": { + "type": "string", + "format": "uri", + "description": "The URL to a blob prefix which represents a directory. The analysis result file(s) will be written to this directory." + }, + "delimiter": { + "type": "string", + "description": "The delimiter character you desire to use in the location URL, typically '/'." + } + }, + "required": [ + "blobPrefixLocation", + "delimiter" ] }, "BatchResultsStorageMode": { @@ -2832,36 +2930,49 @@ "type": "object", "description": "Image batch analyze task.", "properties": { - "taskId": { + "id": { "type": "string", "description": "The id of image batch analysis task.", "maxLength": 64, - "readOnly": true + "x-ms-mutability": [ + "read", + "create" + ] + }, + "kind": { + "type": "string", + "description": "The kind of operation." }, "status": { "$ref": "#/definitions/BatchTaskStatus", "description": "The status of the batch image analysis task." }, - "progressPercentage": { - "type": "number", - "format": "double", - "description": "The progress of the batch image analysis task, represented as a percentage (0-100)." - }, - "taskCreatedTime": { + "createdTime": { "type": "string", "format": "date-time", "description": "The timestamp of when batch image analysis task was created." }, + "analysisResults": { + "$ref": "#/definitions/BatchAnalyzeImagesResults", + "description": "The blob parameters of result files." + }, + "progressPercentage": { + "type": "number", + "format": "float", + "description": "The progress of the batch image analysis task, represented as a percentage (0-100)." + }, "error": { "$ref": "#/definitions/Azure.Core.Foundations.Error", "description": "Return error detail when the task failed." } }, "required": [ - "taskId", + "id", + "kind", "status", - "progressPercentage", - "taskCreatedTime" + "createdTime", + "analysisResults", + "progressPercentage" ] }, "ImageCategoriesAnalysis": { @@ -3128,6 +3239,27 @@ "modelAsString": true } }, + "PagedImageBatchTaskDetail": { + "type": "object", + "description": "Paged collection of ImageBatchTaskDetail items", + "properties": { + "value": { + "type": "array", + "description": "The ImageBatchTaskDetail items on this page", + "items": { + "$ref": "#/definitions/ImageBatchTaskDetail" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, "PagedImageIncident": { "type": "object", "description": "Paged collection of ImageIncident items",