swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: The Microsoft Azure management API provides create, read, update, and delete functionality for Azure MySQL resources including servers, databases, firewall rules, VNET rules, security alert policies, log files and configurations with new business model.
  title: MySQLManagementClient
  version: 2018-06-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/mysql/resource-manager/Microsoft.DBforMySQL/stable/2018-06-01/PerformanceRecommendations.json
      version: "2.0"
  x-providerName: azure.com
  x-serviceName: mysql-PerformanceRecommendations
  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:
  AdvisorNameParameter:
    description: The advisor name for recommendation action.
    in: path
    name: advisorName
    required: true
    type: string
    x-ms-parameter-location: method
  LocationNameParameter:
    description: The name of the location.
    in: path
    name: locationName
    required: true
    type: string
    x-ms-parameter-location: method
  OperationIdParameter:
    description: The operation identifier.
    in: path
    name: operationId
    required: true
    type: string
    x-ms-parameter-location: method
  RecommendedActionNameParameter:
    description: The recommended action name.
    in: path
    name: recommendedActionName
    required: true
    type: string
    x-ms-parameter-location: method
  ServerNameParameter:
    description: The name of the server.
    in: path
    name: serverName
    required: true
    type: string
    x-ms-parameter-location: method
paths:
  "/subscriptions/{subscriptionId}/providers/Microsoft.DBforMySQL/locations/{locationName}/recommendedActionSessionsAzureAsyncOperation/{operationId}":
    get:
      description: Recommendation action session operation status.
      operationId: LocationBasedRecommendedActionSessionsOperationStatus_Get
      parameters:
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
        - $ref: "#/parameters/LocationNameParameter"
        - $ref: "#/parameters/OperationIdParameter"
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/RecommendedActionSessionsOperationStatus"
      tags:
        - LocationBasedRecommendedActionSessionsOperationStatus
      x-ms-examples:
        RecommendedActionSessionOperationStatus:
          parameters:
            api-version: 2018-06-01
            locationName: WestUS
            operationId: aaaabbbb-cccc-dddd-0000-111122223333
            subscriptionId: ffffffff-ffff-ffff-ffff-ffffffffffff
          responses:
            "200":
              body:
                name: aaaabbbb-cccc-dddd-0000-111122223333
                startTime: 2019-05-01T17:15:00Z
                status: succeeded
  "/subscriptions/{subscriptionId}/providers/Microsoft.DBforMySQL/locations/{locationName}/recommendedActionSessionsOperationResults/{operationId}":
    get:
      description: Recommendation action session operation result.
      operationId: LocationBasedRecommendedActionSessionsResult_List
      parameters:
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
        - $ref: "#/parameters/LocationNameParameter"
        - $ref: "#/parameters/OperationIdParameter"
      responses:
        "200":
          description: Created
          schema:
            $ref: "#/definitions/RecommendationActionsResultList"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/RecommendationActionsResultList"
      tags:
        - LocationBasedRecommendedActionSessionsResult
      x-ms-examples:
        RecommendedActionSessionResult:
          parameters:
            api-version: 2018-06-01
            locationName: WestUS
            operationId: aaaabbbb-cccc-dddd-0000-111122223333
            subscriptionId: ffffffff-ffff-ffff-ffff-ffffffffffff
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testResourceGroupName/providers/Microsoft.Sql/servers/testServerName/advisors/Index/recommendedActions/Index-1
                    name: Index-1
                    properties:
                      actionId: 1
                      advisorName: Index
                      createdTime: 2019-05-01T23:43:24Z
                      details:
                        engine: InnoDB
                        indexColumns: "`movies_genres`.`movie_id`"
                        indexName: idx_movie_id
                        indexType: BTREE
                        parentTableName: movies_genres
                        queryIds: "779"
                        schemaName: movies
                        script: alter table `movies`.`movies_genres` add index `idx_movie_id` (`movie_id`)
                        tableName: movies_genres
                      expirationTime: 2019-05-08T23:43:24Z
                      reason: Column `movies_genres`.`movie_id` appear in Join On clause(s).
                      recommendationType: Add
                      sessionId: c63c2114-e2a4-4c7a-98c1-85577d1a5d50
                    type: Microsoft.DBforMySQL/servers/advisors/recommendedActions
                  - id: /subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testResourceGroupName/providers/Microsoft.Sql/servers/testServerName/advisors/Index/recommendedActions/Index-2
                    name: Index-2
                    properties:
                      actionId: 2
                      advisorName: Index
                      createdTime: 2019-05-01T23:43:24Z
                      details:
                        engine: InnoDB
                        indexColumns: "`movies_genres`.`genre`"
                        indexName: idx_genre
                        indexType: BTREE
                        parentTableName: movies_genres
                        queryIds: "779"
                        schemaName: movies
                        script: alter table `movies`.`movies_genres` add index `idx_genre` (`genre`)
                        tableName: movies_genres
                      expirationTime: 2019-05-08T23:43:24Z
                      reason: Column `movies_genres`.`genre` appear in Group By clause(s).
                      recommendationType: Add
                      sessionId: c63c2114-e2a4-4c7a-98c1-85577d1a5d50
                    type: Microsoft.DBforMySQL/servers/advisors/recommendedActions
            "201":
              body:
                value:
                  - id: /subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testResourceGroupName/providers/Microsoft.Sql/servers/testServerName/advisors/Index/recommendedActions/Index-1
                    name: Index-1
                    properties:
                      actionId: 1
                      advisorName: Index
                      createdTime: 2019-05-01T23:43:24Z
                      details:
                        engine: InnoDB
                        indexColumns: "`movies_genres`.`movie_id`"
                        indexName: idx_movie_id
                        indexType: BTREE
                        parentTableName: movies_genres
                        queryIds: "779"
                        schemaName: movies
                        script: alter table `movies`.`movies_genres` add index `idx_movie_id` (`movie_id`)
                        tableName: movies_genres
                      expirationTime: 2019-05-08T23:43:24Z
                      reason: Column `movies_genres`.`movie_id` appear in Join On clause(s).
                      recommendationType: Add
                      sessionId: c63c2114-e2a4-4c7a-98c1-85577d1a5d50
                    type: Microsoft.DBforMySQL/servers/advisors/recommendedActions
                  - id: /subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testResourceGroupName/providers/Microsoft.Sql/servers/testServerName/advisors/Index/recommendedActions/Index-2
                    name: Index-2
                    properties:
                      actionId: 2
                      advisorName: Index
                      createdTime: 2019-05-01T23:43:24Z
                      details:
                        engine: InnoDB
                        indexColumns: "`movies_genres`.`genre`"
                        indexName: idx_genre
                        indexType: BTREE
                        parentTableName: movies_genres
                        queryIds: "779"
                        schemaName: movies
                        script: alter table `movies`.`movies_genres` add index `idx_genre` (`genre`)
                        tableName: movies_genres
                      expirationTime: 2019-05-08T23:43:24Z
                      reason: Column `movies_genres`.`genre` appear in Group By clause(s).
                      recommendationType: Add
                      sessionId: c63c2114-e2a4-4c7a-98c1-85577d1a5d50
                    type: Microsoft.DBforMySQL/servers/advisors/recommendedActions
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/advisors":
    get:
      description: List recommendation action advisors.
      operationId: Advisors_ListByServer
      parameters:
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
        - description: The name of the resource group. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ServerNameParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/AdvisorsResultList"
      tags:
        - Advisors
      x-ms-examples:
        AdvisorsListByServer:
          parameters:
            api-version: 2018-06-01
            resourceGroupName: testResourceGroupName
            serverName: testServerName
            subscriptionId: ffffffff-ffff-ffff-ffff-ffffffffffff
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testResourceGroupName/providers/Microsoft.DBforMySQL/servers/testServerName/advisors/Index
                    name: Index
                    properties: {}
                    type: Microsoft.DBforMySQL/servers/advisors
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/advisors/{advisorName}":
    get:
      description: Get a recommendation action advisor.
      operationId: Advisors_Get
      parameters:
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
        - description: The name of the resource group. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ServerNameParameter"
        - $ref: "#/parameters/AdvisorNameParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Advisor"
      tags:
        - Advisors
      x-ms-examples:
        AdvisorsGet:
          parameters:
            advisorName: Index
            api-version: 2018-06-01
            resourceGroupName: testResourceGroupName
            serverName: testServerName
            subscriptionId: ffffffff-ffff-ffff-ffff-ffffffffffff
          responses:
            "200":
              body:
                id: /subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testResourceGroupName/providers/Microsoft.DBforMySQL/servers/testServerName/advisors/Index
                name: Index
                properties: {}
                type: Microsoft.DBforMySQL/servers/advisors
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/advisors/{advisorName}/createRecommendedActionSession":
    post:
      description: Create recommendation action session for the advisor.
      operationId: CreateRecommendedActionSession
      parameters:
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
        - description: The name of the resource group. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ServerNameParameter"
        - $ref: "#/parameters/AdvisorNameParameter"
        - description: The name of the database.
          in: query
          name: databaseName
          required: true
          type: string
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - RecommendedActionSessions
      x-ms-examples:
        RecommendedActionSessionCreate:
          parameters:
            advisorName: Index
            api-version: 2018-06-01
            databaseName: someDatabaseName
            resourceGroupName: testResourceGroupName
            serverName: testServerName
            subscriptionId: ffffffff-ffff-ffff-ffff-ffffffffffff
          responses:
            "200": {}
            "202": {}
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/advisors/{advisorName}/recommendedActions":
    get:
      description: Retrieve recommended actions from the advisor.
      operationId: RecommendedActions_ListByServer
      parameters:
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
        - description: The name of the resource group. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ServerNameParameter"
        - $ref: "#/parameters/AdvisorNameParameter"
        - description: The recommendation action session identifier.
          in: query
          name: sessionId
          required: false
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/RecommendationActionsResultList"
      tags:
        - RecommendedActions
      x-ms-examples:
        RecommendedActionsListByServer:
          parameters:
            advisorName: Index
            api-version: 2018-06-01
            resourceGroupName: testResourceGroupName
            serverName: testServerName
            subscriptionId: ffffffff-ffff-ffff-ffff-ffffffffffff
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testResourceGroupName/providers/Microsoft.Sql/servers/testServerName/advisors/Index/recommendedActions/Index-1
                    name: Index-1
                    properties:
                      actionId: 1
                      advisorName: Index
                      createdTime: 2019-05-01T23:43:24Z
                      details:
                        engine: InnoDB
                        indexColumns: "`movies_genres`.`movie_id`"
                        indexName: idx_movie_id
                        indexType: BTREE
                        parentTableName: movies_genres
                        queryIds: "779"
                        schemaName: movies
                        script: alter table `movies`.`movies_genres` add index `idx_movie_id` (`movie_id`)
                        tableName: movies_genres
                      expirationTime: 2019-05-08T23:43:24Z
                      reason: Column `movies_genres`.`movie_id` appear in Join On clause(s).
                      recommendationType: Add
                      sessionId: c63c2114-e2a4-4c7a-98c1-85577d1a5d50
                    type: Microsoft.DBforMySQL/servers/advisors/recommendedActions
                  - id: /subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testResourceGroupName/providers/Microsoft.Sql/servers/testServerName/advisors/Index/recommendedActions/Index-2
                    name: Index-2
                    properties:
                      actionId: 2
                      advisorName: Index
                      createdTime: 2019-05-01T23:43:24Z
                      details:
                        engine: InnoDB
                        indexColumns: "`movies_genres`.`genre`"
                        indexName: idx_genre
                        indexType: BTREE
                        parentTableName: movies_genres
                        queryIds: "779"
                        schemaName: movies
                        script: alter table `movies`.`movies_genres` add index `idx_genre` (`genre`)
                        tableName: movies_genres
                      expirationTime: 2019-05-08T23:43:24Z
                      reason: Column `movies_genres`.`genre` appear in Group By clause(s).
                      recommendationType: Add
                      sessionId: c63c2114-e2a4-4c7a-98c1-85577d1a5d50
                    type: Microsoft.DBforMySQL/servers/advisors/recommendedActions
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/advisors/{advisorName}/recommendedActions/{recommendedActionName}":
    get:
      description: Retrieve recommended actions from the advisor.
      operationId: RecommendedActions_Get
      parameters:
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
        - description: The name of the resource group. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ServerNameParameter"
        - $ref: "#/parameters/AdvisorNameParameter"
        - $ref: "#/parameters/RecommendedActionNameParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/RecommendationAction"
      tags:
        - RecommendedActions
      x-ms-examples:
        RecommendedActionsGet:
          parameters:
            advisorName: Index
            api-version: 2018-06-01
            recommendedActionName: Index-1
            resourceGroupName: testResourceGroupName
            serverName: testServerName
            subscriptionId: ffffffff-ffff-ffff-ffff-ffffffffffff
          responses:
            "200":
              body:
                id: /subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/testResourceGroupName/providers/Microsoft.Sql/servers/testServerName/advisors/Index/recommendedActions/Index-1
                name: Index-1
                properties:
                  actionId: 1
                  advisorName: Index
                  createdTime: 2019-05-01T23:43:24Z
                  details:
                    engine: InnoDB
                    indexColumns: "`movies_genres`.`movie_id`"
                    indexName: idx_movie_id
                    indexType: BTREE
                    parentTableName: movies_genres
                    queryIds: "779"
                    schemaName: movies
                    script: alter table `movies`.`movies_genres` add index `idx_movie_id` (`movie_id`)
                    tableName: movies_genres
                  expirationTime: 2019-05-08T23:43:24Z
                  reason: Column `movies_genres`.`movie_id` appear in Join On clause(s).
                  recommendationType: Add
                  sessionId: c63c2114-e2a4-4c7a-98c1-85577d1a5d50
                type: Microsoft.DBforMySQL/servers/advisors/recommendedActions
