{
  "description": "Generator information:\n- Generated from: /postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2023-06-01-preview/FlexibleServers.json\n- ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}",
  "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": {
        "administratorLogin": {
          "description": "AdministratorLogin: The administrator's login name of a server. Can only be specified when the server is being created\n(and is required for creation).",
          "type": "string"
        },
        "administratorLoginPassword": {
          "description": "AdministratorLoginPassword: The administrator login password (required for server creation).",
          "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 being referenced.\nThe secret must be in the same namespace as the resource",
              "type": "string"
            }
          },
          "required": [
            "key",
            "name"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "authConfig": {
          "description": "AuthConfig: AuthConfig properties of a server.",
          "properties": {
            "activeDirectoryAuth": {
              "description": "ActiveDirectoryAuth: If Enabled, Azure Active Directory authentication is enabled.",
              "enum": [
                "Disabled",
                "Enabled"
              ],
              "type": "string"
            },
            "passwordAuth": {
              "description": "PasswordAuth: If Enabled, Password authentication is enabled.",
              "enum": [
                "Disabled",
                "Enabled"
              ],
              "type": "string"
            },
            "tenantId": {
              "description": "TenantId: Tenant id of the server.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "availabilityZone": {
          "description": "AvailabilityZone: availability zone information of the server.",
          "type": "string"
        },
        "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": 63,
          "minLength": 3,
          "pattern": "^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*",
          "type": "string"
        },
        "backup": {
          "description": "Backup: Backup properties of a server.",
          "properties": {
            "backupRetentionDays": {
              "description": "BackupRetentionDays: Backup retention days for the server.",
              "type": "integer"
            },
            "geoRedundantBackup": {
              "description": "GeoRedundantBackup: A value indicating whether Geo-Redundant backup is enabled on the server.",
              "enum": [
                "Disabled",
                "Enabled"
              ],
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "createMode": {
          "description": "CreateMode: The mode to create a new PostgreSQL server.",
          "enum": [
            "Create",
            "Default",
            "GeoRestore",
            "PointInTimeRestore",
            "Replica",
            "ReviveDropped",
            "Update"
          ],
          "type": "string"
        },
        "dataEncryption": {
          "description": "DataEncryption: Data encryption properties of a server.",
          "properties": {
            "geoBackupEncryptionKeyStatus": {
              "description": "GeoBackupEncryptionKeyStatus: Geo-backup encryption key status for Data encryption enabled server.",
              "enum": [
                "Invalid",
                "Valid"
              ],
              "type": "string"
            },
            "geoBackupKeyURI": {
              "description": "GeoBackupKeyURI: URI for the key in keyvault for data encryption for geo-backup of server.",
              "type": "string"
            },
            "geoBackupKeyURIFromConfig": {
              "description": "GeoBackupKeyURIFromConfig: URI for the key in keyvault for data encryption for geo-backup of server.",
              "properties": {
                "key": {
                  "description": "Key is the key in the Kubernetes configmap being referenced",
                  "type": "string"
                },
                "name": {
                  "description": "Name is the name of the Kubernetes configmap being referenced.\nThe configmap must be in the same namespace as the resource",
                  "type": "string"
                }
              },
              "required": [
                "key",
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "geoBackupUserAssignedIdentityReference": {
              "description": "GeoBackupUserAssignedIdentityReference: Resource Id for the User assigned identity to be used for data encryption for\ngeo-backup of server.",
              "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
            },
            "primaryEncryptionKeyStatus": {
              "description": "PrimaryEncryptionKeyStatus: Primary encryption key status for Data encryption enabled server.",
              "enum": [
                "Invalid",
                "Valid"
              ],
              "type": "string"
            },
            "primaryKeyURI": {
              "description": "PrimaryKeyURI: URI for the key in keyvault for data encryption of the primary server.",
              "type": "string"
            },
            "primaryKeyURIFromConfig": {
              "description": "PrimaryKeyURIFromConfig: URI for the key in keyvault for data encryption of the primary server.",
              "properties": {
                "key": {
                  "description": "Key is the key in the Kubernetes configmap being referenced",
                  "type": "string"
                },
                "name": {
                  "description": "Name is the name of the Kubernetes configmap being referenced.\nThe configmap must be in the same namespace as the resource",
                  "type": "string"
                }
              },
              "required": [
                "key",
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "primaryUserAssignedIdentityReference": {
              "description": "PrimaryUserAssignedIdentityReference: Resource Id for the User assigned identity to be used for data encryption of the\nprimary server.",
              "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": {
              "description": "Type: Data encryption type to depict if it is System Managed vs Azure Key vault.",
              "enum": [
                "AzureKeyVault",
                "SystemManaged"
              ],
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "highAvailability": {
          "description": "HighAvailability: High availability properties of a server.",
          "properties": {
            "mode": {
              "description": "Mode: The HA mode for the server.",
              "enum": [
                "Disabled",
                "SameZone",
                "ZoneRedundant"
              ],
              "type": "string"
            },
            "standbyAvailabilityZone": {
              "description": "StandbyAvailabilityZone: availability zone information of the standby.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "identity": {
          "description": "Identity: Describes the identity of the application.",
          "properties": {
            "type": {
              "description": "Type: the types of identities associated with this resource; currently restricted to 'None and UserAssigned'",
              "enum": [
                "None",
                "UserAssigned"
              ],
              "type": "string"
            },
            "userAssignedIdentities": {
              "description": "UserAssignedIdentities: represents user assigned identities map.",
              "items": {
                "description": "Information about the user assigned identity for the resource",
                "properties": {
                  "reference": {
                    "description": "ResourceReference represents a resource reference, either to a Kubernetes resource or directly to an Azure resource via ARMID",
                    "properties": {
                      "armId": {
                        "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
                        "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
                        "type": "string"
                      },
                      "group": {
                        "description": "Group is the Kubernetes group of the resource.",
                        "type": "string"
                      },
                      "kind": {
                        "description": "Kind is the Kubernetes kind of the resource.",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name is the Kubernetes name of the resource.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            }
          },
          "required": [
            "type"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "location": {
          "description": "Location: The geo-location where the resource lives",
          "type": "string"
        },
        "maintenanceWindow": {
          "description": "MaintenanceWindow: Maintenance window properties of a server.",
          "properties": {
            "customWindow": {
              "description": "CustomWindow: indicates whether custom window is enabled or disabled",
              "type": "string"
            },
            "dayOfWeek": {
              "description": "DayOfWeek: day of week for maintenance window",
              "type": "integer"
            },
            "startHour": {
              "description": "StartHour: start hour for maintenance window",
              "type": "integer"
            },
            "startMinute": {
              "description": "StartMinute: start minute for maintenance window",
              "type": "integer"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "network": {
          "description": "Network: Network properties of a server. This Network property is required to be passed only in case you want the server\nto be Private access server.",
          "properties": {
            "delegatedSubnetResourceReference": {
              "description": "DelegatedSubnetResourceReference: Delegated subnet arm resource id. This is required to be passed during create, in case\nwe want the server to be VNET injected, i.e. Private access server. During update, pass this only if we want to update\nthe value for Private DNS zone.",
              "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
            },
            "privateDnsZoneArmResourceReference": {
              "description": "PrivateDnsZoneArmResourceReference: Private dns zone arm resource id. This is required to be passed during create, in\ncase we want the server to be VNET injected, i.e. Private access server. During update, pass this only if we want to\nupdate the value for Private DNS zone.",
              "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
            },
            "publicNetworkAccess": {
              "description": "PublicNetworkAccess: public network access is enabled or not",
              "enum": [
                "Disabled",
                "Enabled"
              ],
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "operatorSpec": {
          "description": "OperatorSpec: The specification for configuring operator behavior. This field is interpreted by the operator and not\npassed directly to Azure",
          "properties": {
            "configMapExpressions": {
              "description": "ConfigMapExpressions: configures where to place operator written dynamic ConfigMaps (created with CEL expressions).",
              "items": {
                "description": "DestinationExpression is a CEL expression and a destination to store the result in. The destination may\nbe a secret or a configmap. The value of the expression is stored at the specified location in\nthe destination.",
                "properties": {
                  "key": {
                    "description": "Key is the key in the ConfigMap or Secret being written to. If the CEL expression in Value returns a string\nthis is required to identify what key to write to. If the CEL expression in Value returns a map[string]string\nKey must not be set, instead the keys written will be determined dynamically based on the keys of the resulting\nmap[string]string.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name is the name of the Kubernetes configmap or secret to write to.\nThe configmap or secret will be created in the same namespace as the resource.",
                    "type": "string"
                  },
                  "value": {
                    "description": "Value is a CEL expression. The CEL expression may return a string or a map[string]string. For more information\non CEL in ASO see https://azure.github.io/azure-service-operator/guide/expressions/",
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "configMaps": {
              "description": "ConfigMaps: configures where to place operator written ConfigMaps.",
              "properties": {
                "fullyQualifiedDomainName": {
                  "description": "FullyQualifiedDomainName: indicates where the FullyQualifiedDomainName config map should be placed. If omitted, no\nconfig map will be created.",
                  "properties": {
                    "key": {
                      "description": "Key is the key in the ConfigMap being referenced",
                      "type": "string"
                    },
                    "name": {
                      "description": "Name is the name of the Kubernetes ConfigMap to write to.\nThe ConfigMap will be created in the same namespace as the resource.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "key",
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "secretExpressions": {
              "description": "SecretExpressions: configures where to place operator written dynamic secrets (created with CEL expressions).",
              "items": {
                "description": "DestinationExpression is a CEL expression and a destination to store the result in. The destination may\nbe a secret or a configmap. The value of the expression is stored at the specified location in\nthe destination.",
                "properties": {
                  "key": {
                    "description": "Key is the key in the ConfigMap or Secret being written to. If the CEL expression in Value returns a string\nthis is required to identify what key to write to. If the CEL expression in Value returns a map[string]string\nKey must not be set, instead the keys written will be determined dynamically based on the keys of the resulting\nmap[string]string.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name is the name of the Kubernetes configmap or secret to write to.\nThe configmap or secret will be created in the same namespace as the resource.",
                    "type": "string"
                  },
                  "value": {
                    "description": "Value is a CEL expression. The CEL expression may return a string or a map[string]string. For more information\non CEL in ASO see https://azure.github.io/azure-service-operator/guide/expressions/",
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "secrets": {
              "description": "Secrets: configures where to place Azure generated secrets.",
              "properties": {
                "fullyQualifiedDomainName": {
                  "description": "FullyQualifiedDomainName: indicates where the FullyQualifiedDomainName 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
                }
              },
              "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
        },
        "pointInTimeUTC": {
          "description": "PointInTimeUTC: Restore point creation time (ISO8601 format), specifying the time to restore from. It's required when\n'createMode' is 'PointInTimeRestore' or 'GeoRestore' or 'ReviveDropped'.",
          "type": "string"
        },
        "replica": {
          "description": "Replica: Replica properties of a server. These Replica properties are required to be passed only in case you want to\nPromote a server.",
          "properties": {
            "promoteMode": {
              "description": "PromoteMode: Sets the promote mode for a replica server. This is a write only property.",
              "enum": [
                "standalone",
                "switchover"
              ],
              "type": "string"
            },
            "promoteOption": {
              "description": "PromoteOption: Sets the promote options for a replica server. This is a write only property.",
              "enum": [
                "forced",
                "planned"
              ],
              "type": "string"
            },
            "role": {
              "description": "Role: Used to indicate role of the server in replication set.",
              "enum": [
                "AsyncReplica",
                "GeoAsyncReplica",
                "None",
                "Primary"
              ],
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "replicationRole": {
          "description": "ReplicationRole: Replication role of the server",
          "enum": [
            "AsyncReplica",
            "GeoAsyncReplica",
            "None",
            "Primary"
          ],
          "type": "string"
        },
        "sku": {
          "description": "Sku: The SKU (pricing tier) of the server.",
          "properties": {
            "name": {
              "description": "Name: The name of the sku, typically, tier + family + cores, e.g. Standard_D4s_v3.",
              "type": "string"
            },
            "tier": {
              "description": "Tier: The tier of the particular SKU, e.g. Burstable.",
              "enum": [
                "Burstable",
                "GeneralPurpose",
                "MemoryOptimized"
              ],
              "type": "string"
            }
          },
          "required": [
            "name",
            "tier"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "sourceServerResourceReference": {
          "description": "SourceServerResourceReference: The source server resource ID to restore from. It's required when 'createMode' is\n'PointInTimeRestore' or 'GeoRestore' or 'Replica' or 'ReviveDropped'. This property is returned only for Replica server",
          "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
        },
        "storage": {
          "description": "Storage: Storage properties of a server.",
          "properties": {
            "autoGrow": {
              "description": "AutoGrow: Flag to enable / disable Storage Auto grow for flexible server.",
              "enum": [
                "Disabled",
                "Enabled"
              ],
              "type": "string"
            },
            "iops": {
              "description": "Iops: Storage tier IOPS quantity. This property is required to be set for storage Type PremiumV2_LRS",
              "type": "integer"
            },
            "storageSizeGB": {
              "description": "StorageSizeGB: Max storage allowed for a server.",
              "type": "integer"
            },
            "throughput": {
              "description": "Throughput: Storage throughput for the server. This is required to be set for storage Type PremiumV2_LRS",
              "type": "integer"
            },
            "tier": {
              "description": "Tier: Name of storage tier for IOPS.",
              "enum": [
                "P1",
                "P10",
                "P15",
                "P2",
                "P20",
                "P3",
                "P30",
                "P4",
                "P40",
                "P50",
                "P6",
                "P60",
                "P70",
                "P80"
              ],
              "type": "string"
            },
            "type": {
              "description": "Type: Storage type for the server. Allowed values are Premium_LRS and PremiumV2_LRS, and default is Premium_LRS if not\nspecified",
              "enum": [
                "PremiumV2_LRS",
                "Premium_LRS"
              ],
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Tags: Resource tags.",
          "type": "object"
        },
        "version": {
          "description": "Version: PostgreSQL Server version.",
          "enum": [
            "11",
            "12",
            "13",
            "14",
            "15",
            "16"
          ],
          "type": "string"
        }
      },
      "required": [
        "location",
        "owner"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "properties": {
        "administratorLogin": {
          "description": "AdministratorLogin: The administrator's login name of a server. Can only be specified when the server is being created\n(and is required for creation).",
          "type": "string"
        },
        "authConfig": {
          "description": "AuthConfig: AuthConfig properties of a server.",
          "properties": {
            "activeDirectoryAuth": {
              "description": "ActiveDirectoryAuth: If Enabled, Azure Active Directory authentication is enabled.",
              "type": "string"
            },
            "passwordAuth": {
              "description": "PasswordAuth: If Enabled, Password authentication is enabled.",
              "type": "string"
            },
            "tenantId": {
              "description": "TenantId: Tenant id of the server.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "availabilityZone": {
          "description": "AvailabilityZone: availability zone information of the server.",
          "type": "string"
        },
        "backup": {
          "description": "Backup: Backup properties of a server.",
          "properties": {
            "backupRetentionDays": {
              "description": "BackupRetentionDays: Backup retention days for the server.",
              "type": "integer"
            },
            "earliestRestoreDate": {
              "description": "EarliestRestoreDate: The earliest restore point time (ISO8601 format) for server.",
              "type": "string"
            },
            "geoRedundantBackup": {
              "description": "GeoRedundantBackup: A value indicating whether Geo-Redundant backup is enabled on the server.",
              "type": "string"
            }
          },
          "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"
        },
        "createMode": {
          "description": "CreateMode: The mode to create a new PostgreSQL server.",
          "type": "string"
        },
        "dataEncryption": {
          "description": "DataEncryption: Data encryption properties of a server.",
          "properties": {
            "geoBackupEncryptionKeyStatus": {
              "description": "GeoBackupEncryptionKeyStatus: Geo-backup encryption key status for Data encryption enabled server.",
              "type": "string"
            },
            "geoBackupKeyURI": {
              "description": "GeoBackupKeyURI: URI for the key in keyvault for data encryption for geo-backup of server.",
              "type": "string"
            },
            "geoBackupUserAssignedIdentityId": {
              "description": "GeoBackupUserAssignedIdentityId: Resource Id for the User assigned identity to be used for data encryption for\ngeo-backup of server.",
              "type": "string"
            },
            "primaryEncryptionKeyStatus": {
              "description": "PrimaryEncryptionKeyStatus: Primary encryption key status for Data encryption enabled server.",
              "type": "string"
            },
            "primaryKeyURI": {
              "description": "PrimaryKeyURI: URI for the key in keyvault for data encryption of the primary server.",
              "type": "string"
            },
            "primaryUserAssignedIdentityId": {
              "description": "PrimaryUserAssignedIdentityId: Resource Id for the User assigned identity to be used for data encryption of the primary\nserver.",
              "type": "string"
            },
            "type": {
              "description": "Type: Data encryption type to depict if it is System Managed vs Azure Key vault.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "fullyQualifiedDomainName": {
          "description": "FullyQualifiedDomainName: The fully qualified domain name of a server.",
          "type": "string"
        },
        "highAvailability": {
          "description": "HighAvailability: High availability properties of a server.",
          "properties": {
            "mode": {
              "description": "Mode: The HA mode for the server.",
              "type": "string"
            },
            "standbyAvailabilityZone": {
              "description": "StandbyAvailabilityZone: availability zone information of the standby.",
              "type": "string"
            },
            "state": {
              "description": "State: A state of a HA server that is visible to user.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "id": {
          "description": "Id: Fully qualified resource ID for the resource. E.g.\n\"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}\"",
          "type": "string"
        },
        "identity": {
          "description": "Identity: Describes the identity of the application.",
          "properties": {
            "tenantId": {
              "description": "TenantId: Tenant id of the server.",
              "type": "string"
            },
            "type": {
              "description": "Type: the types of identities associated with this resource; currently restricted to 'None and UserAssigned'",
              "type": "string"
            },
            "userAssignedIdentities": {
              "additionalProperties": {
                "description": "Describes a single user-assigned identity associated with the application.",
                "properties": {
                  "clientId": {
                    "description": "ClientId: the client identifier of the Service Principal which this identity represents.",
                    "type": "string"
                  },
                  "principalId": {
                    "description": "PrincipalId: the object identifier of the Service Principal which this identity represents.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "description": "UserAssignedIdentities: represents user assigned identities map.",
              "type": "object"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "location": {
          "description": "Location: The geo-location where the resource lives",
          "type": "string"
        },
        "maintenanceWindow": {
          "description": "MaintenanceWindow: Maintenance window properties of a server.",
          "properties": {
            "customWindow": {
              "description": "CustomWindow: indicates whether custom window is enabled or disabled",
              "type": "string"
            },
            "dayOfWeek": {
              "description": "DayOfWeek: day of week for maintenance window",
              "type": "integer"
            },
            "startHour": {
              "description": "StartHour: start hour for maintenance window",
              "type": "integer"
            },
            "startMinute": {
              "description": "StartMinute: start minute for maintenance window",
              "type": "integer"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "minorVersion": {
          "description": "MinorVersion: The minor version of the server.",
          "type": "string"
        },
        "name": {
          "description": "Name: The name of the resource",
          "type": "string"
        },
        "network": {
          "description": "Network: Network properties of a server. This Network property is required to be passed only in case you want the server\nto be Private access server.",
          "properties": {
            "delegatedSubnetResourceId": {
              "description": "DelegatedSubnetResourceId: Delegated subnet arm resource id. This is required to be passed during create, in case we\nwant the server to be VNET injected, i.e. Private access server. During update, pass this only if we want to update the\nvalue for Private DNS zone.",
              "type": "string"
            },
            "privateDnsZoneArmResourceId": {
              "description": "PrivateDnsZoneArmResourceId: Private dns zone arm resource id. This is required to be passed during create, in case we\nwant the server to be VNET injected, i.e. Private access server. During update, pass this only if we want to update the\nvalue for Private DNS zone.",
              "type": "string"
            },
            "publicNetworkAccess": {
              "description": "PublicNetworkAccess: public network access is enabled or not",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "pointInTimeUTC": {
          "description": "PointInTimeUTC: Restore point creation time (ISO8601 format), specifying the time to restore from. It's required when\n'createMode' is 'PointInTimeRestore' or 'GeoRestore' or 'ReviveDropped'.",
          "type": "string"
        },
        "privateEndpointConnections": {
          "description": "PrivateEndpointConnections: List of private endpoint connections associated with the specified resource.",
          "items": {
            "description": "The private endpoint connection resource.",
            "properties": {
              "id": {
                "description": "Id: Fully qualified resource ID for the resource. E.g.\n\"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}\"",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "replica": {
          "description": "Replica: Replica properties of a server. These Replica properties are required to be passed only in case you want to\nPromote a server.",
          "properties": {
            "capacity": {
              "description": "Capacity: Replicas allowed for a server.",
              "type": "integer"
            },
            "promoteMode": {
              "description": "PromoteMode: Sets the promote mode for a replica server. This is a write only property.",
              "type": "string"
            },
            "promoteOption": {
              "description": "PromoteOption: Sets the promote options for a replica server. This is a write only property.",
              "type": "string"
            },
            "replicationState": {
              "description": "ReplicationState: Gets the replication state of a replica server. This property is returned only for replicas api call.\nSupported values are Active, Catchup, Provisioning, Updating, Broken, Reconfiguring",
              "type": "string"
            },
            "role": {
              "description": "Role: Used to indicate role of the server in replication set.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "replicaCapacity": {
          "description": "ReplicaCapacity: Replicas allowed for a server.",
          "type": "integer"
        },
        "replicationRole": {
          "description": "ReplicationRole: Replication role of the server",
          "type": "string"
        },
        "sku": {
          "description": "Sku: The SKU (pricing tier) of the server.",
          "properties": {
            "name": {
              "description": "Name: The name of the sku, typically, tier + family + cores, e.g. Standard_D4s_v3.",
              "type": "string"
            },
            "tier": {
              "description": "Tier: The tier of the particular SKU, e.g. Burstable.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "sourceServerResourceId": {
          "description": "SourceServerResourceId: The source server resource ID to restore from. It's required when 'createMode' is\n'PointInTimeRestore' or 'GeoRestore' or 'Replica' or 'ReviveDropped'. This property is returned only for Replica server",
          "type": "string"
        },
        "state": {
          "description": "State: A state of a server that is visible to user.",
          "type": "string"
        },
        "storage": {
          "description": "Storage: Storage properties of a server.",
          "properties": {
            "autoGrow": {
              "description": "AutoGrow: Flag to enable / disable Storage Auto grow for flexible server.",
              "type": "string"
            },
            "iops": {
              "description": "Iops: Storage tier IOPS quantity. This property is required to be set for storage Type PremiumV2_LRS",
              "type": "integer"
            },
            "storageSizeGB": {
              "description": "StorageSizeGB: Max storage allowed for a server.",
              "type": "integer"
            },
            "throughput": {
              "description": "Throughput: Storage throughput for the server. This is required to be set for storage Type PremiumV2_LRS",
              "type": "integer"
            },
            "tier": {
              "description": "Tier: Name of storage tier for IOPS.",
              "type": "string"
            },
            "type": {
              "description": "Type: Storage type for the server. Allowed values are Premium_LRS and PremiumV2_LRS, and default is Premium_LRS if not\nspecified",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "systemData": {
          "description": "SystemData: Azure Resource Manager metadata containing createdBy and modifiedBy information.",
          "properties": {
            "createdAt": {
              "description": "CreatedAt: The timestamp of resource creation (UTC).",
              "type": "string"
            },
            "createdBy": {
              "description": "CreatedBy: The identity that created the resource.",
              "type": "string"
            },
            "createdByType": {
              "description": "CreatedByType: The type of identity that created the resource.",
              "type": "string"
            },
            "lastModifiedAt": {
              "description": "LastModifiedAt: The timestamp of resource last modification (UTC)",
              "type": "string"
            },
            "lastModifiedBy": {
              "description": "LastModifiedBy: The identity that last modified the resource.",
              "type": "string"
            },
            "lastModifiedByType": {
              "description": "LastModifiedByType: The type of identity that last modified the resource.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Tags: Resource tags.",
          "type": "object"
        },
        "type": {
          "description": "Type: The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"",
          "type": "string"
        },
        "version": {
          "description": "Version: PostgreSQL Server version.",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
