swagger: '2.0'
info:
title: WebApps API Client AppServiceEnvironments Recommendations API
version: '2025-05-01'
x-typespec-generated:
- emitter: '@azure-tools/typespec-autorest'
host: management.azure.com
schemes:
- https
consumes:
- application/json
produces:
- application/json
security:
- azure_auth:
- user_impersonation
tags:
- name: Recommendations
paths:
/subscriptions/{subscriptionId}/providers/Microsoft.Web/recommendations:
get:
operationId: Recommendations_List
tags:
- Recommendations
summary: List all recommendations for a subscription.
description: Description for List all recommendations for a subscription.
parameters:
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter
- name: featured
in: query
description: Specify true to return only the most critical recommendations. The default is false, which returns all recommendations.
required: false
type: boolean
- name: $filter
in: query
description: 'Filter is specified by using OData syntax. Example: $filter=channel eq ''Api'' or channel eq ''Notification'' and startTime eq 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq duration''[PT1H|PT1M|P1D]'
required: false
type: string
responses:
'200':
description: The request has succeeded.
schema:
$ref: '#/definitions/RecommendationCollection'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DefaultErrorResponse'
x-ms-pageable:
nextLinkName: nextLink
/subscriptions/{subscriptionId}/providers/Microsoft.Web/recommendations/{name}/disable:
post:
operationId: Recommendations_DisableRecommendationForSubscription
tags:
- Recommendations
summary: Disables the specified rule so it will not apply to a subscription in the future.
description: Description for Disables the specified rule so it will not apply to a subscription in the future.
parameters:
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter
- name: name
in: path
description: Rule name
required: true
type: string
responses:
'200':
description: The request has succeeded.
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DefaultErrorResponse'
/subscriptions/{subscriptionId}/providers/Microsoft.Web/recommendations/reset:
post:
operationId: Recommendations_ResetAllFilters
tags:
- Recommendations
summary: Reset all recommendation opt-out settings for a subscription.
description: Description for Reset all recommendation opt-out settings for a subscription.
parameters:
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter
responses:
'204':
description: 'There is no content to send for this request, but the headers may be useful. '
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DefaultErrorResponse'
? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{hostingEnvironmentName}/recommendationHistory
: get:
operationId: Recommendations_ListHistoryForHostingEnvironment
tags:
- Recommendations
summary: Get past recommendations for an app, optionally specified by the time range.
description: Description for Get past recommendations for an app, optionally specified by the time range.
parameters:
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter
- name: hostingEnvironmentName
in: path
description: Name of the App Service Environment.
required: true
type: string
- name: expiredOnly
in: query
description: Specify false to return all recommendations. The default is true, which returns only expired recommendations.
required: false
type: boolean
- name: $filter
in: query
description: 'Filter is specified by using OData syntax. Example: $filter=channel eq ''Api'' or channel eq ''Notification'' and startTime eq 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq duration''[PT1H|PT1M|P1D]'
required: false
type: string
responses:
'200':
description: Azure operation completed successfully.
schema:
$ref: '#/definitions/RecommendationCollection'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DefaultErrorResponse'
x-ms-pageable:
nextLinkName: nextLink
? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{hostingEnvironmentName}/recommendations
: get:
operationId: Recommendations_ListRecommendedRulesForHostingEnvironment
tags:
- Recommendations
summary: Get all recommendations for a hosting environment.
description: Description for Get all recommendations for a hosting environment.
parameters:
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter
- name: hostingEnvironmentName
in: path
description: Name of the App Service Environment.
required: true
type: string
- name: featured
in: query
description: Specify true to return only the most critical recommendations. The default is false, which returns all recommendations.
required: false
type: boolean
- name: $filter
in: query
description: 'Return only channels specified in the filter. Filter is specified by using OData syntax. Example: $filter=channel eq ''Api'' or channel eq ''Notification'''
required: false
type: string
responses:
'200':
description: Azure operation completed successfully.
schema:
$ref: '#/definitions/RecommendationCollection'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DefaultErrorResponse'
x-ms-pageable:
nextLinkName: nextLink
? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{hostingEnvironmentName}/recommendations/{name}
: get:
operationId: Recommendations_GetRuleDetailsByHostingEnvironment
tags:
- Recommendations
summary: Get a recommendation rule for an app.
description: Description for Get a recommendation rule for an app.
parameters:
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter
- name: hostingEnvironmentName
in: path
description: Name of the hosting environment.
required: true
type: string
- name: name
in: path
description: Name of the recommendation.
required: true
type: string
- name: updateSeen
in: query
description: Specify true to update the last-seen timestamp of the recommendation object.
required: false
type: boolean
- name: recommendationId
in: query
description: The GUID of the recommendation object if you query an expired one. You don't need to specify it to query an active entry.
required: false
type: string
responses:
'200':
description: Azure operation completed successfully.
schema:
$ref: '#/definitions/RecommendationRule'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DefaultErrorResponse'
? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{hostingEnvironmentName}/recommendations/{name}/disable
: post:
operationId: Recommendations_DisableRecommendationForHostingEnvironment
tags:
- Recommendations
summary: Disables the specific rule for a web site permanently.
description: Description for Disables the specific rule for a web site permanently.
parameters:
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter
- name: hostingEnvironmentName
in: path
description: Name of the hosting environment.
required: true
type: string
- name: name
in: path
description: Name of the recommendation.
required: true
type: string
- name: environmentName
in: query
description: Site name
required: true
type: string
responses:
'200':
description: Azure operation completed successfully.
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DefaultErrorResponse'
? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{hostingEnvironmentName}/recommendations/disable
: post:
operationId: Recommendations_DisableAllForHostingEnvironment
tags:
- Recommendations
summary: Disable all recommendations for an app.
description: Description for Disable all recommendations for an app.
parameters:
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter
- name: hostingEnvironmentName
in: path
description: Name of the App Service Environment.
required: true
type: string
- name: environmentName
in: query
description: Name of the app.
required: true
type: string
responses:
'204':
description: There is no content to send for this request, but the headers may be useful.
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DefaultErrorResponse'
? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{hostingEnvironmentName}/recommendations/reset
: post:
operationId: Recommendations_ResetAllFiltersForHostingEnvironment
tags:
- Recommendations
summary: Reset all recommendation opt-out settings for an app.
description: Description for Reset all recommendation opt-out settings for an app.
parameters:
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter
- name: hostingEnvironmentName
in: path
description: Name of the App Service Environment.
required: true
type: string
- name: environmentName
in: query
description: Name of the app.
required: true
type: string
responses:
'204':
description: There is no content to send for this request, but the headers may be useful.
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DefaultErrorResponse'
? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendationHistory
: get:
operationId: Recommendations_ListHistoryForWebApp
tags:
- Recommendations
summary: Get past recommendations for an app, optionally specified by the time range.
description: Description for Get past recommendations for an app, optionally specified by the time range.
parameters:
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter
- name: siteName
in: path
description: Name of the app.
required: true
type: string
- name: expiredOnly
in: query
description: Specify false to return all recommendations. The default is true, which returns only expired recommendations.
required: false
type: boolean
- name: $filter
in: query
description: 'Filter is specified by using OData syntax. Example: $filter=channel eq ''Api'' or channel eq ''Notification'' and startTime eq 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq duration''[PT1H|PT1M|P1D]'
required: false
type: string
responses:
'200':
description: Azure operation completed successfully.
schema:
$ref: '#/definitions/RecommendationCollection'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DefaultErrorResponse'
x-ms-pageable:
nextLinkName: nextLink
? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations
: get:
operationId: Recommendations_ListRecommendedRulesForWebApp
tags:
- Recommendations
summary: Get all recommendations for an app.
description: Description for Get all recommendations for an app.
parameters:
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter
- name: siteName
in: path
description: Name of the app.
required: true
type: string
- name: featured
in: query
description: Specify true to return only the most critical recommendations. The default is false, which returns all recommendations.
required: false
type: boolean
- name: $filter
in: query
description: 'Return only channels specified in the filter. Filter is specified by using OData syntax. Example: $filter=channel eq ''Api'' or channel eq ''Notification'''
required: false
type: string
responses:
'200':
description: Azure operation completed successfully.
schema:
$ref: '#/definitions/RecommendationCollection'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DefaultErrorResponse'
x-ms-pageable:
nextLinkName: nextLink
? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations/{name}
: get:
operationId: Recommendations_GetRuleDetailsByWebApp
tags:
- Recommendations
summary: Get a recommendation rule for an app.
description: Description for Get a recommendation rule for an app.
parameters:
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter
- name: siteName
in: path
description: Name of the app.
required: true
type: string
- name: name
in: path
description: Name of the recommendation.
required: true
type: string
- name: updateSeen
in: query
description: Specify true to update the last-seen timestamp of the recommendation object.
required: false
type: boolean
- name: recommendationId
in: query
description: The GUID of the recommendation object if you query an expired one. You don't need to specify it to query an active entry.
required: false
type: string
responses:
'200':
description: Azure operation completed successfully.
schema:
$ref: '#/definitions/RecommendationRule'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DefaultErrorResponse'
? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations/{name}/disable
: post:
operationId: Recommendations_DisableRecommendationForSite
tags:
- Recommendations
summary: Disables the specific rule for a web site permanently.
description: Description for Disables the specific rule for a web site permanently.
parameters:
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter
- name: siteName
in: path
description: Name of the app.
required: true
type: string
- name: name
in: path
description: Name of the recommendation.
required: true
type: string
responses:
'200':
description: Azure operation completed successfully.
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DefaultErrorResponse'
? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations/disable
: post:
operationId: Recommendations_DisableAllForWebApp
tags:
- Recommendations
summary: Disable all recommendations for an app.
description: Description for Disable all recommendations for an app.
parameters:
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter
- name: siteName
in: path
description: Name of the app.
required: true
type: string
responses:
'204':
description: There is no content to send for this request, but the headers may be useful.
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DefaultErrorResponse'
? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations/reset
: post:
operationId: Recommendations_ResetAllFiltersForWebApp
tags:
- Recommendations
summary: Reset all recommendation opt-out settings for an app.
description: Description for Reset all recommendation opt-out settings for an app.
parameters:
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter
- name: siteName
in: path
description: Name of the app.
required: true
type: string
responses:
'204':
description: There is no content to send for this request, but the headers may be useful.
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DefaultErrorResponse'
definitions:
RecommendationCollection:
type: object
description: Collection of recommendations.
properties:
value:
type: array
description: The Recommendation items on this page
items:
$ref: '#/definitions/Recommendation'
nextLink:
type: string
format: uri
description: The link to the next page of items
required:
- value
DefaultErrorResponse:
type: object
description: App Service error response.
properties:
error:
$ref: '#/definitions/DefaultErrorResponseError'
description: Error model.
readOnly: true
Recommendation:
type: object
description: Represents a recommendation result generated by the recommendation engine.
properties:
properties:
$ref: '#/definitions/RecommendationProperties'
description: Recommendation resource specific properties
x-ms-client-flatten: true
allOf:
- $ref: '#/definitions/ProxyOnlyResource'
ResourceScopeType:
type: string
description: Name of a resource type this recommendation applies, e.g. Subscription, ServerFarm, Site.
enum:
- ServerFarm
- Subscription
- WebSite
x-ms-enum:
name: ResourceScopeType
modelAsString: true
values:
- name: ServerFarm
value: ServerFarm
- name: Subscription
value: Subscription
- name: WebSite
value: WebSite
DefaultErrorResponseError:
type: object
description: Error model.
properties:
code:
type: string
description: Standardized string to programmatically identify the error.
readOnly: true
message:
type: string
description: Detailed error description and debugging information.
readOnly: true
target:
type: string
description: Detailed error description and debugging information.
readOnly: true
details:
type: array
items:
$ref: '#/definitions/DefaultErrorResponseErrorDetailsItem'
x-ms-identifiers: []
innererror:
type: string
description: More information to debug error.
readOnly: true
RecommendationRule:
type: object
description: Represents a recommendation rule that the recommendation engine can perform.
properties:
properties:
$ref: '#/definitions/RecommendationRuleProperties'
description: RecommendationRule resource specific properties
x-ms-client-flatten: true
kind:
type: string
description: Kind of resource.
allOf:
- $ref: ../../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource
DefaultErrorResponseErrorDetailsItem:
type: object
description: Detailed errors.
properties:
code:
type: string
description: Standardized string to programmatically identify the error.
readOnly: true
message:
type: string
description: Detailed error description and debugging information.
readOnly: true
target:
type: string
description: Detailed error description and debugging information.
readOnly: true
NotificationLevel:
type: string
description: Level indicating how critical this recommendation can impact.
enum:
- Critical
- Warning
- Information
- NonUrgentSuggestion
x-ms-enum:
name: NotificationLevel
modelAsString: false
RecommendationRuleProperties:
type: object
description: RecommendationRule resource specific properties
properties:
recommendationName:
type: string
description: Unique name of the rule.
displayName:
type: string
description: UI friendly name of the rule.
message:
type: string
description: Localized name of the rule (Good for UI).
recommendationId:
type: string
format: uuid
description: 'Recommendation ID of an associated recommendation object tied to the rule, if exists.
If such an object doesn''t exist, it is set to null.'
description:
type: string
description: Localized detailed description of the rule.
actionName:
type: string
description: Name of action that is recommended by this rule in string.
level:
$ref: '#/definitions/NotificationLevel'
description: Level of impact indicating how critical this rule is.
channels:
$ref: '#/definitions/Channels'
description: List of available channels that this rule applies.
categoryTags:
type: array
description: The list of category tags that this recommendation rule belongs to.
items:
type: string
readOnly: true
isDynamic:
type: boolean
description: True if this is associated with a dynamically added rule
extensionName:
type: string
description: Extension name of the portal if exists. Applicable to dynamic rule only.
bladeName:
type: string
description: Deep link to a blade on the portal. Applicable to dynamic rule only.
forwardLink:
type: string
description: Forward link to an external document associated with the rule. Applicable to dynamic rule only.
ProxyOnlyResource:
type: object
description: Azure proxy only resource. This resource is not tracked by Azure Resource Manager.
properties:
id:
type: string
description: Resource Id.
readOnly: true
name:
type: string
description: Resource Name.
readOnly: true
kind:
type: string
description: Kind of resource.
type:
type: string
description: Resource type.
readOnly: true
RecommendationProperties:
type: object
description: Recommendation resource specific properties
properties:
creationTime:
type: string
format: date-time
description: Timestamp when this instance was created.
recommendationId:
type: string
format: uuid
description: A GUID value that each recommendation object is associated with.
resourceId:
type: string
description: Full ARM resource ID string that this recommendation object is associated with.
resourceScope:
$ref: '#/definitions/ResourceScopeType'
description: Name of a resource type this recommendation applies, e.g. Subscription, ServerFarm, Site.
ruleName:
type: string
description: Unique name of the rule.
displayName:
type: string
description: UI friendly name of the rule (may not be unique).
message:
type: string
description: Recommendation text.
level:
$ref: '#/definitions/NotificationLevel'
description: Level indicating how critical this recommendation can impact.
channels:
$ref: '#/definitions/Channels'
description: List of channels that this recommendation can apply.
categoryTags:
type: array
description: The list of category tags that this recommendation belongs to.
items:
type: string
readOnly: true
actionName:
type: string
description: Name of action recommended by this object.
enabled:
type: integer
format: int32
description: True if this recommendation is still valid (i.e. "actionable"). False if it is invalid.
states:
type: array
description: The list of states of this recommendation. If it's null then it should be considered "Active".
items:
type: string
startTime:
type: string
format: date-time
description: The beginning time in UTC of a range that the recommendation refers to.
endTime:
type: string
format: date-time
description: The end time in UTC of a range that the recommendation refers to.
nextNotificationTime:
type: string
format: date-time
description: When to notify this recommendation next in UTC. Null means that this will never be notified anymore.
notificationExpirationTime:
type: string
format: date-time
description: Date and time in UTC when this notification expires.
notifiedTime:
type: string
format: date-time
description: Last timestamp in UTC this instance was actually notified. Null means that this recommendation hasn't been notified yet.
score:
type: number
format: double
description: A metric value measured by the rule.
isDynamic:
type: boolean
description: True if this is associated with a dynamically added rule
extensionName:
type: string
description: Extension name of the portal if exists.
bladeName:
type: string
description: Deep link to a blade on the portal.
forwardLink:
type: string
description: Forward link to an external document associated with the rule.
Channels:
type: string
description: List of channels that this recommendation can apply.
enum:
- Notification
- Api
- Email
- Webhook
- All
x-ms-enum:
name: Channels
modelAsString: false
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