diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2025-09-01/examples/Registry/PrivateEndpointConnection/createOrUpdate.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2025-09-01/examples/Registry/PrivateEndpointConnection/createOrUpdate.json new file mode 100644 index 000000000000..ca63c9af625f --- /dev/null +++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2025-09-01/examples/Registry/PrivateEndpointConnection/createOrUpdate.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "rg-1234", + "registryName": "testreigstry", + "privateEndpointConnectionName": "{privateEndpointConnectionName}", + "api-version": "2025-09-01", + "body": { + "properties": { + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Auto-Approved" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.MachineLearningServices/registries/testreigstry/privateEndpointConnections/{privateEndpointConnectionName}", + "name": "{privateEndpointConnectionName}", + "type": "Microsoft.MachineLearningServices/registries/privateEndpointConnections", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.Network/privateEndpoints/petest01" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Auto-Approved", + "actionsRequired": "None" + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.MachineLearningServices/registries/testreigstry/privateEndpointConnections/{privateEndpointConnectionName}", + "name": "{privateEndpointConnectionName}", + "type": "Microsoft.MachineLearningServices/registries/privateEndpointConnections", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.Network/privateEndpoints/petest01" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Auto-Approved", + "actionsRequired": "None" + } + } + } + } + } +} diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2025-09-01/examples/Registry/PrivateEndpointConnection/delete.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2025-09-01/examples/Registry/PrivateEndpointConnection/delete.json new file mode 100644 index 000000000000..8c2b3a05870e --- /dev/null +++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2025-09-01/examples/Registry/PrivateEndpointConnection/delete.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "rg-1234", + "registryName": "testregistry", + "privateEndpointConnectionName": "{privateEndpointConnectionName}", + "api-version": "2025-09-01", + "monitor": "true" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2025-09-01/examples/Registry/PrivateEndpointConnection/get.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2025-09-01/examples/Registry/PrivateEndpointConnection/get.json new file mode 100644 index 000000000000..eff2e6b4de64 --- /dev/null +++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2025-09-01/examples/Registry/PrivateEndpointConnection/get.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "rg-1234", + "registryName": "testregistry", + "privateEndpointConnectionName": "{privateEndpointConnectionName}", + "api-version": "2025-09-01", + "monitor": "true" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.MachineLearningServices/registries/testregistry/privateEndpointConnections/{privateEndpointConnectionName}", + "name": "{privateEndpointConnectionName}", + "type": "Microsoft.MachineLearningServices/registries/privateEndpointConnections", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.Network/privateEndpoints/petest01" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Auto-Approved", + "actionsRequired": "None" + } + } + } + } + } +} diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2025-09-01/examples/Registry/PrivateEndpointConnection/list.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2025-09-01/examples/Registry/PrivateEndpointConnection/list.json new file mode 100644 index 000000000000..745a8573b4cc --- /dev/null +++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2025-09-01/examples/Registry/PrivateEndpointConnection/list.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "resourceGroupName": "rg-1234", + "registryName": "testregistry", + "privateEndpointConnectionName": "{privateEndpointConnectionName}", + "api-version": "2025-09-01", + "monitor": "true" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.MachineLearningServices/regiestries/testregistry/privateEndpointConnections/{privateEndpointConnectionName}", + "name": "{privateEndpointConnectionName}", + "type": "Microsoft.MachineLearningServices/regiestries/privateEndpointConnections", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.Network/privateEndpoints/petest01" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Auto-Approved", + "actionsRequired": "None" + } + } + }, + { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.MachineLearningServices/regiestries/testregistry/privateEndpointConnections/{privateEndpointConnectionName}", + "name": "{privateEndpointConnectionName}", + "type": "Microsoft.MachineLearningServices/regiestries/privateEndpointConnections", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-1234/providers/Microsoft.Network/privateEndpoints/petest01" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Auto-Approved", + "actionsRequired": "None" + } + } + } + ] + } + } + } +} diff --git a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2025-09-01/registries.json b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2025-09-01/registries.json index 8d1b51380187..3c8f7f81bb64 100644 --- a/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2025-09-01/registries.json +++ b/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2025-09-01/registries.json @@ -329,6 +329,219 @@ } } }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/registries/{registryName}/privateEndpointConnections": { + "get": { + "tags": [ + "RegistryManagement" + ], + "summary": "Called by end-users to get all PE connections.", + "operationId": "Registries_ListPrivateEndpointConnections", + "produces": [ + "application/json" + ], + "x-ms-examples": { + "Registries_ListPrivateEndpointConnections": { + "$ref": "./examples/Registry/PrivateEndpointConnection/list.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/RegistryNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + }, + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnectionResponse" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/registries/{registryName}/privateEndpointConnections/{privateEndpointConnectionName}": { + "delete": { + "tags": [ + "RegistryManagement" + ], + "summary": "Called by end-users to delete a PE connection.", + "operationId": "Registries_DeletePrivateEndpointConnection", + "produces": [ + "application/json" + ], + "x-ms-examples": { + "Registries_DeletePrivateEndpointConnection": { + "$ref": "./examples/Registry/PrivateEndpointConnection/delete.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/RegistryNameParameter" + }, + { + "in": "path", + "name": "privateEndpointConnectionName", + "description": "NRP Private Endpoint Connection Name", + "required": true, + "type": "string" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + }, + "200": { + "description": "Success" + }, + "204": { + "description": "No content" + } + } + }, + "get": { + "tags": [ + "RegistryManagement" + ], + "summary": "Called by end-users to get a PE connection.", + "operationId": "Registries_GetPrivateEndpointConnection", + "produces": [ + "application/json" + ], + "x-ms-examples": { + "Registries_GetPrivateEndpointConnection": { + "$ref": "./examples/Registry/PrivateEndpointConnection/get.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/RegistryNameParameter" + }, + { + "in": "path", + "name": "privateEndpointConnectionName", + "required": true, + "type": "string" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + }, + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + } + } + }, + "put": { + "tags": [ + "RegistryManagement" + ], + "summary": "Called by end-users to approve or reject a PE connection.\r\nThis method must validate and forward the call to NRP.", + "operationId": "Registries_CreateOrUpdatePrivateEndpointConnection", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "x-ms-examples": { + "Registries_CreateOrUpdatePrivateEndpointConnection": { + "$ref": "./examples/Registry/PrivateEndpointConnection/createOrUpdate.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/RegistryNameParameter" + }, + { + "in": "path", + "name": "privateEndpointConnectionName", + "required": true, + "type": "string" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "in": "body", + "name": "body", + "description": "Details required to create the registry.", + "required": true, + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + } + ], + "responses": { + "default": { + "description": "Error", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + }, + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + } + } + } + }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/registries/{registryName}/removeRegions": { "post": { "tags": [ @@ -437,6 +650,32 @@ }, "additionalProperties": false }, + "ConnectionDetails": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "x-nullable": true + }, + "id": { + "type": "string", + "x-nullable": true + }, + "linkIdentifier": { + "type": "string", + "x-nullable": true + }, + "memberName": { + "type": "string", + "x-nullable": true + }, + "privateIpAddress": { + "type": "string", + "x-nullable": true + } + }, + "additionalProperties": false + }, "EndpointServiceConnectionStatus": { "description": "Connection status of the service consumer with the service provider", "enum": [ @@ -518,6 +757,81 @@ }, "additionalProperties": false }, + "PrivateEndpointConnection": { + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateEndpointConnectionProperties", + "x-ms-client-flatten": true, + "description": "Resource properties." + }, + "identity": { + "$ref": "../../../../../common-types/resource-management/v3/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "The identity of the resource." + }, + "location": { + "description": "Specifies the location of the resource.", + "type": "string" + }, + "tags": { + "description": "Contains resource tags defined as key/value pairs.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "sku": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Sku", + "description": "The sku of the workspace." + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" + } + ], + "description": "The Private Endpoint Connection resource." + }, + "PrivateEndpointConnectionProperties": { + "type": "object", + "properties": { + "groupIds": { + "type": "array", + "items": { + "type": "string" + }, + "x-nullable": true + }, + "privateEndpoint": { + "$ref": "#/definitions/PrivateEndpointResource", + "x-nullable": true + }, + "privateLinkServiceConnectionState": { + "$ref": "#/definitions/RegistryPrivateLinkServiceConnectionState", + "x-nullable": true + }, + "provisioningState": { + "type": "string", + "x-nullable": true, + "readOnly": true, + "description": "The provisioning state of the resource." + } + }, + "additionalProperties": false + }, + "PrivateEndpointConnectionResponse": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + "x-nullable": true + } + }, + "additionalProperties": false + }, "RegistryPrivateEndpointConnection": { "description": "Private endpoint connection definition.", "type": "object",