{
  "description": "Generator information:\n- Generated from: /machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/registries.json\n- ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/registries/{registryName}",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "properties": {
        "azureName": {
          "description": "AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it\ndoesn't have to be.",
          "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_]{2,32}$",
          "type": "string"
        },
        "discoveryUrl": {
          "description": "DiscoveryUrl: Discovery URL for the Registry",
          "type": "string"
        },
        "identity": {
          "description": "Identity: Managed service identity (system assigned and/or user assigned identities)",
          "properties": {
            "type": {
              "description": "Type: Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).",
              "enum": [
                "None",
                "SystemAssigned",
                "SystemAssigned,UserAssigned",
                "UserAssigned"
              ],
              "type": "string"
            },
            "userAssignedIdentities": {
              "items": {
                "description": "Information about the user assigned identity for the resource",
                "properties": {
                  "reference": {
                    "description": "ResourceReference represents a resource reference, either to a Kubernetes resource or directly to an Azure resource via ARMID",
                    "properties": {
                      "armId": {
                        "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
                        "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
                        "type": "string"
                      },
                      "group": {
                        "description": "Group is the Kubernetes group of the resource.",
                        "type": "string"
                      },
                      "kind": {
                        "description": "Kind is the Kubernetes kind of the resource.",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name is the Kubernetes name of the resource.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            }
          },
          "required": [
            "type"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "intellectualPropertyPublisher": {
          "description": "IntellectualPropertyPublisher: IntellectualPropertyPublisher for the registry",
          "type": "string"
        },
        "kind": {
          "description": "Kind: Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type.",
          "type": "string"
        },
        "location": {
          "description": "Location: The geo-location where the resource lives",
          "type": "string"
        },
        "managedResourceGroup": {
          "description": "ManagedResourceGroup: ResourceId of the managed RG if the registry has system created resources",
          "properties": {
            "resourceReference": {
              "description": "ResourceReference: Arm ResourceId is in the format\n\"/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Storage/storageAccounts/{StorageAccountName}\"\nor\n\"/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.ContainerRegistry/registries/{AcrName}\"",
              "properties": {
                "armId": {
                  "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
                  "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
                  "type": "string"
                },
                "group": {
                  "description": "Group is the Kubernetes group of the resource.",
                  "type": "string"
                },
                "kind": {
                  "description": "Kind is the Kubernetes kind of the resource.",
                  "type": "string"
                },
                "name": {
                  "description": "Name is the Kubernetes name of the resource.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "mlFlowRegistryUri": {
          "description": "MlFlowRegistryUri: MLFlow Registry URI for the Registry",
          "type": "string"
        },
        "operatorSpec": {
          "description": "OperatorSpec: The specification for configuring operator behavior. This field is interpreted by the operator and not\npassed directly to Azure",
          "properties": {
            "configMapExpressions": {
              "description": "ConfigMapExpressions: configures where to place operator written dynamic ConfigMaps (created with CEL expressions).",
              "items": {
                "description": "DestinationExpression is a CEL expression and a destination to store the result in. The destination may\nbe a secret or a configmap. The value of the expression is stored at the specified location in\nthe destination.",
                "properties": {
                  "key": {
                    "description": "Key is the key in the ConfigMap or Secret being written to. If the CEL expression in Value returns a string\nthis is required to identify what key to write to. If the CEL expression in Value returns a map[string]string\nKey must not be set, instead the keys written will be determined dynamically based on the keys of the resulting\nmap[string]string.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name is the name of the Kubernetes configmap or secret to write to.\nThe configmap or secret will be created in the same namespace as the resource.",
                    "type": "string"
                  },
                  "value": {
                    "description": "Value is a CEL expression. The CEL expression may return a string or a map[string]string. For more information\non CEL in ASO see https://azure.github.io/azure-service-operator/guide/expressions/",
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "configMaps": {
              "description": "ConfigMaps: configures where to place operator written ConfigMaps.",
              "properties": {
                "discoveryUrl": {
                  "description": "DiscoveryUrl: indicates where the DiscoveryUrl config map should be placed. If omitted, no config map will be created.",
                  "properties": {
                    "key": {
                      "description": "Key is the key in the ConfigMap being referenced",
                      "type": "string"
                    },
                    "name": {
                      "description": "Name is the name of the Kubernetes ConfigMap to write to.\nThe ConfigMap will be created in the same namespace as the resource.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "key",
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "mlFlowRegistryUri": {
                  "description": "MlFlowRegistryUri: indicates where the MlFlowRegistryUri config map should be placed. If omitted, no config map will be\ncreated.",
                  "properties": {
                    "key": {
                      "description": "Key is the key in the ConfigMap being referenced",
                      "type": "string"
                    },
                    "name": {
                      "description": "Name is the name of the Kubernetes ConfigMap to write to.\nThe ConfigMap will be created in the same namespace as the resource.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "key",
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "secretExpressions": {
              "description": "SecretExpressions: configures where to place operator written dynamic secrets (created with CEL expressions).",
              "items": {
                "description": "DestinationExpression is a CEL expression and a destination to store the result in. The destination may\nbe a secret or a configmap. The value of the expression is stored at the specified location in\nthe destination.",
                "properties": {
                  "key": {
                    "description": "Key is the key in the ConfigMap or Secret being written to. If the CEL expression in Value returns a string\nthis is required to identify what key to write to. If the CEL expression in Value returns a map[string]string\nKey must not be set, instead the keys written will be determined dynamically based on the keys of the resulting\nmap[string]string.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name is the name of the Kubernetes configmap or secret to write to.\nThe configmap or secret will be created in the same namespace as the resource.",
                    "type": "string"
                  },
                  "value": {
                    "description": "Value is a CEL expression. The CEL expression may return a string or a map[string]string. For more information\non CEL in ASO see https://azure.github.io/azure-service-operator/guide/expressions/",
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "owner": {
          "description": "Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also\ncontrols the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a\nreference to a resources.azure.com/ResourceGroup resource",
          "properties": {
            "armId": {
              "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
              "type": "string"
            },
            "name": {
              "description": "This is the name of the Kubernetes resource to reference.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "publicNetworkAccess": {
          "description": "PublicNetworkAccess: Is the Registry accessible from the internet?\nPossible values: \"Enabled\" or \"Disabled\"",
          "type": "string"
        },
        "regionDetails": {
          "description": "RegionDetails: Details of each region the registry is in",
          "items": {
            "description": "Details for each region the registry is in",
            "properties": {
              "acrDetails": {
                "description": "AcrDetails: List of ACR accounts",
                "items": {
                  "description": "Details of ACR account to be used for the Registry",
                  "properties": {
                    "systemCreatedAcrAccount": {
                      "description": "SystemCreatedAcrAccount: Details of system created ACR account to be used for the Registry",
                      "properties": {
                        "acrAccountName": {
                          "description": "AcrAccountName: Name of the ACR account",
                          "type": "string"
                        },
                        "acrAccountSku": {
                          "description": "AcrAccountSku: SKU of the ACR account",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "location": {
                "description": "Location: The location where the registry exists",
                "type": "string"
              },
              "storageAccountDetails": {
                "description": "StorageAccountDetails: List of storage accounts",
                "items": {
                  "description": "Details of storage account to be used for the Registry",
                  "properties": {
                    "systemCreatedStorageAccount": {
                      "description": "SystemCreatedStorageAccount: Details of system created storage account to be used for the registry",
                      "properties": {
                        "allowBlobPublicAccess": {
                          "description": "AllowBlobPublicAccess: Public blob access allowed",
                          "type": "boolean"
                        },
                        "storageAccountHnsEnabled": {
                          "description": "StorageAccountHnsEnabled: HNS enabled for storage account",
                          "type": "boolean"
                        },
                        "storageAccountName": {
                          "description": "StorageAccountName: Name of the storage account",
                          "type": "string"
                        },
                        "storageAccountType": {
                          "description": "StorageAccountType: Allowed values:\n\"Standard_LRS\",\n\"Standard_GRS\",\n\"Standard_RAGRS\",\n\"Standard_ZRS\",\n\"Standard_GZRS\",\n\"Standard_RAGZRS\",\n\"Premium_LRS\",\n\"Premium_ZRS\"",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "registryPrivateEndpointConnections": {
          "description": "RegistryPrivateEndpointConnections: Private endpoint connections info used for pending connections in private link portal",
          "items": {
            "description": "Private endpoint connection definition.",
            "properties": {
              "groupIds": {
                "description": "GroupIds: The group ids",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "location": {
                "description": "Location: Same as workspace location.",
                "type": "string"
              },
              "privateEndpoint": {
                "description": "PrivateEndpoint: The PE network resource that is linked to this PE connection.",
                "properties": {
                  "subnetArmReference": {
                    "description": "SubnetArmReference: The subnetId that the private endpoint is connected to.",
                    "properties": {
                      "armId": {
                        "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
                        "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
                        "type": "string"
                      },
                      "group": {
                        "description": "Group is the Kubernetes group of the resource.",
                        "type": "string"
                      },
                      "kind": {
                        "description": "Kind is the Kubernetes kind of the resource.",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name is the Kubernetes name of the resource.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "provisioningState": {
                "description": "ProvisioningState: One of null, \"Succeeded\", \"Provisioning\", \"Failed\". While not approved, it's null.",
                "type": "string"
              },
              "reference": {
                "description": "Reference: This is the private endpoint connection name created on SRP\nFull resource id:\n/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.MachineLearningServices/{resourceType}/{resourceName}/registryPrivateEndpointConnections/{peConnectionName}",
                "properties": {
                  "armId": {
                    "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
                    "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
                    "type": "string"
                  },
                  "group": {
                    "description": "Group is the Kubernetes group of the resource.",
                    "type": "string"
                  },
                  "kind": {
                    "description": "Kind is the Kubernetes kind of the resource.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name is the Kubernetes name of the resource.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "registryPrivateLinkServiceConnectionState": {
                "description": "RegistryPrivateLinkServiceConnectionState: The connection state.",
                "properties": {
                  "actionsRequired": {
                    "description": "ActionsRequired: Some RP chose \"None\". Other RPs use this for region expansion.",
                    "type": "string"
                  },
                  "description": {
                    "description": "Description: User-defined message that, per NRP doc, may be used for approval-related message.",
                    "type": "string"
                  },
                  "status": {
                    "description": "Status: Connection status of the service consumer with the service provider",
                    "enum": [
                      "Approved",
                      "Disconnected",
                      "Pending",
                      "Rejected"
                    ],
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "sku": {
          "description": "Sku: Sku details required for ARM contract for Autoscaling.",
          "properties": {
            "capacity": {
              "description": "Capacity: If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible\nfor the resource this may be omitted.",
              "type": "integer"
            },
            "family": {
              "description": "Family: If the service has different generations of hardware, for the same SKU, then that can be captured here.",
              "type": "string"
            },
            "name": {
              "description": "Name: The name of the SKU. Ex - P3. It is typically a letter+number code",
              "type": "string"
            },
            "size": {
              "description": "Size: The SKU size. When the name field is the combination of tier and some other value, this would be the standalone\ncode.",
              "type": "string"
            },
            "tier": {
              "description": "Tier: This field is required to be implemented by the Resource Provider if the service has more than one tier, but is\nnot  required on a PUT.",
              "enum": [
                "Basic",
                "Free",
                "Premium",
                "Standard"
              ],
              "type": "string"
            }
          },
          "required": [
            "name"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Tags: Resource tags.",
          "type": "object"
        }
      },
      "required": [
        "location",
        "owner"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "properties": {
        "conditions": {
          "description": "Conditions: The observed state of the resource",
          "items": {
            "description": "Condition defines an extension to status (an observation) of a resource",
            "properties": {
              "lastTransitionTime": {
                "description": "LastTransitionTime is the last time the condition transitioned from one status to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "Message is a human readable message indicating details about the transition. This field may be empty.",
                "type": "string"
              },
              "observedGeneration": {
                "description": "ObservedGeneration is the .metadata.generation that the condition was set based upon. For instance, if\n.metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.",
                "format": "int64",
                "type": "integer"
              },
              "reason": {
                "description": "Reason for the condition's last transition.\nReasons are upper CamelCase (PascalCase) with no spaces. A reason is always provided, this field will not be empty.",
                "type": "string"
              },
              "severity": {
                "description": "Severity with which to treat failures of this type of condition.\nFor conditions which have positive polarity (Status == True is their normal/healthy state), this will be omitted when Status == True\nFor conditions which have negative polarity (Status == False is their normal/healthy state), this will be omitted when Status == False.\nThis is omitted in all cases when Status == Unknown",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition, one of True, False, or Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type of condition.",
                "type": "string"
              }
            },
            "required": [
              "lastTransitionTime",
              "reason",
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "discoveryUrl": {
          "description": "DiscoveryUrl: Discovery URL for the Registry",
          "type": "string"
        },
        "id": {
          "description": "Id: Fully qualified resource ID for the resource. Ex -\n/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}",
          "type": "string"
        },
        "identity": {
          "description": "Identity: Managed service identity (system assigned and/or user assigned identities)",
          "properties": {
            "principalId": {
              "description": "PrincipalId: The service principal ID of the system assigned identity. This property will only be provided for a system\nassigned identity.",
              "type": "string"
            },
            "tenantId": {
              "description": "TenantId: The tenant ID of the system assigned identity. This property will only be provided for a system assigned\nidentity.",
              "type": "string"
            },
            "type": {
              "description": "Type: Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).",
              "type": "string"
            },
            "userAssignedIdentities": {
              "additionalProperties": {
                "description": "User assigned identity properties",
                "properties": {
                  "clientId": {
                    "description": "ClientId: The client ID of the assigned identity.",
                    "type": "string"
                  },
                  "principalId": {
                    "description": "PrincipalId: The principal ID of the assigned identity.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "object"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "intellectualPropertyPublisher": {
          "description": "IntellectualPropertyPublisher: IntellectualPropertyPublisher for the registry",
          "type": "string"
        },
        "kind": {
          "description": "Kind: Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type.",
          "type": "string"
        },
        "location": {
          "description": "Location: The geo-location where the resource lives",
          "type": "string"
        },
        "managedResourceGroup": {
          "description": "ManagedResourceGroup: ResourceId of the managed RG if the registry has system created resources",
          "properties": {
            "resourceId": {
              "description": "ResourceId: Arm ResourceId is in the format\n\"/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Storage/storageAccounts/{StorageAccountName}\"\nor\n\"/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.ContainerRegistry/registries/{AcrName}\"",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "mlFlowRegistryUri": {
          "description": "MlFlowRegistryUri: MLFlow Registry URI for the Registry",
          "type": "string"
        },
        "name": {
          "description": "Name: The name of the resource",
          "type": "string"
        },
        "publicNetworkAccess": {
          "description": "PublicNetworkAccess: Is the Registry accessible from the internet?\nPossible values: \"Enabled\" or \"Disabled\"",
          "type": "string"
        },
        "regionDetails": {
          "description": "RegionDetails: Details of each region the registry is in",
          "items": {
            "description": "Details for each region the registry is in",
            "properties": {
              "acrDetails": {
                "description": "AcrDetails: List of ACR accounts",
                "items": {
                  "description": "Details of ACR account to be used for the Registry",
                  "properties": {
                    "systemCreatedAcrAccount": {
                      "description": "SystemCreatedAcrAccount: Details of system created ACR account to be used for the Registry",
                      "properties": {
                        "acrAccountName": {
                          "description": "AcrAccountName: Name of the ACR account",
                          "type": "string"
                        },
                        "acrAccountSku": {
                          "description": "AcrAccountSku: SKU of the ACR account",
                          "type": "string"
                        },
                        "armResourceId": {
                          "description": "ArmResourceId: This is populated once the ACR account is created.",
                          "properties": {
                            "resourceId": {
                              "description": "ResourceId: Arm ResourceId is in the format\n\"/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Storage/storageAccounts/{StorageAccountName}\"\nor\n\"/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.ContainerRegistry/registries/{AcrName}\"",
                              "type": "string"
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "location": {
                "description": "Location: The location where the registry exists",
                "type": "string"
              },
              "storageAccountDetails": {
                "description": "StorageAccountDetails: List of storage accounts",
                "items": {
                  "description": "Details of storage account to be used for the Registry",
                  "properties": {
                    "systemCreatedStorageAccount": {
                      "description": "SystemCreatedStorageAccount: Details of system created storage account to be used for the registry",
                      "properties": {
                        "allowBlobPublicAccess": {
                          "description": "AllowBlobPublicAccess: Public blob access allowed",
                          "type": "boolean"
                        },
                        "armResourceId": {
                          "description": "ArmResourceId: This is populated once the storage account is created.",
                          "properties": {
                            "resourceId": {
                              "description": "ResourceId: Arm ResourceId is in the format\n\"/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Storage/storageAccounts/{StorageAccountName}\"\nor\n\"/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.ContainerRegistry/registries/{AcrName}\"",
                              "type": "string"
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        },
                        "storageAccountHnsEnabled": {
                          "description": "StorageAccountHnsEnabled: HNS enabled for storage account",
                          "type": "boolean"
                        },
                        "storageAccountName": {
                          "description": "StorageAccountName: Name of the storage account",
                          "type": "string"
                        },
                        "storageAccountType": {
                          "description": "StorageAccountType: Allowed values:\n\"Standard_LRS\",\n\"Standard_GRS\",\n\"Standard_RAGRS\",\n\"Standard_ZRS\",\n\"Standard_GZRS\",\n\"Standard_RAGZRS\",\n\"Premium_LRS\",\n\"Premium_ZRS\"",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "registryPrivateEndpointConnections": {
          "description": "RegistryPrivateEndpointConnections: Private endpoint connections info used for pending connections in private link portal",
          "items": {
            "description": "Private endpoint connection definition.",
            "properties": {
              "groupIds": {
                "description": "GroupIds: The group ids",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "id": {
                "description": "Id: This is the private endpoint connection name created on SRP\nFull resource id:\n/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.MachineLearningServices/{resourceType}/{resourceName}/registryPrivateEndpointConnections/{peConnectionName}",
                "type": "string"
              },
              "location": {
                "description": "Location: Same as workspace location.",
                "type": "string"
              },
              "privateEndpoint": {
                "description": "PrivateEndpoint: The PE network resource that is linked to this PE connection.",
                "properties": {
                  "id": {
                    "description": "Id: The ARM identifier for Private Endpoint",
                    "type": "string"
                  },
                  "subnetArmId": {
                    "description": "SubnetArmId: The subnetId that the private endpoint is connected to.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "provisioningState": {
                "description": "ProvisioningState: One of null, \"Succeeded\", \"Provisioning\", \"Failed\". While not approved, it's null.",
                "type": "string"
              },
              "registryPrivateLinkServiceConnectionState": {
                "description": "RegistryPrivateLinkServiceConnectionState: The connection state.",
                "properties": {
                  "actionsRequired": {
                    "description": "ActionsRequired: Some RP chose \"None\". Other RPs use this for region expansion.",
                    "type": "string"
                  },
                  "description": {
                    "description": "Description: User-defined message that, per NRP doc, may be used for approval-related message.",
                    "type": "string"
                  },
                  "status": {
                    "description": "Status: Connection status of the service consumer with the service provider",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "sku": {
          "description": "Sku: Sku details required for ARM contract for Autoscaling.",
          "properties": {
            "capacity": {
              "description": "Capacity: If the SKU supports scale out/in then the capacity integer should be included. If scale out/in is not possible\nfor the resource this may be omitted.",
              "type": "integer"
            },
            "family": {
              "description": "Family: If the service has different generations of hardware, for the same SKU, then that can be captured here.",
              "type": "string"
            },
            "name": {
              "description": "Name: The name of the SKU. Ex - P3. It is typically a letter+number code",
              "type": "string"
            },
            "size": {
              "description": "Size: The SKU size. When the name field is the combination of tier and some other value, this would be the standalone\ncode.",
              "type": "string"
            },
            "tier": {
              "description": "Tier: This field is required to be implemented by the Resource Provider if the service has more than one tier, but is\nnot  required on a PUT.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "systemData": {
          "description": "SystemData: Azure Resource Manager metadata containing createdBy and modifiedBy information.",
          "properties": {
            "createdAt": {
              "description": "CreatedAt: The timestamp of resource creation (UTC).",
              "type": "string"
            },
            "createdBy": {
              "description": "CreatedBy: The identity that created the resource.",
              "type": "string"
            },
            "createdByType": {
              "description": "CreatedByType: The type of identity that created the resource.",
              "type": "string"
            },
            "lastModifiedAt": {
              "description": "LastModifiedAt: The timestamp of resource last modification (UTC)",
              "type": "string"
            },
            "lastModifiedBy": {
              "description": "LastModifiedBy: The identity that last modified the resource.",
              "type": "string"
            },
            "lastModifiedByType": {
              "description": "LastModifiedByType: The type of identity that last modified the resource.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Tags: Resource tags.",
          "type": "object"
        },
        "type": {
          "description": "Type: The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
