{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure-sql-database/json-schema/microsoft-azure-sql-database-server-update-schema.json",
  "title": "ServerUpdate",
  "description": "An update request for an Azure SQL Database server.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-azure-sql-database-servers-api-openapi.yml#/components/schemas/ServerUpdate",
  "type": "object",
  "properties": {
    "identity": {
      "$ref": "#/$defs/identity"
    },
    "properties": {
      "$ref": "#/$defs/ServerProperties"
    },
    "tags": {
      "type": "object",
      "description": "Resource tags.",
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "$defs": {
    "ServerExternalAdministrator": {
      "type": "object",
      "description": "Properties of a active directory administrator.",
      "properties": {
        "administratorType": {
          "type": "string",
          "description": "Type of the sever administrator.",
          "enum": [
            "ActiveDirectory"
          ],
          "x-ms-enum": {
            "name": "AdministratorType",
            "modelAsString": true,
            "values": [
              {
                "name": "ActiveDirectory",
                "value": "ActiveDirectory",
                "description": "ActiveDirectory"
              }
            ]
          }
        },
        "principalType": {
          "type": "string",
          "description": "Principal Type of the sever administrator.",
          "enum": [
            "User",
            "Group",
            "Application"
          ],
          "x-ms-enum": {
            "name": "PrincipalType",
            "modelAsString": true,
            "values": [
              {
                "name": "User",
                "value": "User",
                "description": "User"
              },
              {
                "name": "Group",
                "value": "Group",
                "description": "Group"
              },
              {
                "name": "Application",
                "value": "Application",
                "description": "Application"
              }
            ]
          }
        },
        "login": {
          "type": "string",
          "description": "Login name of the server administrator."
        },
        "sid": {
          "$ref": "#/$defs/requestId"
        },
        "tenantId": {
          "$ref": "#/$defs/requestId"
        },
        "azureADOnlyAuthentication": {
          "type": "boolean",
          "description": "Azure Active Directory only Authentication enabled."
        }
      }
    },
    "ServerPrivateEndpointConnection": {
      "type": "object",
      "description": "A private endpoint connection under a server",
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource ID.",
          "readOnly": true
        },
        "properties": {
          "type": "object",
          "description": "Properties of a private endpoint connection.",
          "properties": {
            "privateEndpoint": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Resource id of the private endpoint."
                }
              }
            },
            "groupIds": {
              "type": "array",
              "description": "Group IDs.",
              "items": {
                "type": "string"
              },
              "readOnly": true
            },
            "privateLinkServiceConnectionState": {
              "type": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "description": "The private link service connection status.",
                  "enum": [
                    "Approved",
                    "Pending",
                    "Rejected",
                    "Disconnected"
                  ],
                  "x-ms-enum": {
                    "name": "PrivateLinkServiceConnectionStateStatus",
                    "modelAsString": true,
                    "values": [
                      {
                        "name": "Approved",
                        "value": "Approved",
                        "description": "Approved"
                      },
                      {
                        "name": "Pending",
                        "value": "Pending",
                        "description": "Pending"
                      },
                      {
                        "name": "Rejected",
                        "value": "Rejected",
                        "description": "Rejected"
                      },
                      {
                        "name": "Disconnected",
                        "value": "Disconnected",
                        "description": "Disconnected"
                      }
                    ]
                  }
                },
                "description": {
                  "type": "string",
                  "description": "The private link service connection description."
                },
                "actionsRequired": {
                  "type": "string",
                  "description": "The actions required for private link service connection.",
                  "enum": [
                    "None"
                  ],
                  "x-ms-enum": {
                    "name": "PrivateLinkServiceConnectionStateActionsRequire",
                    "modelAsString": true,
                    "values": [
                      {
                        "name": "None",
                        "value": "None",
                        "description": "None"
                      }
                    ]
                  }
                }
              },
              "required": [
                "status",
                "description"
              ]
            },
            "provisioningState": {
              "type": "string",
              "description": "State of the private endpoint connection.",
              "enum": [
                "Approving",
                "Ready",
                "Dropping",
                "Failed",
                "Rejecting"
              ],
              "x-ms-enum": {
                "name": "PrivateEndpointProvisioningState",
                "modelAsString": true,
                "values": [
                  {
                    "name": "Approving",
                    "value": "Approving",
                    "description": "Approving"
                  },
                  {
                    "name": "Ready",
                    "value": "Ready",
                    "description": "Ready"
                  },
                  {
                    "name": "Dropping",
                    "value": "Dropping",
                    "description": "Dropping"
                  },
                  {
                    "name": "Failed",
                    "value": "Failed",
                    "description": "Failed"
                  },
                  {
                    "name": "Rejecting",
                    "value": "Rejecting",
                    "description": "Rejecting"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "ServerProperties": {
      "type": "object",
      "description": "The properties of a server.",
      "properties": {
        "administratorLogin": {
          "type": "string",
          "description": "Administrator username for the server. Once created it cannot be changed.",
          "x-ms-mutability": [
            "read",
            "create"
          ]
        },
        "administratorLoginPassword": {
          "type": "string",
          "format": "password",
          "description": "The administrator login password (required for server creation).",
          "x-ms-mutability": [
            "update",
            "create"
          ],
          "x-ms-secret": true
        },
        "version": {
          "type": "string",
          "description": "The version of the server."
        },
        "state": {
          "type": "string",
          "description": "The state of the server.",
          "readOnly": true
        },
        "fullyQualifiedDomainName": {
          "type": "string",
          "description": "The fully qualified domain name of the server.",
          "readOnly": true
        },
        "privateEndpointConnections": {
          "type": "array",
          "description": "List of private endpoint connections on a server",
          "items": {
            "$ref": "#/$defs/ServerPrivateEndpointConnection"
          },
          "readOnly": true
        },
        "minimalTlsVersion": {
          "type": "string",
          "description": "Minimal TLS version. Allowed values: 'None', 1.0', '1.1', '1.2', '1.3'",
          "enum": [
            "None",
            "1.0",
            "1.1",
            "1.2",
            "1.3"
          ],
          "x-ms-enum": {
            "name": "MinimalTlsVersion",
            "modelAsString": true,
            "values": [
              {
                "name": "None",
                "value": "None",
                "description": "None"
              },
              {
                "name": "1.0",
                "value": "1.0",
                "description": "1.0"
              },
              {
                "name": "1.1",
                "value": "1.1",
                "description": "1.1"
              },
              {
                "name": "1.2",
                "value": "1.2",
                "description": "1.2"
              },
              {
                "name": "1.3",
                "value": "1.3",
                "description": "1.3"
              }
            ]
          }
        },
        "publicNetworkAccess": {
          "type": "string",
          "description": "Whether or not public endpoint access is allowed for this server.  Value is optional but if passed in, must be 'Enabled' or 'Disabled' or 'SecuredByPerimeter'",
          "enum": [
            "Enabled",
            "Disabled",
            "SecuredByPerimeter"
          ],
          "x-ms-enum": {
            "name": "ServerPublicNetworkAccessFlag",
            "modelAsString": true,
            "values": [
              {
                "name": "Enabled",
                "value": "Enabled",
                "description": "Enabled"
              },
              {
                "name": "Disabled",
                "value": "Disabled",
                "description": "Disabled"
              },
              {
                "name": "SecuredByPerimeter",
                "value": "SecuredByPerimeter",
                "description": "SecuredByPerimeter"
              }
            ]
          }
        },
        "workspaceFeature": {
          "type": "string",
          "description": "Whether or not existing server has a workspace created and if it allows connection from workspace",
          "enum": [
            "Connected",
            "Disconnected"
          ],
          "x-ms-enum": {
            "name": "ServerWorkspaceFeature",
            "modelAsString": true,
            "values": [
              {
                "name": "Connected",
                "value": "Connected",
                "description": "Connected"
              },
              {
                "name": "Disconnected",
                "value": "Disconnected",
                "description": "Disconnected"
              }
            ]
          }
        },
        "primaryUserAssignedIdentityId": {
          "type": "string",
          "description": "The resource id of a user assigned identity to be used by default."
        },
        "federatedClientId": {
          "$ref": "#/$defs/requestId"
        },
        "keyId": {
          "type": "string",
          "description": "A CMK URI of the key to use for encryption."
        },
        "administrators": {
          "$ref": "#/$defs/ServerExternalAdministrator"
        },
        "restrictOutboundNetworkAccess": {
          "type": "string",
          "description": "Whether or not to restrict outbound network access for this server.  Value is optional but if passed in, must be 'Enabled' or 'Disabled'",
          "enum": [
            "Enabled",
            "Disabled",
            "SecuredByPerimeter"
          ],
          "x-ms-enum": {
            "name": "ServerNetworkAccessFlag",
            "modelAsString": true,
            "values": [
              {
                "name": "Enabled",
                "value": "Enabled",
                "description": "Enabled"
              },
              {
                "name": "Disabled",
                "value": "Disabled",
                "description": "Disabled"
              },
              {
                "name": "SecuredByPerimeter",
                "value": "SecuredByPerimeter",
                "description": "SecuredByPerimeter"
              }
            ]
          }
        },
        "isIPv6Enabled": {
          "$ref": "#/$defs/restrictOutboundNetworkAccess"
        },
        "externalGovernanceStatus": {
          "type": "string",
          "description": "Status of external governance.",
          "enum": [
            "Enabled",
            "Disabled"
          ],
          "x-ms-enum": {
            "name": "ExternalGovernanceStatus",
            "modelAsString": true,
            "values": [
              {
                "name": "Enabled",
                "value": "Enabled",
                "description": "Enabled"
              },
              {
                "name": "Disabled",
                "value": "Disabled",
                "description": "Disabled"
              }
            ]
          }
        },
        "retentionDays": {
          "type": "integer",
          "format": "int32",
          "description": "Number of days this server will stay soft-deleted."
        },
        "createMode": {
          "type": "string",
          "description": "Create mode for server, only valid values for this are Normal and Restore.",
          "enum": [
            "Normal",
            "Restore"
          ],
          "x-ms-enum": {
            "name": "ServerCreateMode",
            "modelAsString": true,
            "values": [
              {
                "name": "Normal",
                "value": "Normal",
                "description": "Normal"
              },
              {
                "name": "Restore",
                "value": "Restore",
                "description": "Restore"
              }
            ]
          }
        }
      }
    }
  }
}