diff --git a/schemas/2020-10-05-privatepreview/Microsoft.DBForPostgreSql.json b/schemas/2020-10-05-privatepreview/Microsoft.DBForPostgreSql.json new file mode 100644 index 0000000000..018c8928d4 --- /dev/null +++ b/schemas/2020-10-05-privatepreview/Microsoft.DBForPostgreSql.json @@ -0,0 +1,734 @@ +{ + "id": "https://schema.management.azure.com/schemas/2020-10-05-privatepreview/Microsoft.DBForPostgreSql.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.DBForPostgreSql", + "description": "Microsoft DBForPostgreSql Resource Types", + "resourceDefinitions": { + "serverGroupsv2": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-10-05-privatepreview" + ] + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives" + }, + "name": { + "type": "string", + "minLength": 1, + "maxLength": 90, + "description": "The name of the server group." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ServerGroupProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties used to create a new server group." + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/serverGroupsv2_firewallRules_childResource" + }, + { + "$ref": "#/definitions/serverGroupsv2_roles_childResource" + } + ] + } + }, + "systemData": { + "oneOf": [ + { + "$ref": "#/definitions/SystemData" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Metadata pertaining to creation and last modification of the resource." + }, + "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.DBForPostgreSql/serverGroupsv2" + ] + } + }, + "required": [ + "apiVersion", + "location", + "name", + "properties", + "type" + ], + "description": "Microsoft.DBForPostgreSql/serverGroupsv2" + }, + "serverGroupsv2_firewallRules": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-10-05-privatepreview" + ] + }, + "name": { + "type": "string", + "description": "The name of the server group firewall rule." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/FirewallRuleProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of a server group firewall rule." + }, + "systemData": { + "oneOf": [ + { + "$ref": "#/definitions/SystemData" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Metadata pertaining to creation and last modification of the resource." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.DBForPostgreSql/serverGroupsv2/firewallRules" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.DBForPostgreSql/serverGroupsv2/firewallRules" + }, + "serverGroupsv2_roles": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-10-05-privatepreview" + ] + }, + "name": { + "type": "string", + "description": "The name of the server group role name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RoleProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of a server group role." + }, + "systemData": { + "oneOf": [ + { + "$ref": "#/definitions/SystemData" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Metadata pertaining to creation and last modification of the resource." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.DBForPostgreSql/serverGroupsv2/roles" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.DBForPostgreSql/serverGroupsv2/roles" + } + }, + "definitions": { + "FirewallRuleProperties": { + "type": "object", + "properties": { + "endIpAddress": { + "oneOf": [ + { + "type": "string", + "pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The end IP address of the server group firewall rule. Must be IPv4 format." + }, + "startIpAddress": { + "oneOf": [ + { + "type": "string", + "pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The start IP address of the server group firewall rule. Must be IPv4 format." + } + }, + "required": [ + "endIpAddress", + "startIpAddress" + ], + "description": "The properties of a server group firewall rule." + }, + "MaintenanceWindow": { + "type": "object", + "properties": { + "customWindow": { + "type": "string", + "description": "indicates whether custom window is enabled or disabled" + }, + "dayOfWeek": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "day of week for maintenance window" + }, + "startHour": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "start hour for maintenance window" + }, + "startMinute": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "start minute for maintenance window" + } + }, + "description": "Maintenance window of a server group." + }, + "RoleProperties": { + "type": "object", + "properties": { + "password": { + "type": "string", + "format": "password", + "description": "The password of the server group role." + } + }, + "required": [ + "password" + ], + "description": "The properties of a server group role." + }, + "ServerGroupProperties": { + "type": "object", + "properties": { + "administratorLogin": { + "type": "string", + "description": "The administrator's login name of servers in server group. Can only be specified when the server is being created (and is required for creation)." + }, + "administratorLoginPassword": { + "type": "string", + "format": "password", + "description": "The password of the administrator login." + }, + "availabilityZone": { + "type": "string", + "description": "Availability Zone information of the server group." + }, + "backupRetentionDays": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The backup retention days for server group." + }, + "citusVersion": { + "oneOf": [ + { + "type": "string", + "enum": [ + "8.3", + "9.0", + "9.1", + "9.2", + "9.3", + "9.4", + "9.5" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The Citus version of server group." + }, + "createMode": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Default", + "PointInTimeRestore", + "ReadReplica" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The mode to create a new server group." + }, + "delegatedSubnetArguments": { + "oneOf": [ + { + "$ref": "#/definitions/ServerGroupPropertiesDelegatedSubnetArguments" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The delegated subnet arguments for a server group." + }, + "enableMx": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "If Citus MX is enabled or not for the server group." + }, + "enableShardsOnCoordinator": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "If shards on coordinator is enabled or not for the server group." + }, + "enableZfs": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "If ZFS compression is enabled or not for the server group." + }, + "maintenanceWindow": { + "oneOf": [ + { + "$ref": "#/definitions/MaintenanceWindow" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Maintenance window of a server group." + }, + "pointInTimeUTC": { + "type": "string", + "format": "date-time", + "description": "Restore point creation time (ISO8601 format), specifying the time to restore from. It's required when 'createMode' is 'PointInTimeRestore'" + }, + "postgresqlVersion": { + "oneOf": [ + { + "type": "string", + "enum": [ + "11", + "12" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The PostgreSQL version of server group." + }, + "serverRoleGroups": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ServerRoleGroup" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The list of server role groups." + }, + "sourceLocation": { + "type": "string", + "description": "The source server group location to restore from. It's required when 'createMode' is 'PointInTimeRestore' or 'ReadReplica'" + }, + "sourceResourceGroupName": { + "type": "string", + "description": "The source resource group name to restore from. It's required when 'createMode' is 'PointInTimeRestore' or 'ReadReplica'" + }, + "sourceServerGroupName": { + "type": "string", + "description": "The source server group name to restore from. It's required when 'createMode' is 'PointInTimeRestore' or 'ReadReplica'" + }, + "sourceSubscriptionId": { + "type": "string", + "description": "The source subscription id to restore from. It's required when 'createMode' is 'PointInTimeRestore' or 'ReadReplica'" + }, + "standbyAvailabilityZone": { + "type": "string", + "description": "Standby Availability Zone information of the server group." + }, + "state": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Ready", + "Dropping", + "Disabled", + "Starting", + "Stopping", + "Stopped", + "Updating", + "Provisioning" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "A state of a server group that is visible to user." + } + }, + "description": "The properties used to create a new server group." + }, + "ServerGroupPropertiesDelegatedSubnetArguments": { + "type": "object", + "properties": { + "subnetArmResourceId": { + "type": "string", + "description": "delegated subnet arm resource id." + } + }, + "description": "The delegated subnet arguments for a server group." + }, + "serverGroupsv2_firewallRules_childResource": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-10-05-privatepreview" + ] + }, + "name": { + "type": "string", + "description": "The name of the server group firewall rule." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/FirewallRuleProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of a server group firewall rule." + }, + "systemData": { + "oneOf": [ + { + "$ref": "#/definitions/SystemData" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Metadata pertaining to creation and last modification of the resource." + }, + "type": { + "type": "string", + "enum": [ + "firewallRules" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.DBForPostgreSql/serverGroupsv2/firewallRules" + }, + "serverGroupsv2_roles_childResource": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-10-05-privatepreview" + ] + }, + "name": { + "type": "string", + "description": "The name of the server group role name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/RoleProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of a server group role." + }, + "systemData": { + "oneOf": [ + { + "$ref": "#/definitions/SystemData" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Metadata pertaining to creation and last modification of the resource." + }, + "type": { + "type": "string", + "enum": [ + "roles" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.DBForPostgreSql/serverGroupsv2/roles" + }, + "ServerRoleGroup": { + "type": "object", + "properties": { + "enableHa": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "If high availability is enabled or not for the server." + }, + "name": { + "type": "string", + "description": "The name of the server role group." + }, + "role": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Coordinator", + "Worker" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The role of servers in the server role group." + }, + "serverCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of servers in the server role group." + }, + "serverEdition": { + "oneOf": [ + { + "type": "string", + "enum": [ + "GeneralPurpose", + "MemoryOptimized" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The edition of a server (default: GeneralPurpose)." + }, + "storageQuotaInMb": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The storage of a server in MB (max: 2097152 = 2TiB)." + }, + "vCores": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The vCores count of a server (max: 64)." + } + }, + "description": "Represents a server role group." + }, + "SystemData": { + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp of resource creation (UTC)." + }, + "createdBy": { + "type": "string", + "description": "The identity that created the resource." + }, + "createdByType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of identity that created the resource." + }, + "lastModifiedAt": { + "type": "string", + "format": "date-time", + "description": "The type of identity that last modified the resource." + }, + "lastModifiedBy": { + "type": "string", + "description": "The identity that last modified the resource." + }, + "lastModifiedByType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of identity that last modified the resource." + } + }, + "description": "Metadata pertaining to creation and last modification of the resource." + } + } +}