definitions:
  Advisor:
    allOf:
      - allOf:
          - properties:
              id:
                description: Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
                readOnly: true
                type: string
              name:
                description: The name of the resource
                readOnly: true
                type: string
              type:
                description: The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts.
                readOnly: true
                type: string
            x-ms-azure-resource: true
        description: The resource model definition for a ARM proxy resource. It will have everything other than required location and tags
    description: Represents a recommendation action advisor.
    properties:
      properties:
        $ref: "#/definitions/AdvisorProperties"
        description: The properties of a recommendation action advisor.
        x-ms-client-flatten: true
  AdvisorProperties:
    description: The properties of a recommendation action advisor.
    properties: {}
  AdvisorsResultList:
    description: A list of query statistics.
    properties:
      nextLink:
        description: Link to retrieve next page of results.
        readOnly: true
        type: string
      value:
        description: The list of recommendation action advisors.
        items:
          $ref: "#/definitions/Advisor"
        readOnly: true
        type: array
    type: object
  RecommendationAction:
    allOf:
      - allOf:
          - properties:
              id:
                description: Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
                readOnly: true
                type: string
              name:
                description: The name of the resource
                readOnly: true
                type: string
              type:
                description: The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts.
                readOnly: true
                type: string
            x-ms-azure-resource: true
        description: The resource model definition for a ARM proxy resource. It will have everything other than required location and tags
    description: Represents a Recommendation Action.
    properties:
      properties:
        $ref: "#/definitions/RecommendationActionProperties"
        description: The properties of a recommendation action.
        x-ms-client-flatten: true
  RecommendationActionProperties:
    description: The properties of a recommendation action.
    properties:
      actionId:
        description: Recommendation action identifier.
        format: int32
        type: integer
      advisorName:
        description: Advisor name.
        type: string
      createdTime:
        description: Recommendation action creation time.
        format: date-time
        type: string
      details:
        additionalProperties:
          type: string
        description: Recommendation action details.
        type: object
      expirationTime:
        description: Recommendation action expiration time.
        format: date-time
        type: string
      reason:
        description: Recommendation action reason.
        type: string
      recommendationType:
        description: Recommendation action type.
        type: string
      sessionId:
        description: Recommendation action session identifier.
        type: string
  RecommendationActionsResultList:
    description: A list of recommendation actions.
    properties:
      nextLink:
        description: Link to retrieve next page of results.
        readOnly: true
        type: string
      value:
        description: The list of recommendation action advisors.
        items:
          $ref: "#/definitions/RecommendationAction"
        readOnly: true
        type: array
    type: object
  RecommendedActionSessionsOperationStatus:
    description: Recommendation action session operation status.
    properties:
      name:
        description: Operation identifier.
        type: string
      startTime:
        description: Operation start time.
        format: date-time
        type: string
      status:
        description: Operation status.
        type: string
