From d6ad92d0633278cc38820f544b3f3a3e5d06b583 Mon Sep 17 00:00:00 2001 From: kwosenyeleh <153561507+kwosenyeleh@users.noreply.github.com> Date: Tue, 28 May 2024 17:38:14 -0700 Subject: [PATCH] GA for serverlessendpoints and marketplacesubscription api (#29041) * add spec for serverlessendpoints and marketplacesubscription * reset spec * add contentsafety and status spec * remaining properties * add serverlessEndpoints and marketplaceSubscriptions APIs * add examples * prettier * move getStatus.json example to correct folder * gate fixes * prettier * remove getStatus API * ARM -> Azure description change * add modelId description * more description changes * test change * Revert "test change" This reverts commit 28e8c404b2299fd040100e8595f196632e568d63. * decorate EndpointProvisioningState definition as readOnly * suppress AvoidAdditionalProperties for ServerlessInferenceEndpoint.headers * extend suppression to dependent definitions * revert "extend suppression to dependent definitions" This reverts commit e9de06da929f8a4456ccd8b4ec5cbed13ab6a23f. * Revert "decorate EndpointProvisioningState definition as readOnly" This reverts commit 43c449ab5c6e57a62dd3d098b88e317cef29d013. * ProvisioningStateMustBeReadOnly suppression * attempt suppression of upleveled definitions/paths * Revert "attempt suppression of upleveled definitions/paths" This reverts commit 1d3610d3b4f0aa836a13b8fcdeba7cdb698906af. --------- Co-authored-by: Teddy Todorov Co-authored-by: Wenbin Meng --- .../createOrUpdate.json | 68 + .../MarketplaceSubscription/delete.json | 18 + .../MarketplaceSubscription/get.json | 37 + .../MarketplaceSubscription/list.json | 42 + .../ServerlessEndpoint/createOrUpdate.json | 148 ++ .../Workspace/ServerlessEndpoint/delete.json | 18 + .../Workspace/ServerlessEndpoint/get.json | 66 + .../Workspace/ServerlessEndpoint/list.json | 71 + .../ServerlessEndpoint/listKeys.json | 18 + .../ServerlessEndpoint/regenerateKeys.json | 27 + .../Workspace/ServerlessEndpoint/update.json | 87 ++ .../stable/2024-04-01/mfe.json | 1316 ++++++++++++++++- .../resource-manager/readme.md | 8 + 13 files changed, 1862 insertions(+), 62 deletions(-) create mode 100644 specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/MarketplaceSubscription/createOrUpdate.json create mode 100644 specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/MarketplaceSubscription/delete.json create mode 100644 specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/MarketplaceSubscription/get.json create mode 100644 specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/MarketplaceSubscription/list.json create mode 100644 specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/createOrUpdate.json create mode 100644 specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/delete.json create mode 100644 specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/get.json create mode 100644 specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/list.json create mode 100644 specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/listKeys.json create mode 100644 specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/regenerateKeys.json create mode 100644 specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/update.json diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/MarketplaceSubscription/createOrUpdate.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/MarketplaceSubscription/createOrUpdate.json new file mode 100644 index 000000000000..3241c1b78bbe --- /dev/null +++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/MarketplaceSubscription/createOrUpdate.json @@ -0,0 +1,68 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "test-rg", + "workspaceName": "my-aml-workspace", + "name": "string", + "api-version": "2024-04-01", + "body": { + "properties": { + "modelId": "string" + } + } + }, + "responses": { + "200": { + "headers": {}, + "body": { + "id": "string", + "name": "string", + "type": "string", + "properties": { + "modelId": "string", + "marketplacePlan": { + "publisherId": "string", + "offerId": "string", + "planId": "string" + }, + "marketplaceSubscriptionStatus": "Suspended", + "provisioningState": "Failed" + }, + "systemData": { + "createdAt": "2020-01-01T12:34:56.999+00:08", + "createdBy": "string", + "createdByType": "Key", + "lastModifiedAt": "2020-01-01T12:34:56.999+00:08", + "lastModifiedBy": "string", + "lastModifiedByType": "ManagedIdentity" + } + } + }, + "201": { + "headers": {}, + "body": { + "id": "string", + "name": "string", + "type": "string", + "properties": { + "modelId": "string", + "marketplacePlan": { + "publisherId": "string", + "offerId": "string", + "planId": "string" + }, + "marketplaceSubscriptionStatus": "Suspended", + "provisioningState": "Failed" + }, + "systemData": { + "createdAt": "2020-01-01T12:34:56.999+00:08", + "createdBy": "string", + "createdByType": "ManagedIdentity", + "lastModifiedAt": "2020-01-01T12:34:56.999+00:08", + "lastModifiedBy": "string", + "lastModifiedByType": "ManagedIdentity" + } + } + } + } +} diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/MarketplaceSubscription/delete.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/MarketplaceSubscription/delete.json new file mode 100644 index 000000000000..08af3c99f0df --- /dev/null +++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/MarketplaceSubscription/delete.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "test-rg", + "workspaceName": "my-aml-workspace", + "name": "string", + "api-version": "2024-04-01" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus...", + "Location": "https://management.azure.com/subscriptions/...pathToOperationResult..." + } + }, + "204": {} + } +} diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/MarketplaceSubscription/get.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/MarketplaceSubscription/get.json new file mode 100644 index 000000000000..72f71f134a36 --- /dev/null +++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/MarketplaceSubscription/get.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "test-rg", + "workspaceName": "my-aml-workspace", + "name": "string", + "api-version": "2024-04-01" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "id": "string", + "name": "string", + "type": "string", + "properties": { + "modelId": "string", + "marketplacePlan": { + "publisherId": "string", + "offerId": "string", + "planId": "string" + }, + "marketplaceSubscriptionStatus": "Subscribed", + "provisioningState": "Canceled" + }, + "systemData": { + "createdAt": "2020-01-01T12:34:56.999+00:08", + "createdBy": "string", + "createdByType": "User", + "lastModifiedAt": "2020-01-01T12:34:56.999+00:08", + "lastModifiedBy": "string", + "lastModifiedByType": "ManagedIdentity" + } + } + } + } +} diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/MarketplaceSubscription/list.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/MarketplaceSubscription/list.json new file mode 100644 index 000000000000..c92918ce4df1 --- /dev/null +++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/MarketplaceSubscription/list.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "test-rg", + "workspaceName": "my-aml-workspace", + "api-version": "2024-04-01", + "$skipToken": "string" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "value": [ + { + "id": "string", + "name": "string", + "type": "string", + "properties": { + "modelId": "string", + "marketplacePlan": { + "publisherId": "string", + "offerId": "string", + "planId": "string" + }, + "marketplaceSubscriptionStatus": "Suspended", + "provisioningState": "Creating" + }, + "systemData": { + "createdAt": "2020-01-01T12:34:56.999+00:06", + "createdBy": "string", + "createdByType": "ManagedIdentity", + "lastModifiedAt": "2020-01-01T12:34:56.999+00:06", + "lastModifiedBy": "string", + "lastModifiedByType": "Key" + } + } + ], + "nextLink": "string" + } + } + } +} diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/createOrUpdate.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/createOrUpdate.json new file mode 100644 index 000000000000..2d34a911164b --- /dev/null +++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/createOrUpdate.json @@ -0,0 +1,148 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "test-rg", + "workspaceName": "my-aml-workspace", + "name": "string", + "api-version": "2024-04-01", + "body": { + "properties": { + "modelSettings": { + "modelId": "string" + }, + "authMode": "Key", + "contentSafety": { + "contentSafetyStatus": "Enabled" + } + }, + "tags": {}, + "location": "string", + "kind": "string", + "identity": { + "type": "SystemAssigned", + "userAssignedIdentities": { + "string": {} + } + }, + "sku": { + "name": "string", + "tier": "Standard", + "size": "string", + "family": "string", + "capacity": 1 + } + } + }, + "responses": { + "200": { + "headers": {}, + "body": { + "id": "string", + "name": "string", + "type": "string", + "properties": { + "modelSettings": { + "modelId": "string" + }, + "authMode": "Key", + "inferenceEndpoint": { + "uri": "https://www.contoso.com/example", + "headers": { + "string": "string" + } + }, + "provisioningState": "Updating", + "endpointState": "Deleting", + "marketplaceSubscriptionId": "string", + "contentSafety": { + "contentSafetyStatus": "Disabled" + } + }, + "systemData": { + "createdAt": "2020-01-01T12:34:56.999+00:14", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-01-01T12:34:56.999+00:14", + "lastModifiedBy": "string", + "lastModifiedByType": "Key" + }, + "tags": {}, + "location": "string", + "kind": "string", + "identity": { + "type": "UserAssigned", + "principalId": "00000000-1111-2222-3333-444444444444", + "tenantId": "00000000-1111-2222-3333-444444444444", + "userAssignedIdentities": { + "string": { + "principalId": "00000000-1111-2222-3333-444444444444", + "clientId": "00000000-1111-2222-3333-444444444444" + } + } + }, + "sku": { + "name": "string", + "tier": "Free", + "size": "string", + "family": "string", + "capacity": 1 + } + } + }, + "201": { + "headers": {}, + "body": { + "id": "string", + "name": "string", + "type": "string", + "properties": { + "modelSettings": { + "modelId": "string" + }, + "authMode": "Key", + "inferenceEndpoint": { + "uri": "https://www.contoso.com/example", + "headers": { + "string": "string" + } + }, + "provisioningState": "Failed", + "endpointState": "Deleting", + "marketplaceSubscriptionId": "string", + "contentSafety": { + "contentSafetyStatus": "Disabled" + } + }, + "systemData": { + "createdAt": "2020-01-01T12:34:56.999+00:14", + "createdBy": "string", + "createdByType": "ManagedIdentity", + "lastModifiedAt": "2020-01-01T12:34:56.999+00:14", + "lastModifiedBy": "string", + "lastModifiedByType": "Key" + }, + "tags": {}, + "location": "string", + "kind": "string", + "identity": { + "type": "SystemAssigned,UserAssigned", + "principalId": "00000000-1111-2222-3333-444444444444", + "tenantId": "00000000-1111-2222-3333-444444444444", + "userAssignedIdentities": { + "string": { + "principalId": "00000000-1111-2222-3333-444444444444", + "clientId": "00000000-1111-2222-3333-444444444444" + } + } + }, + "sku": { + "name": "string", + "tier": "Standard", + "size": "string", + "family": "string", + "capacity": 1 + } + } + } + } +} diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/delete.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/delete.json new file mode 100644 index 000000000000..08af3c99f0df --- /dev/null +++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/delete.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "test-rg", + "workspaceName": "my-aml-workspace", + "name": "string", + "api-version": "2024-04-01" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus...", + "Location": "https://management.azure.com/subscriptions/...pathToOperationResult..." + } + }, + "204": {} + } +} diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/get.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/get.json new file mode 100644 index 000000000000..6ac4d8f36b30 --- /dev/null +++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/get.json @@ -0,0 +1,66 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "test-rg", + "workspaceName": "my-aml-workspace", + "name": "string", + "api-version": "2024-04-01" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "id": "string", + "name": "string", + "type": "string", + "properties": { + "modelSettings": { + "modelId": "string" + }, + "authMode": "Key", + "inferenceEndpoint": { + "uri": "https://www.contoso.com/example", + "headers": { + "string": "string" + } + }, + "provisioningState": "Succeeded", + "endpointState": "Suspending", + "marketplaceSubscriptionId": "string", + "contentSafety": { + "contentSafetyStatus": "Enabled" + } + }, + "systemData": { + "createdAt": "2020-01-01T12:34:56.999+00:13", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-01-01T12:34:56.999+00:13", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + }, + "tags": {}, + "location": "string", + "kind": "string", + "identity": { + "type": "UserAssigned", + "principalId": "00000000-1111-2222-3333-444444444444", + "tenantId": "00000000-1111-2222-3333-444444444444", + "userAssignedIdentities": { + "string": { + "principalId": "00000000-1111-2222-3333-444444444444", + "clientId": "00000000-1111-2222-3333-444444444444" + } + } + }, + "sku": { + "name": "string", + "tier": "Premium", + "size": "string", + "family": "string", + "capacity": 1 + } + } + } + } +} diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/list.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/list.json new file mode 100644 index 000000000000..8dd48259c543 --- /dev/null +++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/list.json @@ -0,0 +1,71 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "test-rg", + "workspaceName": "my-aml-workspace", + "api-version": "2024-04-01", + "$skipToken": "string" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "value": [ + { + "id": "string", + "name": "string", + "type": "string", + "properties": { + "modelSettings": { + "modelId": "string" + }, + "authMode": "Key", + "inferenceEndpoint": { + "uri": "https://www.contoso.com/example", + "headers": { + "string": "string" + } + }, + "provisioningState": "Updating", + "endpointState": "Reinstating", + "marketplaceSubscriptionId": "string", + "contentSafety": { + "contentSafetyStatus": "Disabled" + } + }, + "systemData": { + "createdAt": "2020-01-01T12:34:56.999+00:12", + "createdBy": "string", + "createdByType": "ManagedIdentity", + "lastModifiedAt": "2020-01-01T12:34:56.999+00:12", + "lastModifiedBy": "string", + "lastModifiedByType": "User" + }, + "tags": {}, + "location": "string", + "kind": "string", + "identity": { + "type": "UserAssigned", + "principalId": "00000000-1111-2222-3333-444444444444", + "tenantId": "00000000-1111-2222-3333-444444444444", + "userAssignedIdentities": { + "string": { + "principalId": "00000000-1111-2222-3333-444444444444", + "clientId": "00000000-1111-2222-3333-444444444444" + } + } + }, + "sku": { + "name": "string", + "tier": "Basic", + "size": "string", + "family": "string", + "capacity": 1 + } + } + ], + "nextLink": "string" + } + } + } +} diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/listKeys.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/listKeys.json new file mode 100644 index 000000000000..e58365bde65a --- /dev/null +++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/listKeys.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "test-rg", + "workspaceName": "my-aml-workspace", + "name": "string", + "api-version": "2024-04-01" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "primaryKey": "string", + "secondaryKey": "string" + } + } + } +} diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/regenerateKeys.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/regenerateKeys.json new file mode 100644 index 000000000000..1314dabc85d2 --- /dev/null +++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/regenerateKeys.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "test-rg", + "workspaceName": "my-aml-workspace", + "name": "string", + "api-version": "2024-04-01", + "body": { + "keyType": "Primary", + "keyValue": "string" + } + }, + "responses": { + "200": { + "headers": {}, + "body": { + "primaryKey": "string", + "secondaryKey": "string" + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..." + } + } + } +} diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/update.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/update.json new file mode 100644 index 000000000000..4b2b8122b9dc --- /dev/null +++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/examples/Workspace/ServerlessEndpoint/update.json @@ -0,0 +1,87 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "test-rg", + "workspaceName": "my-aml-workspace", + "name": "string", + "api-version": "2024-04-01", + "body": { + "tags": {}, + "sku": { + "name": "string", + "tier": "Premium", + "size": "string", + "family": "string", + "capacity": 1 + }, + "identity": { + "type": "None", + "userAssignedIdentities": { + "string": {} + } + } + } + }, + "responses": { + "200": { + "headers": {}, + "body": { + "id": "string", + "name": "string", + "type": "string", + "properties": { + "modelSettings": { + "modelId": "string" + }, + "authMode": "Key", + "inferenceEndpoint": { + "uri": "https://www.contoso.com/example", + "headers": { + "string": "string" + } + }, + "provisioningState": "Creating", + "endpointState": "Suspended", + "marketplaceSubscriptionId": "string", + "contentSafety": { + "contentSafetyStatus": "Disabled" + } + }, + "systemData": { + "createdAt": "2020-01-01T12:34:56.999+00:13", + "createdBy": "string", + "createdByType": "User", + "lastModifiedAt": "2020-01-01T12:34:56.999+00:13", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + }, + "tags": {}, + "location": "string", + "kind": "string", + "identity": { + "type": "SystemAssigned", + "principalId": "00000000-1111-2222-3333-444444444444", + "tenantId": "00000000-1111-2222-3333-444444444444", + "userAssignedIdentities": { + "string": { + "principalId": "00000000-1111-2222-3333-444444444444", + "clientId": "00000000-1111-2222-3333-444444444444" + } + } + }, + "sku": { + "name": "string", + "tier": "Free", + "size": "string", + "family": "string", + "capacity": 1 + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/...pathToOperationStatus..." + } + } + } +} diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/mfe.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/mfe.json index b5ee43d86799..fdab5a2bbdff 100644 --- a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/mfe.json +++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/mfe.json @@ -2613,6 +2613,266 @@ } } }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/marketplaceSubscriptions": { + "get": { + "tags": [ + "MarketplaceSubscription" + ], + "summary": "List containers.", + "operationId": "MarketplaceSubscriptions_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "machineLearningServices.json#/parameters/WorkspaceNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "machineLearningServices.json#/parameters/PaginationParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/MarketplaceSubscriptionResourceArmPaginatedResult" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List Workspace Marketplace Subscription.": { + "$ref": "./examples/Workspace/MarketplaceSubscription/list.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/marketplaceSubscriptions/{name}": { + "delete": { + "tags": [ + "MarketplaceSubscription" + ], + "summary": "Delete Marketplace Subscription (asynchronous).", + "operationId": "MarketplaceSubscriptions_Delete", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "machineLearningServices.json#/parameters/WorkspaceNameParameter" + }, + { + "in": "path", + "name": "name", + "description": "Marketplace Subscription name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "202": { + "description": "Accepted", + "headers": { + "x-ms-async-operation-timeout": { + "description": "Timeout for the client to use when polling the asynchronous operation.", + "type": "string", + "format": "duration" + }, + "Location": { + "description": "URI to poll for asynchronous operation result.", + "type": "string" + }, + "Retry-After": { + "description": "Duration the client should wait between requests, in seconds.", + "type": "integer", + "format": "int32", + "maximum": 600, + "minimum": 10 + } + } + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete Workspace Marketplace Subscription.": { + "$ref": "./examples/Workspace/MarketplaceSubscription/delete.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + }, + "get": { + "tags": [ + "MarketplaceSubscription" + ], + "summary": "Get container.", + "operationId": "MarketplaceSubscriptions_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "machineLearningServices.json#/parameters/WorkspaceNameParameter" + }, + { + "in": "path", + "name": "name", + "description": "Container name.", + "required": true, + "type": "string" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/MarketplaceSubscriptionResource" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Workspace Marketplace Subscription.": { + "$ref": "./examples/Workspace/MarketplaceSubscription/get.json" + } + } + }, + "put": { + "tags": [ + "MarketplaceSubscription" + ], + "summary": "Create or update Marketplace Subscription (asynchronous).", + "operationId": "MarketplaceSubscriptions_CreateOrUpdate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "machineLearningServices.json#/parameters/WorkspaceNameParameter" + }, + { + "in": "path", + "name": "name", + "description": "Marketplace Subscription name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "in": "body", + "name": "body", + "description": "Marketplace Subscription entity to apply during operation.", + "required": true, + "schema": { + "$ref": "#/definitions/MarketplaceSubscriptionResource" + } + } + ], + "responses": { + "200": { + "description": "Create or update request is successful.", + "schema": { + "$ref": "#/definitions/MarketplaceSubscriptionResource" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/MarketplaceSubscriptionResource" + }, + "headers": { + "x-ms-async-operation-timeout": { + "description": "Timeout for the client to use when polling the asynchronous operation.", + "type": "string", + "format": "duration" + }, + "Azure-AsyncOperation": { + "description": "URI to poll for asynchronous operation status.", + "type": "string" + } + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "CreateOrUpdate Workspace Marketplace Subscription.": { + "$ref": "./examples/Workspace/MarketplaceSubscription/createOrUpdate.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "original-uri" + } + } + }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/registries/{registryName}/models": { "get": { "tags": [ @@ -11140,30 +11400,513 @@ "final-state-via": "original-uri" } } - } - }, - "definitions": { - "AccountKeyDatastoreCredentials": { - "description": "Account key datastore credentials configuration.", - "required": [ - "secrets" - ], - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/DatastoreCredentials" - } - ], - "properties": { - "secrets": { - "description": "[Required] Storage account secrets.", - "$ref": "#/definitions/AccountKeyDatastoreSecrets", - "x-ms-mutability": [ - "create", - "update" - ], - "x-ms-secret": true - } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/serverlessEndpoints": { + "get": { + "tags": [ + "ServerlessEndpoint" + ], + "summary": "List Serverless Endpoints.", + "operationId": "ServerlessEndpoints_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "machineLearningServices.json#/parameters/WorkspaceNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "machineLearningServices.json#/parameters/PaginationParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ServerlessEndpointTrackedResourceArmPaginatedResult" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List Workspace Serverless Endpoint.": { + "$ref": "./examples/Workspace/ServerlessEndpoint/list.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/serverlessEndpoints/{name}": { + "delete": { + "tags": [ + "ServerlessEndpoint" + ], + "summary": "Delete Serverless Endpoint (asynchronous).", + "operationId": "ServerlessEndpoints_Delete", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "machineLearningServices.json#/parameters/WorkspaceNameParameter" + }, + { + "in": "path", + "name": "name", + "description": "Serverless Endpoint name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "202": { + "description": "Accepted", + "headers": { + "x-ms-async-operation-timeout": { + "description": "Timeout for the client to use when polling the asynchronous operation.", + "type": "string", + "format": "duration" + }, + "Location": { + "description": "URI to poll for asynchronous operation result.", + "type": "string" + }, + "Retry-After": { + "description": "Duration the client should wait between requests, in seconds.", + "type": "integer", + "format": "int32", + "maximum": 600, + "minimum": 10 + } + } + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete Workspace Serverless Endpoint.": { + "$ref": "./examples/Workspace/ServerlessEndpoint/delete.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + }, + "get": { + "tags": [ + "ServerlessEndpoint" + ], + "summary": "Get Serverless Endpoint.", + "operationId": "ServerlessEndpoints_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "machineLearningServices.json#/parameters/WorkspaceNameParameter" + }, + { + "in": "path", + "name": "name", + "description": "Serverless Endpoint name.", + "required": true, + "type": "string" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ServerlessEndpointTrackedResource" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Workspace Serverless Endpoint.": { + "$ref": "./examples/Workspace/ServerlessEndpoint/get.json" + } + } + }, + "patch": { + "tags": [ + "ServerlessEndpoint" + ], + "summary": "Update Serverless Endpoint (asynchronous).", + "operationId": "ServerlessEndpoints_Update", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "machineLearningServices.json#/parameters/WorkspaceNameParameter" + }, + { + "in": "path", + "name": "name", + "description": "Serverless Endpoint name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "in": "body", + "name": "body", + "description": "Serverless Endpoint entity to apply during operation.", + "required": true, + "schema": { + "$ref": "#/definitions/PartialMinimalTrackedResourceWithSkuAndIdentity" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ServerlessEndpointTrackedResource" + } + }, + "202": { + "description": "Accepted", + "headers": { + "x-ms-async-operation-timeout": { + "description": "Timeout for the client to use when polling the asynchronous operation.", + "type": "string", + "format": "duration" + }, + "Location": { + "description": "URI to poll for asynchronous operation result.", + "type": "string" + }, + "Retry-After": { + "description": "Duration the client should wait between requests, in seconds.", + "type": "integer", + "format": "int32", + "maximum": 600, + "minimum": 10 + } + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Update Workspace Serverless Endpoint.": { + "$ref": "./examples/Workspace/ServerlessEndpoint/update.json" + } + }, + "x-ms-long-running-operation": true + }, + "put": { + "tags": [ + "ServerlessEndpoint" + ], + "summary": "Create or update Serverless Endpoint (asynchronous).", + "operationId": "ServerlessEndpoints_CreateOrUpdate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "machineLearningServices.json#/parameters/WorkspaceNameParameter" + }, + { + "in": "path", + "name": "name", + "description": "Serverless Endpoint name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9-]{0,51}$" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "in": "body", + "name": "body", + "description": "Serverless Endpoint entity to apply during operation.", + "required": true, + "schema": { + "$ref": "#/definitions/ServerlessEndpointTrackedResource" + } + } + ], + "responses": { + "200": { + "description": "Create or update request is successful.", + "schema": { + "$ref": "#/definitions/ServerlessEndpointTrackedResource" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/ServerlessEndpointTrackedResource" + }, + "headers": { + "x-ms-async-operation-timeout": { + "description": "Timeout for the client to use when polling the asynchronous operation.", + "type": "string", + "format": "duration" + }, + "Azure-AsyncOperation": { + "description": "URI to poll for asynchronous operation status.", + "type": "string" + } + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "CreateOrUpdate Workspace Serverless Endpoint.": { + "$ref": "./examples/Workspace/ServerlessEndpoint/createOrUpdate.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "original-uri" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/serverlessEndpoints/{name}/listKeys": { + "post": { + "tags": [ + "ServerlessEndpoint" + ], + "summary": "List EndpointAuthKeys for an Endpoint using Key-based authentication.", + "operationId": "ServerlessEndpoints_ListKeys", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "machineLearningServices.json#/parameters/WorkspaceNameParameter" + }, + { + "in": "path", + "name": "name", + "description": "Serverless Endpoint name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/EndpointAuthKeys" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ListKeys Workspace Serverless Endpoint.": { + "$ref": "./examples/Workspace/ServerlessEndpoint/listKeys.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/serverlessEndpoints/{name}/regenerateKeys": { + "post": { + "tags": [ + "ServerlessEndpoint" + ], + "summary": "Regenerate EndpointAuthKeys for an Endpoint using Key-based authentication (asynchronous).", + "operationId": "ServerlessEndpoints_RegenerateKeys", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "machineLearningServices.json#/parameters/WorkspaceNameParameter" + }, + { + "in": "path", + "name": "name", + "description": "Serverless Endpoint name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{0,254}$" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "in": "body", + "name": "body", + "description": "RegenerateKeys request .", + "required": true, + "schema": { + "$ref": "#/definitions/RegenerateEndpointKeysRequest" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/EndpointAuthKeys" + } + }, + "202": { + "description": "Accepted", + "headers": { + "Location": { + "description": "URI to poll for asynchronous operation result.", + "type": "string" + }, + "Retry-After": { + "description": "Duration the client should wait between requests, in seconds.", + "type": "integer", + "format": "int32", + "maximum": 600, + "minimum": 10 + } + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "RegenerateKeys Workspace Serverless Endpoint.": { + "$ref": "./examples/Workspace/ServerlessEndpoint/regenerateKeys.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + } + } + }, + "definitions": { + "AccountKeyDatastoreCredentials": { + "description": "Account key datastore credentials configuration.", + "required": [ + "secrets" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/DatastoreCredentials" + } + ], + "properties": { + "secrets": { + "description": "[Required] Storage account secrets.", + "$ref": "#/definitions/AccountKeyDatastoreSecrets", + "x-ms-mutability": [ + "create", + "update" + ], + "x-ms-secret": true + } }, "x-ms-discriminator-value": "AccountKey", "additionalProperties": false @@ -13347,6 +14090,40 @@ }, "additionalProperties": false }, + "ContentSafety": { + "additionalProperties": false, + "properties": { + "contentSafetyStatus": { + "$ref": "#/definitions/ContentSafetyStatus", + "description": "[Required] Specifies the status of content safety." + } + }, + "required": [ + "contentSafetyStatus" + ], + "type": "object" + }, + "ContentSafetyStatus": { + "additionalProperties": false, + "description": "Specifies the status of content safety.", + "enum": [ + "Enabled", + "Disabled" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "ContentSafetyStatus", + "values": [ + { + "value": "Enabled" + }, + { + "value": "Disabled" + } + ] + } + }, "CreateMonitorAction": { "required": [ "monitorDefinition" @@ -18041,54 +18818,235 @@ "x-ms-discriminator-value": "Managed", "additionalProperties": false }, - "ManagedIdentityCredential": { - "description": "Credential for user managed identity", - "type": "object", + "ManagedIdentityCredential": { + "description": "Credential for user managed identity", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/DataReferenceCredential" + } + ], + "properties": { + "managedIdentityType": { + "description": "ManagedIdentityCredential identity type", + "type": "string", + "x-nullable": true + }, + "userManagedIdentityClientId": { + "description": "ClientId for the UAMI. For ManagedIdentityType = SystemManaged, this field is null.", + "type": "string", + "x-nullable": true + }, + "userManagedIdentityPrincipalId": { + "description": "PrincipalId for the UAMI. For ManagedIdentityType = SystemManaged, this field is null.", + "type": "string", + "x-nullable": true + }, + "userManagedIdentityResourceId": { + "description": "Full arm scope for the Id. For ManagedIdentityType = SystemManaged, this field is null.", + "type": "string", + "x-nullable": true + }, + "userManagedIdentityTenantId": { + "description": "TenantId for the UAMI. For ManagedIdentityType = SystemManaged, this field is null.", + "type": "string", + "x-nullable": true + } + }, + "x-ms-discriminator-value": "ManagedIdentity", + "additionalProperties": false + }, + "ManagedOnlineDeployment": { + "description": "Properties specific to a ManagedOnlineDeployment.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/OnlineDeployment" + } + ], + "x-ms-discriminator-value": "Managed", + "additionalProperties": false + }, + "MarketplacePlan": { + "additionalProperties": false, + "properties": { + "offerId": { + "description": "The identifying name of the Offer of the Marketplace Plan.", + "readOnly": true, + "type": "string", + "x-ms-mutability": [ + "read" + ], + "x-nullable": true + }, + "planId": { + "description": "The identifying name of the Plan of the Marketplace Plan.", + "readOnly": true, + "type": "string", + "x-ms-mutability": [ + "read" + ], + "x-nullable": true + }, + "publisherId": { + "description": "The identifying name of the Publisher of the Marketplace Plan.", + "readOnly": true, + "type": "string", + "x-ms-mutability": [ + "read" + ], + "x-nullable": true + } + }, + "type": "object" + }, + "MarketplaceSubscription": { + "additionalProperties": false, + "properties": { + "marketplacePlan": { + "$ref": "#/definitions/MarketplacePlan", + "description": "Marketplace Plan associated with the Marketplace Subscription.", + "readOnly": true, + "x-ms-mutability": [ + "read" + ], + "x-nullable": true + }, + "marketplaceSubscriptionStatus": { + "$ref": "#/definitions/MarketplaceSubscriptionStatus", + "description": "Current status of the Marketplace Subscription.", + "readOnly": true, + "x-ms-mutability": [ + "read" + ] + }, + "modelId": { + "description": "[Required] Target Marketplace Model ID to create a Marketplace Subscription for.", + "minLength": 1, + "pattern": "[a-zA-Z0-9_]", + "type": "string" + }, + "provisioningState": { + "$ref": "#/definitions/MarketplaceSubscriptionProvisioningState", + "description": "Provisioning State of the Marketplace Subscription.", + "readOnly": true, + "x-ms-mutability": [ + "read" + ] + } + }, + "required": [ + "modelId" + ], + "type": "object", + "x-ms-client-name": "MarketplaceSubscriptionProperties" + }, + "MarketplaceSubscriptionProvisioningState": { + "additionalProperties": false, + "enum": [ + "Creating", + "Deleting", + "Succeeded", + "Failed", + "Updating", + "Canceled" + ], + "readOnly": true, + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "MarketplaceSubscriptionProvisioningState", + "values": [ + { + "description": "MarketplaceSubscription is being created.", + "value": "Creating" + }, + { + "description": "MarketplaceSubscription is being deleted.", + "value": "Deleting" + }, + { + "description": "MarketplaceSubscription is successfully provisioned.", + "value": "Succeeded" + }, + { + "description": "MarketplaceSubscription provisioning failed.", + "value": "Failed" + }, + { + "description": "MarketplaceSubscription is being updated.", + "value": "Updating" + }, + { + "value": "Canceled" + } + ] + } + }, + "MarketplaceSubscriptionResource": { + "additionalProperties": false, "allOf": [ { - "$ref": "#/definitions/DataReferenceCredential" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" } ], + "description": "Azure Resource Manager resource envelope.", "properties": { - "managedIdentityType": { - "description": "ManagedIdentityCredential identity type", - "type": "string", - "x-nullable": true - }, - "userManagedIdentityClientId": { - "description": "ClientId for the UAMI. For ManagedIdentityType = SystemManaged, this field is null.", - "type": "string", - "x-nullable": true - }, - "userManagedIdentityPrincipalId": { - "description": "PrincipalId for the UAMI. For ManagedIdentityType = SystemManaged, this field is null.", - "type": "string", - "x-nullable": true - }, - "userManagedIdentityResourceId": { - "description": "Full arm scope for the Id. For ManagedIdentityType = SystemManaged, this field is null.", - "type": "string", - "x-nullable": true - }, - "userManagedIdentityTenantId": { - "description": "TenantId for the UAMI. For ManagedIdentityType = SystemManaged, this field is null.", - "type": "string", - "x-nullable": true + "properties": { + "$ref": "#/definitions/MarketplaceSubscription", + "description": "[Required] Additional attributes of the entity." } }, - "x-ms-discriminator-value": "ManagedIdentity", - "additionalProperties": false - }, - "ManagedOnlineDeployment": { - "description": "Properties specific to a ManagedOnlineDeployment.", + "required": [ + "properties" + ], "type": "object", - "allOf": [ - { - "$ref": "#/definitions/OnlineDeployment" + "x-ms-client-name": "MarketplaceSubscription" + }, + "MarketplaceSubscriptionResourceArmPaginatedResult": { + "additionalProperties": false, + "description": "A paginated list of MarketplaceSubscription entities.", + "properties": { + "nextLink": { + "description": "The link to the next page of MarketplaceSubscription objects. If null, there are no additional pages.", + "type": "string" + }, + "value": { + "description": "An array of objects of type MarketplaceSubscription.", + "items": { + "$ref": "#/definitions/MarketplaceSubscriptionResource" + }, + "type": "array" } + }, + "type": "object" + }, + "MarketplaceSubscriptionStatus": { + "additionalProperties": false, + "enum": [ + "Subscribed", + "Suspended", + "Unsubscribed" ], - "x-ms-discriminator-value": "Managed", - "additionalProperties": false + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "MarketplaceSubscriptionStatus", + "values": [ + { + "description": "The customer can now use the Marketplace Subscription's\nmodel and will be billed.", + "value": "Subscribed" + }, + { + "description": "The customer could not be billed for the Marketplace Subscription.\nThe customer will not be able to access the model.", + "value": "Suspended" + }, + { + "description": "Marketplace Subscriptions reach this state in response to an explicit customer or CSP action.\nA Marketplace Subscription can also be canceled implicitly, as a result of nonpayment of dues,\nafter being in the Suspended state for some time.", + "value": "Unsubscribed" + } + ] + } }, "MaterializationComputeResource": { "description": "DTO object representing compute resource", @@ -18234,6 +19192,17 @@ }, "additionalProperties": false }, + "ModelSettings": { + "additionalProperties": false, + "properties": { + "modelId": { + "description": "The unique model identifier that this ServerlessEndpoint should provision.", + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, "ModelSize": { "description": "Image model size.", "enum": [ @@ -19850,6 +20819,26 @@ }, "additionalProperties": false }, + "PartialMinimalTrackedResourceWithSkuAndIdentity": { + "additionalProperties": false, + "allOf": [ + { + "$ref": "#/definitions/PartialMinimalTrackedResource" + } + ], + "description": "Strictly used in update requests.", + "properties": { + "identity": { + "$ref": "#/definitions/PartialManagedServiceIdentity", + "description": "Managed service identity (system assigned and/or user assigned identities)" + }, + "sku": { + "$ref": "#/definitions/PartialSku", + "description": "Sku details required for ARM contract for Autoscaling." + } + }, + "type": "object" + }, "PartialSku": { "description": "Common SKU definition.", "type": "object", @@ -21156,6 +22145,209 @@ }, "additionalProperties": false }, + "ServerlessEndpoint": { + "additionalProperties": false, + "properties": { + "authMode": { + "$ref": "#/definitions/ServerlessInferenceEndpointAuthMode", + "description": "[Required] Specifies the authentication mode for the Serverless endpoint." + }, + "contentSafety": { + "$ref": "#/definitions/ContentSafety", + "description": "Specifies the content safety options. If omitted, the default content safety settings will be configured", + "x-nullable": true + }, + "endpointState": { + "$ref": "#/definitions/ServerlessEndpointState", + "description": "The current state of the ServerlessEndpoint.", + "readOnly": true, + "x-ms-mutability": [ + "read" + ] + }, + "inferenceEndpoint": { + "$ref": "#/definitions/ServerlessInferenceEndpoint", + "description": "The inference uri to target when making requests against the serverless endpoint", + "readOnly": true, + "x-ms-mutability": [ + "read" + ], + "x-nullable": true + }, + "marketplaceSubscriptionId": { + "description": "The MarketplaceSubscription Azure ID associated to this ServerlessEndpoint.", + "readOnly": true, + "type": "string", + "x-ms-mutability": [ + "read" + ], + "x-nullable": true + }, + "modelSettings": { + "$ref": "#/definitions/ModelSettings", + "description": "The model settings (model id) for the model being serviced on the ServerlessEndpoint.", + "x-nullable": true + }, + "provisioningState": { + "$ref": "#/definitions/EndpointProvisioningState", + "description": "Provisioning state for the endpoint.", + "readOnly": true, + "x-ms-mutability": [ + "read" + ] + } + }, + "required": [ + "authMode" + ], + "type": "object", + "x-ms-client-name": "ServerlessEndpointProperties" + }, + "ServerlessEndpointState": { + "additionalProperties": false, + "description": "State of the Serverless Endpoint.", + "enum": [ + "Unknown", + "Creating", + "Deleting", + "Suspending", + "Reinstating", + "Online", + "Suspended", + "CreationFailed", + "DeletionFailed" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "ServerlessEndpointState", + "values": [ + { + "value": "Unknown" + }, + { + "value": "Creating" + }, + { + "value": "Deleting" + }, + { + "value": "Suspending" + }, + { + "value": "Reinstating" + }, + { + "value": "Online" + }, + { + "value": "Suspended" + }, + { + "value": "CreationFailed" + }, + { + "value": "DeletionFailed" + } + ] + } + }, + "ServerlessEndpointTrackedResource": { + "additionalProperties": false, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/TrackedResource" + } + ], + "properties": { + "identity": { + "$ref": "../../../../../common-types/resource-management/v3/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "Managed service identity (system assigned and/or user assigned identities)" + }, + "kind": { + "description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type.", + "type": "string" + }, + "properties": { + "$ref": "#/definitions/ServerlessEndpoint", + "description": "[Required] Additional attributes of the entity." + }, + "sku": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Sku", + "description": "Sku details required for ARM contract for Autoscaling." + } + }, + "required": [ + "location", + "properties" + ], + "type": "object", + "x-ms-client-name": "ServerlessEndpoint" + }, + "ServerlessEndpointTrackedResourceArmPaginatedResult": { + "additionalProperties": false, + "description": "A paginated list of ServerlessEndpoint entities.", + "properties": { + "nextLink": { + "description": "The link to the next page of ServerlessEndpoint objects. If null, there are no additional pages.", + "type": "string" + }, + "value": { + "description": "An array of objects of type ServerlessEndpoint.", + "items": { + "$ref": "#/definitions/ServerlessEndpointTrackedResource" + }, + "type": "array" + } + }, + "type": "object" + }, + "ServerlessInferenceEndpoint": { + "additionalProperties": false, + "properties": { + "headers": { + "additionalProperties": { + "type": "string", + "x-nullable": true + }, + "description": "Specifies any required headers to target this serverless endpoint.", + "readOnly": true, + "type": "object", + "x-ms-mutability": [ + "read" + ], + "x-nullable": true + }, + "uri": { + "description": "[Required] The inference uri to target when making requests against the Serverless Endpoint.", + "format": "uri", + "type": "string", + "x-ms-mutability": [ + "read" + ] + } + }, + "required": [ + "uri" + ], + "type": "object" + }, + "ServerlessInferenceEndpointAuthMode": { + "additionalProperties": false, + "enum": [ + "Key" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "ServerlessInferenceEndpointAuthMode", + "values": [ + { + "value": "Key" + } + ] + } + }, "ServiceDataAccessAuthIdentity": { "enum": [ "None", diff --git a/specification/machinelearningservices/resource-manager/readme.md b/specification/machinelearningservices/resource-manager/readme.md index f16eb3d24199..3a02edd3930b 100644 --- a/specification/machinelearningservices/resource-manager/readme.md +++ b/specification/machinelearningservices/resource-manager/readme.md @@ -41,6 +41,14 @@ input-file: - Microsoft.MachineLearningServices/stable/2024-04-01/registries.json - Microsoft.MachineLearningServices/stable/2024-04-01/workspaceFeatures.json suppressions: + - code: ProvisioningStateMustBeReadOnly + reason: This provisioningState property is marked as readOnly. However, the definition of the enum is not marked as readOnly and is the reason this suppression is needed + where: + - $.definitions["ServerlessEndpoint"].properties["provisioningState"] + - code: AvoidAdditionalProperties + reason: The headers property here is meant to describe a set of request headers that the user must pass along in their inferencing API request. For that reason, this needs to be represented as an additionalProperties + where: + - $.definitions["ServerlessInferenceEndpoint"].properties["headers"] - code: AvoidAdditionalProperties reason: As discussed In office hour this conf property is string dictionary and passed by user as per there requirements depending on runtime version. This passed to downstream and we have multiple validation on all required configuration before passing it downstream, All optional property passed as user wants and any failure due to that considered as user error. where: