diff --git a/schemas/2023-08-01-preview/Microsoft.Cache.Enterprise.json b/schemas/2023-08-01-preview/Microsoft.Cache.Enterprise.json new file mode 100644 index 0000000000..21f647c128 --- /dev/null +++ b/schemas/2023-08-01-preview/Microsoft.Cache.Enterprise.json @@ -0,0 +1,753 @@ +{ + "id": "https://schema.management.azure.com/schemas/2023-08-01-preview/Microsoft.Cache.Enterprise.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Cache", + "description": "Microsoft Cache Resource Types", + "resourceDefinitions": { + "redisEnterprise": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2023-08-01-preview" + ] + }, + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/ManagedServiceIdentity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Managed service identity (system assigned and/or user assigned identities)" + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives" + }, + "name": { + "type": "string", + "description": "The name of the RedisEnterprise cluster." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ClusterProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Properties of RedisEnterprise clusters, as opposed to general resource properties like location, tags" + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/redisEnterprise_databases_childResource" + }, + { + "$ref": "#/definitions/redisEnterprise_privateEndpointConnections_childResource" + } + ] + } + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/Sku" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SKU parameters supplied to the create RedisEnterprise operation." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Cache/redisEnterprise" + ] + }, + "zones": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The Availability Zones where this cluster will be deployed." + } + }, + "required": [ + "apiVersion", + "location", + "name", + "properties", + "sku", + "type" + ], + "description": "Microsoft.Cache/redisEnterprise" + }, + "redisEnterprise_databases": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2023-08-01-preview" + ] + }, + "name": { + "type": "string", + "description": "The name of the database." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/DatabaseProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Properties of RedisEnterprise databases, as opposed to general resource properties like location, tags" + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Cache/redisEnterprise/databases" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Cache/redisEnterprise/databases" + }, + "redisEnterprise_privateEndpointConnections": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2023-08-01-preview" + ] + }, + "name": { + "type": "string", + "description": "The name of the private endpoint connection associated with the Azure resource" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PrivateEndpointConnectionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Properties of the PrivateEndpointConnectProperties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Cache/redisEnterprise/privateEndpointConnections" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Cache/redisEnterprise/privateEndpointConnections" + } + }, + "definitions": { + "ClusterProperties": { + "type": "object", + "properties": { + "encryption": { + "oneOf": [ + { + "$ref": "#/definitions/ClusterPropertiesEncryption" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Encryption-at-rest configuration for the cluster." + }, + "minimumTlsVersion": { + "oneOf": [ + { + "type": "string", + "enum": [ + "1.0", + "1.1", + "1.2" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The minimum TLS version for the cluster to support, e.g. '1.2'." + } + }, + "description": "Properties of RedisEnterprise clusters, as opposed to general resource properties like location, tags" + }, + "ClusterPropertiesEncryption": { + "type": "object", + "properties": { + "customerManagedKeyEncryption": { + "oneOf": [ + { + "$ref": "#/definitions/ClusterPropertiesEncryptionCustomerManagedKeyEncryption" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "All Customer-managed key encryption properties for the resource. Set this to an empty object to use Microsoft-managed key encryption." + } + }, + "description": "Encryption-at-rest configuration for the cluster." + }, + "ClusterPropertiesEncryptionCustomerManagedKeyEncryption": { + "type": "object", + "properties": { + "keyEncryptionKeyIdentity": { + "oneOf": [ + { + "$ref": "#/definitions/ClusterPropertiesEncryptionCustomerManagedKeyEncryptionKeyEncryptionKeyIdentity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault." + }, + "keyEncryptionKeyUrl": { + "type": "string", + "description": "Key encryption key Url, versioned only. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78" + } + }, + "description": "All Customer-managed key encryption properties for the resource. Set this to an empty object to use Microsoft-managed key encryption." + }, + "ClusterPropertiesEncryptionCustomerManagedKeyEncryptionKeyEncryptionKeyIdentity": { + "type": "object", + "properties": { + "identityType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "systemAssignedIdentity", + "userAssignedIdentity" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Only userAssignedIdentity is supported in this API version; other types may be supported in the future." + }, + "userAssignedIdentityResourceId": { + "type": "string", + "description": "User assigned identity to use for accessing key encryption key Url. Ex: /subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId." + } + }, + "description": "All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault." + }, + "DatabaseProperties": { + "type": "object", + "properties": { + "clientProtocol": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Encrypted", + "Plaintext" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies whether redis clients can connect using TLS-encrypted or plaintext redis protocols. Default is TLS-encrypted." + }, + "clusteringPolicy": { + "oneOf": [ + { + "type": "string", + "enum": [ + "EnterpriseCluster", + "OSSCluster" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Clustering policy - default is OSSCluster. Specified at create time." + }, + "evictionPolicy": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AllKeysLFU", + "AllKeysLRU", + "AllKeysRandom", + "VolatileLRU", + "VolatileLFU", + "VolatileTTL", + "VolatileRandom", + "NoEviction" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Redis eviction policy - default is VolatileLRU." + }, + "geoReplication": { + "oneOf": [ + { + "$ref": "#/definitions/DatabasePropertiesGeoReplication" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Optional set of properties to configure geo replication for this database." + }, + "modules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Module" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Optional set of redis modules to enable in this database - modules can only be added at creation time." + }, + "persistence": { + "oneOf": [ + { + "$ref": "#/definitions/Persistence" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Persistence-related configuration for the RedisEnterprise database" + }, + "port": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "TCP port of the database endpoint. Specified at create time. Defaults to an available port." + } + }, + "description": "Properties of RedisEnterprise databases, as opposed to general resource properties like location, tags" + }, + "DatabasePropertiesGeoReplication": { + "type": "object", + "properties": { + "groupNickname": { + "type": "string", + "description": "Name for the group of linked database resources" + }, + "linkedDatabases": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/LinkedDatabase" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of database resources to link with this database" + } + }, + "description": "Optional set of properties to configure geo replication for this database." + }, + "LinkedDatabase": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Resource ID of a database resource to link with this database." + } + }, + "description": "Specifies details of a linked database resource." + }, + "ManagedServiceIdentity": { + "type": "object", + "properties": { + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "None", + "SystemAssigned", + "UserAssigned", + "SystemAssigned, UserAssigned" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "userAssignedIdentities": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/UserAssignedIdentity" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests." + } + }, + "required": [ + "type" + ], + "description": "Managed service identity (system assigned and/or user assigned identities)" + }, + "Module": { + "type": "object", + "properties": { + "args": { + "type": "string", + "description": "Configuration options for the module, e.g. 'ERROR_RATE 0.01 INITIAL_SIZE 400'." + }, + "name": { + "type": "string", + "description": "The name of the module, e.g. 'RedisBloom', 'RediSearch', 'RedisTimeSeries'" + } + }, + "required": [ + "name" + ], + "description": "Specifies configuration of a redis module" + }, + "Persistence": { + "type": "object", + "properties": { + "aofEnabled": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Sets whether AOF is enabled." + }, + "aofFrequency": { + "oneOf": [ + { + "type": "string", + "enum": [ + "1s", + "always" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Sets the frequency at which data is written to disk." + }, + "rdbEnabled": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Sets whether RDB is enabled." + }, + "rdbFrequency": { + "oneOf": [ + { + "type": "string", + "enum": [ + "1h", + "6h", + "12h" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Sets the frequency at which a snapshot of the database is created." + } + }, + "description": "Persistence-related configuration for the RedisEnterprise database" + }, + "PrivateEndpoint": { + "type": "object", + "properties": {}, + "description": "The Private Endpoint resource." + }, + "PrivateEndpointConnectionProperties": { + "type": "object", + "properties": { + "privateEndpoint": { + "oneOf": [ + { + "$ref": "#/definitions/PrivateEndpoint" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The Private Endpoint resource." + }, + "privateLinkServiceConnectionState": { + "oneOf": [ + { + "$ref": "#/definitions/PrivateLinkServiceConnectionState" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "A collection of information about the state of the connection between service consumer and provider." + }, + "provisioningState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Succeeded", + "Creating", + "Deleting", + "Failed" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The provisioning state of the private endpoint connection resource." + } + }, + "required": [ + "privateLinkServiceConnectionState" + ], + "description": "Properties of the PrivateEndpointConnectProperties." + }, + "PrivateLinkServiceConnectionState": { + "type": "object", + "properties": { + "actionsRequired": { + "type": "string", + "description": "A message indicating if changes on the service provider require any updates on the consumer." + }, + "description": { + "type": "string", + "description": "The reason for approval/rejection of the connection." + }, + "status": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Pending", + "Approved", + "Rejected" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service." + } + }, + "description": "A collection of information about the state of the connection between service consumer and provider." + }, + "redisEnterprise_databases_childResource": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2023-08-01-preview" + ] + }, + "name": { + "type": "string", + "description": "The name of the database." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/DatabaseProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Properties of RedisEnterprise databases, as opposed to general resource properties like location, tags" + }, + "type": { + "type": "string", + "enum": [ + "databases" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Cache/redisEnterprise/databases" + }, + "redisEnterprise_privateEndpointConnections_childResource": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2023-08-01-preview" + ] + }, + "name": { + "type": "string", + "description": "The name of the private endpoint connection associated with the Azure resource" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PrivateEndpointConnectionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Properties of the PrivateEndpointConnectProperties." + }, + "type": { + "type": "string", + "enum": [ + "privateEndpointConnections" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Cache/redisEnterprise/privateEndpointConnections" + }, + "Sku": { + "type": "object", + "properties": { + "capacity": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The size of the RedisEnterprise cluster. Defaults to 2 or 3 depending on SKU. Valid values are (2, 4, 6, ...) for Enterprise SKUs and (3, 9, 15, ...) for Flash SKUs." + }, + "name": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enterprise_E10", + "Enterprise_E20", + "Enterprise_E50", + "Enterprise_E100", + "EnterpriseFlash_F300", + "EnterpriseFlash_F700", + "EnterpriseFlash_F1500" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of RedisEnterprise cluster to deploy. Possible values: (Enterprise_E10, EnterpriseFlash_F300 etc.)." + } + }, + "required": [ + "name" + ], + "description": "SKU parameters supplied to the create RedisEnterprise operation." + }, + "UserAssignedIdentity": { + "type": "object", + "properties": {}, + "description": "User assigned identity properties" + } + } +} \ No newline at end of file diff --git a/schemas/common/autogeneratedResources.json b/schemas/common/autogeneratedResources.json index 4efefb24e9..f59aa05d91 100644 --- a/schemas/common/autogeneratedResources.json +++ b/schemas/common/autogeneratedResources.json @@ -5398,6 +5398,15 @@ { "$ref": "https://schema.management.azure.com/schemas/2023-07-01/Microsoft.Cache.Enterprise.json#/resourceDefinitions/redisEnterprise_privateEndpointConnections" }, + { + "$ref": "https://schema.management.azure.com/schemas/2023-08-01-preview/Microsoft.Cache.Enterprise.json#/resourceDefinitions/redisEnterprise" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2023-08-01-preview/Microsoft.Cache.Enterprise.json#/resourceDefinitions/redisEnterprise_databases" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2023-08-01-preview/Microsoft.Cache.Enterprise.json#/resourceDefinitions/redisEnterprise_privateEndpointConnections" + }, { "$ref": "https://schema.management.azure.com/schemas/2015-08-01/Microsoft.Cache.json#/resourceDefinitions/Redis" },