{
  "description": "Generator information:\n- Generated from: /cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2023-11-15/cosmos-db.json\n- ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}",
  "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": {
        "analyticalStorageConfiguration": {
          "description": "AnalyticalStorageConfiguration: Analytical storage specific properties.",
          "properties": {
            "schemaType": {
              "description": "SchemaType: Describes the types of schema for analytical storage.",
              "enum": [
                "FullFidelity",
                "WellDefined"
              ],
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "apiProperties": {
          "description": "ApiProperties: API specific properties. Currently, supported only for MongoDB API.",
          "properties": {
            "serverVersion": {
              "description": "ServerVersion: Describes the ServerVersion of an a MongoDB account.",
              "enum": [
                "3.2",
                "3.6",
                "4.0",
                "4.2"
              ],
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "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.",
          "maxLength": 50,
          "minLength": 3,
          "pattern": "^[a-z0-9]+(-[a-z0-9]+)*",
          "type": "string"
        },
        "backupPolicy": {
          "description": "BackupPolicy: The object representing the policy for taking backups on an account.",
          "properties": {
            "continuous": {
              "description": "Continuous: Mutually exclusive with all other properties",
              "properties": {
                "continuousModeProperties": {
                  "description": "ContinuousModeProperties: Configuration values for continuous mode backup",
                  "properties": {
                    "tier": {
                      "description": "Tier: Enum to indicate type of Continuous backup mode",
                      "enum": [
                        "Continuous30Days",
                        "Continuous7Days"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "migrationState": {
                  "description": "MigrationState: The object representing the state of the migration between the backup policies.",
                  "properties": {
                    "startTime": {
                      "description": "StartTime: Time at which the backup policy migration started (ISO-8601 format).",
                      "type": "string"
                    },
                    "status": {
                      "description": "Status: Describes the status of migration between backup policy types.",
                      "enum": [
                        "Completed",
                        "Failed",
                        "InProgress",
                        "Invalid"
                      ],
                      "type": "string"
                    },
                    "targetType": {
                      "description": "TargetType: Describes the target backup policy type of the backup policy migration.",
                      "enum": [
                        "Continuous",
                        "Periodic"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": {
                  "description": "Type: Describes the mode of backups.",
                  "enum": [
                    "Continuous"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "periodic": {
              "description": "Periodic: Mutually exclusive with all other properties",
              "properties": {
                "migrationState": {
                  "description": "MigrationState: The object representing the state of the migration between the backup policies.",
                  "properties": {
                    "startTime": {
                      "description": "StartTime: Time at which the backup policy migration started (ISO-8601 format).",
                      "type": "string"
                    },
                    "status": {
                      "description": "Status: Describes the status of migration between backup policy types.",
                      "enum": [
                        "Completed",
                        "Failed",
                        "InProgress",
                        "Invalid"
                      ],
                      "type": "string"
                    },
                    "targetType": {
                      "description": "TargetType: Describes the target backup policy type of the backup policy migration.",
                      "enum": [
                        "Continuous",
                        "Periodic"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "periodicModeProperties": {
                  "description": "PeriodicModeProperties: Configuration values for periodic mode backup",
                  "properties": {
                    "backupIntervalInMinutes": {
                      "description": "BackupIntervalInMinutes: An integer representing the interval in minutes between two backups",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "backupRetentionIntervalInHours": {
                      "description": "BackupRetentionIntervalInHours: An integer representing the time (in hours) that each backup is retained",
                      "minimum": 0,
                      "type": "integer"
                    },
                    "backupStorageRedundancy": {
                      "description": "BackupStorageRedundancy: Enum to indicate type of backup residency",
                      "enum": [
                        "Geo",
                        "Local",
                        "Zone"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": {
                  "description": "Type: Describes the mode of backups.",
                  "enum": [
                    "Periodic"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "capabilities": {
          "description": "Capabilities: List of Cosmos DB capabilities for the account",
          "items": {
            "description": "Cosmos DB capability object",
            "properties": {
              "name": {
                "description": "Name: Name of the Cosmos DB capability. For example, \"name\": \"EnableCassandra\". Current values also include\n\"EnableTable\" and \"EnableGremlin\".",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "capacity": {
          "description": "Capacity: The object that represents all properties related to capacity enforcement on an account.",
          "properties": {
            "totalThroughputLimit": {
              "description": "TotalThroughputLimit: The total throughput limit imposed on the account. A totalThroughputLimit of 2000 imposes a strict\nlimit of max throughput that can be provisioned on that account to be 2000. A totalThroughputLimit of -1 indicates no\nlimits on provisioning of throughput.",
              "minimum": -1,
              "type": "integer"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "connectorOffer": {
          "description": "ConnectorOffer: The cassandra connector offer type for the Cosmos DB database C* account.",
          "enum": [
            "Small"
          ],
          "type": "string"
        },
        "consistencyPolicy": {
          "description": "ConsistencyPolicy: The consistency policy for the Cosmos DB account.",
          "properties": {
            "defaultConsistencyLevel": {
              "description": "DefaultConsistencyLevel: The default consistency level and configuration settings of the Cosmos DB account.",
              "enum": [
                "BoundedStaleness",
                "ConsistentPrefix",
                "Eventual",
                "Session",
                "Strong"
              ],
              "type": "string"
            },
            "maxIntervalInSeconds": {
              "description": "MaxIntervalInSeconds: When used with the Bounded Staleness consistency level, this value represents the time amount of\nstaleness (in seconds) tolerated. Accepted range for this value is 5 - 86400. Required when defaultConsistencyPolicy is\nset to 'BoundedStaleness'.",
              "maximum": 86400,
              "minimum": 5,
              "type": "integer"
            },
            "maxStalenessPrefix": {
              "description": "MaxStalenessPrefix: When used with the Bounded Staleness consistency level, this value represents the number of stale\nrequests tolerated. Accepted range for this value is 1 \u2013 2,147,483,647. Required when defaultConsistencyPolicy is set\nto 'BoundedStaleness'.",
              "maximum": 2147483647,
              "minimum": 1,
              "type": "integer"
            }
          },
          "required": [
            "defaultConsistencyLevel"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "cors": {
          "description": "Cors: The CORS policy for the Cosmos DB database account.",
          "items": {
            "description": "The CORS policy for the Cosmos DB database account.",
            "properties": {
              "allowedHeaders": {
                "description": "AllowedHeaders: The request headers that the origin domain may specify on the CORS request.",
                "type": "string"
              },
              "allowedMethods": {
                "description": "AllowedMethods: The methods (HTTP request verbs) that the origin domain may use for a CORS request.",
                "type": "string"
              },
              "allowedOrigins": {
                "description": "AllowedOrigins: The origin domains that are permitted to make a request against the service via CORS.",
                "type": "string"
              },
              "exposedHeaders": {
                "description": "ExposedHeaders: The response headers that may be sent in the response to the CORS request and exposed by the browser to\nthe request issuer.",
                "type": "string"
              },
              "maxAgeInSeconds": {
                "description": "MaxAgeInSeconds: The maximum amount time that a browser should cache the preflight OPTIONS request.",
                "maximum": 2147483647,
                "minimum": 1,
                "type": "integer"
              }
            },
            "required": [
              "allowedOrigins"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "createMode": {
          "description": "CreateMode: Enum to indicate the mode of account creation.",
          "enum": [
            "Default",
            "Restore"
          ],
          "type": "string"
        },
        "customerManagedKeyStatus": {
          "description": "CustomerManagedKeyStatus: Indicates the status of the Customer Managed Key feature on the account. In case there are\nerrors, the property provides troubleshooting guidance.",
          "type": "string"
        },
        "databaseAccountOfferType": {
          "description": "DatabaseAccountOfferType: The offer type for the database",
          "enum": [
            "Standard"
          ],
          "type": "string"
        },
        "defaultIdentity": {
          "description": "DefaultIdentity: The default identity for accessing key vault used in features like customer managed keys. The default\nidentity needs to be explicitly set by the users. It can be \"FirstPartyIdentity\", \"SystemAssignedIdentity\" and more.",
          "type": "string"
        },
        "disableKeyBasedMetadataWriteAccess": {
          "description": "DisableKeyBasedMetadataWriteAccess: Disable write operations on metadata resources (databases, containers, throughput)\nvia account keys",
          "type": "boolean"
        },
        "disableLocalAuth": {
          "description": "DisableLocalAuth: Opt-out of local authentication and ensure only MSI and AAD can be used exclusively for authentication.",
          "type": "boolean"
        },
        "enableAnalyticalStorage": {
          "description": "EnableAnalyticalStorage: Flag to indicate whether to enable storage analytics.",
          "type": "boolean"
        },
        "enableAutomaticFailover": {
          "description": "EnableAutomaticFailover: Enables automatic failover of the write region in the rare event that the region is unavailable\ndue to an outage. Automatic failover will result in a new write region for the account and is chosen based on the\nfailover priorities configured for the account.",
          "type": "boolean"
        },
        "enableBurstCapacity": {
          "description": "EnableBurstCapacity: Flag to indicate enabling/disabling of Burst Capacity feature on the account",
          "type": "boolean"
        },
        "enableCassandraConnector": {
          "description": "EnableCassandraConnector: Enables the cassandra connector on the Cosmos DB C* account",
          "type": "boolean"
        },
        "enableFreeTier": {
          "description": "EnableFreeTier: Flag to indicate whether Free Tier is enabled.",
          "type": "boolean"
        },
        "enableMultipleWriteLocations": {
          "description": "EnableMultipleWriteLocations: Enables the account to write in multiple locations",
          "type": "boolean"
        },
        "enablePartitionMerge": {
          "description": "EnablePartitionMerge: Flag to indicate enabling/disabling of Partition Merge feature on the account",
          "type": "boolean"
        },
        "identity": {
          "description": "Identity: Identity for the resource.",
          "properties": {
            "type": {
              "description": "Type: The type of identity used for the resource. The type 'SystemAssigned,UserAssigned' includes both an implicitly\ncreated identity and a set of user assigned identities. The type 'None' will remove any identities from the service.",
              "enum": [
                "None",
                "SystemAssigned",
                "SystemAssigned,UserAssigned",
                "UserAssigned"
              ],
              "type": "string"
            },
            "userAssignedIdentities": {
              "description": "UserAssignedIdentities: The list of user identities associated with resource. The user identity dictionary key\nreferences will be ARM resource ids in the form:\n'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.",
              "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"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "ipRules": {
          "description": "IpRules: List of IpRules.",
          "items": {
            "description": "IpAddressOrRange object",
            "properties": {
              "ipAddressOrRange": {
                "description": "IpAddressOrRange: A single IPv4 address or a single IPv4 address range in CIDR format. Provided IPs must be\nwell-formatted and cannot be contained in one of the following ranges: 10.0.0.0/8, 100.64.0.0/10, 172.16.0.0/12,\n192.168.0.0/16, since these are not enforceable by the IP address filter. Example of valid inputs: \u201c23.40.210.245\u201d\nor \u201c23.40.210.0/8\u201d.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "isVirtualNetworkFilterEnabled": {
          "description": "IsVirtualNetworkFilterEnabled: Flag to indicate whether to enable/disable Virtual Network ACL rules.",
          "type": "boolean"
        },
        "keyVaultKeyUri": {
          "description": "KeyVaultKeyUri: The URI of the key vault",
          "type": "string"
        },
        "kind": {
          "description": "Kind: Indicates the type of database account. This can only be set at database account creation.",
          "enum": [
            "GlobalDocumentDB",
            "MongoDB",
            "Parse"
          ],
          "type": "string"
        },
        "location": {
          "description": "Location: The location of the resource group to which the resource belongs.",
          "type": "string"
        },
        "locations": {
          "description": "Locations: An array that contains the georeplication locations enabled for the Cosmos DB account.",
          "items": {
            "description": "A region in which the Azure Cosmos DB database account is deployed.",
            "properties": {
              "failoverPriority": {
                "description": "FailoverPriority: The failover priority of the region. A failover priority of 0 indicates a write region. The maximum\nvalue for a failover priority = (total number of regions - 1). Failover priority values must be unique for each of the\nregions in which the database account exists.",
                "minimum": 0,
                "type": "integer"
              },
              "isZoneRedundant": {
                "description": "IsZoneRedundant: Flag to indicate whether or not this region is an AvailabilityZone region",
                "type": "boolean"
              },
              "locationName": {
                "description": "LocationName: The name of the region.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "minimalTlsVersion": {
          "description": "MinimalTlsVersion: Indicates the minimum allowed Tls version. The default value is Tls 1.2. Cassandra and Mongo APIs\nonly work with Tls 1.2.",
          "enum": [
            "Tls",
            "Tls11",
            "Tls12"
          ],
          "type": "string"
        },
        "networkAclBypass": {
          "description": "NetworkAclBypass: Indicates what services are allowed to bypass firewall checks.",
          "enum": [
            "AzureServices",
            "None"
          ],
          "type": "string"
        },
        "networkAclBypassResourceReferences": {
          "description": "NetworkAclBypassResourceReferences: An array that contains the Resource Ids for Network Acl Bypass for the Cosmos DB\naccount.",
          "items": {
            "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": "array"
        },
        "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"
            },
            "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"
            },
            "secrets": {
              "description": "Secrets: configures where to place Azure generated secrets.",
              "properties": {
                "documentEndpoint": {
                  "description": "DocumentEndpoint: indicates where the DocumentEndpoint secret should be placed. If omitted, the secret will not be\nretrieved from Azure.",
                  "properties": {
                    "key": {
                      "description": "Key is the key in the Kubernetes secret being referenced.",
                      "type": "string"
                    },
                    "name": {
                      "description": "Name is the name of the Kubernetes secret to write to.\nThe secret will be created in the same namespace as the resource.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "key",
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "primaryMasterKey": {
                  "description": "PrimaryMasterKey: indicates where the PrimaryMasterKey secret should be placed. If omitted, the secret will not be\nretrieved from Azure.",
                  "properties": {
                    "key": {
                      "description": "Key is the key in the Kubernetes secret being referenced.",
                      "type": "string"
                    },
                    "name": {
                      "description": "Name is the name of the Kubernetes secret to write to.\nThe secret will be created in the same namespace as the resource.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "key",
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "primaryReadonlyMasterKey": {
                  "description": "PrimaryReadonlyMasterKey: indicates where the PrimaryReadonlyMasterKey secret should be placed. If omitted, the secret\nwill not be retrieved from Azure.",
                  "properties": {
                    "key": {
                      "description": "Key is the key in the Kubernetes secret being referenced.",
                      "type": "string"
                    },
                    "name": {
                      "description": "Name is the name of the Kubernetes secret to write to.\nThe secret will be created in the same namespace as the resource.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "key",
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "secondaryMasterKey": {
                  "description": "SecondaryMasterKey: indicates where the SecondaryMasterKey secret should be placed. If omitted, the secret will not be\nretrieved from Azure.",
                  "properties": {
                    "key": {
                      "description": "Key is the key in the Kubernetes secret being referenced.",
                      "type": "string"
                    },
                    "name": {
                      "description": "Name is the name of the Kubernetes secret to write to.\nThe secret will be created in the same namespace as the resource.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "key",
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "secondaryReadonlyMasterKey": {
                  "description": "SecondaryReadonlyMasterKey: indicates where the SecondaryReadonlyMasterKey secret should be placed. If omitted, the\nsecret will not be retrieved from Azure.",
                  "properties": {
                    "key": {
                      "description": "Key is the key in the Kubernetes secret being referenced.",
                      "type": "string"
                    },
                    "name": {
                      "description": "Name is the name of the Kubernetes secret to write to.\nThe secret will be created in the same namespace as the resource.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "key",
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "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: Whether requests from Public Network are allowed",
          "enum": [
            "Disabled",
            "Enabled",
            "SecuredByPerimeter"
          ],
          "type": "string"
        },
        "restoreParameters": {
          "description": "RestoreParameters: Parameters to indicate the information about the restore.",
          "properties": {
            "databasesToRestore": {
              "description": "DatabasesToRestore: List of specific databases available for restore.",
              "items": {
                "description": "Specific Databases to restore.",
                "properties": {
                  "collectionNames": {
                    "description": "CollectionNames: The names of the collections available for restore.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "databaseName": {
                    "description": "DatabaseName: The name of the database available for restore.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "gremlinDatabasesToRestore": {
              "description": "GremlinDatabasesToRestore: List of specific gremlin databases available for restore.",
              "items": {
                "description": "Specific Gremlin Databases to restore.",
                "properties": {
                  "databaseName": {
                    "description": "DatabaseName: The name of the gremlin database available for restore.",
                    "type": "string"
                  },
                  "graphNames": {
                    "description": "GraphNames: The names of the graphs available for restore.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "restoreMode": {
              "description": "RestoreMode: Describes the mode of the restore.",
              "enum": [
                "PointInTime"
              ],
              "type": "string"
            },
            "restoreSource": {
              "description": "RestoreSource: The id of the restorable database account from which the restore has to be initiated. For example:\n/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{restorableDatabaseAccountName}",
              "type": "string"
            },
            "restoreTimestampInUtc": {
              "description": "RestoreTimestampInUtc: Time to which the account has to be restored (ISO-8601 format).",
              "type": "string"
            },
            "tablesToRestore": {
              "description": "TablesToRestore: List of specific tables available for restore.",
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "virtualNetworkRules": {
          "description": "VirtualNetworkRules: List of Virtual Network ACL rules configured for the Cosmos DB account.",
          "items": {
            "description": "Virtual Network ACL Rule object",
            "properties": {
              "ignoreMissingVNetServiceEndpoint": {
                "description": "IgnoreMissingVNetServiceEndpoint: Create firewall rule before the virtual network has vnet service endpoint enabled.",
                "type": "boolean"
              },
              "reference": {
                "description": "Reference: Resource ID of a subnet, for example:\n/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}.",
                "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": [
        "databaseAccountOfferType",
        "locations",
        "owner"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "properties": {
        "analyticalStorageConfiguration": {
          "description": "AnalyticalStorageConfiguration: Analytical storage specific properties.",
          "properties": {
            "schemaType": {
              "description": "SchemaType: Describes the types of schema for analytical storage.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "apiProperties": {
          "description": "ApiProperties: API specific properties.",
          "properties": {
            "serverVersion": {
              "description": "ServerVersion: Describes the ServerVersion of an a MongoDB account.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "backupPolicy": {
          "description": "BackupPolicy: The object representing the policy for taking backups on an account.",
          "properties": {
            "continuous": {
              "description": "Continuous: Mutually exclusive with all other properties",
              "properties": {
                "continuousModeProperties": {
                  "description": "ContinuousModeProperties: Configuration values for continuous mode backup",
                  "properties": {
                    "tier": {
                      "description": "Tier: Enum to indicate type of Continuous backup mode",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "migrationState": {
                  "description": "MigrationState: The object representing the state of the migration between the backup policies.",
                  "properties": {
                    "startTime": {
                      "description": "StartTime: Time at which the backup policy migration started (ISO-8601 format).",
                      "type": "string"
                    },
                    "status": {
                      "description": "Status: Describes the status of migration between backup policy types.",
                      "type": "string"
                    },
                    "targetType": {
                      "description": "TargetType: Describes the target backup policy type of the backup policy migration.",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": {
                  "description": "Type: Describes the mode of backups.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "periodic": {
              "description": "Periodic: Mutually exclusive with all other properties",
              "properties": {
                "migrationState": {
                  "description": "MigrationState: The object representing the state of the migration between the backup policies.",
                  "properties": {
                    "startTime": {
                      "description": "StartTime: Time at which the backup policy migration started (ISO-8601 format).",
                      "type": "string"
                    },
                    "status": {
                      "description": "Status: Describes the status of migration between backup policy types.",
                      "type": "string"
                    },
                    "targetType": {
                      "description": "TargetType: Describes the target backup policy type of the backup policy migration.",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "periodicModeProperties": {
                  "description": "PeriodicModeProperties: Configuration values for periodic mode backup",
                  "properties": {
                    "backupIntervalInMinutes": {
                      "description": "BackupIntervalInMinutes: An integer representing the interval in minutes between two backups",
                      "type": "integer"
                    },
                    "backupRetentionIntervalInHours": {
                      "description": "BackupRetentionIntervalInHours: An integer representing the time (in hours) that each backup is retained",
                      "type": "integer"
                    },
                    "backupStorageRedundancy": {
                      "description": "BackupStorageRedundancy: Enum to indicate type of backup residency",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": {
                  "description": "Type: Describes the mode of backups.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "capabilities": {
          "description": "Capabilities: List of Cosmos DB capabilities for the account",
          "items": {
            "description": "Cosmos DB capability object",
            "properties": {
              "name": {
                "description": "Name: Name of the Cosmos DB capability. For example, \"name\": \"EnableCassandra\". Current values also include\n\"EnableTable\" and \"EnableGremlin\".",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "capacity": {
          "description": "Capacity: The object that represents all properties related to capacity enforcement on an account.",
          "properties": {
            "totalThroughputLimit": {
              "description": "TotalThroughputLimit: The total throughput limit imposed on the account. A totalThroughputLimit of 2000 imposes a strict\nlimit of max throughput that can be provisioned on that account to be 2000. A totalThroughputLimit of -1 indicates no\nlimits on provisioning of throughput.",
              "type": "integer"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "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"
        },
        "connectorOffer": {
          "description": "ConnectorOffer: The cassandra connector offer type for the Cosmos DB database C* account.",
          "type": "string"
        },
        "consistencyPolicy": {
          "description": "ConsistencyPolicy: The consistency policy for the Cosmos DB database account.",
          "properties": {
            "defaultConsistencyLevel": {
              "description": "DefaultConsistencyLevel: The default consistency level and configuration settings of the Cosmos DB account.",
              "type": "string"
            },
            "maxIntervalInSeconds": {
              "description": "MaxIntervalInSeconds: When used with the Bounded Staleness consistency level, this value represents the time amount of\nstaleness (in seconds) tolerated. Accepted range for this value is 5 - 86400. Required when defaultConsistencyPolicy is\nset to 'BoundedStaleness'.",
              "type": "integer"
            },
            "maxStalenessPrefix": {
              "description": "MaxStalenessPrefix: When used with the Bounded Staleness consistency level, this value represents the number of stale\nrequests tolerated. Accepted range for this value is 1 \u2013 2,147,483,647. Required when defaultConsistencyPolicy is set\nto 'BoundedStaleness'.",
              "type": "integer"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "cors": {
          "description": "Cors: The CORS policy for the Cosmos DB database account.",
          "items": {
            "description": "The CORS policy for the Cosmos DB database account.",
            "properties": {
              "allowedHeaders": {
                "description": "AllowedHeaders: The request headers that the origin domain may specify on the CORS request.",
                "type": "string"
              },
              "allowedMethods": {
                "description": "AllowedMethods: The methods (HTTP request verbs) that the origin domain may use for a CORS request.",
                "type": "string"
              },
              "allowedOrigins": {
                "description": "AllowedOrigins: The origin domains that are permitted to make a request against the service via CORS.",
                "type": "string"
              },
              "exposedHeaders": {
                "description": "ExposedHeaders: The response headers that may be sent in the response to the CORS request and exposed by the browser to\nthe request issuer.",
                "type": "string"
              },
              "maxAgeInSeconds": {
                "description": "MaxAgeInSeconds: The maximum amount time that a browser should cache the preflight OPTIONS request.",
                "type": "integer"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "createMode": {
          "description": "CreateMode: Enum to indicate the mode of account creation.",
          "type": "string"
        },
        "customerManagedKeyStatus": {
          "description": "CustomerManagedKeyStatus: Indicates the status of the Customer Managed Key feature on the account. In case there are\nerrors, the property provides troubleshooting guidance.",
          "type": "string"
        },
        "databaseAccountOfferType": {
          "description": "DatabaseAccountOfferType: The offer type for the Cosmos DB database account. Default value: Standard.",
          "type": "string"
        },
        "defaultIdentity": {
          "description": "DefaultIdentity: The default identity for accessing key vault used in features like customer managed keys. The default\nidentity needs to be explicitly set by the users. It can be \"FirstPartyIdentity\", \"SystemAssignedIdentity\" and more.",
          "type": "string"
        },
        "disableKeyBasedMetadataWriteAccess": {
          "description": "DisableKeyBasedMetadataWriteAccess: Disable write operations on metadata resources (databases, containers, throughput)\nvia account keys",
          "type": "boolean"
        },
        "disableLocalAuth": {
          "description": "DisableLocalAuth: Opt-out of local authentication and ensure only MSI and AAD can be used exclusively for authentication.",
          "type": "boolean"
        },
        "documentEndpoint": {
          "description": "DocumentEndpoint: The connection endpoint for the Cosmos DB database account.",
          "type": "string"
        },
        "enableAnalyticalStorage": {
          "description": "EnableAnalyticalStorage: Flag to indicate whether to enable storage analytics.",
          "type": "boolean"
        },
        "enableAutomaticFailover": {
          "description": "EnableAutomaticFailover: Enables automatic failover of the write region in the rare event that the region is unavailable\ndue to an outage. Automatic failover will result in a new write region for the account and is chosen based on the\nfailover priorities configured for the account.",
          "type": "boolean"
        },
        "enableBurstCapacity": {
          "description": "EnableBurstCapacity: Flag to indicate enabling/disabling of Burst Capacity feature on the account",
          "type": "boolean"
        },
        "enableCassandraConnector": {
          "description": "EnableCassandraConnector: Enables the cassandra connector on the Cosmos DB C* account",
          "type": "boolean"
        },
        "enableFreeTier": {
          "description": "EnableFreeTier: Flag to indicate whether Free Tier is enabled.",
          "type": "boolean"
        },
        "enableMultipleWriteLocations": {
          "description": "EnableMultipleWriteLocations: Enables the account to write in multiple locations",
          "type": "boolean"
        },
        "enablePartitionMerge": {
          "description": "EnablePartitionMerge: Flag to indicate enabling/disabling of Partition Merge feature on the account",
          "type": "boolean"
        },
        "failoverPolicies": {
          "description": "FailoverPolicies: An array that contains the regions ordered by their failover priorities.",
          "items": {
            "description": "The failover policy for a given region of a database account.",
            "properties": {
              "failoverPriority": {
                "description": "FailoverPriority: The failover priority of the region. A failover priority of 0 indicates a write region. The maximum\nvalue for a failover priority = (total number of regions - 1). Failover priority values must be unique for each of the\nregions in which the database account exists.",
                "type": "integer"
              },
              "id": {
                "description": "Id: The unique identifier of the region in which the database account replicates to. Example:\n&lt;accountName&gt;-&lt;locationName&gt;.",
                "type": "string"
              },
              "locationName": {
                "description": "LocationName: The name of the region in which the database account exists.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "id": {
          "description": "Id: The unique resource identifier of the ARM resource.",
          "type": "string"
        },
        "identity": {
          "description": "Identity: Identity for the resource.",
          "properties": {
            "principalId": {
              "description": "PrincipalId: The principal id of the system assigned identity. This property will only be provided for a system assigned\nidentity.",
              "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: The type of identity used for the resource. The type 'SystemAssigned,UserAssigned' includes both an implicitly\ncreated identity and a set of user assigned identities. The type 'None' will remove any identities from the service.",
              "type": "string"
            },
            "userAssignedIdentities": {
              "additionalProperties": {
                "properties": {
                  "clientId": {
                    "description": "ClientId: The client id of user assigned identity.",
                    "type": "string"
                  },
                  "principalId": {
                    "description": "PrincipalId: The principal id of user assigned identity.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "description": "UserAssignedIdentities: The list of user identities associated with resource. The user identity dictionary key\nreferences will be ARM resource ids in the form:\n'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.",
              "type": "object"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "instanceId": {
          "description": "InstanceId: A unique identifier assigned to the database account",
          "type": "string"
        },
        "ipRules": {
          "description": "IpRules: List of IpRules.",
          "items": {
            "description": "IpAddressOrRange object",
            "properties": {
              "ipAddressOrRange": {
                "description": "IpAddressOrRange: A single IPv4 address or a single IPv4 address range in CIDR format. Provided IPs must be\nwell-formatted and cannot be contained in one of the following ranges: 10.0.0.0/8, 100.64.0.0/10, 172.16.0.0/12,\n192.168.0.0/16, since these are not enforceable by the IP address filter. Example of valid inputs: \u201c23.40.210.245\u201d\nor \u201c23.40.210.0/8\u201d.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "isVirtualNetworkFilterEnabled": {
          "description": "IsVirtualNetworkFilterEnabled: Flag to indicate whether to enable/disable Virtual Network ACL rules.",
          "type": "boolean"
        },
        "keyVaultKeyUri": {
          "description": "KeyVaultKeyUri: The URI of the key vault",
          "type": "string"
        },
        "keysMetadata": {
          "description": "KeysMetadata: The object that represents the metadata for the Account Keys of the Cosmos DB account.",
          "properties": {
            "primaryMasterKey": {
              "description": "PrimaryMasterKey: The metadata related to the Primary Read-Write Key for the given Cosmos DB database account.",
              "properties": {
                "generationTime": {
                  "description": "GenerationTime: Generation time in UTC of the key in ISO-8601 format. If the value is missing from the object, it means\nthat the last key regeneration was triggered before 2022-06-18.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "primaryReadonlyMasterKey": {
              "description": "PrimaryReadonlyMasterKey: The metadata related to the Primary Read-Only Key for the given Cosmos DB database account.",
              "properties": {
                "generationTime": {
                  "description": "GenerationTime: Generation time in UTC of the key in ISO-8601 format. If the value is missing from the object, it means\nthat the last key regeneration was triggered before 2022-06-18.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "secondaryMasterKey": {
              "description": "SecondaryMasterKey: The metadata related to the Secondary Read-Write Key for the given Cosmos DB database account.",
              "properties": {
                "generationTime": {
                  "description": "GenerationTime: Generation time in UTC of the key in ISO-8601 format. If the value is missing from the object, it means\nthat the last key regeneration was triggered before 2022-06-18.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "secondaryReadonlyMasterKey": {
              "description": "SecondaryReadonlyMasterKey: The metadata related to the Secondary Read-Only Key for the given Cosmos DB database account.",
              "properties": {
                "generationTime": {
                  "description": "GenerationTime: Generation time in UTC of the key in ISO-8601 format. If the value is missing from the object, it means\nthat the last key regeneration was triggered before 2022-06-18.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "kind": {
          "description": "Kind: Indicates the type of database account. This can only be set at database account creation.",
          "type": "string"
        },
        "location": {
          "description": "Location: The location of the resource group to which the resource belongs.",
          "type": "string"
        },
        "locations": {
          "description": "Locations: An array that contains all of the locations enabled for the Cosmos DB account.",
          "items": {
            "description": "A region in which the Azure Cosmos DB database account is deployed.",
            "properties": {
              "documentEndpoint": {
                "description": "DocumentEndpoint: The connection endpoint for the specific region. Example:\nhttps://&lt;accountName&gt;-&lt;locationName&gt;.documents.azure.com:443/",
                "type": "string"
              },
              "failoverPriority": {
                "description": "FailoverPriority: The failover priority of the region. A failover priority of 0 indicates a write region. The maximum\nvalue for a failover priority = (total number of regions - 1). Failover priority values must be unique for each of the\nregions in which the database account exists.",
                "type": "integer"
              },
              "id": {
                "description": "Id: The unique identifier of the region within the database account. Example: &lt;accountName&gt;-&lt;locationName&gt;.",
                "type": "string"
              },
              "isZoneRedundant": {
                "description": "IsZoneRedundant: Flag to indicate whether or not this region is an AvailabilityZone region",
                "type": "boolean"
              },
              "locationName": {
                "description": "LocationName: The name of the region.",
                "type": "string"
              },
              "provisioningState": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "minimalTlsVersion": {
          "description": "MinimalTlsVersion: Indicates the minimum allowed Tls version. The default value is Tls 1.2. Cassandra and Mongo APIs\nonly work with Tls 1.2.",
          "type": "string"
        },
        "name": {
          "description": "Name: The name of the ARM resource.",
          "type": "string"
        },
        "networkAclBypass": {
          "description": "NetworkAclBypass: Indicates what services are allowed to bypass firewall checks.",
          "type": "string"
        },
        "networkAclBypassResourceIds": {
          "description": "NetworkAclBypassResourceIds: An array that contains the Resource Ids for Network Acl Bypass for the Cosmos DB account.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "privateEndpointConnections": {
          "description": "PrivateEndpointConnections: List of Private Endpoint Connections configured for the Cosmos DB account.",
          "items": {
            "description": "A private endpoint connection",
            "properties": {
              "id": {
                "description": "Id: Fully qualified resource ID for the resource. Ex -\n/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "provisioningState": {
          "type": "string"
        },
        "publicNetworkAccess": {
          "description": "PublicNetworkAccess: Whether requests from Public Network are allowed",
          "type": "string"
        },
        "readLocations": {
          "description": "ReadLocations: An array that contains of the read locations enabled for the Cosmos DB account.",
          "items": {
            "description": "A region in which the Azure Cosmos DB database account is deployed.",
            "properties": {
              "documentEndpoint": {
                "description": "DocumentEndpoint: The connection endpoint for the specific region. Example:\nhttps://&lt;accountName&gt;-&lt;locationName&gt;.documents.azure.com:443/",
                "type": "string"
              },
              "failoverPriority": {
                "description": "FailoverPriority: The failover priority of the region. A failover priority of 0 indicates a write region. The maximum\nvalue for a failover priority = (total number of regions - 1). Failover priority values must be unique for each of the\nregions in which the database account exists.",
                "type": "integer"
              },
              "id": {
                "description": "Id: The unique identifier of the region within the database account. Example: &lt;accountName&gt;-&lt;locationName&gt;.",
                "type": "string"
              },
              "isZoneRedundant": {
                "description": "IsZoneRedundant: Flag to indicate whether or not this region is an AvailabilityZone region",
                "type": "boolean"
              },
              "locationName": {
                "description": "LocationName: The name of the region.",
                "type": "string"
              },
              "provisioningState": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "restoreParameters": {
          "description": "RestoreParameters: Parameters to indicate the information about the restore.",
          "properties": {
            "databasesToRestore": {
              "description": "DatabasesToRestore: List of specific databases available for restore.",
              "items": {
                "description": "Specific Databases to restore.",
                "properties": {
                  "collectionNames": {
                    "description": "CollectionNames: The names of the collections available for restore.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "databaseName": {
                    "description": "DatabaseName: The name of the database available for restore.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "gremlinDatabasesToRestore": {
              "description": "GremlinDatabasesToRestore: List of specific gremlin databases available for restore.",
              "items": {
                "description": "Specific Gremlin Databases to restore.",
                "properties": {
                  "databaseName": {
                    "description": "DatabaseName: The name of the gremlin database available for restore.",
                    "type": "string"
                  },
                  "graphNames": {
                    "description": "GraphNames: The names of the graphs available for restore.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "restoreMode": {
              "description": "RestoreMode: Describes the mode of the restore.",
              "type": "string"
            },
            "restoreSource": {
              "description": "RestoreSource: The id of the restorable database account from which the restore has to be initiated. For example:\n/subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{restorableDatabaseAccountName}",
              "type": "string"
            },
            "restoreTimestampInUtc": {
              "description": "RestoreTimestampInUtc: Time to which the account has to be restored (ISO-8601 format).",
              "type": "string"
            },
            "tablesToRestore": {
              "description": "TablesToRestore: List of specific tables available for restore.",
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "systemData": {
          "description": "SystemData: The system meta data relating to this resource.",
          "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"
          },
          "type": "object"
        },
        "type": {
          "description": "Type: The type of Azure resource.",
          "type": "string"
        },
        "virtualNetworkRules": {
          "description": "VirtualNetworkRules: List of Virtual Network ACL rules configured for the Cosmos DB account.",
          "items": {
            "description": "Virtual Network ACL Rule object",
            "properties": {
              "id": {
                "description": "Id: Resource ID of a subnet, for example:\n/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}.",
                "type": "string"
              },
              "ignoreMissingVNetServiceEndpoint": {
                "description": "IgnoreMissingVNetServiceEndpoint: Create firewall rule before the virtual network has vnet service endpoint enabled.",
                "type": "boolean"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "writeLocations": {
          "description": "WriteLocations: An array that contains the write location for the Cosmos DB account.",
          "items": {
            "description": "A region in which the Azure Cosmos DB database account is deployed.",
            "properties": {
              "documentEndpoint": {
                "description": "DocumentEndpoint: The connection endpoint for the specific region. Example:\nhttps://&lt;accountName&gt;-&lt;locationName&gt;.documents.azure.com:443/",
                "type": "string"
              },
              "failoverPriority": {
                "description": "FailoverPriority: The failover priority of the region. A failover priority of 0 indicates a write region. The maximum\nvalue for a failover priority = (total number of regions - 1). Failover priority values must be unique for each of the\nregions in which the database account exists.",
                "type": "integer"
              },
              "id": {
                "description": "Id: The unique identifier of the region within the database account. Example: &lt;accountName&gt;-&lt;locationName&gt;.",
                "type": "string"
              },
              "isZoneRedundant": {
                "description": "IsZoneRedundant: Flag to indicate whether or not this region is an AvailabilityZone region",
                "type": "boolean"
              },
              "locationName": {
                "description": "LocationName: The name of the region.",
                "type": "string"
              },
              "provisioningState": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
