From bc2242c263bda6d5bade4f53056a9ae968db450f Mon Sep 17 00:00:00 2001 From: Naia Scott Date: Thu, 21 May 2026 11:34:08 -0400 Subject: [PATCH 1/2] PR comments p1 --- .../postgresql/DBforPostgreSQL.Management/models.tsp | 8 +++++--- .../preview/2026-04-01-preview/openapi.json | 11 ++++++++--- specification/postgresql/resource-manager/readme.md | 8 ++++++-- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/specification/postgresql/DBforPostgreSQL.Management/models.tsp b/specification/postgresql/DBforPostgreSQL.Management/models.tsp index e639cb2585ac..ba9e62779799 100644 --- a/specification/postgresql/DBforPostgreSQL.Management/models.tsp +++ b/specification/postgresql/DBforPostgreSQL.Management/models.tsp @@ -3161,13 +3161,15 @@ model DataEncryption { @visibility(Lifecycle.Read) geoBackupEncryptionKeyStatus?: EncryptionKeyStatus; + #suppress "azure-core/no-guid-usage" "To be defined as GUID following recommendation by Azure Resource Manager guidelines." @doc("Client id of multi-tenant Microsoft Entra application.") @added(Versions.v2026_04_01) - primaryFederatedIdentityClientId?: string; + primaryFederatedIdentityClientId?: uuid; + #suppress "azure-core/no-guid-usage" "To be defined as GUID following recommendation by Azure Resource Manager guidelines." @doc("Client id of multi-tenant Microsoft Entra application for when it is configured to support geographically redundant backups.") @added(Versions.v2026_04_01) - geoBackupFederatedIdentityClientId?: string; + geoBackupFederatedIdentityClientId?: uuid; } /** @@ -3950,7 +3952,7 @@ union MaintenanceEventStatus { @doc("Properties of a maintenance event resource.") @added(Versions.v2026_04_01) model MaintenanceEventResourceProperties { - @doc("The unique identifier of the maintenance event (e.g. 'op_123456789').") + @doc("A service-generated identifier for this maintenance event, assigned by the platform (e.g., 'YL1T-HFG'). The format is not contractual and clients should not attempt to parse or construct this value.") @visibility(Lifecycle.Read) maintenanceEventId?: string; diff --git a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2026-04-01-preview/openapi.json b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2026-04-01-preview/openapi.json index deacb3d07117..7b7814503901 100644 --- a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2026-04-01-preview/openapi.json +++ b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2026-04-01-preview/openapi.json @@ -5288,6 +5288,11 @@ } } }, + "Azure.Core.uuid": { + "type": "string", + "format": "uuid", + "description": "Universally Unique Identifier" + }, "AzureManagedDiskPerformanceTier": { "type": "string", "description": "Storage tier of a server.", @@ -6157,11 +6162,11 @@ "readOnly": true }, "primaryFederatedIdentityClientId": { - "type": "string", + "$ref": "#/definitions/Azure.Core.uuid", "description": "Client id of multi-tenant Microsoft Entra application." }, "geoBackupFederatedIdentityClientId": { - "type": "string", + "$ref": "#/definitions/Azure.Core.uuid", "description": "Client id of multi-tenant Microsoft Entra application for when it is configured to support geographically redundant backups." } } @@ -7158,7 +7163,7 @@ "properties": { "maintenanceEventId": { "type": "string", - "description": "The unique identifier of the maintenance event (e.g. 'op_123456789').", + "description": "A service-generated identifier for this maintenance event, assigned by the platform (e.g., 'YL1T-HFG'). The format is not contractual and clients should not attempt to parse or construct this value.", "readOnly": true }, "maintenanceType": { diff --git a/specification/postgresql/resource-manager/readme.md b/specification/postgresql/resource-manager/readme.md index d653d0356d39..af8e256dbce7 100644 --- a/specification/postgresql/resource-manager/readme.md +++ b/specification/postgresql/resource-manager/readme.md @@ -45,8 +45,12 @@ input-file: suppressions: - code: GuidUsage from: openapi.json - where: $.definitions.MajorVersionUpgradePrecheckResourceProperties.properties.subscriptionId - reason: The API contract for Major Version Upgrade requires showing the subscription ID. + where: $.definitions.DataEncryption.properties.primaryFederatedIdentityClientId + reason: To be defined as GUID following recommendation by Azure Resource Manager guidelines. + - code: GuidUsage + from: openapi.json + where: $.definitions.DataEncryption.properties.geoBackupFederatedIdentityClientId + reason: To be defined as GUID following recommendation by Azure Resource Manager guidelines. ``` ### Tag: package-flexibleserver-2026-01-01-preview From 54592bc18a8c3c6675f283bfdfeb19c0704d54ee Mon Sep 17 00:00:00 2001 From: Naia Scott Date: Thu, 21 May 2026 14:22:37 -0400 Subject: [PATCH 2/2] PR comments 2 --- .../DBforPostgreSQL.Management/Server.tsp | 51 ++-- ...versStartMajorVersionUpgradePrecheck.json} | 4 +- .../DBforPostgreSQL.Management/models.tsp | 30 +- ...versStartMajorVersionUpgradePrecheck.json} | 4 +- .../preview/2026-04-01-preview/openapi.json | 260 ++++++++++-------- 5 files changed, 198 insertions(+), 151 deletions(-) rename specification/postgresql/DBforPostgreSQL.Management/examples/2026-04-01-preview/{ServersMajorVersionUpgradePrecheck.json => ServersStartMajorVersionUpgradePrecheck.json} (85%) rename specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2026-04-01-preview/examples/{ServersMajorVersionUpgradePrecheck.json => ServersStartMajorVersionUpgradePrecheck.json} (85%) diff --git a/specification/postgresql/DBforPostgreSQL.Management/Server.tsp b/specification/postgresql/DBforPostgreSQL.Management/Server.tsp index 6f4bbc1dee7b..006b11aa29f4 100644 --- a/specification/postgresql/DBforPostgreSQL.Management/Server.tsp +++ b/specification/postgresql/DBforPostgreSQL.Management/Server.tsp @@ -77,10 +77,8 @@ interface Servers { */ delete is ArmResourceDeleteWithoutOkAsync< Server, - Response = - | ArmDeleteAcceptedLroResponse - | ArmDeletedNoContentResponse + Response = ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse >; /** @@ -138,11 +136,10 @@ interface Servers { start is ArmResourceActionAsyncBase< Server, BackupsLongTermRetentionRequest, - - | (BackupsLongTermRetentionResponse & RequestIdResponseHeader) - | (ArmAcceptedLroResponse & - Azure.Core.Foundations.RetryAfterHeader> & - RequestIdResponseHeader), + (BackupsLongTermRetentionResponse & + RequestIdResponseHeader) | (ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader> & + RequestIdResponseHeader), BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters, Error = CustomErrorResponse >; @@ -213,23 +210,22 @@ interface Servers { migrateNetworkMode is ArmResourceActionAsyncBase< Server, void, - - | (MigrateNetworkStatus & RequestIdResponseHeader) - | (ArmAcceptedLroResponse & - Azure.Core.Foundations.RetryAfterHeader> & - RequestIdResponseHeader), + (MigrateNetworkStatus & + RequestIdResponseHeader) | (ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader> & + RequestIdResponseHeader), BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters >; - @doc("Begin Major Version Upgrade Prechecks.") + @doc("Start Major Version Upgrade Prechecks.") @added(Versions.v2026_04_01) - @action("majorVersionUpgradePrecheck") - majorVersionUpgradePrecheck is ArmResourceActionAsyncBase< + @action("startMajorVersionUpgradePrecheck") + startMajorVersionUpgradePrecheck is ArmResourceActionAsyncBase< Server, - MajorVersionUpgradePrecheckCreateRequest, - ArmResponse | ArmAcceptedLroResponse & + StartMajorVersionUpgradePrecheckRequest, + ArmResponse | ArmAcceptedLroResponse & Azure.Core.Foundations.RetryAfterHeader>, - BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters + BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters >; } @@ -237,25 +233,20 @@ interface Servers { @@minLength(Server.name, 3); @@doc(Server.name, "The name of the server."); @@doc(Server.properties, "Properties of a server."); -@@doc( - Servers.createOrUpdate::parameters.resource, +@@doc(Servers.createOrUpdate::parameters.resource, "Parameters required to create a new server or to update an existing server." ); -@@doc( - Servers.update::parameters.properties, +@@doc(Servers.update::parameters.properties, "Parameters required to update a server." ); -@@doc( - Servers.checkPrerequisites::parameters.body, +@@doc(Servers.checkPrerequisites::parameters.body, "Request body for operation" ); @@doc(Servers.start::parameters.body, "Request body for operation"); -@@doc( - Servers.checkNameAvailability::parameters.body, +@@doc(Servers.checkNameAvailability::parameters.body, "Parameters required to check if a migration name is valid and available." ); @@doc(Servers.restart::parameters.body, "Parameters to restart a server."); -@@doc( - Servers.migrateNetworkMode::parameters.body, +@@doc(Servers.migrateNetworkMode::parameters.body, "Parameters to migrate the network configuration of a server." ); diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2026-04-01-preview/ServersMajorVersionUpgradePrecheck.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2026-04-01-preview/ServersStartMajorVersionUpgradePrecheck.json similarity index 85% rename from specification/postgresql/DBforPostgreSQL.Management/examples/2026-04-01-preview/ServersMajorVersionUpgradePrecheck.json rename to specification/postgresql/DBforPostgreSQL.Management/examples/2026-04-01-preview/ServersStartMajorVersionUpgradePrecheck.json index fae07956f66f..d2c3093cc7e8 100644 --- a/specification/postgresql/DBforPostgreSQL.Management/examples/2026-04-01-preview/ServersMajorVersionUpgradePrecheck.json +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2026-04-01-preview/ServersStartMajorVersionUpgradePrecheck.json @@ -23,6 +23,6 @@ } } }, - "operationId": "Servers_MajorVersionUpgradePrecheck", - "title": "Create a major version upgrade precheck validation for a PostgreSQL flexible server." + "operationId": "Servers_StartMajorVersionUpgradePrecheck", + "title": "Start a major version upgrade precheck validation for a PostgreSQL flexible server." } diff --git a/specification/postgresql/DBforPostgreSQL.Management/models.tsp b/specification/postgresql/DBforPostgreSQL.Management/models.tsp index ba9e62779799..fea54bd4a137 100644 --- a/specification/postgresql/DBforPostgreSQL.Management/models.tsp +++ b/specification/postgresql/DBforPostgreSQL.Management/models.tsp @@ -4127,7 +4127,7 @@ model MajorVersionUpgradePrecheckResourceProperties { createTime?: utcDateTime; @doc("The status of the precheck validation.") - status?: string; + status?: MajorVersionUpgradePrecheckStatus; @doc("The detailed result of the precheck operation.") precheckResult?: PrecheckResult; @@ -4140,16 +4140,16 @@ model MajorVersionUpgradePrecheckResourceProperties { policyDetails?: PolicyDetail[]; } -@doc("Request model for creating a major version upgrade precheck.") +@doc("Request model for starting a major version upgrade precheck.") @added(Versions.v2026_04_01) -model MajorVersionUpgradePrecheckCreateRequest { +model StartMajorVersionUpgradePrecheckRequest { @doc("The target major version to upgrade to.") targetVersion: PostgresMajorVersion; } -@doc("Response model for creating a major version upgrade precheck.") +@doc("Response model for starting a major version upgrade precheck.") @added(Versions.v2026_04_01) -model MajorVersionUpgradePrecheckResponse { +model StartMajorVersionUpgradePrecheckResponse { @doc("The precheck validation ID.") name?: string; @@ -4157,7 +4157,25 @@ model MajorVersionUpgradePrecheckResponse { createTime?: utcDateTime; @doc("The status of the precheck validation.") - status?: string; + status?: MajorVersionUpgradePrecheckStatus; +} + +@doc("The status of the major version upgrade precheck.") +@added(Versions.v2026_04_01) +union MajorVersionUpgradePrecheckStatus { + string, + + @doc("Executing prechecks against the source server") + Validating: "Validating", + + @doc("Validation succeeded") + Succeeded: "Succeeded", + + @doc("Validation failed") + Failed: "Failed", + + @doc("Validation canceled") + Canceled: "Canceled", } @doc("Major version upgrade precheck resource for a PostgreSQL flexible server.") diff --git a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2026-04-01-preview/examples/ServersMajorVersionUpgradePrecheck.json b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2026-04-01-preview/examples/ServersStartMajorVersionUpgradePrecheck.json similarity index 85% rename from specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2026-04-01-preview/examples/ServersMajorVersionUpgradePrecheck.json rename to specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2026-04-01-preview/examples/ServersStartMajorVersionUpgradePrecheck.json index fae07956f66f..d2c3093cc7e8 100644 --- a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2026-04-01-preview/examples/ServersMajorVersionUpgradePrecheck.json +++ b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2026-04-01-preview/examples/ServersStartMajorVersionUpgradePrecheck.json @@ -23,6 +23,6 @@ } } }, - "operationId": "Servers_MajorVersionUpgradePrecheck", - "title": "Create a major version upgrade precheck validation for a PostgreSQL flexible server." + "operationId": "Servers_StartMajorVersionUpgradePrecheck", + "title": "Start a major version upgrade precheck validation for a PostgreSQL flexible server." } diff --git a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2026-04-01-preview/openapi.json b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2026-04-01-preview/openapi.json index 7b7814503901..d97a120655a4 100644 --- a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2026-04-01-preview/openapi.json +++ b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/2026-04-01-preview/openapi.json @@ -3071,86 +3071,6 @@ "x-ms-pageable": { "nextLinkName": "nextLink" } - }, - "post": { - "operationId": "Servers_MajorVersionUpgradePrecheck", - "tags": [ - "Servers" - ], - "description": "Begin Major Version Upgrade Prechecks.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "name": "serverName", - "in": "path", - "description": "The name of the server.", - "required": true, - "type": "string", - "minLength": 3, - "maxLength": 63, - "pattern": "^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*" - }, - { - "name": "body", - "in": "body", - "description": "The content of the action request", - "required": true, - "schema": { - "$ref": "#/definitions/MajorVersionUpgradePrecheckCreateRequest" - } - } - ], - "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/MajorVersionUpgradePrecheckResponse" - } - }, - "202": { - "description": "Resource operation accepted.", - "headers": { - "Azure-AsyncOperation": { - "type": "string", - "format": "uri", - "description": "A link to the status monitor" - }, - "Location": { - "type": "string", - "description": "The Location header contains the URL where the status of the long running operation can be checked." - }, - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Create a major version upgrade precheck validation for a PostgreSQL flexible server.": { - "$ref": "./examples/ServersMajorVersionUpgradePrecheck.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "location", - "final-state-schema": "#/definitions/MajorVersionUpgradePrecheckResponse" - }, - "x-ms-long-running-operation": true } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/majorVersionUpgradePrecheck/{precheckValidationId}": { @@ -4309,6 +4229,88 @@ "x-ms-long-running-operation": true } }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/startMajorVersionUpgradePrecheck": { + "post": { + "operationId": "Servers_StartMajorVersionUpgradePrecheck", + "tags": [ + "Servers" + ], + "description": "Start Major Version Upgrade Prechecks.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "serverName", + "in": "path", + "description": "The name of the server.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*" + }, + { + "name": "body", + "in": "body", + "description": "The content of the action request", + "required": true, + "schema": { + "$ref": "#/definitions/StartMajorVersionUpgradePrecheckRequest" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/StartMajorVersionUpgradePrecheckResponse" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Start a major version upgrade precheck validation for a PostgreSQL flexible server.": { + "$ref": "./examples/ServersStartMajorVersionUpgradePrecheck.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location", + "final-state-schema": "#/definitions/StartMajorVersionUpgradePrecheckResponse" + }, + "x-ms-long-running-operation": true + } + }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/stop": { "post": { "operationId": "Servers_Stop", @@ -7351,19 +7353,6 @@ } } }, - "MajorVersionUpgradePrecheckCreateRequest": { - "type": "object", - "description": "Request model for creating a major version upgrade precheck.", - "properties": { - "targetVersion": { - "$ref": "#/definitions/PostgresMajorVersion", - "description": "The target major version to upgrade to." - } - }, - "required": [ - "targetVersion" - ] - }, "MajorVersionUpgradePrecheckResource": { "type": "object", "description": "Major version upgrade precheck resource for a PostgreSQL flexible server.", @@ -7410,7 +7399,7 @@ "description": "The time when the precheck was created." }, "status": { - "type": "string", + "$ref": "#/definitions/MajorVersionUpgradePrecheckStatus", "description": "The status of the precheck validation." }, "precheckResult": { @@ -7433,23 +7422,40 @@ } } }, - "MajorVersionUpgradePrecheckResponse": { - "type": "object", - "description": "Response model for creating a major version upgrade precheck.", - "properties": { - "name": { - "type": "string", - "description": "The precheck validation ID." - }, - "createTime": { - "type": "string", - "format": "date-time", - "description": "The time when the precheck was created." - }, - "status": { - "type": "string", - "description": "The status of the precheck validation." - } + "MajorVersionUpgradePrecheckStatus": { + "type": "string", + "description": "The status of the major version upgrade precheck.", + "enum": [ + "Validating", + "Succeeded", + "Failed", + "Canceled" + ], + "x-ms-enum": { + "name": "MajorVersionUpgradePrecheckStatus", + "modelAsString": true, + "values": [ + { + "name": "Validating", + "value": "Validating", + "description": "Executing prechecks against the source server" + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Validation succeeded" + }, + { + "name": "Failed", + "value": "Failed", + "description": "Validation failed" + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Validation canceled" + } + ] } }, "MetricSpecification": { @@ -10119,6 +10125,38 @@ ] } }, + "StartMajorVersionUpgradePrecheckRequest": { + "type": "object", + "description": "Request model for starting a major version upgrade precheck.", + "properties": { + "targetVersion": { + "$ref": "#/definitions/PostgresMajorVersion", + "description": "The target major version to upgrade to." + } + }, + "required": [ + "targetVersion" + ] + }, + "StartMajorVersionUpgradePrecheckResponse": { + "type": "object", + "description": "Response model for starting a major version upgrade precheck.", + "properties": { + "name": { + "type": "string", + "description": "The precheck validation ID." + }, + "createTime": { + "type": "string", + "format": "date-time", + "description": "The time when the precheck was created." + }, + "status": { + "$ref": "#/definitions/MajorVersionUpgradePrecheckStatus", + "description": "The status of the precheck validation." + } + } + }, "Storage": { "type": "object", "description": "Storage properties of a server.",