swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  title: Recommendations API Client
  version: 2016-03-01
  x-apisguru-categories:
    - cloud
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png
  x-origin:
    - format: swagger
      url: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/web/resource-manager/Microsoft.Web/stable/2016-03-01/Recommendations.json
      version: "2.0"
  x-preferred: false
  x-providerName: azure.com
  x-serviceName: web-Recommendations
  x-tags:
    - Azure
    - Microsoft
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  azure_auth:
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    description: Azure Active Directory OAuth2 Flow
    flow: implicit
    scopes:
      user_impersonation: impersonate your user account
    type: oauth2
security:
  - azure_auth:
      - user_impersonation
parameters:
  apiVersionParameter:
    description: API Version
    in: query
    name: api-version
    required: true
    type: string
  resourceGroupNameParameter:
    description: Name of the resource group to which the resource belongs.
    in: path
    maxLength: 90
    minLength: 1
    name: resourceGroupName
    pattern: ^[-\w\._\(\)]+[^\.]$
    required: true
    type: string
    x-ms-parameter-location: method
  subscriptionIdParameter:
    description: Your Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000).
    in: path
    name: subscriptionId
    required: true
    type: string
paths:
  "/subscriptions/{subscriptionId}/providers/Microsoft.Web/recommendations":
    get:
      description: List all recommendations for a subscription.
      operationId: Recommendations_List
      parameters:
        - description: Specify <code>true</code> to return only the most critical recommendations. The default is <code>false</code>, which returns all recommendations.
          in: query
          name: featured
          type: boolean
        - description: "Filter is specified by using OData syntax. Example: $filter=channels 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]"
          in: query
          name: $filter
          type: string
          x-ms-skip-url-encoding: true
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/RecommendationCollection"
      summary: List all recommendations for a subscription.
      tags:
        - Recommendations
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/providers/Microsoft.Web/recommendations/reset":
    post:
      description: Reset all recommendation opt-out settings for a subscription.
      operationId: Recommendations_ResetAllFilters
      parameters:
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
      responses:
        "204":
          description: No Content
      summary: Reset all recommendation opt-out settings for a subscription.
      tags:
        - Recommendations
  "/subscriptions/{subscriptionId}/providers/Microsoft.Web/recommendations/{name}/disable":
    post:
      description: Disables the specified rule so it will not apply to a subscription in the future.
      operationId: Recommendations_DisableRecommendationForSubscription
      parameters:
        - description: Rule name
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
      responses:
        "200":
          description: Successfully disabled recommendations.
      summary: Disables the specified rule so it will not apply to a subscription in the future.
      tags:
        - Recommendations
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendationHistory":
    get:
      description: Get past recommendations for an app, optionally specified by the time range.
      operationId: Recommendations_ListHistoryForWebApp
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - description: Name of the app.
          in: path
          name: siteName
          required: true
          type: string
        - description: "Filter is specified by using OData syntax. Example: $filter=channels 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]"
          in: query
          name: $filter
          type: string
          x-ms-skip-url-encoding: true
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/RecommendationCollection"
      summary: Get past recommendations for an app, optionally specified by the time range.
      tags:
        - Recommendations
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations":
    get:
      description: Get all recommendations for an app.
      operationId: Recommendations_ListRecommendedRulesForWebApp
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - description: Name of the app.
          in: path
          name: siteName
          required: true
          type: string
        - description: Specify <code>true</code> to return only the most critical recommendations. The default is <code>false</code>, which returns all recommendations.
          in: query
          name: featured
          type: boolean
        - description: "Return only channels specified in the filter. Filter is specified by using OData syntax. Example: $filter=channels eq 'Api' or channel eq 'Notification'"
          in: query
          name: $filter
          type: string
          x-ms-skip-url-encoding: true
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/RecommendationCollection"
      summary: Get all recommendations for an app.
      tags:
        - Recommendations
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations/disable":
    post:
      description: Disable all recommendations for an app.
      operationId: Recommendations_DisableAllForWebApp
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - description: Name of the app.
          in: path
          name: siteName
          required: true
          type: string
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
      responses:
        "204":
          description: No Content
      summary: Disable all recommendations for an app.
      tags:
        - Recommendations
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations/reset":
    post:
      description: Reset all recommendation opt-out settings for an app.
      operationId: Recommendations_ResetAllFiltersForWebApp
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - description: Name of the app.
          in: path
          name: siteName
          required: true
          type: string
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
      responses:
        "204":
          description: No Content
      summary: Reset all recommendation opt-out settings for an app.
      tags:
        - Recommendations
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations/{name}":
    get:
      description: Get a recommendation rule for an app.
      operationId: Recommendations_GetRuleDetailsByWebApp
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - description: Name of the app.
          in: path
          name: siteName
          required: true
          type: string
        - description: Name of the recommendation.
          in: path
          name: name
          required: true
          type: string
        - description: Specify <code>true</code> to update the last-seen timestamp of the recommendation object.
          in: query
          name: updateSeen
          type: boolean
        - 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.
          in: query
          name: recommendationId
          type: string
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/RecommendationRule"
      summary: Get a recommendation rule for an app.
      tags:
        - Recommendations
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/recommendations/{name}/disable":
    post:
      description: Disables the specific rule for a web site permanently.
      operationId: Recommendations_DisableRecommendationForSite
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - description: Site name
          in: path
          name: siteName
          required: true
          type: string
        - description: Rule name
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
      responses:
        "200":
          description: Successfully disabled recommendations.
      summary: Disables the specific rule for a web site permanently.
      tags:
        - Recommendations
