diff --git a/npx b/npx
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/advisor.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/advisor.json
new file mode 100644
index 000000000000..6ea0d210e292
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/advisor.json
@@ -0,0 +1,1992 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2025-05-01-preview",
+ "title": "AdvisorManagementClient",
+ "description": "REST APIs for Azure Advisor"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/providers/Microsoft.Advisor/metadata/{name}": {
+ "get": {
+ "tags": [
+ "Metadata"
+ ],
+ "summary": "Gets the metadata entity.",
+ "operationId": "RecommendationMetadata_Get",
+ "parameters": [
+ {
+ "name": "name",
+ "in": "path",
+ "description": "Name of metadata entity.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Successfully retrieved metadata entities",
+ "schema": {
+ "$ref": "#/definitions/MetadataEntity"
+ }
+ },
+ "404": {
+ "description": "Client sent unknown metadata name",
+ "schema": {
+ "$ref": "#/definitions/ARMErrorResponseBody"
+ },
+ "x-ms-error-response": true
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetMetadata": {
+ "$ref": "./examples/GetRecommendationMetadataEntity.json"
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Advisor/metadata": {
+ "get": {
+ "tags": [
+ "Metadata"
+ ],
+ "summary": "Gets the list of metadata entities.",
+ "operationId": "RecommendationMetadata_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Successfully retrieved metadata entities",
+ "schema": {
+ "$ref": "#/definitions/MetadataEntityListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "x-ms-examples": {
+ "GetMetadata": {
+ "$ref": "./examples/ListRecommendationMetadata.json"
+ }
+ },
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/configurations": {
+ "get": {
+ "tags": [
+ "Configurations"
+ ],
+ "summary": "Retrieve Azure Advisor configurations.",
+ "description": "Retrieve Azure Advisor configurations and also retrieve configurations of contained resource groups.",
+ "operationId": "Configurations_ListBySubscription",
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Successfully retrieved zero or more configurations.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "GetConfigurations": {
+ "$ref": "./examples/ListConfigurations.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/configurations/{configurationName}": {
+ "put": {
+ "tags": [
+ "Configurations"
+ ],
+ "summary": "Create/Overwrite Azure Advisor configuration.",
+ "description": "Create/Overwrite Azure Advisor configuration and also delete all configurations of contained resource groups.",
+ "operationId": "Configurations_CreateInSubscription",
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "configContract",
+ "in": "body",
+ "description": "The Azure Advisor configuration data structure.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ConfigData"
+ }
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "name": "configurationName",
+ "in": "path",
+ "description": "Advisor configuration name. Value must be 'default'",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "ConfigurationName",
+ "modelAsString": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully created/overwrote configuration.",
+ "schema": {
+ "$ref": "#/definitions/ConfigData"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "PutConfigurations": {
+ "$ref": "./examples/CreateConfiguration.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Advisor/configurations": {
+ "get": {
+ "tags": [
+ "Configurations"
+ ],
+ "summary": "Retrieve Azure Advisor configurations.",
+ "operationId": "Configurations_ListByResourceGroup",
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "name": "resourceGroup",
+ "in": "path",
+ "description": "The name of the Azure resource group.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Successfully retrieved zero or more configurations.",
+ "schema": {
+ "$ref": "#/definitions/ConfigurationListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": null
+ },
+ "x-ms-examples": {
+ "GetConfigurations": {
+ "$ref": "./examples/ListConfigurations.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Advisor/configurations/{configurationName}": {
+ "put": {
+ "tags": [
+ "Configurations"
+ ],
+ "summary": "Create/Overwrite Azure Advisor configuration.",
+ "operationId": "Configurations_CreateInResourceGroup",
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "configContract",
+ "in": "body",
+ "description": "The Azure Advisor configuration data structure.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/ConfigData"
+ }
+ },
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "name": "configurationName",
+ "in": "path",
+ "description": "Advisor configuration name. Value must be 'default'",
+ "required": true,
+ "type": "string",
+ "enum": [
+ "default"
+ ],
+ "x-ms-enum": {
+ "name": "ConfigurationName",
+ "modelAsString": true
+ }
+ },
+ {
+ "name": "resourceGroup",
+ "in": "path",
+ "description": "The name of the Azure resource group.",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully created/overwrote configuration.",
+ "schema": {
+ "$ref": "#/definitions/ConfigData"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "PutConfigurations": {
+ "$ref": "./examples/CreateConfiguration.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/generateRecommendations": {
+ "post": {
+ "tags": [
+ "GenerateRecommendations"
+ ],
+ "description": "Initiates the recommendation generation or computation process for a subscription. This operation is asynchronous. The generated recommendations are stored in a cache in the Advisor service.",
+ "operationId": "Recommendations_Generate",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted. Recommendation generation has been accepted.",
+ "headers": {
+ "Location": {
+ "description": "The URL where the status of the asynchronous operation can be checked.",
+ "type": "string"
+ },
+ "Retry-After": {
+ "description": "The amount of delay to use while the status of the operation is checked. The value is expressed in seconds.",
+ "type": "string"
+ }
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "GenerateRecommendations": {
+ "$ref": "./examples/GenerateRecommendations.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/generateRecommendations/{operationId}": {
+ "get": {
+ "tags": [
+ "GenerateRecommendations"
+ ],
+ "description": "Retrieves the status of the recommendation computation or generation process. Invoke this API after calling the generation recommendation. The URI of this API is returned in the Location field of the response header.",
+ "operationId": "Recommendations_GetGenerateStatus",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "name": "operationId",
+ "in": "path",
+ "description": "The operation ID, which can be found from the Location field in the generate recommendation response header.",
+ "required": true,
+ "type": "string",
+ "format": "uuid"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Accepted. Recommendation generation is in progress."
+ },
+ "204": {
+ "description": "NoContent. Recommendation generation has been completed."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "GetGenerateStatus": {
+ "$ref": "./examples/EmptyResponse.json"
+ }
+ }
+ }
+ },
+ "/{resourceUri}/providers/Microsoft.Advisor/recommendations": {
+ "get": {
+ "tags": [
+ "GetRecommendations"
+ ],
+ "description": "Obtains cached recommendations for a subscription. The recommendations are generated or computed by invoking generateRecommendations.",
+ "operationId": "Recommendations_ListByTenant",
+ "parameters": [
+ {
+ "$ref": "#/parameters/resourceUriParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "description": "The filter to apply to the recommendations.
Filter can be applied to properties ['ResourceId', 'ResourceGroup', 'RecommendationTypeGuid', '[Category](#category)'] with operators ['eq', 'and', 'or'].
Example:
- $filter=Category eq 'Cost' and ResourceGroup eq 'MyResourceGroup'",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "$top",
+ "in": "query",
+ "description": "The number of recommendations per page if a paged version of this API is being used.",
+ "required": false,
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "name": "$skipToken",
+ "in": "query",
+ "description": "The page-continuation token to use with a paged version of this API.",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Successfully obtained cached recommendations.",
+ "schema": {
+ "$ref": "#/definitions/ResourceRecommendationBaseListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "ListRecommendationsServiceGroupResourceUri": {
+ "$ref": "./examples/ListRecommendationsServiceGroupResourceUri.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/recommendations": {
+ "get": {
+ "tags": [
+ "GetRecommendations"
+ ],
+ "description": "Obtains cached recommendations for a subscription. The recommendations are generated or computed by invoking generateRecommendations.",
+ "operationId": "Recommendations_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "$filter",
+ "in": "query",
+ "description": "The filter to apply to the recommendations.
Filter can be applied to properties ['ResourceId', 'ResourceGroup', 'RecommendationTypeGuid', '[Category](#category)'] with operators ['eq', 'and', 'or'].
Example:
- $filter=Category eq 'Cost' and ResourceGroup eq 'MyResourceGroup'",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "$top",
+ "in": "query",
+ "description": "The number of recommendations per page if a paged version of this API is being used.",
+ "required": false,
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "name": "$skipToken",
+ "in": "query",
+ "description": "The page-continuation token to use with a paged version of this API.",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Successfully obtained cached recommendations.",
+ "schema": {
+ "$ref": "#/definitions/ResourceRecommendationBaseListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "ListRecommendationsSubscriptionResourceUri": {
+ "$ref": "./examples/ListRecommendationsSubscriptionResourceUri.json"
+ }
+ }
+ }
+ },
+ "/providers/Microsoft.Advisor/operations": {
+ "get": {
+ "tags": [
+ "Operations"
+ ],
+ "description": "Lists all the available Advisor REST API operations.",
+ "operationId": "Operations_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Successfully retrieved operation list.",
+ "schema": {
+ "$ref": "#/definitions/OperationEntityListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "OperationsList": {
+ "$ref": "./examples/OperationsList.json"
+ }
+ }
+ }
+ },
+ "/{resourceUri}/providers/Microsoft.Advisor/recommendations/{recommendationId}": {
+ "get": {
+ "tags": [
+ "GetRecommendations"
+ ],
+ "description": "Obtains details of a cached recommendation.",
+ "operationId": "Recommendations_Get",
+ "parameters": [
+ {
+ "name": "resourceUri",
+ "in": "path",
+ "description": "The fully qualified Azure Resource Manager identifier of the resource to which the recommendation applies.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "recommendationId",
+ "in": "path",
+ "description": "The recommendation ID.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Successfully got recommendation detail.",
+ "schema": {
+ "$ref": "#/definitions/ResourceRecommendationBase"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "GetRecommendationDetailSubscriptionResourceUri": {
+ "$ref": "./examples/GetRecommendationDetailSubscriptionResourceUri.json"
+ },
+ "GetRecommendationDetailServiceGroupResourceUri": {
+ "$ref": "./examples/GetRecommendationDetailServiceGroupResourceUri.json"
+ }
+ }
+ },
+ "patch": {
+ "tags": [
+ "PatchRecommendations"
+ ],
+ "description": "Update the tracked properties of a Recommendation.",
+ "operationId": "Recommendations_Patch",
+ "parameters": [
+ {
+ "name": "resourceUri",
+ "in": "path",
+ "description": "The fully qualified Azure Resource Manager identifier of the resource to which the tracked recommendation applies.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "recommendationId",
+ "in": "path",
+ "description": "The RecommendationId ID.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "trackedProperties",
+ "in": "body",
+ "description": "The properties to update on the recommendation.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/TrackedRecommendationPropertiesPayload"
+ }
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Successfully updated recommendation status.",
+ "schema": {
+ "$ref": "#/definitions/ResourceRecommendationBase"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "UpdateTrackedRecommendation": {
+ "$ref": "./examples/UpdateTrackedRecommendation.json"
+ }
+ }
+ }
+ },
+ "/{resourceUri}/providers/Microsoft.Advisor/recommendations/{recommendationId}/suppressions/{name}": {
+ "get": {
+ "tags": [
+ "Suppressions"
+ ],
+ "description": "Obtains the details of a suppression.",
+ "operationId": "Suppressions_Get",
+ "parameters": [
+ {
+ "name": "resourceUri",
+ "in": "path",
+ "description": "The fully qualified Azure Resource Manager identifier of the resource to which the recommendation applies.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "recommendationId",
+ "in": "path",
+ "description": "The recommendation ID.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "description": "The name of the suppression.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Successfully got suppression detail.",
+ "schema": {
+ "$ref": "#/definitions/SuppressionContract"
+ }
+ },
+ "404": {
+ "description": "Suppression name is not specified or Suppression Id not found.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "GetSuppressionDetail": {
+ "$ref": "./examples/GetSuppressionDetail.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Suppressions"
+ ],
+ "description": "Enables the snoozed or dismissed attribute of a recommendation. The snoozed or dismissed attribute is referred to as a suppression. Use this API to create or update the snoozed or dismissed status of a recommendation.",
+ "operationId": "Suppressions_Create",
+ "parameters": [
+ {
+ "name": "resourceUri",
+ "in": "path",
+ "description": "The fully qualified Azure Resource Manager identifier of the resource to which the recommendation applies.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "recommendationId",
+ "in": "path",
+ "description": "The recommendation ID.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "description": "The name of the suppression.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "suppressionContract",
+ "in": "body",
+ "description": "The snoozed or dismissed attribute; for example, the snooze duration.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/SuppressionContract"
+ }
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Successfully created suppression.",
+ "schema": {
+ "$ref": "#/definitions/SuppressionContract"
+ }
+ },
+ "404": {
+ "description": "Recommendation to be suppressed is not found.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ },
+ "x-ms-error-response": true
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "CreateSuppression": {
+ "$ref": "./examples/CreateSuppression.json"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Suppressions"
+ ],
+ "description": "Enables the activation of a snoozed or dismissed recommendation. The snoozed or dismissed attribute of a recommendation is referred to as a suppression.",
+ "operationId": "Suppressions_Delete",
+ "parameters": [
+ {
+ "name": "resourceUri",
+ "in": "path",
+ "description": "The fully qualified Azure Resource Manager identifier of the resource to which the recommendation applies.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "recommendationId",
+ "in": "path",
+ "description": "The recommendation ID.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "description": "The name of the suppression.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "NoContent. The recommendation has been activated."
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "DeleteSuppression": {
+ "$ref": "./examples/DeleteSuppression.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/suppressions": {
+ "get": {
+ "tags": [
+ "Suppressions"
+ ],
+ "description": "Retrieves the list of snoozed or dismissed suppressions for a subscription. The snoozed or dismissed attribute of a recommendation is referred to as a suppression.",
+ "operationId": "Suppressions_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ },
+ {
+ "name": "$top",
+ "in": "query",
+ "description": "The number of suppressions per page if a paged version of this API is being used.",
+ "required": false,
+ "type": "integer",
+ "format": "int32"
+ },
+ {
+ "name": "$skipToken",
+ "in": "query",
+ "description": "The page-continuation token to use with a paged version of this API.",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Successfully got all suppressions in a subscription.",
+ "schema": {
+ "$ref": "#/definitions/SuppressionContractListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "ListSuppressions": {
+ "$ref": "./examples/ListSuppressions.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/predict": {
+ "post": {
+ "tags": [
+ "Prediction"
+ ],
+ "summary": "Predicts a recommendation.",
+ "operationId": "Predict",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "name": "predictionRequest",
+ "in": "body",
+ "description": "Parameters for predict recommendation.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/PredictionRequest"
+ }
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK. Successfully obtained prediction.",
+ "schema": {
+ "$ref": "#/definitions/PredictionResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "Predict": {
+ "$ref": "./examples/Predict.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/advisorScore": {
+ "get": {
+ "tags": [
+ "AdvisorScore"
+ ],
+ "description": "Gets the list of advisor scores.",
+ "operationId": "AdvisorScores_List",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/AdvisorScoreResponse"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "ListAdvisorScore": {
+ "$ref": "./examples/ListAdvisorScore.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/advisorScore/{name}": {
+ "get": {
+ "tags": [
+ "AdvisorScore"
+ ],
+ "description": "Gets the advisor score.",
+ "operationId": "AdvisorScores_Get",
+ "parameters": [
+ {
+ "$ref": "#/parameters/subscriptionIdParameter"
+ },
+ {
+ "name": "name",
+ "in": "path",
+ "description": "The scope of Advisor score entity.",
+ "required": true,
+ "type": "string"
+ },
+ {
+ "$ref": "#/parameters/apiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK.",
+ "schema": {
+ "$ref": "#/definitions/advisorScoreEntity"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "#/definitions/ArmErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "GetAdvisorScoreDetail": {
+ "$ref": "./examples/GetAdvisorScoreDetail.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "MetadataEntityListResult": {
+ "description": "The list of metadata entities",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The list of metadata entities.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetadataEntity"
+ }
+ },
+ "nextLink": {
+ "description": "The link used to get the next page of metadata.",
+ "type": "string"
+ }
+ }
+ },
+ "MetadataEntity": {
+ "description": "The metadata entity contract.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The resource Id of the metadata entity.",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of the metadata entity.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the metadata entity.",
+ "type": "string"
+ },
+ "properties": {
+ "$ref": "#/definitions/MetadataEntityProperties",
+ "description": "The metadata entity properties.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "MetadataEntityProperties": {
+ "description": "The metadata entity properties",
+ "type": "object",
+ "properties": {
+ "displayName": {
+ "description": "The display name.",
+ "type": "string"
+ },
+ "dependsOn": {
+ "description": "The list of keys on which this entity depends on.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "applicableScenarios": {
+ "description": "The list of scenarios applicable to this metadata entity.",
+ "type": "array",
+ "items": {
+ "enum": [
+ "Alerts"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "Scenario",
+ "modelAsString": true
+ }
+ }
+ },
+ "supportedValues": {
+ "description": "The list of supported values.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetadataSupportedValueDetail"
+ }
+ }
+ }
+ },
+ "MetadataSupportedValueDetail": {
+ "description": "The metadata supported value detail.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The id.",
+ "type": "string"
+ },
+ "displayName": {
+ "description": "The display name.",
+ "type": "string"
+ }
+ }
+ },
+ "ConfigurationListResult": {
+ "description": "The list of Advisor configurations.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The list of configurations.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ConfigData"
+ }
+ },
+ "nextLink": {
+ "description": "The link used to get the next page of configurations.",
+ "type": "string"
+ }
+ }
+ },
+ "ConfigData": {
+ "description": "The Advisor configuration data structure.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/ConfigDataProperties",
+ "description": "The Advisor configuration data structure.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "ConfigDataProperties": {
+ "description": "Configuration data properties",
+ "type": "object",
+ "properties": {
+ "exclude": {
+ "description": "Exclude the resource from Advisor evaluations. Valid values: False (default) or True.",
+ "type": "boolean"
+ },
+ "lowCpuThreshold": {
+ "description": "Minimum percentage threshold for Advisor low CPU utilization evaluation. Valid only for subscriptions. Valid values: 5 (default), 10, 15 or 20.",
+ "enum": [
+ "5",
+ "10",
+ "15",
+ "20"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "CpuThreshold",
+ "modelAsString": true
+ }
+ },
+ "duration": {
+ "description": "Minimum duration for Advisor low CPU utilization evaluation. Valid only for subscriptions. Valid values: 7 (default), 14, 21, 30, 60 or 90.",
+ "enum": [
+ "7",
+ "14",
+ "21",
+ "30",
+ "60",
+ "90"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "Duration",
+ "modelAsString": true
+ }
+ },
+ "digests": {
+ "description": "Advisor digest configuration. Valid only for subscriptions",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DigestConfig"
+ },
+ "x-ms-identifiers": [
+ "name"
+ ]
+ }
+ }
+ },
+ "DigestConfig": {
+ "description": "Advisor Digest configuration entity",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Name of digest configuration. Value is case-insensitive and must be unique within a subscription.",
+ "type": "string"
+ },
+ "actionGroupResourceId": {
+ "description": "Action group resource id used by digest.",
+ "type": "string"
+ },
+ "frequency": {
+ "format": "int32",
+ "description": "Frequency that digest will be triggered, in days. Value must be between 7 and 30 days inclusive.",
+ "type": "integer"
+ },
+ "categories": {
+ "description": "Categories to send digest for. If categories are not provided, then digest will be sent for all categories.",
+ "type": "array",
+ "items": {
+ "enum": [
+ "HighAvailability",
+ "Security",
+ "Performance",
+ "Cost",
+ "OperationalExcellence"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "Category",
+ "modelAsString": true
+ }
+ }
+ },
+ "language": {
+ "description": "Language for digest content body. Value must be ISO 639-1 code for one of Azure portal supported languages. Otherwise, it will be converted into one. Default value is English (en).",
+ "type": "string"
+ },
+ "state": {
+ "description": "State of digest configuration.",
+ "enum": [
+ "Active",
+ "Disabled"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "DigestConfigState",
+ "modelAsString": true
+ }
+ }
+ }
+ },
+ "ArmErrorResponse": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/ARMErrorResponseBody"
+ }
+ }
+ },
+ "ARMErrorResponseBody": {
+ "description": "ARM error response body.",
+ "type": "object",
+ "properties": {
+ "message": {
+ "description": "Gets or sets the string that describes the error in detail and provides debugging information.",
+ "type": "string"
+ },
+ "code": {
+ "description": "Gets or sets the string that can be used to programmatically identify the error.",
+ "type": "string"
+ }
+ }
+ },
+ "ResourceRecommendationBaseListResult": {
+ "description": "The list of Advisor recommendations.",
+ "type": "object",
+ "properties": {
+ "nextLink": {
+ "description": "The link used to get the next page of recommendations.",
+ "type": "string"
+ },
+ "value": {
+ "description": "The list of recommendations.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceRecommendationBase"
+ }
+ }
+ }
+ },
+ "ResourceRecommendationBase": {
+ "description": "Advisor Recommendation.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/RecommendationProperties",
+ "description": "The properties of the recommendation.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "RecommendationProperties": {
+ "description": "The properties of the recommendation.",
+ "type": "object",
+ "properties": {
+ "category": {
+ "description": "The category of the recommendation.",
+ "enum": [
+ "HighAvailability",
+ "Security",
+ "Performance",
+ "Cost",
+ "OperationalExcellence"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "category",
+ "modelAsString": true
+ }
+ },
+ "control": {
+ "description": "The sub-category of the recommendation.",
+ "enum": [
+ "HighAvailability",
+ "BusinessContinuity",
+ "DisasterRecovery",
+ "Scalability",
+ "MonitoringAndAlerting",
+ "ServiceUpgradeAndRetirement",
+ "Other",
+ "PrioritizedRecommendations",
+ "Personalized"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "control",
+ "modelAsString": true
+ }
+ },
+ "impact": {
+ "description": "The business impact of the recommendation.",
+ "enum": [
+ "High",
+ "Medium",
+ "Low"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "impact",
+ "modelAsString": true
+ }
+ },
+ "impactedField": {
+ "description": "The resource type identified by Advisor.",
+ "type": "string"
+ },
+ "impactedValue": {
+ "description": "The resource identified by Advisor.",
+ "type": "string"
+ },
+ "lastUpdated": {
+ "format": "date-time",
+ "description": "The most recent time that Advisor checked the validity of the recommendation.",
+ "type": "string"
+ },
+ "metadata": {
+ "description": "The recommendation metadata.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ },
+ "recommendationTypeId": {
+ "description": "The recommendation-type GUID.",
+ "type": "string"
+ },
+ "risk": {
+ "description": "The potential risk of not implementing the recommendation.",
+ "enum": [
+ "Error",
+ "Warning",
+ "None"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "risk",
+ "modelAsString": true
+ }
+ },
+ "shortDescription": {
+ "$ref": "#/definitions/ShortDescription",
+ "description": "A summary of the recommendation."
+ },
+ "suppressionIds": {
+ "description": "The list of snoozed and dismissed rules for the recommendation.",
+ "type": "array",
+ "items": {
+ "format": "uuid",
+ "type": "string"
+ }
+ },
+ "extendedProperties": {
+ "description": "Extended properties",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "resourceMetadata": {
+ "$ref": "#/definitions/ResourceMetadata",
+ "description": "Metadata of resource that was assessed"
+ },
+ "description": {
+ "description": "The detailed description of recommendation.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The label of recommendation.",
+ "type": "string"
+ },
+ "learnMoreLink": {
+ "description": "The link to learn more about recommendation and generation logic.",
+ "type": "string"
+ },
+ "potentialBenefits": {
+ "description": "The potential benefit of implementing recommendation.",
+ "type": "string"
+ },
+ "actions": {
+ "description": "The list of recommended actions to implement recommendation.",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ },
+ "x-ms-identifiers": []
+ },
+ "remediation": {
+ "description": "The automated way to apply recommendation.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ },
+ "exposedMetadataProperties": {
+ "description": "The recommendation metadata properties exposed to customer to provide additional information.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ },
+ "tracked": {
+ "type": "boolean",
+ "description": "If the Recommendation has Tracking enabled."
+ },
+ "trackedProperties": {
+ "$ref": "#/definitions/TrackedRecommendationProperties",
+ "description": "The properties of a tracked recommendation."
+ },
+ "review": {
+ "description": "The Review that this Recommendation belongs to.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The ARM Resource Id of the Review",
+ "type": "string"
+ },
+ "name": {
+ "description": "The Name of the Review",
+ "type": "string"
+ }
+ }
+ },
+ "resourceWorkload": {
+ "description": "The Workload that this Resource belongs to.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The Id of the Workload",
+ "type": "string"
+ },
+ "name": {
+ "description": "The Name of the Workload",
+ "type": "string"
+ }
+ }
+ },
+ "sourceSystem": {
+ "description": "The Source System that this Recommendation originated from.",
+ "type": "string"
+ },
+ "notes": {
+ "description": "Additional notes for the Recommendation",
+ "type": "string"
+ }
+ }
+ },
+ "ShortDescription": {
+ "description": "A summary of the recommendation.",
+ "type": "object",
+ "properties": {
+ "problem": {
+ "description": "The issue or opportunity identified by the recommendation and proposed solution.",
+ "type": "string"
+ },
+ "solution": {
+ "description": "The issue or opportunity identified by the recommendation and proposed solution.",
+ "type": "string"
+ }
+ }
+ },
+ "ResourceMetadata": {
+ "description": "Recommendation resource metadata",
+ "type": "object",
+ "properties": {
+ "resourceId": {
+ "description": "Azure resource Id of the assessed resource",
+ "type": "string"
+ },
+ "source": {
+ "description": "Source from which recommendation is generated",
+ "type": "string"
+ },
+ "action": {
+ "description": "The action to view resource.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
+ }
+ },
+ "singular": {
+ "description": "The singular user friendly name of resource type. eg: virtual machine",
+ "type": "string"
+ },
+ "plural": {
+ "description": "The plural user friendly name of resource type. eg: virtual machines",
+ "type": "string"
+ }
+ }
+ },
+ "OperationEntityListResult": {
+ "description": "The list of Advisor operations.",
+ "type": "object",
+ "properties": {
+ "nextLink": {
+ "description": "The link used to get the next page of operations.",
+ "type": "string"
+ },
+ "value": {
+ "description": "The list of operations.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/OperationEntity"
+ },
+ "x-ms-identifiers": [
+ "name"
+ ]
+ }
+ }
+ },
+ "OperationEntity": {
+ "description": "The operation supported by Advisor.",
+ "type": "object",
+ "properties": {
+ "name": {
+ "description": "Operation name: {provider}/{resource}/{operation}.",
+ "type": "string"
+ },
+ "display": {
+ "$ref": "#/definitions/OperationDisplayInfo",
+ "description": "The operation supported by Advisor."
+ }
+ }
+ },
+ "OperationDisplayInfo": {
+ "description": "The operation supported by Advisor.",
+ "type": "object",
+ "properties": {
+ "description": {
+ "description": "The description of the operation.",
+ "type": "string"
+ },
+ "operation": {
+ "description": "The action that users can perform, based on their permission level.",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Service provider: Microsoft Advisor.",
+ "type": "string"
+ },
+ "resource": {
+ "description": "Resource on which the operation is performed.",
+ "type": "string"
+ }
+ }
+ },
+ "SuppressionContract": {
+ "description": "The details of the snoozed or dismissed rule; for example, the duration, name, and GUID associated with the rule.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/Resource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/SuppressionProperties",
+ "description": "The properties of the suppression.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "SuppressionProperties": {
+ "description": "The properties of the suppression.",
+ "type": "object",
+ "properties": {
+ "suppressionId": {
+ "description": "The GUID of the suppression.",
+ "type": "string"
+ },
+ "ttl": {
+ "description": "The duration for which the suppression is valid.",
+ "type": "string"
+ },
+ "expirationTimeStamp": {
+ "readOnly": true,
+ "format": "date-time",
+ "description": "Gets or sets the expiration time stamp.",
+ "type": "string"
+ }
+ }
+ },
+ "SuppressionContractListResult": {
+ "description": "The list of Advisor suppressions.",
+ "type": "object",
+ "properties": {
+ "nextLink": {
+ "description": "The link used to get the next page of suppressions.",
+ "type": "string"
+ },
+ "value": {
+ "description": "The list of suppressions.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SuppressionContract"
+ }
+ }
+ }
+ },
+ "PredictionRequest": {
+ "description": "Parameters for predict recommendation.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PredictionRequestProperties",
+ "description": "Request properties for prediction recommendation.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "PredictionRequestProperties": {
+ "description": "Properties given for the predictor.",
+ "type": "object",
+ "properties": {
+ "predictionType": {
+ "description": "Type of the prediction.",
+ "enum": [
+ "PredictiveRightsizing"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "predictionType",
+ "modelAsString": true
+ }
+ },
+ "extendedProperties": {
+ "description": "Extended properties are arguments specific for each prediction type.",
+ "type": "object"
+ }
+ }
+ },
+ "AdvisorScoreResponse": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "The list of operations.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/advisorScoreEntity"
+ }
+ }
+ }
+ },
+ "PredictionResponse": {
+ "description": "Response used by predictions.",
+ "type": "object",
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/PredictionResponseProperties",
+ "description": "The properties of the prediction.",
+ "x-ms-client-flatten": true
+ }
+ },
+ "x-ms-azure-resource": true
+ },
+ "PredictionResponseProperties": {
+ "description": "Properties of the prediction",
+ "type": "object",
+ "properties": {
+ "extendedProperties": {
+ "description": "Extended properties",
+ "type": "object"
+ },
+ "predictionType": {
+ "description": "Type of the prediction.",
+ "enum": [
+ "PredictiveRightsizing"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "predictionType",
+ "modelAsString": true
+ }
+ },
+ "category": {
+ "description": "The category of the recommendation.",
+ "enum": [
+ "HighAvailability",
+ "Security",
+ "Performance",
+ "Cost",
+ "OperationalExcellence"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "category",
+ "modelAsString": true
+ }
+ },
+ "impact": {
+ "description": "The business impact of the recommendation.",
+ "enum": [
+ "High",
+ "Medium",
+ "Low"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "impact",
+ "modelAsString": true
+ }
+ },
+ "impactedField": {
+ "description": "The resource type identified by Advisor.",
+ "type": "string"
+ },
+ "lastUpdated": {
+ "format": "date-time",
+ "description": "The most recent time that Advisor checked the validity of the recommendation.",
+ "type": "string"
+ },
+ "shortDescription": {
+ "$ref": "#/definitions/ShortDescription",
+ "description": "A summary of the recommendation."
+ }
+ }
+ },
+ "scoreEntity": {
+ "description": "The details of Advisor Score",
+ "type": "object",
+ "properties": {
+ "date": {
+ "description": "The date score was calculated.",
+ "type": "string"
+ },
+ "score": {
+ "description": "The percentage score.",
+ "type": "number"
+ },
+ "consumptionUnits": {
+ "description": "The consumption units for the score.",
+ "type": "number"
+ },
+ "impactedResourceCount": {
+ "description": "The number of impacted resources.",
+ "type": "number"
+ },
+ "potentialScoreIncrease": {
+ "description": "The potential percentage increase in overall score at subscription level once all recommendations in this scope are implemented.",
+ "type": "number"
+ },
+ "categoryCount": {
+ "description": "The count of impacted categories.",
+ "type": "number",
+ "readOnly": true
+ }
+ }
+ },
+ "timeSeriesEntity": {
+ "description": "The historic data at different aggregation levels.",
+ "type": "array",
+ "items": {
+ "description": "The data from different aggregation levels.",
+ "type": "object",
+ "properties": {
+ "aggregationLevel": {
+ "description": "The aggregation level of the score. ",
+ "type": "string",
+ "enum": [
+ "week",
+ "day",
+ "month"
+ ],
+ "x-ms-enum": {
+ "name": "aggregated",
+ "modelAsString": true
+ }
+ },
+ "scoreHistory": {
+ "description": "The past score data",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/scoreEntity"
+ },
+ "x-ms-identifiers": []
+ }
+ }
+ },
+ "x-ms-identifiers": []
+ },
+ "advisorScoreEntity": {
+ "description": "The details of Advisor score for a single category.",
+ "type": "object",
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "description": "The Advisor score data.",
+ "type": "object",
+ "properties": {
+ "lastRefreshedScore": {
+ "description": "The details of latest available score.",
+ "$ref": "#/definitions/scoreEntity"
+ },
+ "timeSeries": {
+ "description": "The historic Advisor score data.",
+ "$ref": "#/definitions/timeSeriesEntity"
+ }
+ }
+ }
+ }
+ },
+ "TrackedRecommendationPropertiesPayload": {
+ "type": "object",
+ "properties": {
+ "properties": {
+ "type": "object",
+ "properties": {
+ "trackedProperties": {
+ "$ref": "#/definitions/TrackedRecommendationProperties"
+ }
+ }
+ }
+ }
+ },
+ "TrackedRecommendationProperties": {
+ "description": "The tracked properties of a Recommendation",
+ "type": "object",
+ "properties": {
+ "state": {
+ "description": "The state of the Recommendation",
+ "enum": [
+ "Approved",
+ "Rejected",
+ "Pending",
+ "InProgress",
+ "Postponed",
+ "Dismissed",
+ "Completed"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "state",
+ "modelAsString": true
+ }
+ },
+ "postponedTime": {
+ "description": "The time the Recommendation was postponed until.",
+ "type": "string",
+ "format": "date-time"
+ },
+ "reason": {
+ "description": "The reason the state of the Recommendation was changed.",
+ "enum": [
+ "ExcessiveInvestment",
+ "TooComplex",
+ "AlternativeSolution",
+ "Incompatible",
+ "Unclear",
+ "RiskAccepted"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "reason",
+ "modelAsString": true
+ }
+ },
+ "priority": {
+ "description": "The Priority of the Recommendation.",
+ "enum": [
+ "Critical",
+ "High",
+ "Medium",
+ "Low",
+ "Informational"
+ ],
+ "type": "string",
+ "x-ms-enum": {
+ "name": "priority",
+ "modelAsString": true
+ }
+ }
+ }
+ }
+ },
+ "parameters": {
+ "subscriptionIdParameter": {
+ "name": "subscriptionId",
+ "in": "path",
+ "description": "The Azure subscription ID.",
+ "required": true,
+ "type": "string"
+ },
+ "resourceUriParameter": {
+ "name": "resourceUri",
+ "in": "path",
+ "description": "The fully qualified Azure Resource Manager identifier of the resource to which the recommendation applies.",
+ "required": true,
+ "type": "string"
+ },
+ "apiVersionParameter": {
+ "name": "api-version",
+ "in": "query",
+ "description": "The version of the API to be used with the client request.",
+ "required": true,
+ "type": "string"
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "flow": "implicit",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ]
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/assessments.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/assessments.json
new file mode 100644
index 000000000000..f22bc51a00a9
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/assessments.json
@@ -0,0 +1,514 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2025-05-01-preview",
+ "title": "AdvisorManagementClient",
+ "description": "REST APIs for Azure Advisor Assessments"
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/assessments/{assessmentName}": {
+ "delete": {
+ "tags": [
+ "assessments"
+ ],
+ "summary": "Delete existing assessment.",
+ "description": "Delete a existing Azure Advisor assessment.",
+ "operationId": "Assessments_Delete",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/assessmentNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success"
+ },
+ "204": {
+ "description": "No Content"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "DeleteAssessment": {
+ "$ref": "./examples/DeleteAssessment.json"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "assessments"
+ ],
+ "summary": "Get existing assessment.",
+ "description": "Get a existing Azure Advisor assessment.",
+ "operationId": "Assessments_Get",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/assessmentNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/AssessmentResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "GetAssessment": {
+ "$ref": "./examples/GetAssessment.json"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "assessments"
+ ],
+ "summary": "Create/Overwrite Azure Advisor assessment.",
+ "description": "Create or Overwrite Azure Advisor assessment resource.",
+ "operationId": "Assessments_Put",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "name": "assessmentContract",
+ "in": "body",
+ "description": "The Azure Advisor assessment data structure.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/AssessmentResult"
+ }
+ },
+ {
+ "$ref": "#/parameters/assessmentNameParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully created/update assessment.",
+ "schema": {
+ "$ref": "#/definitions/AssessmentResult"
+ }
+ },
+ "201": {
+ "description": "Successfully created/update assessment.",
+ "schema": {
+ "$ref": "#/definitions/AssessmentResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "PutAssessment": {
+ "$ref": "./examples/PutAssessment.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/assessments": {
+ "get": {
+ "tags": [
+ "assessments"
+ ],
+ "summary": "Get list of assessment.",
+ "description": "Get list of Azure Advisor assessment.",
+ "operationId": "Assessments_List",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/$top"
+ },
+ {
+ "$ref": "#/parameters/$skiptoken"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/AssessmentListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "ListAssessments": {
+ "$ref": "./examples/ListAssessments.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/assessmentTypes": {
+ "get": {
+ "tags": [
+ "assessmentTypes"
+ ],
+ "summary": "Get assessment types list.",
+ "description": "Get list of Azure Advisor assessment types.",
+ "operationId": "AssessmentTypes_List",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/AssessmentTypeListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "GetAssessmentTypes": {
+ "$ref": "./examples/ListAssessmentTypes.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/workloads": {
+ "get": {
+ "tags": [
+ "workloads"
+ ],
+ "summary": "Get Workloads list.",
+ "description": "Get list of Workloads.",
+ "operationId": "Workloads_List",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/WorkloadListResult"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "GetWorkloads": {
+ "$ref": "./examples/ListWorkloads.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AssessmentResult": {
+ "description": "The Advisor assessment result data structure.",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Assessment Id",
+ "readOnly": true
+ },
+ "name": {
+ "type": "string",
+ "description": "Assessment Name",
+ "readOnly": true
+ },
+ "type": {
+ "type": "string",
+ "description": "Resource Type",
+ "readOnly": true
+ },
+ "systemData": {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/systemData",
+ "readOnly": true
+ },
+ "properties": {
+ "$ref": "#/definitions/AssessmentResultProperties",
+ "description": "The Advisor assessment result properties structure.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "AssessmentResultProperties": {
+ "description": "Assessment result properties.",
+ "type": "object",
+ "properties": {
+ "workloadId": {
+ "type": "string",
+ "description": "Workload Id."
+ },
+ "workloadName": {
+ "type": "string",
+ "description": "Workload Name.",
+ "readOnly": true
+ },
+ "assessmentId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Assessment Id."
+ },
+ "description": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Assessment Type Description."
+ },
+ "typeId": {
+ "type": "string",
+ "description": "Assessment Type Id."
+ },
+ "type": {
+ "type": "string",
+ "description": "Assessment Type.",
+ "readOnly": true
+ },
+ "score": {
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true,
+ "description": "Assessment Score."
+ },
+ "state": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Assessment State."
+ },
+ "typeVersion": {
+ "type": "string",
+ "description": "Assessment Type Version.",
+ "readOnly": true
+ },
+ "locale": {
+ "type": "string",
+ "description": "Assessment Type Locale."
+ }
+ }
+ },
+ "AssessmentListResult": {
+ "description": "The Advisor assessment list result data structure.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of Assessments.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AssessmentResult"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of Advisor assessments, if there are any."
+ }
+ }
+ },
+ "AssessmentTypeListResult": {
+ "description": "The Advisor assessment type list result data structure.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of Assessments Types.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AssessmentTypeResult"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of Advisor assessments types, if there are any."
+ }
+ }
+ },
+ "AssessmentTypeResult": {
+ "description": "The Advisor assessment type result data structure.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Assessment Type Id"
+ },
+ "title": {
+ "type": "string",
+ "description": "Assessment Type Title"
+ },
+ "description": {
+ "type": "string",
+ "description": "Assessment Type Description"
+ },
+ "locale": {
+ "type": "string",
+ "description": "Assessment Type Locale"
+ },
+ "version": {
+ "type": "string",
+ "description": "Assessment Type Version"
+ }
+ }
+ },
+ "WorkloadListResult": {
+ "description": "The Workload list result data structure.",
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of Workload.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/WorkloadResult"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of Workloads, if there are any."
+ }
+ }
+ },
+ "WorkloadResult": {
+ "description": "The Workload result data structure.",
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "Workload Id"
+ },
+ "name": {
+ "type": "string",
+ "description": "Workload Name"
+ },
+ "subscriptionId": {
+ "type": "string",
+ "description": "Subscription Id"
+ },
+ "subscriptionName": {
+ "type": "string",
+ "description": "Subscription Name"
+ }
+ }
+ }
+ },
+ "parameters": {
+ "assessmentNameParameter": {
+ "name": "assessmentName",
+ "in": "path",
+ "description": "Advisor assessment name.",
+ "required": true,
+ "type": "string",
+ "pattern": "^[-0-9a-zA-Z_]{1,63}$",
+ "x-ms-parameter-location": "method"
+ },
+ "$top": {
+ "name": "$top",
+ "in": "query",
+ "description": "Limit the result to the specified number of rows.",
+ "required": false,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "$skiptoken": {
+ "name": "$skiptoken",
+ "in": "query",
+ "description": "The page-continuation token to use with a paged version of this API.",
+ "required": false,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "flow": "implicit",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "scopes": {
+ "user_impersonation": "impersonate your user account"
+ }
+ }
+ },
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ]
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/CreateConfiguration.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/CreateConfiguration.json
new file mode 100644
index 000000000000..ff65bf8e104e
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/CreateConfiguration.json
@@ -0,0 +1,61 @@
+{
+ "parameters": {
+ "subscriptionId": "subscriptionId",
+ "resourceGroup": "resourceGroup",
+ "configurationName": "default",
+ "configContract": {
+ "properties": {
+ "lowCpuThreshold": "5",
+ "duration": "7",
+ "exclude": true,
+ "digests": [
+ {
+ "name": "digestConfigName",
+ "actionGroupResourceId": "/subscriptions/58c3f667-7a62-4bfd-a658-846493e9a493/resourceGroups/resourceGroup/providers/microsoft.insights/actionGroups/actionGroupName",
+ "frequency": 30,
+ "categories": [
+ "HighAvailability",
+ "Security",
+ "Performance",
+ "Cost",
+ "OperationalExcellence"
+ ],
+ "language": "en",
+ "state": "Active"
+ }
+ ]
+ }
+ },
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/58c3f667-7a62-4bfd-a658-846493e9a493/resourceGroups/resourceGroup/providers/Microsoft.Advisor/configurations/default",
+ "type": "Microsoft.Advisor/configurations",
+ "name": "default",
+ "properties": {
+ "lowCpuThreshold": "5",
+ "duration": "7",
+ "exclude": true,
+ "digests": [
+ {
+ "name": "digestConfigName",
+ "actionGroupResourceId": "/subscriptions/58c3f667-7a62-4bfd-a658-846493e9a493/resourceGroups/resourceGroup/providers/microsoft.insights/actionGroups/actionGroupName",
+ "frequency": 30,
+ "categories": [
+ "HighAvailability",
+ "Security",
+ "Performance",
+ "Cost",
+ "OperationalExcellence"
+ ],
+ "language": "en",
+ "state": "Active"
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/CreateSuppression.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/CreateSuppression.json
new file mode 100644
index 000000000000..175a7cc777ba
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/CreateSuppression.json
@@ -0,0 +1,34 @@
+{
+ "parameters": {
+ "resourceUri": "resourceUri",
+ "recommendationId": "recommendationId",
+ "name": "suppressionName1",
+ "suppressionContract": {
+ "properties": {
+ "ttl": "07:00:00:00"
+ }
+ },
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/resourceGroups/resourceGroup/providers/Microsoft.Compute/availabilitysets/armavset/providers/Microsoft.Advisor/recommendations/bd27ddc6-1312-4067-b4af-cbb45e32cfd7/suppressions/HardcodedSuppressionName",
+ "name": "suppressionName1",
+ "type": "Microsoft.Advisor/suppressions",
+ "properties": {
+ "suppressionId": "suppressionId",
+ "ttl": "07:00:00:00"
+ }
+ }
+ },
+ "404": {
+ "body": {
+ "error": {
+ "code": "NotFound",
+ "message": "Recommendation to be suppressed is not found. Subscription Id:{0} Recommendation Id:{1}"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/DeleteAssessment.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/DeleteAssessment.json
new file mode 100644
index 000000000000..75e793a5ea85
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/DeleteAssessment.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "assessmentName": "assessment1",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {},
+ "204": {
+ "description": "The Assessment is not found or has been deleted already."
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/DeleteSuppression.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/DeleteSuppression.json
new file mode 100644
index 000000000000..30dd1a6e5b24
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/DeleteSuppression.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "resourceUri": "resourceUri",
+ "recommendationId": "recommendationId",
+ "name": "suppressionName1",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "204": {}
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/EmptyResponse.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/EmptyResponse.json
new file mode 100644
index 000000000000..11048045df7c
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/EmptyResponse.json
@@ -0,0 +1,11 @@
+{
+ "parameters": {
+ "subscriptionId": "subscriptionId",
+ "operationId": "123e4567-e89b-12d3-a456-426614174000",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "202": {},
+ "204": {}
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GenerateRecommendations.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GenerateRecommendations.json
new file mode 100644
index 000000000000..eef253769d8b
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GenerateRecommendations.json
@@ -0,0 +1,14 @@
+{
+ "parameters": {
+ "subscriptionId": "subscriptionId",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "202": {
+ "headers": {
+ "Location": "https://management.azure.com/subscriptions/subscriptionId/providers/Microsoft.Microsoft.Advisor/generateRecommendations/recGUID?api-version=2025-05-01-preview",
+ "Retry-After": "60"
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GetAdvisorScoreDetail.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GetAdvisorScoreDetail.json
new file mode 100644
index 000000000000..daa3e6cb6ea1
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GetAdvisorScoreDetail.json
@@ -0,0 +1,155 @@
+{
+ "parameters": {
+ "subscriptionId": "a5481ee1-95df-47d0-85d4-dd3f0dfa19bc",
+ "name": "Cost",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/providers/Microsoft.Advisor/advisorScore/Cost",
+ "name": "Cost",
+ "type": "Microsoft.Advisor/advisorScore",
+ "properties": {
+ "lastRefreshedScore": {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0,
+ "categoryCount": 1
+ },
+ "timeSeries": [
+ {
+ "aggregationLevel": "day",
+ "scoreHistory": [
+ {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-06-24T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-06-23T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-06-22T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-06-21T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-06-20T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-06-19T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ }
+ ]
+ },
+ {
+ "aggregationLevel": "month",
+ "scoreHistory": [
+ {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-05-30T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-04-30T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ }
+ ]
+ },
+ {
+ "aggregationLevel": "week",
+ "scoreHistory": [
+ {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-06-21T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-06-14T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-06-07T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-05-31T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-05-24T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GetAssessment.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GetAssessment.json
new file mode 100644
index 000000000000..8baa7ae54bc0
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GetAssessment.json
@@ -0,0 +1,36 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "assessmentName": "assessment1",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/2f2edd23-bded-4c8d-bdef-1f32a9b83f84/providers/Microsoft.Advisor/assessments/MCWAR1",
+ "name": "MCWAR1",
+ "type": "Microsoft.Advisor/assessments",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "User",
+ "createdAt": "2020-04-03T04:41:33.937Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2020-04-03T04:41:33.937Z"
+ },
+ "properties": {
+ "workloadId": "f72b7134-800f-4f1b-a5bd-691e2140c7d5",
+ "workloadName": "Workload1",
+ "assessmentId": "fa5cb863-6ed4-4b6b-8c72-06f847cac885",
+ "description": "Evaluate your mission critical workloads by assessing the technical design",
+ "typeId": "23513bdb-e8a2-4f0b-8b6b-191ee1f52d34",
+ "type": "Mission Critical Well-Architected Review",
+ "typeVersion": "20221031192816.497",
+ "locale": "en-us",
+ "score": 60,
+ "state": "InProgress"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GetRecommendationDetailServiceGroupResourceUri.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GetRecommendationDetailServiceGroupResourceUri.json
new file mode 100644
index 000000000000..f5ac652c03a2
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GetRecommendationDetailServiceGroupResourceUri.json
@@ -0,0 +1,62 @@
+{
+ "parameters": {
+ "resourceUri": "providers/microsoft.management/serviceGroup/serviceGroupXYZ",
+ "recommendationId": "37c93209-4bfb-4f3b-8874-ccc718f7a467",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/providers/microsoft.management/serviceGroup/serviceGroupXYZ/providers/Microsoft.Advisor/recommendations/37c93209-4bfb-4f3b-8874-ccc718f7a467",
+ "name": "37c93209-4bfb-4f3b-8874-ccc718f7a467",
+ "properties": {
+ "category": "HighAvailability",
+ "impact": "Medium",
+ "impactedField": "Microsoft.Management/serviceGroup",
+ "impactedValue": "serviceGroupXYZ",
+ "lastUpdated": "2025-04-24T22:24:43.3216408Z",
+ "risk": "Warning",
+ "shortDescription": {
+ "problem": "To ensure high availability add one or more virtual machines to this availability set",
+ "solution": "To ensure high availability add one or more virtual machines to this availability set"
+ },
+ "resourceMetadata": {
+ "resourceId": "/providers/microsoft.management/serviceGroup/serviceGroupXYZ",
+ "action": {
+ "additionalProperties": {
+ "actionType": "Document",
+ "link": "https://link3",
+ "caption": "Enable Soft Delete to protect blob data",
+ "description": "Enable Soft Delete to protect blob data"
+ },
+ "metadata": {
+ "id": "/providers/microsoft.management/serviceGroup/serviceGroupXYZ"
+ }
+ },
+ "singular": "Availability set",
+ "plural": "Availability sets"
+ },
+ "actions": [
+ {
+ "additionalProperties": {
+ "actionType": "Document",
+ "link": "https://link1",
+ "caption": "Enable Soft Delete to protect blob data",
+ "description": "Enable Soft Delete to protect blob data"
+ },
+ "metadata": {
+ "id": "/providers/microsoft.management/serviceGroup/serviceGroupXYZ"
+ }
+ }
+ ],
+ "description": "After enabling Soft Delete, deleted data transitions to a soft deleted state instead of being permanently deleted. When data is overwritten, a soft deleted snapshot is generated to save the state of the overwritten data. You can configure the amount of time soft deleted data is recoverable before it permanently expires.",
+ "label": "Enable Soft Delete",
+ "learnMoreLink": "https://link2",
+ "potentialBenefits": "Save and recover your data when blobs or blob snapshots are accidentally overwritten or deleted",
+ "tracked": false
+ },
+ "type": "Microsoft.Advisor/recommendations"
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GetRecommendationDetailSubscriptionResourceUri.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GetRecommendationDetailSubscriptionResourceUri.json
new file mode 100644
index 000000000000..ec3c239fad66
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GetRecommendationDetailSubscriptionResourceUri.json
@@ -0,0 +1,70 @@
+{
+ "parameters": {
+ "resourceUri": "subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/resourceGroups/resourceGroup/providers/Microsoft.Compute/availabilitysets/armavset",
+ "recommendationId": "bd27ddc6-1312-4067-b4af-cbb45e32cfd7",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/resourceGroups/resourceGroup/providers/Microsoft.Compute/availabilitysets/armavset/providers/Microsoft.Advisor/recommendations/bd27ddc6-1312-4067-b4af-cbb45e32cfd7",
+ "name": "bd27ddc6-1312-4067-b4af-cbb45e32cfd7",
+ "properties": {
+ "category": "Security",
+ "impact": "Medium",
+ "impactedField": "Microsoft.Compute/availabilitysets",
+ "impactedValue": "armavset",
+ "lastUpdated": "2017-02-24T22:24:43.3216408Z",
+ "risk": "Warning",
+ "shortDescription": {
+ "problem": "Monitoring agent should be installed on your machines",
+ "solution": "Monitoring agent should be installed on your machines"
+ },
+ "remediation": {
+ "additionalProperties": {
+ "httpMethod": "POST",
+ "uri": "uri",
+ "details": "link to document"
+ }
+ },
+ "resourceMetadata": {
+ "resourceId": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/resourceGroups/resourceGroup/providers/Microsoft.Compute/availabilitysets/armavset",
+ "source": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/resourceGroups/resourceGroup/providers/Microsoft.Compute/availabilitysets/armavset/providers/Microsoft.Security/assessments/15e912ef-221a-4efe-80d2-df5671cdd5f5",
+ "action": {
+ "additionalProperties": {
+ "actionType": "Document",
+ "link": "https://link3",
+ "caption": "Enable Soft Delete to protect blob data",
+ "description": "Enable Soft Delete to protect blob data"
+ },
+ "metadata": {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/resourceGroups/resourceGroup/providers/Microsoft.Compute/availabilitysets/armavset"
+ }
+ },
+ "singular": "Availability set",
+ "plural": "Availability sets"
+ },
+ "actions": [
+ {
+ "additionalProperties": {
+ "actionType": "Document",
+ "link": "https://link1",
+ "caption": "Enable Soft Delete to protect blob data",
+ "description": "Enable Soft Delete to protect blob data"
+ },
+ "metadata": {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc"
+ }
+ }
+ ],
+ "description": "After enabling Soft Delete, deleted data transitions to a soft deleted state instead of being permanently deleted. When data is overwritten, a soft deleted snapshot is generated to save the state of the overwritten data. You can configure the amount of time soft deleted data is recoverable before it permanently expires.",
+ "label": "Enable Soft Delete",
+ "learnMoreLink": "https://link2",
+ "potentialBenefits": "Save and recover your data when blobs or blob snapshots are accidentally overwritten or deleted",
+ "tracked": false
+ },
+ "type": "Microsoft.Advisor/recommendations"
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GetRecommendationMetadataEntity.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GetRecommendationMetadataEntity.json
new file mode 100644
index 000000000000..8ee21b25a488
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GetRecommendationMetadataEntity.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "name": "types",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "providers/Microsoft.Advisor/metadata/recommendationType",
+ "name": "recommendationType",
+ "type": "Microsoft.Advisor/metadata",
+ "properties": {
+ "displayName": "Recommendation Type",
+ "dependsOn": [
+ "category",
+ "impact"
+ ],
+ "applicableScenarios": [
+ "Alerts"
+ ],
+ "supportedValues": [
+ {
+ "id": "6a2b1e70-bd4c-4163-86de-5243d7ac05ee",
+ "displayName": "Upgrade your SKU or add more instances to ensure fault tolerance"
+ },
+ {
+ "id": "da6630fb-4286-4996-92a3-a43f5f26dd34",
+ "displayName": "Delete ExpressRoute circuits in the provider status of Not Provisioned"
+ }
+ ]
+ }
+ }
+ },
+ "404": {
+ "body": {
+ "code": "NotFound",
+ "message": "Unknown metadata name"
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GetSuppressionDetail.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GetSuppressionDetail.json
new file mode 100644
index 000000000000..1926a7237116
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/GetSuppressionDetail.json
@@ -0,0 +1,30 @@
+{
+ "parameters": {
+ "resourceUri": "resourceUri",
+ "recommendationId": "recommendationId",
+ "name": "suppressionName1",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/resourceGroups/resourceGroup/providers/Microsoft.Compute/availabilitysets/armavset/providers/Microsoft.Advisor/recommendations/recommendationId/suppressions/suppressionName1",
+ "name": "suppressionName1",
+ "type": "Microsoft.Advisor/suppressions",
+ "properties": {
+ "suppressionId": "suppressionId1",
+ "ttl": "7.00:00:00",
+ "expirationTimeStamp": "2020-10-25T22:24:43.3216408Z"
+ }
+ }
+ },
+ "404": {
+ "body": {
+ "error": {
+ "code": "NotFound",
+ "message": "Suppression name is not specified or Suppression Id not found"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListAdvisorScore.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListAdvisorScore.json
new file mode 100644
index 000000000000..31f552fff9db
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListAdvisorScore.json
@@ -0,0 +1,351 @@
+{
+ "parameters": {
+ "subscriptionId": "a5481ee1-95df-47d0-85d4-dd3f0dfa19bc",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/providers/Microsoft.Advisor/advisorScore/Cost",
+ "name": "Cost",
+ "type": "Microsoft.Advisor/advisorScore",
+ "properties": {
+ "lastRefreshedScore": {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0,
+ "categoryCount": 2
+ },
+ "timeSeries": [
+ {
+ "aggregationLevel": "day",
+ "scoreHistory": [
+ {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-06-24T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-06-23T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-06-22T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-06-21T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-06-20T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-06-19T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ }
+ ]
+ },
+ {
+ "aggregationLevel": "month",
+ "scoreHistory": [
+ {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-05-30T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-04-30T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ }
+ ]
+ },
+ {
+ "aggregationLevel": "week",
+ "scoreHistory": [
+ {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-06-21T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-06-14T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-06-07T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-05-31T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ },
+ {
+ "date": "2020-05-24T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/providers/Microsoft.Advisor/advisorScore/Performance",
+ "name": "Performance",
+ "type": "Microsoft.Advisor/advisorScore",
+ "properties": {
+ "lastRefreshedScore": {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0,
+ "categoryCount": 2
+ },
+ "timeSeries": [
+ {
+ "aggregationLevel": "day",
+ "scoreHistory": [
+ {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ }
+ ]
+ },
+ {
+ "aggregationLevel": "month",
+ "scoreHistory": [
+ {
+ "date": "2020-05-30T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ }
+ ]
+ },
+ {
+ "aggregationLevel": "week",
+ "scoreHistory": [
+ {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/providers/Microsoft.Advisor/advisorScore/Security",
+ "name": "Security",
+ "type": "Microsoft.Advisor/advisorScore",
+ "properties": {
+ "lastRefreshedScore": {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0,
+ "categoryCount": 3
+ },
+ "timeSeries": [
+ {
+ "aggregationLevel": "day",
+ "scoreHistory": [
+ {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ }
+ ]
+ },
+ {
+ "aggregationLevel": "month",
+ "scoreHistory": [
+ {
+ "date": "2020-05-30T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ }
+ ]
+ },
+ {
+ "aggregationLevel": "week",
+ "scoreHistory": [
+ {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/providers/Microsoft.Advisor/advisorScore/HighAvailability",
+ "name": "HighAvailability",
+ "type": "Microsoft.Advisor/advisorScore",
+ "properties": {
+ "lastRefreshedScore": {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0,
+ "categoryCount": 2
+ },
+ "timeSeries": [
+ {
+ "aggregationLevel": "day",
+ "scoreHistory": [
+ {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/providers/Microsoft.Advisor/advisorScore/OperationalExcellence",
+ "name": "OperationalExcellence",
+ "type": "Microsoft.Advisor/advisorScore",
+ "properties": {
+ "lastRefreshedScore": {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0,
+ "categoryCount": 1
+ },
+ "timeSeries": [
+ {
+ "aggregationLevel": "day",
+ "scoreHistory": [
+ {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/providers/Microsoft.Advisor/advisorScore/Advisor",
+ "name": "Advisor",
+ "type": "Microsoft.Advisor/advisorScore",
+ "properties": {
+ "lastRefreshedScore": {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0,
+ "categoryCount": 1
+ },
+ "timeSeries": [
+ {
+ "aggregationLevel": "day",
+ "scoreHistory": [
+ {
+ "date": "2020-06-25T00:00:00Z",
+ "score": 1,
+ "consumptionUnits": 12.24521,
+ "impactedResourceCount": 1,
+ "potentialScoreIncrease": 0
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListAssessmentTypes.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListAssessmentTypes.json
new file mode 100644
index 000000000000..57ea83f75f2c
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListAssessmentTypes.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "23513bdb-e8a2-4f0b-8b6b-191ee1f52d34",
+ "title": "Mission Critical | Well-Architected Review",
+ "description": "Evaluate your mission critical workloads by assessing the technical design areas and overall operational effectiveness.",
+ "locale": "en-us",
+ "version": "20221031192816.497"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListAssessments.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListAssessments.json
new file mode 100644
index 000000000000..b62432be1f09
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListAssessments.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "assessmentName": "MCWAR1",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/2f2edd23-bded-4c8d-bdef-1f32a9b83f84/providers/Microsoft.Advisor/assessments/MCWAR1",
+ "name": "MCWAR1",
+ "type": "Microsoft.Advisor/assessments",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "User",
+ "createdAt": "2020-04-03T04:41:33.937Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2020-04-03T04:41:33.937Z"
+ },
+ "properties": {
+ "workloadId": "f72b7134-800f-4f1b-a5bd-691e2140c7d5",
+ "workloadName": "Workload1",
+ "assessmentId": "fa5cb863-6ed4-4b6b-8c72-06f847cac885",
+ "description": "Evaluate your mission critical workloads by assessing the technical design",
+ "typeId": "23513bdb-e8a2-4f0b-8b6b-191ee1f52d34",
+ "type": "Mission Critical Well-Architected Review",
+ "typeVersion": "20221031192816.497",
+ "locale": "en-us",
+ "score": 60,
+ "state": "InProgress"
+ }
+ }
+ ],
+ "nextLink": "https://management.azure.com/subscriptions/2f2edd23-bded-4c8d-bdef-1f32a9b83f84/providers/Microsoft.Advisor/assessments?api-version=2023-07-01&$top=10&$skiptoken=skiptoken"
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListConfigurations.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListConfigurations.json
new file mode 100644
index 000000000000..de7a6cfd6e95
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListConfigurations.json
@@ -0,0 +1,42 @@
+{
+ "parameters": {
+ "subscriptionId": "subscriptionId",
+ "resourceGroup": "resourceGroup",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/subscriptionId/resourceGroups/resourceGroup/providers/Microsoft.Advisor/configurations/default",
+ "type": "Microsoft.Advisor/configurations",
+ "name": "default",
+ "properties": {
+ "lowCpuThreshold": "5",
+ "duration": "7",
+ "exclude": false,
+ "digests": [
+ {
+ "name": "digestConfigName",
+ "actionGroupResourceId": "/subscriptions/subscriptionId/resourceGroups/resourceGroup/providers/microsoft.insights/actionGroups/actionGroupName",
+ "frequency": 30,
+ "categories": [
+ "HighAvailability",
+ "Security",
+ "Performance",
+ "Cost",
+ "OperationalExcellence"
+ ],
+ "language": "en",
+ "state": "Active"
+ }
+ ]
+ }
+ }
+ ],
+ "nextLink": "string"
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListRecommendationMetadata.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListRecommendationMetadata.json
new file mode 100644
index 000000000000..35416cd32450
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListRecommendationMetadata.json
@@ -0,0 +1,85 @@
+{
+ "parameters": {
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nextLink": "string",
+ "value": [
+ {
+ "id": "providers/Microsoft.Advisor/metadata/recommendationType",
+ "name": "recommendationType",
+ "type": "Microsoft.Advisor/metadata",
+ "properties": {
+ "displayName": "Recommendation Type",
+ "dependsOn": [
+ "category",
+ "impact"
+ ],
+ "applicableScenarios": [
+ "Alerts"
+ ],
+ "supportedValues": [
+ {
+ "id": "6a2b1e70-bd4c-4163-86de-5243d7ac05ee",
+ "displayName": "Upgrade your SKU or add more instances to ensure fault tolerance"
+ },
+ {
+ "id": "da6630fb-4286-4996-92a3-a43f5f26dd34",
+ "displayName": "Delete ExpressRoute circuits in the provider status of Not Provisioned"
+ }
+ ]
+ }
+ },
+ {
+ "id": "providers/Microsoft.Advisor/metadata/recommendationCategory",
+ "name": "recommendationCategory",
+ "type": "Microsoft.Advisor/metadata",
+ "properties": {
+ "displayName": "Category",
+ "dependsOn": null,
+ "applicableScenarios": [
+ "Alerts"
+ ],
+ "supportedValues": [
+ {
+ "id": "Cost",
+ "displayName": "Cost"
+ },
+ {
+ "id": "Performance",
+ "displayName": "Performance"
+ }
+ ]
+ }
+ },
+ {
+ "id": "providers/Microsoft.Advisor/metadata/recommendationImpact",
+ "name": "recommendationImpact",
+ "type": "Microsoft.Advisor/metadata",
+ "properties": {
+ "displayName": "Impact",
+ "dependsOn": null,
+ "applicableScenarios": null,
+ "supportedValues": [
+ {
+ "id": "High",
+ "displayName": "High"
+ },
+ {
+ "id": "Medium",
+ "displayName": "Medium"
+ },
+ {
+ "id": "Low",
+ "displayName": "Low"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListRecommendationsServiceGroupResourceUri.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListRecommendationsServiceGroupResourceUri.json
new file mode 100644
index 000000000000..02ae07c5f12b
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListRecommendationsServiceGroupResourceUri.json
@@ -0,0 +1,118 @@
+{
+ "parameters": {
+ "resourceUri": "providers/microsoft.management/serviceGroups/serviceGroupXYZ",
+ "$top": 10,
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nextLink": "https://management.azure.com/providers/microsoft.management/serviceGroup/serviceGroupXYZ/providers/Microsoft.Advisor/recommendations?api-version=2025-05-01-preview&$top=10&$skiptoken=skiptoken",
+ "value": [
+ {
+ "id": "/providers/microsoft.management/serviceGroup/serviceGroupXYZ/providers/Microsoft.Advisor/recommendations/37c93209-4bfb-4f3b-8874-ccc718f7a467",
+ "name": "37c93209-4bfb-4f3b-8874-ccc718f7a467",
+ "type": "Microsoft.Advisor/recommendations",
+ "properties": {
+ "category": "HighAvailability",
+ "impact": "Medium",
+ "impactedField": "Microsoft.Management/serviceGroup",
+ "impactedValue": "serviceGroupXYZ",
+ "lastUpdated": "2025-04-24T22:24:43.3216408Z",
+ "risk": "Warning",
+ "shortDescription": {
+ "problem": "To ensure high availability add one or more virtual machines to this availability set",
+ "solution": "To ensure high availability add one or more virtual machines to this availability set"
+ },
+ "resourceMetadata": {
+ "resourceId": "/providers/microsoft.management/serviceGroup/serviceGroupXYZ",
+ "action": {
+ "additionalProperties": {
+ "actionType": "Document",
+ "link": "https://link3",
+ "caption": "Enable Soft Delete to protect blob data",
+ "description": "Enable Soft Delete to protect blob data"
+ },
+ "metadata": {
+ "id": "/providers/microsoft.management/serviceGroup/serviceGroupXYZ"
+ }
+ },
+ "singular": "Availability set",
+ "plural": "Availability sets"
+ },
+ "actions": [
+ {
+ "additionalProperties": {
+ "actionType": "Document",
+ "link": "https://link1",
+ "caption": "Enable Soft Delete to protect blob data",
+ "description": "Enable Soft Delete to protect blob data"
+ },
+ "metadata": {
+ "id": "/providers/microsoft.management/serviceGroup/serviceGroupXYZ"
+ }
+ }
+ ],
+ "description": "After enabling Soft Delete, deleted data transitions to a soft deleted state instead of being permanently deleted. When data is overwritten, a soft deleted snapshot is generated to save the state of the overwritten data. You can configure the amount of time soft deleted data is recoverable before it permanently expires.",
+ "label": "Enable Soft Delete",
+ "learnMoreLink": "https://link2",
+ "potentialBenefits": "Save and recover your data when blobs or blob snapshots are accidentally overwritten or deleted",
+ "tracked": false
+ }
+ },
+ {
+ "id": "/providers/microsoft.management/serviceGroup/serviceGroupXYZ/providers/Microsoft.Advisor/recommendations/de0eb863-583e-ac10-eb7f-cb0f6b570e2b",
+ "name": "de0eb863-583e-ac10-eb7f-cb0f6b570e2b",
+ "type": "Microsoft.Advisor/recommendations",
+ "properties": {
+ "category": "HighAvailability",
+ "impact": "Medium",
+ "impactedField": "Microsoft.Management/serviceGroup",
+ "impactedValue": "serviceGroupXYZ",
+ "lastUpdated": "2025-04-24T22:24:43.3216408Z",
+ "risk": "Warning",
+ "shortDescription": {
+ "problem": "To ensure high availability add one or more virtual machines to this availability set",
+ "solution": "To ensure high availability add one or more virtual machines to this availability set"
+ },
+ "resourceMetadata": {
+ "resourceId": "/providers/microsoft.management/serviceGroup/serviceGroupXYZ",
+ "action": {
+ "additionalProperties": {
+ "actionType": "Document",
+ "link": "https://link3",
+ "caption": "Enable Soft Delete to protect blob data",
+ "description": "Enable Soft Delete to protect blob data"
+ },
+ "metadata": {
+ "id": "/providers/microsoft.management/serviceGroup/serviceGroupXYZ"
+ }
+ },
+ "singular": "Availability set",
+ "plural": "Availability sets"
+ },
+ "actions": [
+ {
+ "additionalProperties": {
+ "actionType": "Document",
+ "link": "https://link1",
+ "caption": "Enable Soft Delete to protect blob data",
+ "description": "Enable Soft Delete to protect blob data"
+ },
+ "metadata": {
+ "id": "/providers/microsoft.management/serviceGroup/serviceGroupXYZ"
+ }
+ }
+ ],
+ "description": "After enabling Soft Delete, deleted data transitions to a soft deleted state instead of being permanently deleted. When data is overwritten, a soft deleted snapshot is generated to save the state of the overwritten data. You can configure the amount of time soft deleted data is recoverable before it permanently expires.",
+ "label": "Enable Soft Delete",
+ "learnMoreLink": "https://link2",
+ "potentialBenefits": "Save and recover your data when blobs or blob snapshots are accidentally overwritten or deleted",
+ "tracked": false
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListRecommendationsSubscriptionResourceUri.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListRecommendationsSubscriptionResourceUri.json
new file mode 100644
index 000000000000..92e7495ce06c
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListRecommendationsSubscriptionResourceUri.json
@@ -0,0 +1,142 @@
+{
+ "parameters": {
+ "subscriptionId": "a5481ee1-95df-47d0-85d4-dd3f0dfa19bc",
+ "$top": 10,
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nextLink": "https://management.azure.com/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/providers/Microsoft.Advisor/recommendations?api-version=2025-05-01-preview&$top=10&$skiptoken=skiptoken",
+ "value": [
+ {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/resourceGroups/resourceGroup/providers/Microsoft.Compute/availabilitysets/armavset/providers/Microsoft.Advisor/recommendations/bd27ddc6-1312-4067-b4af-cbb45e32cfd7",
+ "name": "bd27ddc6-1312-4067-b4af-cbb45e32cfd7",
+ "type": "Microsoft.Advisor/recommendations",
+ "properties": {
+ "category": "HighAvailability",
+ "impact": "Medium",
+ "impactedField": "Microsoft.Compute/availabilitySets",
+ "impactedValue": "armavset",
+ "lastUpdated": "2017-02-24T22:24:43.3216408Z",
+ "risk": "Warning",
+ "remediation": {
+ "additionalProperties": {
+ "httpMethod": "POST",
+ "uri": "uri",
+ "details": "link to document"
+ }
+ },
+ "shortDescription": {
+ "problem": "To ensure high availability add one or more virtual machines to this availability set",
+ "solution": "To ensure high availability add one or more virtual machines to this availability set"
+ },
+ "resourceMetadata": {
+ "resourceId": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/resourceGroups/resourceGroup/providers/Microsoft.Compute/availabilitysets/armavset",
+ "action": {
+ "additionalProperties": {
+ "actionType": "Document",
+ "link": "https://link3",
+ "caption": "Enable Soft Delete to protect blob data",
+ "description": "Enable Soft Delete to protect blob data"
+ },
+ "metadata": {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc"
+ }
+ },
+ "singular": "Availability set",
+ "plural": "Availability sets"
+ },
+ "actions": [
+ {
+ "additionalProperties": {
+ "actionType": "Document",
+ "link": "https://link1",
+ "caption": "Enable Soft Delete to protect blob data",
+ "description": "Enable Soft Delete to protect blob data"
+ },
+ "metadata": {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc"
+ }
+ }
+ ],
+ "description": "After enabling Soft Delete, deleted data transitions to a soft deleted state instead of being permanently deleted. When data is overwritten, a soft deleted snapshot is generated to save the state of the overwritten data. You can configure the amount of time soft deleted data is recoverable before it permanently expires.",
+ "label": "Enable Soft Delete",
+ "learnMoreLink": "https://link2",
+ "potentialBenefits": "Save and recover your data when blobs or blob snapshots are accidentally overwritten or deleted",
+ "tracked": false
+ }
+ },
+ {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/resourceGroups/resourceGroup/providers/Microsoft.Compute/virtualMachines/xyz/providers/Microsoft.Advisor/recommendations/1b266c91-3a92-4423-8aa2-ee13a6d90f47",
+ "name": "1b266c91-3a92-4423-8aa2-ee13a6d90f47",
+ "type": "Microsoft.Advisor/recommendations",
+ "properties": {
+ "category": "Security",
+ "impact": "Medium",
+ "impactedField": "Microsoft.Compute/virtualMachines",
+ "impactedValue": "xyz",
+ "lastUpdated": "2017-02-24T22:24:43.3216408Z",
+ "risk": "Warning",
+ "shortDescription": {
+ "problem": "Monitoring agent should be installed on your machines",
+ "solution": "Monitoring agent should be installed on your machines"
+ },
+ "resourceMetadata": {
+ "resourceId": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/resourceGroups/resourceGroup/providers/Microsoft.Compute/virtualMachines/xyz",
+ "source": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/resourceGroups/resourceGroup/providers/Microsoft.Compute/virtualMachines/xyz/providers/Microsoft.Security/assessments/15e912ef-221a-4efe-80d2-df5671cdd5f5",
+ "action": {
+ "additionalProperties": {
+ "actionType": "Document",
+ "link": "https://link3",
+ "caption": "Enable Soft Delete to protect blob data",
+ "description": "Enable Soft Delete to protect blob data"
+ },
+ "metadata": {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc"
+ }
+ },
+ "singular": "Virtual machine",
+ "plural": "Virtual machines"
+ },
+ "actions": [
+ {
+ "additionalProperties": {
+ "actionType": "Document",
+ "link": "https://link1",
+ "caption": "Enable Soft Delete to protect blob data",
+ "description": "Enable Soft Delete to protect blob data"
+ },
+ "metadata": {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc"
+ }
+ }
+ ],
+ "description": "Monitoring agent should be installed on your machines.",
+ "label": "Enable monitoring agent",
+ "learnMoreLink": "https://link2",
+ "potentialBenefits": "Protect and monitor machine",
+ "tracked": true,
+ "trackedProperties": {
+ "state": "Postponed",
+ "postponedTime": "2023-10-01T00:00:00Z",
+ "reason": "RiskAccepted",
+ "priority": "High"
+ },
+ "resourceWorkload": {
+ "id": "0560dbdb-f207-4690-b4ba-1fc0c3a0f082",
+ "name": "Critical VM Workload"
+ },
+ "review": {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/providers/Microsoft.Advisor/assessments/MCWAR1",
+ "name": "Monthly WAF Review 09/23"
+ },
+ "sourceSystem": "CxObserve",
+ "notes": "This is a note"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListSuppressions.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListSuppressions.json
new file mode 100644
index 000000000000..1f308d5479d0
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListSuppressions.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "subscriptionId": "a5481ee1-95df-47d0-85d4-dd3f0dfa19bc",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "nextLink": "https://management.azure.com/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/providers/microsoft.Advisor/suppressions?api-version=2025-05-01-preview&$top=3&$skiptoken=skiptoken",
+ "value": [
+ {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/resourceGroups/resourceGroup/providers/Microsoft.Compute/availabilitysets/armavset/providers/Microsoft.Advisor/recommendations/1b266c91-3a92-4423-8aa2-ee13a6d90f47/suppressions/HardcodedSuppressionName",
+ "name": "HardcodedSuppressionName",
+ "type": "Microsoft.Advisor/suppressions",
+ "properties": {
+ "suppressionId": "58403b0e-113b-e428-d6f7-2a524380b955",
+ "ttl": "7.00:00:00",
+ "expirationTimeStamp": "2022-10-24T22:24:43.3216408Z"
+ }
+ },
+ {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/resourceGroups/resourceGroup/providers/Microsoft.Compute/virtualMachines/xyz/providers/Microsoft.Advisor/recommendations/3385b5d0-b8cc-bdcf-0e0d-b5a3d1e9b93b/suppressions/HardcodedSuppressionName",
+ "name": "HardcodedSuppressionName",
+ "type": "Microsoft.Advisor/suppressions",
+ "properties": {
+ "suppressionId": "72a23574-d49a-84d0-0a7d-fb3fe6cba16b",
+ "ttl": "7.00:00:00",
+ "expirationTimeStamp": "2022-10-25T22:24:43.3216408Z"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListWorkloads.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListWorkloads.json
new file mode 100644
index 000000000000..104fa48388ba
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ListWorkloads.json
@@ -0,0 +1,20 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "d8004ffb-de76-4bc4-b0bc-32880a031843",
+ "name": "Workload1",
+ "subscriptionId": "2f2edd23-bded-4c8d-bdef-1f32a9b83f84",
+ "subscriptionName": "Subscription1"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/OperationsList.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/OperationsList.json
new file mode 100644
index 000000000000..ef2082b4b0f5
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/OperationsList.json
@@ -0,0 +1,21 @@
+{
+ "parameters": {
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "name": "Microsoft.Advisor/prediction",
+ "display": {
+ "provider": "Microsoft Advisor",
+ "resource": "Prediction",
+ "description": "Predicts a recommendation."
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/Predict.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/Predict.json
new file mode 100644
index 000000000000..202f5a669cb9
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/Predict.json
@@ -0,0 +1,46 @@
+{
+ "parameters": {
+ "subscriptionId": "subscriptionId",
+ "predictionRequest": {
+ "properties": {
+ "predictionType": "PredictiveRightsizing",
+ "extendedProperties": {
+ "region": "CentralUS",
+ "deploymentType": "Linux_IaaS_Software_Store",
+ "sku": "Standard_Dv4",
+ "type": "iaas",
+ "numberOfInstances": 10
+ }
+ }
+ },
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "properties": {
+ "predictionType": "PredictiveRightsizing",
+ "extendedProperties": {
+ "region": "CentralUS",
+ "deploymentType": "Linux_IaaS_Software_Store",
+ "sku": "Standard_Dv4",
+ "type": "iaas",
+ "numberOfInstances": 10,
+ "prediction": {
+ "recommendedSku": "Standard_Dv2",
+ "numberOfInstances": 8,
+ "confidence": 0.9
+ }
+ },
+ "category": "Cost",
+ "impact": "Low",
+ "impactedField": "Microsoft.Compute/virtualMachines",
+ "lastUpdated": "2022-02-14T14:47:18.436Z",
+ "shortDescription": {
+ "solution": "We recommend using 8 instances of type Standard_Dv2."
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/PutAssessment.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/PutAssessment.json
new file mode 100644
index 000000000000..d6c3994e82a0
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/PutAssessment.json
@@ -0,0 +1,70 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "api-version": "2025-05-01-preview",
+ "assessmentName": "assessment1",
+ "assessmentContract": {
+ "properties": {
+ "workloadId": "f72b7134-800f-4f1b-a5bd-691e2140c7d5",
+ "typeId": "23513bdb-e8a2-4f0b-8b6b-191ee1f52d34",
+ "locale": "en-us"
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/2f2edd23-bded-4c8d-bdef-1f32a9b83f84/providers/Microsoft.Advisor/assessments/MCWAR1",
+ "name": "MCWAR1",
+ "type": "Microsoft.Advisor/assessments",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "User",
+ "createdAt": "2020-04-03T04:41:33.937Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2020-04-03T04:41:33.937Z"
+ },
+ "properties": {
+ "workloadId": "f72b7134-800f-4f1b-a5bd-691e2140c7d5",
+ "workloadName": "Workload1",
+ "assessmentId": "fa5cb863-6ed4-4b6b-8c72-06f847cac885",
+ "description": "Evaluate your mission critical workloads by assessing the technical design",
+ "typeId": "23513bdb-e8a2-4f0b-8b6b-191ee1f52d34",
+ "type": "Mission Critical Well-Architected Review",
+ "typeVersion": "20221031192816.497",
+ "locale": "en-us",
+ "score": 60,
+ "state": "Inprogress"
+ }
+ }
+ },
+ "201": {
+ "body": {
+ "id": "/subscriptions/2f2edd23-bded-4c8d-bdef-1f32a9b83f84/providers/Microsoft.Advisor/assessments/MCWAR1",
+ "name": "MCWAR1",
+ "type": "Microsoft.Advisor/assessments",
+ "systemData": {
+ "createdBy": "string",
+ "createdByType": "User",
+ "createdAt": "2020-04-03T04:41:33.937Z",
+ "lastModifiedBy": "string",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2020-04-03T04:41:33.937Z"
+ },
+ "properties": {
+ "workloadId": "f72b7134-800f-4f1b-a5bd-691e2140c7d5",
+ "workloadName": "Workload1",
+ "assessmentId": "fa5cb863-6ed4-4b6b-8c72-06f847cac885",
+ "description": "Evaluate your mission critical workloads by assessing the technical design",
+ "typeId": "23513bdb-e8a2-4f0b-8b6b-191ee1f52d34",
+ "type": "Mission Critical Well-Architected Review",
+ "typeVersion": "20221031192816.497",
+ "locale": "en-us",
+ "score": 60,
+ "state": "Inprogress"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ResiliencyReviewsGet.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ResiliencyReviewsGet.json
new file mode 100644
index 000000000000..5cf06d8b3e07
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ResiliencyReviewsGet.json
@@ -0,0 +1,33 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "reviewId": "11111111-1111-2222-3333-444444444444",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/providers/Microsoft.Advisor/ResiliencyReview/11111111-1111-2222-3333-444444444444",
+ "name": "11111111-1111-2222-3333-444444444444",
+ "type": "Microsoft.Advisor/ResiliencyReview",
+ "systemData": {
+ "createdBy": "user-identity",
+ "createdByType": "User",
+ "createdAt": "2023-06-30T09:41:00Z",
+ "lastModifiedBy": "user-identity",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2023-06-30T09:41:00Z"
+ },
+ "properties": {
+ "reviewName": "review name xyz",
+ "workloadName": "workload name xyz",
+ "reviewStatus": "Triaged",
+ "recommendationsCount": 4,
+ "publishedAt": "2023-06-30T09:41:00Z",
+ "updatedAt": "2023-06-30T09:41:00Z"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ResiliencyReviewsList.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ResiliencyReviewsList.json
new file mode 100644
index 000000000000..4e9281977bf4
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/ResiliencyReviewsList.json
@@ -0,0 +1,58 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {},
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/providers/Microsoft.Advisor/ResiliencyReview/11111111-1111-2222-3333-444444444444",
+ "name": "11111111-1111-2222-3333-444444444444",
+ "type": "Microsoft.Advisor/ResiliencyReview",
+ "systemData": {
+ "createdBy": "user-identity",
+ "createdByType": "User",
+ "createdAt": "2023-06-30T09:41:00Z",
+ "lastModifiedBy": "user-identity",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2023-06-30T09:41:00Z"
+ },
+ "properties": {
+ "reviewName": "review name xyz",
+ "workloadName": "workload name xyz",
+ "reviewStatus": "Triaged",
+ "recommendationsCount": 4,
+ "publishedAt": "2023-06-30T09:41:00Z",
+ "updatedAt": "2023-06-30T09:41:00Z"
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/providers/Microsoft.Advisor/ResiliencyReview/11111111-1111-2222-3333-555555555555",
+ "name": "11111111-1111-2222-3333-555555555555",
+ "type": "Microsoft.Advisor/ResiliencyReview",
+ "systemData": {
+ "createdBy": "user-identity",
+ "createdByType": "User",
+ "createdAt": "2023-06-30T09:41:00Z",
+ "lastModifiedBy": "user-identity",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2023-06-30T09:41:00Z"
+ },
+ "properties": {
+ "reviewName": "review name abc",
+ "workloadName": "workload name abc",
+ "reviewStatus": "Triaged",
+ "recommendationsCount": 5,
+ "publishedAt": "2023-06-30T09:41:00Z",
+ "updatedAt": "2023-06-30T09:41:00Z"
+ }
+ }
+ ],
+ "nextLink": ""
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageRecommendationsApprove.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageRecommendationsApprove.json
new file mode 100644
index 000000000000..7895dbf679d6
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageRecommendationsApprove.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "reviewId": "11111111-1111-2222-3333-444444444444",
+ "recommendationId": "22222222-1111-2222-3333-444444444444",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {}
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageRecommendationsGet.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageRecommendationsGet.json
new file mode 100644
index 000000000000..33d8f6428bb6
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageRecommendationsGet.json
@@ -0,0 +1,41 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "reviewId": "11111111-1111-2222-3333-444444444444",
+ "recommendationId": "22222222-1111-2222-3333-444444444444",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/providers/Microsoft.Advisor/ResiliencyReview/11111111-1111-2222-3333-444444444444/providers/Microsoft.Advisor/TriageRecommendations/22222222-1111-2222-3333-444444444444",
+ "name": "22222222-1111-2222-3333-444444444444",
+ "type": "Microsoft.Advisor/TriageRecommendations",
+ "systemData": {
+ "createdBy": "user-identity",
+ "createdByType": "User",
+ "createdAt": "2023-06-30T09:41:00Z",
+ "lastModifiedBy": "user-identity",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2023-06-30T09:41:00Z"
+ },
+ "properties": {
+ "reviewId": "11111111-1111-2222-3333-444444444444",
+ "title": "Explore the scale-limits of each Azure resource",
+ "priority": "High",
+ "recommendationStatus": "Pending",
+ "updatedAt": "2023-06-30T10:51:00Z",
+ "rejectReason": "",
+ "appliesToSubscriptions": [
+ "00000000-1111-2222-3333-444444444444",
+ "00000000-1111-2222-3333-555555555555",
+ "00000000-1111-2222-3333-666666666666"
+ ],
+ "description": "Azure resources have scale limits. If you are planning to deploy a large number of resources, you should be aware of these limits. This recommendation provides links to the scale limits for each Azure resource.",
+ "potentialBenefits": "Avoid deployment failures due to scale limits.",
+ "notes": "This recommendation is based on the scale limits for each Azure resource. For more information, see Azure subscription and service limits, quotas, and constraints."
+ }
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageRecommendationsList.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageRecommendationsList.json
new file mode 100644
index 000000000000..ff1a4ff57014
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageRecommendationsList.json
@@ -0,0 +1,103 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "reviewId": "11111111-1111-2222-3333-444444444444",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/providers/Microsoft.Advisor/ResiliencyReview/11111111-1111-2222-3333-444444444444/providers/Microsoft.Advisor/TriageRecommendations/22222222-1111-2222-3333-444444444444",
+ "name": "22222222-1111-2222-3333-444444444444",
+ "type": "Microsoft.Advisor/TriageRecommendations",
+ "systemData": {
+ "createdBy": "user-identity",
+ "createdByType": "User",
+ "createdAt": "2023-06-30T09:41:00Z",
+ "lastModifiedBy": "user-identity",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2023-06-30T09:41:00Z"
+ },
+ "properties": {
+ "reviewId": "11111111-1111-2222-3333-444444444444",
+ "title": "Explore the scale-limits of each Azure resource",
+ "priority": "High",
+ "recommendationStatus": "Pending",
+ "updatedAt": "2023-06-30T10:51:00Z",
+ "rejectReason": "",
+ "appliesToSubscriptions": [
+ "00000000-1111-2222-3333-444444444444",
+ "00000000-1111-2222-3333-555555555555",
+ "00000000-1111-2222-3333-666666666666"
+ ],
+ "description": "Azure resources have scale limits. If you are planning to deploy a large number of resources, you should be aware of these limits. This recommendation provides links to the scale limits for each Azure resource.",
+ "potentialBenefits": "Avoid deployment failures due to scale limits.",
+ "notes": "This recommendation is based on the scale limits for each Azure resource. For more information, see Azure subscription and service limits, quotas, and constraints."
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/providers/Microsoft.Advisor/ResiliencyReview/11111111-1111-2222-3333-444444444444/providers/Microsoft.Advisor/TriageRecommendations/22222222-1111-2222-3333-555555555555",
+ "name": "22222222-1111-2222-3333-555555555555",
+ "type": "Microsoft.Advisor/TriageRecommendations",
+ "systemData": {
+ "createdBy": "user-identity",
+ "createdByType": "User",
+ "createdAt": "2023-06-30T09:41:00Z",
+ "lastModifiedBy": "user-identity",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2023-06-30T09:41:00Z"
+ },
+ "properties": {
+ "reviewId": "11111111-1111-2222-3333-444444444444",
+ "title": "Turn off unused resources",
+ "priority": "High",
+ "recommendationStatus": "Rejected",
+ "updatedAt": "2023-06-30T10:51:00Z",
+ "rejectReason": "Not a risk",
+ "appliesToSubscriptions": [
+ "00000000-1111-2222-3333-444444444444",
+ "00000000-1111-2222-3333-555555555555",
+ "00000000-1111-2222-3333-777777777777"
+ ],
+ "description": "Azure resources have scale limits. If you are planning to deploy a large number of resources, you should be aware of these limits. This recommendation provides links to the scale limits for each Azure resource.",
+ "potentialBenefits": "Avoid deployment failures due to scale limits.",
+ "notes": "This recommendation is based on the scale limits for each Azure resource. For more information, see Azure subscription and service limits, quotas, and constraints."
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/providers/Microsoft.Advisor/ResiliencyReview/11111111-1111-2222-3333-444444444444/providers/Microsoft.Advisor/TriageRecommendations/22222222-1111-2222-3333-666666666666",
+ "name": "22222222-1111-2222-3333-666666666666",
+ "type": "Microsoft.Advisor/TriageRecommendations",
+ "systemData": {
+ "createdBy": "user-identity",
+ "createdByType": "User",
+ "createdAt": "2023-06-30T09:41:00Z",
+ "lastModifiedBy": "user-identity",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2023-06-30T09:41:00Z"
+ },
+ "properties": {
+ "reviewId": "11111111-1111-2222-3333-444444444444",
+ "title": "Enabled HTTPS on all web apps",
+ "priority": "High",
+ "recommendationStatus": "Approved",
+ "updatedAt": "2023-06-30T10:51:00Z",
+ "rejectReason": "",
+ "appliesToSubscriptions": [
+ "00000000-1111-2222-3333-888888888888",
+ "00000000-1111-2222-3333-555555555555",
+ "00000000-1111-2222-3333-777777777777"
+ ],
+ "description": "Azure resources have scale limits. If you are planning to deploy a large number of resources, you should be aware of these limits. This recommendation provides links to the scale limits for each Azure resource.",
+ "potentialBenefits": "Avoid deployment failures due to scale limits.",
+ "notes": "This recommendation is based on the scale limits for each Azure resource. For more information, see Azure subscription and service limits, quotas, and constraints."
+ }
+ }
+ ],
+ "nextLink": ""
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageRecommendationsReject.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageRecommendationsReject.json
new file mode 100644
index 000000000000..a1198d9782c5
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageRecommendationsReject.json
@@ -0,0 +1,16 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "reviewId": "11111111-1111-2222-3333-444444444444",
+ "recommendationId": "22222222-1111-2222-3333-444444444444",
+ "api-version": "2025-05-01-preview",
+ "recommendationRejectBody": {
+ "reasonForRejection": "NotARisk"
+ }
+ },
+ "responses": {
+ "200": {
+ "headers": {}
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageRecommendationsReset.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageRecommendationsReset.json
new file mode 100644
index 000000000000..7895dbf679d6
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageRecommendationsReset.json
@@ -0,0 +1,13 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "reviewId": "11111111-1111-2222-3333-444444444444",
+ "recommendationId": "22222222-1111-2222-3333-444444444444",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "headers": {}
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageResourcesGet.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageResourcesGet.json
new file mode 100644
index 000000000000..030326497713
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageResourcesGet.json
@@ -0,0 +1,35 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "reviewId": "11111111-1111-2222-3333-444444444444",
+ "recommendationId": "22222222-1111-2222-3333-444444444444",
+ "recommendationResourceId": "33333333-1111-2222-3333-444444444444",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/providers/Microsoft.Advisor/ResiliencyReview/11111111-1111-2222-3333-444444444444/providers/Microsoft.Advisor/TriageRecommendations/22222222-1111-2222-3333-444444444444/providers/Microsoft.Advisor/triageResources/33333333-1111-2222-3333-444444444444",
+ "name": "22222222-1111-2222-3333-444444444444",
+ "type": "Microsoft.Advisor/triageResources",
+ "systemData": {
+ "createdBy": "user-identity",
+ "createdByType": "User",
+ "createdAt": "2023-06-30T09:41:00Z",
+ "lastModifiedBy": "user-identity",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2023-06-30T09:41:00Z"
+ },
+ "properties": {
+ "reviewId": "68890cd7-36aa-0b52-3b12-d37bdd684ff4",
+ "recommendationId": "91b56499-13b1-49f8-d59c-5d269bd3a79f",
+ "subscriptionId": "5cc854d0-c65a-44b0-982e-120eabfe1027",
+ "resourceGroup": "rg-test-for-large-post",
+ "resourceType": "Cosmos DB",
+ "resourceName": "cdb-testresource-prod-wus3",
+ "resourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-advisormanage-dev-wus3/providers/Microsoft.DocumentDB/databaseAccounts/cdb-testresource-prod-wus3"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageResourcesList.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageResourcesList.json
new file mode 100644
index 000000000000..dd5ca8c445cf
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/TriageResourcesList.json
@@ -0,0 +1,61 @@
+{
+ "parameters": {
+ "subscriptionId": "00000000-1111-2222-3333-444444444444",
+ "reviewId": "11111111-1111-2222-3333-444444444445",
+ "recommendationId": "22222222-1111-2222-3333-444444444444",
+ "recommendationResourceId": "33333333-1111-2222-3333-444444444444",
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "value": [
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/providers/Microsoft.Advisor/ResiliencyReview/11111111-1111-2222-3333-444444444444/providers/Microsoft.Advisor/TriageRecommendations/22222222-1111-2222-3333-444444444444/providers/Microsoft.Advisor/triageResources/33333333-1111-2222-3333-444444444444",
+ "name": "22222222-1111-2222-3333-444444444444",
+ "type": "Microsoft.Advisor/triageResources",
+ "systemData": {
+ "createdBy": "user-identity",
+ "createdByType": "User",
+ "createdAt": "2023-06-30T09:41:00Z",
+ "lastModifiedBy": "user-identity",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2023-06-30T09:41:00Z"
+ },
+ "properties": {
+ "reviewId": "68890cd7-36aa-0b52-3b12-d37bdd684ff4",
+ "recommendationId": "91b56499-13b1-49f8-d59c-5d269bd3a79f",
+ "subscriptionId": "5cc854d0-c65a-44b0-982e-120eabfe1027",
+ "resourceGroup": "rg-test-for-large-post",
+ "resourceType": "Cosmos DB",
+ "resourceName": "cdb-testresource-prod-wus3",
+ "resourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-advisormanage-dev-wus3/providers/Microsoft.DocumentDB/databaseAccounts/cdb-testresource-prod-wus3"
+ }
+ },
+ {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/providers/Microsoft.Advisor/ResiliencyReview/11111111-1111-2222-3333-444444444444/providers/Microsoft.Advisor/TriageRecommendations/22222222-1111-2222-3333-444444444444/providers/Microsoft.Advisor/triageResources/33333333-1111-2222-3333-444444444444",
+ "name": "22222222-1111-2222-3333-444444444444",
+ "type": "Microsoft.Advisor/triageResources",
+ "systemData": {
+ "createdBy": "user-identity",
+ "createdByType": "User",
+ "createdAt": "2023-06-30T09:41:00Z",
+ "lastModifiedBy": "user-identity",
+ "lastModifiedByType": "User",
+ "lastModifiedAt": "2023-06-30T09:41:00Z"
+ },
+ "properties": {
+ "reviewId": "68890cd7-36aa-0b52-3b12-111111111111",
+ "recommendationId": "91b56499-13b1-49f8-d59c-111111111111",
+ "subscriptionId": "5cc854d0-c65a-44b0-982e-120eabfe1027",
+ "resourceGroup": "rg-test-for-small-post",
+ "resourceType": "Cosmos DB",
+ "resourceName": "cdb-testresource-prod-eus3",
+ "resourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/rg-advisormanage-dev-wus3/providers/Microsoft.DocumentDB/databaseAccounts/cdb-testresource-prod-eus3"
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/UpdateTrackedRecommendation.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/UpdateTrackedRecommendation.json
new file mode 100644
index 000000000000..510dc6ad60a0
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/examples/UpdateTrackedRecommendation.json
@@ -0,0 +1,93 @@
+{
+ "parameters": {
+ "resourceUri": "subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachines/xyz",
+ "recommendationId": "c5532a76-8605-4328-ad27-f37ae87c086c",
+ "trackedProperties": {
+ "properties": {
+ "trackedProperties": {
+ "state": "Postponed",
+ "postponedTime": "2023-10-01T00:00:00Z"
+ }
+ }
+ },
+ "api-version": "2025-05-01-preview"
+ },
+ "responses": {
+ "200": {
+ "body": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachines/xyz/providers/Microsoft.Advisor/recommendations/c5532a76-8605-4328-ad27-f37ae87c086c",
+ "name": "c5532a76-8605-4328-ad27-f37ae87c086c",
+ "type": "Microsoft.Advisor/recommendations",
+ "properties": {
+ "category": "Security",
+ "impact": "Medium",
+ "impactedField": "Microsoft.Compute/virtualMachines",
+ "impactedValue": "armavset",
+ "lastUpdated": "2017-02-24T22:24:43.3216408Z",
+ "risk": "Warning",
+ "shortDescription": {
+ "problem": "Monitoring agent should be installed on your machines",
+ "solution": "Monitoring agent should be installed on your machines"
+ },
+ "remediation": {
+ "additionalProperties": {
+ "httpMethod": "POST",
+ "uri": "uri",
+ "details": "link to document"
+ }
+ },
+ "resourceMetadata": {
+ "resourceId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachines/xyz",
+ "source": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachines/xyz/providers/Microsoft.Security/assessments/7d5f6ba5-307e-452e-b3c4-7d636f722055",
+ "action": {
+ "additionalProperties": {
+ "actionType": "Document",
+ "link": "https://link3",
+ "caption": "Enable Soft Delete to protect blob data",
+ "description": "Enable Soft Delete to protect blob data"
+ },
+ "metadata": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachines/xyz"
+ }
+ },
+ "singular": "Virtual machine",
+ "plural": "Virtual machines"
+ },
+ "actions": [
+ {
+ "additionalProperties": {
+ "actionType": "Document",
+ "link": "https://link1",
+ "caption": "Enable Soft Delete to protect blob data",
+ "description": "Enable Soft Delete to protect blob data"
+ },
+ "metadata": {
+ "id": "/subscriptions/00000000-1111-2222-3333-444444444444"
+ }
+ }
+ ],
+ "description": "After enabling Soft Delete, deleted data transitions to a soft deleted state instead of being permanently deleted. When data is overwritten, a soft deleted snapshot is generated to save the state of the overwritten data. You can configure the amount of time soft deleted data is recoverable before it permanently expires.",
+ "label": "Enable Soft Delete",
+ "learnMoreLink": "https://link2",
+ "potentialBenefits": "Save and recover your data when blobs or blob snapshots are accidentally overwritten or deleted",
+ "tracked": true,
+ "trackedProperties": {
+ "state": "Postponed",
+ "postponedTime": "2023-10-01T00:00:00Z",
+ "priority": "High"
+ },
+ "resourceWorkload": {
+ "id": "0560dbdb-f207-4690-b4ba-1fc0c3a0f082",
+ "name": "Critical VM Workload"
+ },
+ "review": {
+ "id": "/subscriptions/a5481ee1-95df-47d0-85d4-dd3f0dfa19bc/providers/Microsoft.Advisor/assessments/MCWAR1",
+ "name": "Monthly WAF Review 09/23"
+ },
+ "sourceSystem": "CxObserve",
+ "notes": "This is a note"
+ }
+ }
+ }
+ }
+}
diff --git a/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/resiliencyReviews.json b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/resiliencyReviews.json
new file mode 100644
index 000000000000..e7eef414cfc3
--- /dev/null
+++ b/specification/advisor/resource-manager/Microsoft.Advisor/preview/2025-05-01-preview/resiliencyReviews.json
@@ -0,0 +1,913 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "version": "2025-05-01-preview",
+ "title": "AdvisorManagementClient",
+ "description": "REST APIs for Azure Advisor Resiliency Reviews."
+ },
+ "host": "management.azure.com",
+ "schemes": [
+ "https"
+ ],
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "paths": {
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/resiliencyReviews": {
+ "get": {
+ "tags": [
+ "resiliencyReviews"
+ ],
+ "summary": "Get list of resiliency reviews.",
+ "description": "Get list of Azure Advisor resiliency reviews.",
+ "operationId": "resiliencyReviews_List",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/topParameter"
+ },
+ {
+ "$ref": "#/parameters/skipParameter"
+ },
+ {
+ "$ref": "#/parameters/filterParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/resiliencyReviewCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "ListResiliencyReviews": {
+ "$ref": "./examples/ResiliencyReviewsList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/resiliencyReviews/{reviewId}": {
+ "get": {
+ "tags": [
+ "resiliencyReviews"
+ ],
+ "summary": "Get existing resiliency review.",
+ "description": "Get existing Azure Advisor resiliency review by id.",
+ "operationId": "resiliencyReviews_Get",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/reviewIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/resiliencyReview"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "GetResiliencyReview": {
+ "$ref": "./examples/ResiliencyReviewsGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/resiliencyReviews/{reviewId}/providers/Microsoft.Advisor/triageRecommendations": {
+ "get": {
+ "tags": [
+ "triageRecommendations"
+ ],
+ "summary": "Get list of recommendations for an existing resiliency review id.",
+ "description": "Get list of recommendations for an existing Azure Advisor Resiliency Review Id.",
+ "operationId": "triageRecommendations_List",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/reviewIdParameter"
+ },
+ {
+ "$ref": "#/parameters/topParameter"
+ },
+ {
+ "$ref": "#/parameters/skipParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/triageRecommendationCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "ListTriageRecommendations": {
+ "$ref": "./examples/TriageRecommendationsList.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/resiliencyReviews/{reviewId}/providers/Microsoft.Advisor/triageRecommendations/{recommendationId}": {
+ "get": {
+ "tags": [
+ "triageRecommendations"
+ ],
+ "summary": "Get an existing recommendation by id for an existing resiliency review id.",
+ "description": "Get an existing recommendation by id for an existing Azure Advisor Resiliency Review Id.",
+ "operationId": "triageRecommendations_Get",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/reviewIdParameter"
+ },
+ {
+ "$ref": "#/parameters/recommendationIdParameter"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/triageRecommendation"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "GetTriageRecommendation": {
+ "$ref": "./examples/TriageRecommendationsGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/resiliencyReviews/{reviewId}/providers/Microsoft.Advisor/triageRecommendations/{recommendationId}/approve": {
+ "post": {
+ "tags": [
+ "triageRecommendations"
+ ],
+ "summary": "Approve triage recommendation by id.",
+ "description": "Approve a triage recommendation for a given id.",
+ "operationId": "triageRecommendations_ApproveTriageRecommendation",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/reviewIdParameter"
+ },
+ {
+ "$ref": "#/parameters/recommendationIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "Approve a triage recommendation": {
+ "$ref": "./examples/TriageRecommendationsApprove.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/resiliencyReviews/{reviewId}/providers/Microsoft.Advisor/triageRecommendations/{recommendationId}/reject": {
+ "post": {
+ "tags": [
+ "triageRecommendations"
+ ],
+ "summary": "Reject existing triage recommendation by id.",
+ "description": "Reject an existing triage recommendation for a given id.",
+ "operationId": "triageRecommendations_RejectTriageRecommendation",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/reviewIdParameter"
+ },
+ {
+ "$ref": "#/parameters/recommendationIdParameter"
+ },
+ {
+ "$ref": "#/parameters/recommendationRejectBodyParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "Reject a triage recommendation": {
+ "$ref": "./examples/TriageRecommendationsReject.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/resiliencyReviews/{reviewId}/providers/Microsoft.Advisor/triageRecommendations/{recommendationId}/reset": {
+ "post": {
+ "tags": [
+ "triageRecommendations"
+ ],
+ "summary": "Reset existing triage recommendation by id.",
+ "description": "Reset an existing triage recommendation for a given id.",
+ "operationId": "triageRecommendations_ResetTriageRecommendation",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/reviewIdParameter"
+ },
+ {
+ "$ref": "#/parameters/recommendationIdParameter"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "Reset a triage recommendation": {
+ "$ref": "./examples/TriageRecommendationsReset.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/resiliencyReviews/{reviewId}/providers/Microsoft.Advisor/triageRecommendations/{recommendationId}/providers/Microsoft.Advisor/triageResources/{recommendationResourceId}": {
+ "get": {
+ "tags": [
+ "triageResources"
+ ],
+ "summary": "Get existing triage resource.",
+ "description": "Get a triage resource for a given review and recommendation.",
+ "operationId": "triageResources_Get",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/reviewIdParameter"
+ },
+ {
+ "$ref": "#/parameters/recommendationIdParameter"
+ },
+ {
+ "$ref": "#/parameters/recommendationResourceIdParameter"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/triageResource"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-examples": {
+ "GetTriageResource": {
+ "$ref": "./examples/TriageResourcesGet.json"
+ }
+ }
+ }
+ },
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/resiliencyReviews/{reviewId}/providers/Microsoft.Advisor/triageRecommendations/{recommendationId}/providers/Microsoft.Advisor/triageResources": {
+ "get": {
+ "tags": [
+ "triageResources"
+ ],
+ "summary": "List triage resources based on a review and recommendation.",
+ "description": "List all triage resources that belong to a review and recommendation.",
+ "operationId": "triageResources_List",
+ "parameters": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter"
+ },
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter"
+ },
+ {
+ "$ref": "#/parameters/reviewIdParameter"
+ },
+ {
+ "$ref": "#/parameters/recommendationIdParameter"
+ }
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "responses": {
+ "200": {
+ "description": "Success",
+ "schema": {
+ "$ref": "#/definitions/triageResourceCollection"
+ }
+ },
+ "default": {
+ "description": "Error response describing why the operation failed.",
+ "schema": {
+ "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse"
+ }
+ }
+ },
+ "deprecated": false,
+ "x-ms-pageable": {
+ "nextLinkName": "nextLink"
+ },
+ "x-ms-examples": {
+ "ListTriageResources": {
+ "$ref": "./examples/TriageResourcesList.json"
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "resiliencyReviewCollection": {
+ "description": "Collection of Resiliency Reviews.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of resiliency reviews.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/resiliencyReview"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of Advisor resiliency reviews, if there are any."
+ }
+ }
+ },
+ "resiliencyReview": {
+ "description": "The Advisor resiliency review data structure.",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "id": {
+ "type": "string",
+ "format": "arm-id",
+ "description": "Fully qualified resource ID for the resource. E.g. \"/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/ResiliencyReviews/{reviewId}\".",
+ "readOnly": true
+ },
+ "name": {
+ "type": "string",
+ "description": "Resource name E.g. \"{guid}\".",
+ "readOnly": true
+ },
+ "type": {
+ "type": "string",
+ "description": "Resource type E.g. \"Microsoft.Advisor/resiliencyReviews\".",
+ "readOnly": true
+ },
+ "systemData": {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/systemData",
+ "readOnly": true
+ },
+ "properties": {
+ "$ref": "#/definitions/resiliencyReviewProperties",
+ "description": "Advisor resiliency review properties.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "resiliencyReviewProperties": {
+ "description": "Resiliency review properties.",
+ "type": "object",
+ "properties": {
+ "reviewName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Review name."
+ },
+ "workloadName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Workload Name."
+ },
+ "reviewStatus": {
+ "readOnly": true,
+ "description": "Review status.",
+ "$ref": "#/definitions/reviewStatusName"
+ },
+ "recommendationsCount": {
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true,
+ "description": "Review recommendations count."
+ },
+ "publishedAt": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Review last updated timestamp."
+ },
+ "updatedAt": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Review last updated timestamp."
+ }
+ }
+ },
+ "triageRecommendationCollection": {
+ "description": "Collection of Advisor triage recommendations.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of triage recommendations.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/triageRecommendation"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of triage recommendations, if there are any."
+ }
+ }
+ },
+ "triageRecommendation": {
+ "description": "Triage recommendation data structure.",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "properties": {
+ "id": {
+ "type": "string",
+ "format": "arm-id",
+ "description": "Fully qualified resource ID for the resource. E.g. \"/subscriptions/{subscriptionId}/providers/Microsoft.Advisor/ResiliencyReviews/{reviewId}/providers/Microsoft.Advisor/triageRecommendation/{recommendationId}\".",
+ "readOnly": true
+ },
+ "name": {
+ "type": "string",
+ "description": "Resource name E.g. \"{guid}\".",
+ "readOnly": true
+ },
+ "type": {
+ "type": "string",
+ "description": "Resource type E.g. \"Microsoft.Advisor/triageRecommendation\".",
+ "readOnly": true
+ },
+ "systemData": {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/systemData",
+ "readOnly": true
+ },
+ "properties": {
+ "$ref": "#/definitions/triageRecommendationProperties",
+ "description": "Advisor resiliency review properties.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "triageRecommendationProperties": {
+ "description": "Triage recommendation properties.",
+ "type": "object",
+ "properties": {
+ "reviewId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Review id."
+ },
+ "title": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Recommendation label."
+ },
+ "priority": {
+ "description": "Recommendation priority.",
+ "$ref": "#/definitions/priorityName"
+ },
+ "appliesToSubscriptions": {
+ "type": "array",
+ "readOnly": true,
+ "description": "List of subscription ids.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "recommendationStatus": {
+ "description": "Recommendation status.",
+ "$ref": "#/definitions/recommendationStatusName"
+ },
+ "updatedAt": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Recommendation potential benefit."
+ },
+ "rejectReason": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Recommendation rejection reason."
+ },
+ "potentialBenefits": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Recommendation potential benefit."
+ },
+ "description": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Recommendation description."
+ },
+ "notes": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Recommendation notes."
+ }
+ }
+ },
+ "triageResourceCollection": {
+ "description": "Collection of Advisor triage resources.",
+ "required": [
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "value": {
+ "description": "List of triage resources.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/triageResource"
+ }
+ },
+ "nextLink": {
+ "type": "string",
+ "description": "The URL to get the next set of triage resources, if there are any."
+ }
+ }
+ },
+ "triageResource": {
+ "description": "Triage resource data structure.",
+ "type": "object",
+ "x-ms-azure-resource": true,
+ "allOf": [
+ {
+ "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/ProxyResource"
+ }
+ ],
+ "properties": {
+ "properties": {
+ "$ref": "#/definitions/triageResourceProperties",
+ "description": "Triage resource properties.",
+ "x-ms-client-flatten": true
+ }
+ }
+ },
+ "triageResourceProperties": {
+ "description": "Triage resource properties.",
+ "type": "object",
+ "properties": {
+ "reviewId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Unique identifier for the review resource this triageResource belongs to."
+ },
+ "recommendationId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Unique identifier for the recommendation resource this triageResource belongs to."
+ },
+ "subscriptionId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Unique identifier for the subscription resource this triageResource belongs to."
+ },
+ "resourceGroup": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Name of the resource group this triageResource belongs to."
+ },
+ "resourceType": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Type of resource this triageResource corresponds to e.g. \"Cosmos DB\"."
+ },
+ "resourceId": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Full Azure resource id path of the resource this triageResource corresponds to.",
+ "format": "arm-id"
+ },
+ "resourceName": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Name of the resource this triageResource corresponds to."
+ }
+ }
+ },
+ "priorityName": {
+ "description": "Recommendation priority name enum.",
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "High",
+ "Medium",
+ "Low"
+ ],
+ "x-ms-enum": {
+ "name": "priorityName",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "High",
+ "description": "High"
+ },
+ {
+ "value": "Medium",
+ "description": "Medium"
+ },
+ {
+ "value": "Low",
+ "description": "Low"
+ }
+ ]
+ }
+ },
+ "recommendationStatusName": {
+ "description": "Recommendation status name enum.",
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "Approved",
+ "Rejected",
+ "Pending"
+ ],
+ "x-ms-enum": {
+ "name": "recommendationStatusName",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "Approved",
+ "description": "Approved"
+ },
+ {
+ "value": "Rejected",
+ "description": "Rejected"
+ },
+ {
+ "value": "Pending",
+ "description": "Pending"
+ }
+ ]
+ }
+ },
+ "reviewStatusName": {
+ "description": "Review status string, returns the Reviews by the given status (e.g. 'New', 'Triaged', 'Completed').",
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "New",
+ "InProgress",
+ "Triaged",
+ "Completed"
+ ],
+ "x-ms-enum": {
+ "name": "reviewStatus",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "New",
+ "description": "New"
+ },
+ {
+ "value": "InProgress",
+ "description": "In Progress"
+ },
+ {
+ "value": "Triaged",
+ "description": "Triaged"
+ },
+ {
+ "value": "Completed",
+ "description": "Completed"
+ }
+ ]
+ }
+ },
+ "recommendationRejectBody": {
+ "description": "Recommendation reject body.",
+ "type": "object",
+ "properties": {
+ "reasonForRejection": {
+ "description": "Reason for rejecting recommendation.",
+ "$ref": "#/definitions/reasonForRejectionName"
+ }
+ }
+ },
+ "reasonForRejectionName": {
+ "description": "Reason for rejecting recommendation name enum.",
+ "type": "string",
+ "enum": [
+ "NotARisk",
+ "RiskAccepted"
+ ],
+ "x-ms-enum": {
+ "name": "reasonForRejectionName",
+ "modelAsString": true,
+ "values": [
+ {
+ "value": "NotARisk",
+ "description": "Not A Risk"
+ },
+ {
+ "value": "RiskAccepted",
+ "description": "Risk Accepted"
+ }
+ ]
+ }
+ }
+ },
+ "parameters": {
+ "reviewIdParameter": {
+ "name": "reviewId",
+ "in": "path",
+ "description": "Existing review id. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000).",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "recommendationIdParameter": {
+ "name": "recommendationId",
+ "in": "path",
+ "description": "Existing triage recommendation id. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000).",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "recommendationResourceIdParameter": {
+ "name": "recommendationResourceId",
+ "in": "path",
+ "description": "Existing recommendation triage resource associated with a triage recommendation. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000).",
+ "required": true,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ },
+ "recommendationRejectBodyParameter": {
+ "name": "recommendationRejectBody",
+ "in": "body",
+ "description": "JSON object that contains reason for rejecting triage recommendation.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/recommendationRejectBody"
+ }
+ },
+ "topParameter": {
+ "name": "$top",
+ "in": "query",
+ "description": "The number of items to be included in the result.",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "x-ms-parameter-location": "method"
+ },
+ "skipParameter": {
+ "name": "$skip",
+ "in": "query",
+ "description": "The number of items to skip before starting to collect the result set.",
+ "required": false,
+ "type": "integer",
+ "format": "int32",
+ "x-ms-parameter-location": "method"
+ },
+ "filterParameter": {
+ "name": "$filter",
+ "in": "query",
+ "description": "The filter to apply.
Filter can be applied to properties ['reviewStatus', 'reviewId'] with operators ['eq', 'and', 'or'].
Example:
- $filter=reviewStatus eq 'New'",
+ "required": false,
+ "type": "string",
+ "x-ms-parameter-location": "method"
+ }
+ },
+ "securityDefinitions": {
+ "azure_auth": {
+ "type": "oauth2",
+ "description": "Azure Active Directory OAuth2 Flow.",
+ "flow": "implicit",
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
+ "scopes": {
+ "user_impersonation": "impersonate your user account."
+ }
+ }
+ },
+ "security": [
+ {
+ "azure_auth": [
+ "user_impersonation"
+ ]
+ }
+ ]
+}
diff --git a/specification/advisor/resource-manager/readme.md b/specification/advisor/resource-manager/readme.md
index c3e5035b452c..c23e0f1a7da6 100644
--- a/specification/advisor/resource-manager/readme.md
+++ b/specification/advisor/resource-manager/readme.md
@@ -26,7 +26,31 @@ These are the global settings for the Advisor API.
``` yaml
openapi-type: arm
-tag: package-2024-11-preview
+tag: package-2025-05-preview
+```
+
+### Tag: package-2025-05-preview
+These settings apply only when `--tag=package-2025-05-preview` is specified on the command line.
+
+```yaml $(tag) == 'package-2025-05-preview'
+input-file:
+ - Microsoft.Advisor/preview/2025-05-01-preview/advisor.json
+ - Microsoft.Advisor/preview/2025-05-01-preview/assessments.json
+ - Microsoft.Advisor/preview/2025-05-01-preview/resiliencyReviews.json
+suppressions:
+ - code: ArmResourcePropertiesBag
+ reason: Suppressing for now to avoid breaking change.
+ from:
+ - assessments.json
+ where:
+ - $.definitions["AssessmentResult"]
+ - code: RequiredPropertiesMissingInResourceModel
+ reason: Suppressing for now to avoid breaking change.
+ from:
+ - assessments.json
+ where:
+ - $.definitions["AssessmentTypeListResult"]
+ - $.definitions["WorkloadListResult"]
```
### Tag: package-2024-11-preview