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