definitions:
  Recommendation:
    allOf:
      - description: Azure proxy only resource. This resource is not tracked by Azure Resource Manager.
        properties:
          id:
            description: Resource Id.
            readOnly: true
            type: string
          kind:
            description: Kind of resource.
            type: string
          name:
            description: Resource Name.
            readOnly: true
            type: string
          type:
            description: Resource type.
            readOnly: true
            type: string
        x-ms-azure-resource: true
    description: Represents a recommendation result generated by the recommendation engine.
    properties:
      properties:
        description: Recommendation resource specific properties
        properties:
          actionName:
            description: Name of action recommended by this object.
            type: string
          bladeName:
            description: Deep link to a blade on the portal.
            type: string
          channels:
            description: List of channels that this recommendation can apply.
            enum:
              - Notification
              - Api
              - Email
              - Webhook
              - All
            type: string
            x-ms-enum:
              modelAsString: false
              name: Channels
          creationTime:
            description: Timestamp when this instance was created.
            format: date-time
            type: string
          displayName:
            description: UI friendly name of the rule (may not be unique).
            type: string
          endTime:
            description: The end time in UTC of a range that the recommendation refers to.
            format: date-time
            type: string
          extensionName:
            description: Extension name of the portal if exists.
            type: string
          forwardLink:
            description: Forward link to an external document associated with the rule.
            type: string
          isDynamic:
            description: True if this is associated with a dynamically added rule
            type: boolean
          level:
            description: Level indicating how critical this recommendation can impact.
            enum:
              - Critical
              - Warning
              - Information
              - NonUrgentSuggestion
            type: string
            x-ms-enum:
              modelAsString: false
              name: NotificationLevel
          message:
            description: Recommendation text.
            type: string
          nextNotificationTime:
            description: When to notify this recommendation next in UTC. Null means that this will never be notified anymore.
            format: date-time
            type: string
          notificationExpirationTime:
            description: Date and time in UTC when this notification expires.
            format: date-time
            type: string
          notifiedTime:
            description: Last timestamp in UTC this instance was actually notified. Null means that this recommendation hasn't been notified yet.
            format: date-time
            type: string
          recommendationId:
            description: A GUID value that each recommendation object is associated with.
            example: 00000000-0000-0000-0000-000000000000
            format: uuid
            type: string
          resourceId:
            description: Full ARM resource ID string that this recommendation object is associated with.
            type: string
          resourceScope:
            description: Name of a resource type this recommendation applies, e.g. Subscription, ServerFarm, Site.
            enum:
              - ServerFarm
              - Subscription
              - WebSite
            type: string
            x-ms-enum:
              modelAsString: true
              name: ResourceScopeType
          ruleName:
            description: Unique name of the rule.
            type: string
          score:
            description: A metric value measured by the rule.
            format: double
            type: number
          startTime:
            description: The beginning time in UTC of a range that the recommendation refers to.
            format: date-time
            type: string
          tags:
            description: The list of category tags that this recommendation belongs to.
            items:
              type: string
            type: array
        x-ms-client-flatten: true
    type: object
  RecommendationCollection:
    description: Collection of recommendations.
    properties:
      nextLink:
        description: Link to next page of resources.
        readOnly: true
        type: string
      value:
        description: Collection of resources.
        items:
          $ref: "#/definitions/Recommendation"
        type: array
    required:
      - value
    type: object
  RecommendationRule:
    allOf:
      - description: Azure proxy only resource. This resource is not tracked by Azure Resource Manager.
        properties:
          id:
            description: Resource Id.
            readOnly: true
            type: string
          kind:
            description: Kind of resource.
            type: string
          name:
            description: Resource Name.
            readOnly: true
            type: string
          type:
            description: Resource type.
            readOnly: true
            type: string
        x-ms-azure-resource: true
    description: Represents a recommendation rule that the recommendation engine can perform.
    properties:
      properties:
        description: RecommendationRule resource specific properties
        properties:
          actionName:
            description: Name of action that is recommended by this rule in string.
            type: string
          bladeName:
            description: Deep link to a blade on the portal. Applicable to dynamic rule only.
            type: string
          channels:
            description: List of available channels that this rule applies.
            enum:
              - Notification
              - Api
              - Email
              - Webhook
              - All
            type: string
            x-ms-enum:
              modelAsString: false
              name: Channels
          description:
            description: Localized detailed description of the rule.
            type: string
          displayName:
            description: UI friendly name of the rule.
            type: string
          extensionName:
            description: Extension name of the portal if exists. Applicable to dynamic rule only.
            type: string
          forwardLink:
            description: Forward link to an external document associated with the rule. Applicable to dynamic rule only.
            type: string
          isDynamic:
            description: True if this is associated with a dynamically added rule
            type: boolean
          level:
            description: Level of impact indicating how critical this rule is.
            enum:
              - Critical
              - Warning
              - Information
              - NonUrgentSuggestion
            type: string
            x-ms-enum:
              modelAsString: false
              name: NotificationLevel
          message:
            description: Localized name of the rule (Good for UI).
            type: string
          name:
            description: Unique name of the rule.
            type: string
          recommendationId:
            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.
            example: 00000000-0000-0000-0000-000000000000
            format: uuid
            type: string
          tags:
            description: An array of category tags that the rule contains.
            items:
              type: string
            type: array
        x-ms-client-flatten: true
    type: object
