swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: The SQL virtual machine management API provides a RESTful set of web APIs that interact with Azure Compute, Network & Storage services to manage your SQL Server virtual machine. The API enables users to create, delete and retrieve a SQL virtual machine, SQL virtual machine group or availability group listener.
  title: SqlVirtualMachineManagementClient
  version: 2017-03-01-preview
  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/sqlvirtualmachine/resource-manager/Microsoft.SqlVirtualMachine/preview/2017-03-01-preview/sqlvm.json
      version: "2.0"
  x-providerName: azure.com
  x-serviceName: sqlvirtualmachine-sqlvm
  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
parameters:
  ApiVersionParameter:
    description: API version to use for the request.
    in: query
    name: api-version
    required: true
    type: string
    x-ms-parameter-location: client
  AvailabilityGroupListenerNameParameter:
    description: Name of the availability group listener.
    in: path
    name: availabilityGroupListenerNameParameter
    required: true
    type: string
    x-ms-parameter-location: method
  ResourceGroupParameter:
    description: Name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
    in: path
    name: resourceGroupName
    required: true
    type: string
    x-ms-parameter-location: method
  SqlVirtualMachineGroupNameParameter:
    description: Name of the SQL virtual machine group.
    in: path
    name: sqlVirtualMachineGroupNameParameter
    required: true
    type: string
    x-ms-parameter-location: method
  SqlVirtualMachineNameParameter:
    description: Name of the SQL virtual machine.
    in: path
    name: sqlVirtualMachineName
    required: true
    type: string
    x-ms-parameter-location: method
  SubscriptionIdParameter:
    description: Subscription ID that identifies an Azure subscription.
    in: path
    name: subscriptionId
    required: true
    type: string
    x-ms-parameter-location: client
paths:
  /providers/Microsoft.SqlVirtualMachine/operations:
    get:
      description: Lists all of the available SQL Rest API operations.
      operationId: Operations_List
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully retrieved operations.
          schema:
            $ref: "#/definitions/OperationListResult"
        default:
          description: "*** Error Responses: ***"
      tags:
        - Operations
      x-ms-examples:
        Lists all of the available SQL Rest API operations.:
          parameters:
            api-version: 2017-03-01-preview
          responses:
            "200":
              body:
                value:
                  - display:
                      description: Retrives details of SQL VirtualMachine Group
                      operation: Get SQL VirtualMachine Group details
                      resource: SQL VirtualMachine Group
                    name: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/read
                  - display:
                      description: Create a new or change properties of existing SQL VirtualMachine Group
                      operation: Create a new or update existing SQL VirtualMachine Group
                      resource: SQL VirtualMachine Group
                    name: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/write
                  - display:
                      description: Delete existing SQL VirtualMachine Group
                      operation: Delete existing SQL VirtualMachine Group
                      resource: SQL VirtualMachine Group
                    name: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/delete
                  - display:
                      description: Retrieves details of SQL AvailabilityGroup Listener on a given SQL VirtualMachine Group
                      operation: Get AvailabilityGroup Listener details
                      resource: SQL AvailabilityGroup Listener
                    name: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/availabilityGroupListeners/read
                  - display:
                      description: Create a new or change properties of existing SQL AvailabilityGroup Listener
                      operation: Create new or update exising AvailabilityGroup Listener
                      resource: SQL AvailabilityGroup Listener
                    name: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/availabilityGroupListeners/write
                  - display:
                      description: Delete existing AvailabilityGroup Listener
                      operation: Delete existing AvailabilityGroup Listener
                      resource: SQL AvailabilityGroup Listener
                    name: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/availabilityGroupListeners/delete
                  - display:
                      description: Get result of an AvailabilityGroup Listener operation
                      operation: Get AvailabilityGroup Listener operation result
                      resource: SQL AvailabilityGroup Listener
                    name: Microsoft.SqlVirtualMachine/locations/availabilityGroupListenerOperationResults/read
                  - display:
                      resource: Available REST operations
                    name: Microsoft.SqlVirtualMachine/operations/read
                  - display:
                      description: Get result of a SQL VirtualMachine Group operation
                      operation: Get SQL VirtualMachine Group operation result
                      resource: SQL VirtualMachine Group
                    name: Microsoft.SqlVirtualMachine/locations/sqlVirtualMachineGroupOperationResults/read
                  - display:
                      description: Retrieves details of SQL VirtualMachine
                      operation: Get SQL VirtualMachine Instance details
                    name: Microsoft.SqlVirtualMachine/sqlVirtualMachines/read
                  - display:
                      description: Create a new or change properties of existing SQL VirtualMachine
                      operation: Create new or update existing SQL VirtualMachine
                    name: Microsoft.SqlVirtualMachine/sqlVirtualMachines/write
                  - display:
                      description: Delete exisiting SQL VirtualMachine
                      operation: Delete exisiting SQL VirtualMachine
                    name: Microsoft.SqlVirtualMachine/sqlVirtualMachines/delete
                  - display:
                      description: Get result of SQL VirtualMachine operation
                      operation: Get SQL VirtualMachine operation result
                      resource: SQL VirtualMachine
                    name: Microsoft.SqlVirtualMachine/locations/sqlVirtualMachineOperationResults/read
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups":
    get:
      description: Gets all SQL virtual machine groups in a subscription.
      operationId: SqlVirtualMachineGroups_List
      parameters:
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully retrieved all SQL virtual machine groups in the subscription.
          schema:
            $ref: "#/definitions/SqlVirtualMachineGroupListResult"
        default:
          description: |-
            *** Error Responses: ***

             * 400 InvalidParameterValue - An invalid value was given to parameter.

             * 400 RPGenericUser - User Failure when calling other Resource Provider.

             * 400 RPResponseMissingAsyncOperationHeader - Response is missing Async operation header information

             * 400 InvalidArgument - Invalid argument '{0}'.

             * 400 ArgumentNotInRange - Argument '{0}' not in range.

             * 400 ResourceNotProvisioned - As the resource: {0} is not in a provisioned state, the request cannot be proceeded forward

             * 400 CRPNotAllowedOperation - Operation cannot be completed due to the following error: {0}

             * 400 InvalidRgResourceId - Invalid Resourcegroup resource id specified.

             * 403 AccessDenied - Access denied.

             * 404 ResourceNotFound - The requested resource was not found.

             * 404 SubscriptionDoesNotExist - Subscription id does not exist.

             * 404 ResourceDoesNotExist - Resource does not exist.

             * 404 RPOperationNotFound - Operation not found

             * 404 OperationIdNotFound - Operation id could not be found.

             * 404 OperationTypeNotFound - Operation Type not found.

             * 409 ResourceAlreadyExists - Resource already exists.

             * 409 LBGenericErrors - LB operation failed

             * 409 NICGenericError - NIC operation failed

             * 409 SqlExtensionNotInstalled - SQL extension not installed.

             * 409 RPPluginSubstatusMissing - RP plugin substatus missing

             * 409 MissingMoveResources - Cannot move resources(s) because some resources are missing in the request.

             * 409 ResourceExists - There was an internal error in cleaning up of resources.

             * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress

             * 409 OperationInProgress - Operation in progress on resource already.

             * 409 OperationCanceled - Operation Cancelled.

             * 500 RPGenericSystem - System Failure when calling other Resource Provider.

             * 500 UnExpectedErrorOccurred - Unexpected error occurred.

             * 500 OperationTimeout - Operation timed out.
      tags:
        - SqlVirtualMachineGroups
      x-ms-examples:
        Gets all SQL virtual machine groups in a subscription.:
          parameters:
            api-version: 2017-03-01-preview
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/
                    location: northeurope
                    name: testvmgroup
                    properties:
                      provisioningState: Succeeded
                      sqlImageOffer: SQL2017-WS2016
                      sqlImageSku: Enterprise
                      wsfcDomainProfile:
                        clusterBootstrapAccount: testrpadmin
                        clusterOperatorAccount: testrp@testdomain.com
                        domainFqdn: testdomain.com
                        ouPath: OU=WSCluster,DC=testdomain,DC=com
                        sqlServiceAccount: sqlservice@testdomain.com
                        storageAccountUrl: https://storgact.blob.core.windows.net/
                    tags:
                      mytag: myval
                    type: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups
                  - id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg1/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/
                    location: northeurope
                    name: testvmgroup1
                    properties:
                      provisioningState: Succeeded
                      sqlImageOffer: SQL2016-WS2016
                      sqlImageSku: Enterprise
                      wsfcDomainProfile:
                        clusterBootstrapAccount: testrpadmin
                        clusterOperatorAccount: testrp@testdomain.com
                        domainFqdn: testdomain.com
                        ouPath: OU=WSCluster,DC=testdomain,DC=com
                        sqlServiceAccount: sqlservice@testdomain.com
                        storageAccountUrl: https://storgact.blob.core.windows.net/
                    tags:
                      mytag: myval
                    type: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups
                  - id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg2/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/
                    location: northeurope
                    name: testvmgroup2
                    properties:
                      provisioningState: Succeeded
                      sqlImageOffer: SQL2016-WS2016
                      sqlImageSku: Enterprise
                      wsfcDomainProfile:
                        clusterBootstrapAccount: testrpadmin
                        clusterOperatorAccount: testrp@testdomain.com
                        domainFqdn: testdomain.com
                        ouPath: OU=WSCluster,DC=testdomain,DC=com
                        sqlServiceAccount: sqlservice@testdomain.com
                        storageAccountUrl: https://storgact.blob.core.windows.net/
                    tags:
                      mytag: myval
                    type: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines":
    get:
      description: Gets all SQL virtual machines in a subscription.
      operationId: SqlVirtualMachines_List
      parameters:
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully retrieved all SQL virtual machines in the subscription.
          schema:
            $ref: "#/definitions/SqlVirtualMachineListResult"
        default:
          description: |-
            *** Error Responses: ***

             * 400 InvalidParameterValue - An invalid value was given to parameter.

             * 400 RPGenericUser - User Failure when calling other Resource Provider.

             * 400 RPResponseMissingAsyncOperationHeader - Response is missing Async operation header information

             * 400 InvalidArgument - Invalid argument '{0}'.

             * 400 ArgumentNotInRange - Argument '{0}' not in range.

             * 400 ResourceNotProvisioned - As the resource: {0} is not in a provisioned state, the request cannot be proceeded forward

             * 400 CRPNotAllowedOperation - Operation cannot be completed due to the following error: {0}

             * 400 InvalidRgResourceId - Invalid Resourcegroup resource id specified.

             * 403 AccessDenied - Access denied.

             * 404 ResourceNotFound - The requested resource was not found.

             * 404 SubscriptionDoesNotExist - Subscription id does not exist.

             * 404 ResourceDoesNotExist - Resource does not exist.

             * 404 RPOperationNotFound - Operation not found

             * 404 OperationIdNotFound - Operation id could not be found.

             * 404 OperationTypeNotFound - Operation Type not found.

             * 409 ResourceAlreadyExists - Resource already exists.

             * 409 LBGenericErrors - LB operation failed

             * 409 NICGenericError - NIC operation failed

             * 409 SqlExtensionNotInstalled - SQL extension not installed.

             * 409 RPPluginSubstatusMissing - RP plugin substatus missing

             * 409 MissingMoveResources - Cannot move resources(s) because some resources are missing in the request.

             * 409 ResourceExists - There was an internal error in cleaning up of resources.

             * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress

             * 409 OperationInProgress - Operation in progress on resource already.

             * 409 OperationCanceled - Operation Cancelled.

             * 500 RPGenericSystem - System Failure when calling other Resource Provider.

             * 500 UnExpectedErrorOccurred - Unexpected error occurred.

             * 500 OperationTimeout - Operation timed out.
      tags:
        - SqlVirtualMachines
      x-ms-examples:
        Gets all SQL virtual machines in a subscription.:
          parameters:
            api-version: 2017-03-01-preview
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm
                    location: northeurope
                    name: testvm
                    properties:
                      provisioningState: Succeeded
                      sqlImageOffer: SQL2016-WS2016
                      sqlImageSku: Enterprise
                      sqlServerLicenseType: PAYG
                      virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm
                    type: Microsoft.SqlVirtualMachine/sqlVirtualMachines
                  - id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm1
                    location: northeurope
                    name: testvm1
                    properties:
                      provisioningState: Succeeded
                      sqlImageOffer: SQL2017-WS2016
                      sqlImageSku: Enterprise
                      sqlServerLicenseType: PAYG
                      virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm1
                    type: Microsoft.SqlVirtualMachine/sqlVirtualMachines
                  - id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg1/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm2
                    location: northeurope
                    name: testvm2
                    properties:
                      provisioningState: Succeeded
                      sqlImageOffer: SQL2016-WS2016
                      sqlImageSku: Enterprise
                      sqlServerLicenseType: PAYG
                      virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg1/providers/Microsoft.Compute/virtualMachines/testvm2
                    type: Microsoft.SqlVirtualMachine/sqlVirtualMachines
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups":
    get:
      description: Gets all SQL virtual machine groups in a resource group.
      operationId: SqlVirtualMachineGroups_ListByResourceGroup
      parameters:
        - $ref: "#/parameters/ResourceGroupParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully retrieved all SQL virtual machine groups in the resource group.
          schema:
            $ref: "#/definitions/SqlVirtualMachineGroupListResult"
        default:
          description: "*** Error Responses: ***"
      tags:
        - SqlVirtualMachineGroups
      x-ms-examples:
        Gets all SQL virtual machine groups in a resource group.:
          parameters:
            api-version: 2017-03-01-preview
            resourceGroupName: testrg
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/testvmgroup
                    location: northeurope
                    name: testvmgroup
                    properties:
                      provisioningState: Succeeded
                      sqlImageOffer: SQL2017-WS2016
                      sqlImageSku: Enterprise
                      wsfcDomainProfile:
                        clusterBootstrapAccount: testrpadmin
                        clusterOperatorAccount: testrp@testdomain.com
                        domainFqdn: testdomain.com
                        ouPath: OU=WSCluster,DC=testdomain,DC=com
                        sqlServiceAccount: sqlservice@testdomain.com
                        storageAccountUrl: https://storgact.blob.core.windows.net/
                    tags:
                      mytag: myval
                    type: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups
                  - id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/testvmgroup1
                    location: northeurope
                    name: testvmgroup1
                    properties:
                      provisioningState: Succeeded
                      sqlImageOffer: SQL2016-WS2016
                      sqlImageSku: Enterprise
                      wsfcDomainProfile:
                        clusterBootstrapAccount: testrpadmin
                        clusterOperatorAccount: testrp@testdomain.com
                        domainFqdn: testdomain.com
                        ouPath: OU=WSCluster,DC=testdomain,DC=com
                        sqlServiceAccount: sqlservice@testdomain.com
                        storageAccountUrl: https://storgact.blob.core.windows.net/
                    tags:
                      mytag: myval
                    type: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups
                  - id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/testvmgroup2
                    location: northeurope
                    name: testvmgroup2
                    properties:
                      provisioningState: Succeeded
                      sqlImageOffer: SQL2016-WS2016
                      sqlImageSku: Enterprise
                      wsfcDomainProfile:
                        clusterBootstrapAccount: testrpadmin
                        clusterOperatorAccount: testrp@testdomain.com
                        domainFqdn: testdomain.com
                        ouPath: OU=WSCluster,DC=testdomain,DC=com
                        sqlServiceAccount: sqlservice@testdomain.com
                        storageAccountUrl: https://storgact.blob.core.windows.net/
                    tags:
                      mytag: myval
                    type: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/{sqlVirtualMachineGroupName}":
    delete:
      description: Deletes a SQL virtual machine group.
      operationId: SqlVirtualMachineGroups_Delete
      parameters:
        - $ref: "#/parameters/ResourceGroupParameter"
        - description: Name of the SQL virtual machine group.
          in: path
          name: sqlVirtualMachineGroupName
          required: true
          type: string
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully deleted the SQL virtual machine group.
        "202":
          description: Deleting the SQL virtual machine group.
        "204":
          description: The specified SQL virtual machine group does not exist.
        default:
          description: |-
            *** Error Responses: ***

             * 400 RPGenericUser - User Failure when calling other Resource Provider.

             * 400 RPResponseMissingAsyncOperationHeader - Response is missing Async operation header information

             * 400 InvalidArgument - Invalid argument '{0}'.

             * 400 ArgumentNotInRange - Argument '{0}' not in range.

             * 400 ResourceNotProvisioned - As the resource: {0} is not in a provisioned state, the request cannot be proceeded forward

             * 400 CRPNotAllowedOperation - Operation cannot be completed due to the following error: {0}

             * 400 InvalidRgResourceId - Invalid Resourcegroup resource id specified.

             * 400 InvalidParameterValue - An invalid value was given to parameter.

             * 400 FileShareWitnessDisAllowed - For Windows Server 2016 and beyond setup, file share witness is not allowed.

             * 400 InvalidStorageAccountUrl - Invalid storage account url.

             * 400 SqlVmGroupNameTooLong - SQL virtual machine group name cannot exceed 15 characters.

             * 400 InvalidSqlVmGroupName - Invalid SQL virtual machine group name.

             * 400 InvalidStorageAccountCredentials - The storage account credentials provided are incorrect.

             * 400 InvalidStorageAccountType - Only storage account of type 'General-Purpose V2' is allowed for this operation.

             * 400 SqlVmGroupNotEmpty - SQL virtual machine group is not empty.

             * 400 SqlVmGroupUpdateNotAllowed - Update to SQL virtual machine group is not allowed.

             * 400 SqlVmGroupUpdateFailVmAttached - SQL virtual machine group cannot be updated as it has attached a SQL virtual machine.

             * 400 InvalidSqlImageOffer - Provided SQL image offer is invalid.

             * 400 InvalidSqlSku - Provided SQL sku is invalid.

             * 400 OuPathAndDomainMismatch - OU path is not within the domain provided.

             * 400 InvalidAccountNameFormat - Account name format is invalid.

             * 400 CloudWitnessUnsupported - For Windows Server 2012R2 setup cloud witness is not allowed.

             * 403 AccessDenied - Access denied.

             * 404 SubscriptionDoesNotExist - Subscription id does not exist.

             * 404 ResourceDoesNotExist - Resource does not exist.

             * 404 RPOperationNotFound - Operation not found

             * 404 OperationIdNotFound - Operation id could not be found.

             * 404 OperationTypeNotFound - Operation Type not found.

             * 404 ResourceNotFound - The requested resource was not found.

             * 404 SubscriptionDoesNotHaveSqlVMGroupInResourceGroup - Subscription does not have SQL virtual machine group in resource group.

             * 409 ResourceAlreadyExists - Resource already exists.

             * 409 LBGenericErrors - LB operation failed

             * 409 NICGenericError - NIC operation failed

             * 409 SqlExtensionNotInstalled - SQL extension not installed.

             * 409 RPPluginSubstatusMissing - RP plugin substatus missing

             * 409 MissingMoveResources - Cannot move resources(s) because some resources are missing in the request.

             * 409 ResourceExists - There was an internal error in cleaning up of resources.

             * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress

             * 409 OperationInProgress - Operation in progress on resource already.

             * 409 OperationCanceled - Operation Cancelled.

             * 500 RPGenericSystem - System Failure when calling other Resource Provider.

             * 500 UnExpectedErrorOccurred - Unexpected error occurred.

             * 500 OperationTimeout - Operation timed out.
      tags:
        - SqlVirtualMachineGroups
      x-ms-examples:
        Deletes a SQL virtual machine group.:
          parameters:
            api-version: 2017-03-01-preview
            resourceGroupName: testrg
            sqlVirtualMachineGroupName: testvmgroup
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200": {}
            "202": {}
            "204": {}
      x-ms-long-running-operation: true
    get:
      description: Gets a SQL virtual machine group.
      operationId: SqlVirtualMachineGroups_Get
      parameters:
        - $ref: "#/parameters/ResourceGroupParameter"
        - description: Name of the SQL virtual machine group.
          in: path
          name: sqlVirtualMachineGroupName
          required: true
          type: string
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully retrieved the SQL virtual machine group.
          schema:
            $ref: "#/definitions/SqlVirtualMachineGroup"
        default:
          description: |-
            *** Error Responses: ***

             * 400 InvalidParameterValue - An invalid value was given to parameter.

             * 400 RPGenericUser - User Failure when calling other Resource Provider.

             * 400 RPResponseMissingAsyncOperationHeader - Response is missing Async operation header information

             * 400 InvalidArgument - Invalid argument '{0}'.

             * 400 ArgumentNotInRange - Argument '{0}' not in range.

             * 400 ResourceNotProvisioned - As the resource: {0} is not in a provisioned state, the request cannot be proceeded forward

             * 400 CRPNotAllowedOperation - Operation cannot be completed due to the following error: {0}

             * 400 InvalidRgResourceId - Invalid Resourcegroup resource id specified.

             * 403 AccessDenied - Access denied.

             * 404 ResourceNotFound - The requested resource was not found.

             * 404 SubscriptionDoesNotExist - Subscription id does not exist.

             * 404 ResourceDoesNotExist - Resource does not exist.

             * 404 RPOperationNotFound - Operation not found

             * 404 OperationIdNotFound - Operation id could not be found.

             * 404 OperationTypeNotFound - Operation Type not found.

             * 409 ResourceAlreadyExists - Resource already exists.

             * 409 LBGenericErrors - LB operation failed

             * 409 NICGenericError - NIC operation failed

             * 409 SqlExtensionNotInstalled - SQL extension not installed.

             * 409 RPPluginSubstatusMissing - RP plugin substatus missing

             * 409 MissingMoveResources - Cannot move resources(s) because some resources are missing in the request.

             * 409 ResourceExists - There was an internal error in cleaning up of resources.

             * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress

             * 409 OperationInProgress - Operation in progress on resource already.

             * 409 OperationCanceled - Operation Cancelled.

             * 500 RPGenericSystem - System Failure when calling other Resource Provider.

             * 500 UnExpectedErrorOccurred - Unexpected error occurred.

             * 500 OperationTimeout - Operation timed out.
      tags:
        - SqlVirtualMachineGroups
      x-ms-examples:
        Gets a SQL virtual machine group.:
          parameters:
            api-version: 2017-03-01-preview
            resourceGroupName: testrg
            sqlVirtualMachineGroupName: testvmgroup
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/testvmgroup
                location: northeurope
                name: testvmgroup
                properties:
                  provisioningState: Succeeded
                  sqlImageOffer: SQL2016-WS2016
                  sqlImageSku: Enterprise
                  wsfcDomainProfile:
                    clusterBootstrapAccount: testrpadmin
                    clusterOperatorAccount: testrp@testdomain.com
                    domainFqdn: testdomain.com
                    ouPath: OU=WSCluster,DC=testdomain,DC=com
                    sqlServiceAccount: sqlservice@testdomain.com
                    storageAccountUrl: https://storgact.blob.core.windows.net/
                tags:
                  mytag: myval
                type: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups
    patch:
      description: Updates SQL virtual machine group tags.
      operationId: SqlVirtualMachineGroups_Update
      parameters:
        - $ref: "#/parameters/ResourceGroupParameter"
        - description: Name of the SQL virtual machine group.
          in: path
          name: sqlVirtualMachineGroupName
          required: true
          type: string
        - description: The SQL virtual machine group.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/SqlVirtualMachineGroupUpdate"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully updated the SQL virtual machine group.
          schema:
            $ref: "#/definitions/SqlVirtualMachineGroup"
        default:
          description: |-
            *** Error Responses: ***

             * 400 RPGenericUser - User Failure when calling other Resource Provider.

             * 400 RPResponseMissingAsyncOperationHeader - Response is missing Async operation header information

             * 400 InvalidArgument - Invalid argument '{0}'.

             * 400 ArgumentNotInRange - Argument '{0}' not in range.

             * 400 ResourceNotProvisioned - As the resource: {0} is not in a provisioned state, the request cannot be proceeded forward

             * 400 CRPNotAllowedOperation - Operation cannot be completed due to the following error: {0}

             * 400 InvalidRgResourceId - Invalid Resourcegroup resource id specified.

             * 400 InvalidParameterValue - An invalid value was given to parameter.

             * 400 FileShareWitnessDisAllowed - For Windows Server 2016 and beyond setup, file share witness is not allowed.

             * 400 InvalidStorageAccountUrl - Invalid storage account url.

             * 400 SqlVmGroupNameTooLong - SQL virtual machine group name cannot exceed 15 characters.

             * 400 InvalidSqlVmGroupName - Invalid SQL virtual machine group name.

             * 400 InvalidStorageAccountCredentials - The storage account credentials provided are incorrect.

             * 400 InvalidStorageAccountType - Only storage account of type 'General-Purpose V2' is allowed for this operation.

             * 400 SqlVmGroupNotEmpty - SQL virtual machine group is not empty.

             * 400 SqlVmGroupUpdateNotAllowed - Update to SQL virtual machine group is not allowed.

             * 400 SqlVmGroupUpdateFailVmAttached - SQL virtual machine group cannot be updated as it has attached a SQL virtual machine.

             * 400 InvalidSqlImageOffer - Provided SQL image offer is invalid.

             * 400 InvalidSqlSku - Provided SQL sku is invalid.

             * 400 OuPathAndDomainMismatch - OU path is not within the domain provided.

             * 400 InvalidAccountNameFormat - Account name format is invalid.

             * 400 CloudWitnessUnsupported - For Windows Server 2012R2 setup cloud witness is not allowed.

             * 403 AccessDenied - Access denied.

             * 404 SubscriptionDoesNotExist - Subscription id does not exist.

             * 404 ResourceDoesNotExist - Resource does not exist.

             * 404 RPOperationNotFound - Operation not found

             * 404 OperationIdNotFound - Operation id could not be found.

             * 404 OperationTypeNotFound - Operation Type not found.

             * 404 ResourceNotFound - The requested resource was not found.

             * 404 SubscriptionDoesNotHaveSqlVMGroupInResourceGroup - Subscription does not have SQL virtual machine group in resource group.

             * 409 ResourceAlreadyExists - Resource already exists.

             * 409 LBGenericErrors - LB operation failed

             * 409 NICGenericError - NIC operation failed

             * 409 SqlExtensionNotInstalled - SQL extension not installed.

             * 409 RPPluginSubstatusMissing - RP plugin substatus missing

             * 409 MissingMoveResources - Cannot move resources(s) because some resources are missing in the request.

             * 409 ResourceExists - There was an internal error in cleaning up of resources.

             * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress

             * 409 OperationInProgress - Operation in progress on resource already.

             * 409 OperationCanceled - Operation Cancelled.

             * 500 RPGenericSystem - System Failure when calling other Resource Provider.

             * 500 UnExpectedErrorOccurred - Unexpected error occurred.

             * 500 OperationTimeout - Operation timed out.
      tags:
        - SqlVirtualMachineGroups
      x-ms-examples:
        Updates a SQL virtual machine group tags.:
          parameters:
            api-version: 2017-03-01-preview
            parameters:
              tags:
                mytag: myval
            resourceGroupName: testrg
            sqlVirtualMachineGroupName: testvmgroup
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm
                location: northeurope
                name: testvmgroup
                properties:
                  provisioningState: UpdatingDomainful
                  sqlImageOffer: SQL2017-WS2016
                  sqlImageSku: Enterprise
                  wsfcDomainProfile:
                    storageAccountUrl: https://storgact.blob.core.windows.net/
                tags:
                  mytag: myval
                type: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups
      x-ms-long-running-operation: true
    put:
      description: Creates or updates a SQL virtual machine group.
      operationId: SqlVirtualMachineGroups_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ResourceGroupParameter"
        - description: Name of the SQL virtual machine group.
          in: path
          name: sqlVirtualMachineGroupName
          required: true
          type: string
        - description: The SQL virtual machine group.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/SqlVirtualMachineGroup"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully updated the SQL virtual machine group.
          schema:
            $ref: "#/definitions/SqlVirtualMachineGroup"
        "201":
          description: Successfully created the SQL virtual machine group.
          schema:
            $ref: "#/definitions/SqlVirtualMachineGroup"
        default:
          description: |-
            *** Error Responses: ***

             * 400 RPGenericUser - User Failure when calling other Resource Provider.

             * 400 RPResponseMissingAsyncOperationHeader - Response is missing Async operation header information

             * 400 InvalidArgument - Invalid argument '{0}'.

             * 400 ArgumentNotInRange - Argument '{0}' not in range.

             * 400 ResourceNotProvisioned - As the resource: {0} is not in a provisioned state, the request cannot be proceeded forward

             * 400 CRPNotAllowedOperation - Operation cannot be completed due to the following error: {0}

             * 400 InvalidRgResourceId - Invalid Resourcegroup resource id specified.

             * 400 InvalidParameterValue - An invalid value was given to parameter.

             * 400 FileShareWitnessDisAllowed - For Windows Server 2016 and beyond setup, file share witness is not allowed.

             * 400 InvalidStorageAccountUrl - Invalid storage account url.

             * 400 SqlVmGroupNameTooLong - SQL virtual machine group name cannot exceed 15 characters.

             * 400 InvalidSqlVmGroupName - Invalid SQL virtual machine group name.

             * 400 InvalidStorageAccountCredentials - The storage account credentials provided are incorrect.

             * 400 InvalidStorageAccountType - Only storage account of type 'General-Purpose V2' is allowed for this operation.

             * 400 SqlVmGroupNotEmpty - SQL virtual machine group is not empty.

             * 400 SqlVmGroupUpdateNotAllowed - Update to SQL virtual machine group is not allowed.

             * 400 SqlVmGroupUpdateFailVmAttached - SQL virtual machine group cannot be updated as it has attached a SQL virtual machine.

             * 400 InvalidSqlImageOffer - Provided SQL image offer is invalid.

             * 400 InvalidSqlSku - Provided SQL sku is invalid.

             * 400 OuPathAndDomainMismatch - OU path is not within the domain provided.

             * 400 InvalidAccountNameFormat - Account name format is invalid.

             * 400 CloudWitnessUnsupported - For Windows Server 2012R2 setup cloud witness is not allowed.

             * 403 AccessDenied - Access denied.

             * 404 SubscriptionDoesNotExist - Subscription id does not exist.

             * 404 ResourceDoesNotExist - Resource does not exist.

             * 404 RPOperationNotFound - Operation not found

             * 404 OperationIdNotFound - Operation id could not be found.

             * 404 OperationTypeNotFound - Operation Type not found.

             * 404 ResourceNotFound - The requested resource was not found.

             * 404 SubscriptionDoesNotHaveSqlVMGroupInResourceGroup - Subscription does not have SQL virtual machine group in resource group.

             * 409 ResourceAlreadyExists - Resource already exists.

             * 409 LBGenericErrors - LB operation failed

             * 409 NICGenericError - NIC operation failed

             * 409 SqlExtensionNotInstalled - SQL extension not installed.

             * 409 RPPluginSubstatusMissing - RP plugin substatus missing

             * 409 MissingMoveResources - Cannot move resources(s) because some resources are missing in the request.

             * 409 ResourceExists - There was an internal error in cleaning up of resources.

             * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress

             * 409 OperationInProgress - Operation in progress on resource already.

             * 409 OperationCanceled - Operation Cancelled.

             * 500 RPGenericSystem - System Failure when calling other Resource Provider.

             * 500 UnExpectedErrorOccurred - Unexpected error occurred.

             * 500 OperationTimeout - Operation timed out.
      tags:
        - SqlVirtualMachineGroups
      x-ms-examples:
        Creates or updates a SQL virtual machine group.:
          parameters:
            api-version: 2017-03-01-preview
            parameters:
              location: northeurope
              properties:
                sqlImageOffer: SQL2016-WS2016
                sqlImageSku: Enterprise
                wsfcDomainProfile:
                  clusterBootstrapAccount: testrpadmin
                  clusterOperatorAccount: testrp@testdomain.com
                  domainFqdn: testdomain.com
                  ouPath: OU=WSCluster,DC=testdomain,DC=com
                  sqlServiceAccount: sqlservice@testdomain.com
                  storageAccountPrimaryKey: <primary storage access key>
                  storageAccountUrl: https://storgact.blob.core.windows.net/
              tags:
                mytag: myval
            resourceGroupName: testrg
            sqlVirtualMachineGroupName: testvmgroup
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/testvmgroup
                location: northeurope
                name: testvmgroup
                properties:
                  provisioningState: UpdatingDomainful
                  sqlImageOffer: SQL2016-WS2016
                  sqlImageSku: Enterprise
                  wsfcDomainProfile:
                    storageAccountUrl: https://storgact.blob.core.windows.net/
                tags:
                  mytag: myval
                type: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups
            "201":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/testvmgroup
                location: northeurope
                name: testvmgroup
                properties:
                  provisioningState: ProvisioningDomainful
                  sqlImageOffer: SQL2016-WS2016
                  sqlImageSku: Enterprise
                  wsfcDomainProfile:
                    storageAccountUrl: https://storgact.blob.core.windows.net/
                tags:
                  mytag: myval
                type: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/{sqlVirtualMachineGroupName}/availabilityGroupListeners":
    get:
      description: Lists all availability group listeners in a SQL virtual machine group.
      operationId: AvailabilityGroupListeners_ListByGroup
      parameters:
        - $ref: "#/parameters/ResourceGroupParameter"
        - description: Name of the SQL virtual machine group.
          in: path
          name: sqlVirtualMachineGroupName
          required: true
          type: string
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully retrieved all availability group listeners in a SQL virtual machine group.
          schema:
            $ref: "#/definitions/AvailabilityGroupListenerListResult"
        default:
          description: "*** Error Responses: ***"
      tags:
        - AvailabilityGroupListeners
      x-ms-examples:
        Lists all availability group listeners in a SQL virtual machine group.:
          parameters:
            api-version: 2017-03-01-preview
            resourceGroupName: testrg
            sqlVirtualMachineGroupName: testvmgroup
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/testvmgroup/availabilityGroupListeners/agl-test
                    name: agl-test
                    properties:
                      availabilityGroupName: ag-test
                      loadBalancerConfigurations:
                        - loadBalancerResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb-test
                          privateIpAddress:
                            ipAddress: 10.1.0.112
                            subnetResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/default
                          probePort: 59983
                          sqlVirtualMachineInstances:
                            - /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm3
                            - /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm2
                      port: 1433
                      provisioningState: Succeeded
                    type: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/availabilityGroupListeners
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/{sqlVirtualMachineGroupName}/availabilityGroupListeners/{availabilityGroupListenerName}":
    delete:
      description: Deletes an availability group listener.
      operationId: AvailabilityGroupListeners_Delete
      parameters:
        - $ref: "#/parameters/ResourceGroupParameter"
        - description: Name of the SQL virtual machine group.
          in: path
          name: sqlVirtualMachineGroupName
          required: true
          type: string
        - description: Name of the availability group listener.
          in: path
          name: availabilityGroupListenerName
          required: true
          type: string
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully deleted the availability group listener.
        "202":
          description: Deleting the availability group listener.
        "204":
          description: The availability group listener does not exist.
        default:
          description: |-
            *** Error Responses: ***

             * 400 InvalidParameterValue - An invalid value was given to parameter.

             * 400 RPGenericUser - User Failure when calling other Resource Provider.

             * 400 RPResponseMissingAsyncOperationHeader - Response is missing Async operation header information

             * 400 InvalidArgument - Invalid argument '{0}'.

             * 400 ArgumentNotInRange - Argument '{0}' not in range.

             * 400 ResourceNotProvisioned - As the resource: {0} is not in a provisioned state, the request cannot be proceeded forward

             * 400 CRPNotAllowedOperation - Operation cannot be completed due to the following error: {0}

             * 400 InvalidRgResourceId - Invalid Resourcegroup resource id specified.

             * 400 AgDoesNotExist - Availability group does not exist.

             * 400 AgListDoesNotMatch - SQL Availability group list does not match the list of virtual machines in SQL Virtual machine group.

             * 400 NoIpProvided - At least one IP needs to be provided.

             * 400 MoreIpProvided - Only one IP needs to be provided.

             * 400 SqlVmGroupDoesNotHaveAGListener - SQL virtual machine group does not have the AG listener.

             * 400 AgListenerUpdateNotAllowed - Only handful properties of availability group listener can be updated.

             * 400 SqlVmNotInGroup - SQL virtual machine is not part of the group.

             * 400 SqlVmListCannotBeEmpty - SQL virtual machines list cannot be empty.

             * 400 PublicIpNotIPv4 - Public IP must be IPv4 address.

             * 400 PublicIPDynamicAllocation - Public IP allocation mode must be static

             * 400 PublicLBInvalid - Load balancer specified is not public.

             * 400 SubnetMissingFromPrivateIP - Subnet must be provided with private IP.

             * 400 IPNotInSubnet - IP not part of subnet.

             * 400 NoActivePrimaryInAG - None of the nodes in AvailabilityGroup are Primary

             * 400 MultipleListenerSameAG - Multiple availability group listeners for same availability group are not allowed.

             * 400 AgListenerNotEmpty - Availability group listener not empty.

             * 400 AgListenerVnetMismatch - Provided VNet for Availability group listener does not match Vnet of internal load balancer.

             * 400 InternalLBInvalid - Load balancer specified is not internal.

             * 400 InvalidSqlVmResourceIdParameterValue - SQL virtual machine resource id provided is invalid.

             * 400 DifferentSubSqlVmList - All SQL virtual machines should be under same subscription.

             * 400 OnlyStandardPublicIp - Every virtual machine should have standard public IP.

             * 400 ListenerNameTooLong - Listener name should not exceed 15 characters.

             * 400 InvalidListenerName - Invalid listener name.

             * 400 InvalidLBResourceIdParameterValue - Load balancer resource id is invalid.

             * 400 InvalidPublicIpResourceIdParameterValue - Public IP resource id is invalid.

             * 400 InvalidSubnetIdParameterValue - Invalid resource id provided for subnet parameter.

             * 400 InvalidPrivateIpParameterValue - Invalid address given for private IP address.

             * 400 VmNicVnetMismatch - Virtual machine NIC VNet mismatch.

             * 400 NoAvailabilitySet - Vm is not associated with any availability set.

             * 400 AvailabilitySetMismatch - Availability set of virtual machines does not match.

             * 400 MismatchVmGroupSubscription - Subscription id for SQL virtual machine and SQL virtual machine group are different.

             * 400 VmNotRunning - The VM is not in running state.

             * 400 VmAgentNotRunning - The VM agent is not installed or in running state.

             * 400 NoIpAvailable - No available IP.

             * 403 AccessDenied - Access denied.

             * 404 ResourceNotFound - The requested resource was not found.

             * 404 SubscriptionDoesNotExist - Subscription id does not exist.

             * 404 ResourceDoesNotExist - Resource does not exist.

             * 404 RPOperationNotFound - Operation not found

             * 404 OperationIdNotFound - Operation id could not be found.

             * 404 OperationTypeNotFound - Operation Type not found.

             * 404 SubscriptionDoesNotHaveSqlVMGroupInResourceGroup - Subscription does not have SQL virtual machine group in resource group.

             * 409 ResourceAlreadyExists - Resource already exists.

             * 409 LBGenericErrors - LB operation failed

             * 409 NICGenericError - NIC operation failed

             * 409 SqlExtensionNotInstalled - SQL extension not installed.

             * 409 RPPluginSubstatusMissing - RP plugin substatus missing

             * 409 MissingMoveResources - Cannot move resources(s) because some resources are missing in the request.

             * 409 ResourceExists - There was an internal error in cleaning up of resources.

             * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress

             * 409 OperationInProgress - Operation in progress on resource already.

             * 409 OperationCanceled - Operation Cancelled.

             * 500 RPGenericSystem - System Failure when calling other Resource Provider.

             * 500 UnExpectedErrorOccurred - Unexpected error occurred.

             * 500 OperationTimeout - Operation timed out.

             * 500 SqlVmGroupIsBusy - SQL virtual machine group is busy.
      tags:
        - AvailabilityGroupListeners
      x-ms-examples:
        Deletes an availability group listener.:
          parameters:
            api-version: 2017-03-01-preview
            availabilityGroupListenerName: agl-test
            resourceGroupName: testrg
            sqlVirtualMachineGroupName: testvmgroup
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200": {}
            "202": {}
            "204": {}
      x-ms-long-running-operation: true
    get:
      description: Gets an availability group listener.
      operationId: AvailabilityGroupListeners_Get
      parameters:
        - $ref: "#/parameters/ResourceGroupParameter"
        - description: Name of the SQL virtual machine group.
          in: path
          name: sqlVirtualMachineGroupName
          required: true
          type: string
        - description: Name of the availability group listener.
          in: path
          name: availabilityGroupListenerName
          required: true
          type: string
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully retrieved the availability group listener.
          schema:
            $ref: "#/definitions/AvailabilityGroupListener"
        default:
          description: |-
            *** Error Responses: ***

             * 400 InvalidParameterValue - An invalid value was given to parameter.

             * 400 RPGenericUser - User Failure when calling other Resource Provider.

             * 400 RPResponseMissingAsyncOperationHeader - Response is missing Async operation header information

             * 400 InvalidArgument - Invalid argument '{0}'.

             * 400 ArgumentNotInRange - Argument '{0}' not in range.

             * 400 ResourceNotProvisioned - As the resource: {0} is not in a provisioned state, the request cannot be proceeded forward

             * 400 CRPNotAllowedOperation - Operation cannot be completed due to the following error: {0}

             * 400 InvalidRgResourceId - Invalid Resourcegroup resource id specified.

             * 400 AgDoesNotExist - Availability group does not exist.

             * 400 AgListDoesNotMatch - SQL Availability group list does not match the list of virtual machines in SQL Virtual machine group.

             * 400 NoIpProvided - At least one IP needs to be provided.

             * 400 MoreIpProvided - Only one IP needs to be provided.

             * 400 SqlVmGroupDoesNotHaveAGListener - SQL virtual machine group does not have the AG listener.

             * 400 AgListenerUpdateNotAllowed - Only handful properties of availability group listener can be updated.

             * 400 SqlVmNotInGroup - SQL virtual machine is not part of the group.

             * 400 SqlVmListCannotBeEmpty - SQL virtual machines list cannot be empty.

             * 400 PublicIpNotIPv4 - Public IP must be IPv4 address.

             * 400 PublicIPDynamicAllocation - Public IP allocation mode must be static

             * 400 PublicLBInvalid - Load balancer specified is not public.

             * 400 SubnetMissingFromPrivateIP - Subnet must be provided with private IP.

             * 400 IPNotInSubnet - IP not part of subnet.

             * 400 NoActivePrimaryInAG - None of the nodes in AvailabilityGroup are Primary

             * 400 MultipleListenerSameAG - Multiple availability group listeners for same availability group are not allowed.

             * 400 AgListenerNotEmpty - Availability group listener not empty.

             * 400 AgListenerVnetMismatch - Provided VNet for Availability group listener does not match Vnet of internal load balancer.

             * 400 InternalLBInvalid - Load balancer specified is not internal.

             * 400 InvalidSqlVmResourceIdParameterValue - SQL virtual machine resource id provided is invalid.

             * 400 DifferentSubSqlVmList - All SQL virtual machines should be under same subscription.

             * 400 OnlyStandardPublicIp - Every virtual machine should have standard public IP.

             * 400 ListenerNameTooLong - Listener name should not exceed 15 characters.

             * 400 InvalidListenerName - Invalid listener name.

             * 400 InvalidLBResourceIdParameterValue - Load balancer resource id is invalid.

             * 400 InvalidPublicIpResourceIdParameterValue - Public IP resource id is invalid.

             * 400 InvalidSubnetIdParameterValue - Invalid resource id provided for subnet parameter.

             * 400 InvalidPrivateIpParameterValue - Invalid address given for private IP address.

             * 400 VmNicVnetMismatch - Virtual machine NIC VNet mismatch.

             * 400 NoAvailabilitySet - Vm is not associated with any availability set.

             * 400 AvailabilitySetMismatch - Availability set of virtual machines does not match.

             * 400 MismatchVmGroupSubscription - Subscription id for SQL virtual machine and SQL virtual machine group are different.

             * 400 VmNotRunning - The VM is not in running state.

             * 400 VmAgentNotRunning - The VM agent is not installed or in running state.

             * 400 NoIpAvailable - No available IP.

             * 403 AccessDenied - Access denied.

             * 404 ResourceNotFound - The requested resource was not found.

             * 404 SubscriptionDoesNotExist - Subscription id does not exist.

             * 404 ResourceDoesNotExist - Resource does not exist.

             * 404 RPOperationNotFound - Operation not found

             * 404 OperationIdNotFound - Operation id could not be found.

             * 404 OperationTypeNotFound - Operation Type not found.

             * 404 SubscriptionDoesNotHaveSqlVMGroupInResourceGroup - Subscription does not have SQL virtual machine group in resource group.

             * 409 ResourceAlreadyExists - Resource already exists.

             * 409 LBGenericErrors - LB operation failed

             * 409 NICGenericError - NIC operation failed

             * 409 SqlExtensionNotInstalled - SQL extension not installed.

             * 409 RPPluginSubstatusMissing - RP plugin substatus missing

             * 409 MissingMoveResources - Cannot move resources(s) because some resources are missing in the request.

             * 409 ResourceExists - There was an internal error in cleaning up of resources.

             * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress

             * 409 OperationInProgress - Operation in progress on resource already.

             * 409 OperationCanceled - Operation Cancelled.

             * 500 RPGenericSystem - System Failure when calling other Resource Provider.

             * 500 UnExpectedErrorOccurred - Unexpected error occurred.

             * 500 OperationTimeout - Operation timed out.

             * 500 SqlVmGroupIsBusy - SQL virtual machine group is busy.
      tags:
        - AvailabilityGroupListeners
      x-ms-examples:
        Gets an availability group listener.:
          parameters:
            api-version: 2017-03-01-preview
            availabilityGroupListenerName: agl-test
            resourceGroupName: testrg
            sqlVirtualMachineGroupName: testvmgroup
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/testvmgroup/availabilityGroupListeners/agl-test
                name: agl-test
                properties:
                  availabilityGroupName: ag-test
                  loadBalancerConfigurations:
                    - loadBalancerResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb-test
                      privateIpAddress:
                        ipAddress: 10.1.0.112
                        subnetResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/default
                      probePort: 59983
                      sqlVirtualMachineInstances:
                        - /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm3
                        - /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm2
                  port: 1433
                  provisioningState: Succeeded
                type: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/availabilityGroupListeners
    put:
      description: Creates or updates an availability group listener.
      operationId: AvailabilityGroupListeners_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ResourceGroupParameter"
        - description: Name of the SQL virtual machine group.
          in: path
          name: sqlVirtualMachineGroupName
          required: true
          type: string
        - description: Name of the availability group listener.
          in: path
          name: availabilityGroupListenerName
          required: true
          type: string
        - description: The availability group listener.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/AvailabilityGroupListener"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully updated the availability group listener.
          schema:
            $ref: "#/definitions/AvailabilityGroupListener"
        "201":
          description: Successfully created the availability group listener.
          schema:
            $ref: "#/definitions/AvailabilityGroupListener"
        default:
          description: |-
            *** Error Responses: ***

             * 400 InvalidParameterValue - An invalid value was given to parameter.

             * 400 RPGenericUser - User Failure when calling other Resource Provider.

             * 400 RPResponseMissingAsyncOperationHeader - Response is missing Async operation header information

             * 400 InvalidArgument - Invalid argument '{0}'.

             * 400 ArgumentNotInRange - Argument '{0}' not in range.

             * 400 ResourceNotProvisioned - As the resource: {0} is not in a provisioned state, the request cannot be proceeded forward

             * 400 CRPNotAllowedOperation - Operation cannot be completed due to the following error: {0}

             * 400 InvalidRgResourceId - Invalid Resourcegroup resource id specified.

             * 400 AgDoesNotExist - Availability group does not exist.

             * 400 AgListDoesNotMatch - SQL Availability group list does not match the list of virtual machines in SQL Virtual machine group.

             * 400 NoIpProvided - At least one IP needs to be provided.

             * 400 MoreIpProvided - Only one IP needs to be provided.

             * 400 SqlVmGroupDoesNotHaveAGListener - SQL virtual machine group does not have the AG listener.

             * 400 AgListenerUpdateNotAllowed - Only handful properties of availability group listener can be updated.

             * 400 SqlVmNotInGroup - SQL virtual machine is not part of the group.

             * 400 SqlVmListCannotBeEmpty - SQL virtual machines list cannot be empty.

             * 400 PublicIpNotIPv4 - Public IP must be IPv4 address.

             * 400 PublicIPDynamicAllocation - Public IP allocation mode must be static

             * 400 PublicLBInvalid - Load balancer specified is not public.

             * 400 SubnetMissingFromPrivateIP - Subnet must be provided with private IP.

             * 400 IPNotInSubnet - IP not part of subnet.

             * 400 NoActivePrimaryInAG - None of the nodes in AvailabilityGroup are Primary

             * 400 MultipleListenerSameAG - Multiple availability group listeners for same availability group are not allowed.

             * 400 AgListenerNotEmpty - Availability group listener not empty.

             * 400 AgListenerVnetMismatch - Provided VNet for Availability group listener does not match Vnet of internal load balancer.

             * 400 InternalLBInvalid - Load balancer specified is not internal.

             * 400 InvalidSqlVmResourceIdParameterValue - SQL virtual machine resource id provided is invalid.

             * 400 DifferentSubSqlVmList - All SQL virtual machines should be under same subscription.

             * 400 OnlyStandardPublicIp - Every virtual machine should have standard public IP.

             * 400 ListenerNameTooLong - Listener name should not exceed 15 characters.

             * 400 InvalidListenerName - Invalid listener name.

             * 400 InvalidLBResourceIdParameterValue - Load balancer resource id is invalid.

             * 400 InvalidPublicIpResourceIdParameterValue - Public IP resource id is invalid.

             * 400 InvalidSubnetIdParameterValue - Invalid resource id provided for subnet parameter.

             * 400 InvalidPrivateIpParameterValue - Invalid address given for private IP address.

             * 400 VmNicVnetMismatch - Virtual machine NIC VNet mismatch.

             * 400 NoAvailabilitySet - Vm is not associated with any availability set.

             * 400 AvailabilitySetMismatch - Availability set of virtual machines does not match.

             * 400 MismatchVmGroupSubscription - Subscription id for SQL virtual machine and SQL virtual machine group are different.

             * 400 VmNotRunning - The VM is not in running state.

             * 400 VmAgentNotRunning - The VM agent is not installed or in running state.

             * 400 NoIpAvailable - No available IP.

             * 403 AccessDenied - Access denied.

             * 404 ResourceNotFound - The requested resource was not found.

             * 404 SubscriptionDoesNotExist - Subscription id does not exist.

             * 404 ResourceDoesNotExist - Resource does not exist.

             * 404 RPOperationNotFound - Operation not found

             * 404 OperationIdNotFound - Operation id could not be found.

             * 404 OperationTypeNotFound - Operation Type not found.

             * 404 SubscriptionDoesNotHaveSqlVMGroupInResourceGroup - Subscription does not have SQL virtual machine group in resource group.

             * 409 ResourceAlreadyExists - Resource already exists.

             * 409 LBGenericErrors - LB operation failed

             * 409 NICGenericError - NIC operation failed

             * 409 SqlExtensionNotInstalled - SQL extension not installed.

             * 409 RPPluginSubstatusMissing - RP plugin substatus missing

             * 409 MissingMoveResources - Cannot move resources(s) because some resources are missing in the request.

             * 409 ResourceExists - There was an internal error in cleaning up of resources.

             * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress

             * 409 OperationInProgress - Operation in progress on resource already.

             * 409 OperationCanceled - Operation Cancelled.

             * 500 RPGenericSystem - System Failure when calling other Resource Provider.

             * 500 UnExpectedErrorOccurred - Unexpected error occurred.

             * 500 OperationTimeout - Operation timed out.

             * 500 SqlVmGroupIsBusy - SQL virtual machine group is busy.
      tags:
        - AvailabilityGroupListeners
      x-ms-examples:
        Creates or updates an availability group listener.:
          parameters:
            api-version: 2017-03-01-preview
            availabilityGroupListenerName: agl-test
            parameters:
              properties:
                availabilityGroupName: ag-test
                loadBalancerConfigurations:
                  - loadBalancerResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Network/loadBalancers/lb-test
                    privateIpAddress:
                      ipAddress: 10.1.0.112
                      subnetResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/default
                    probePort: 59983
                    sqlVirtualMachineInstances:
                      - /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm2
                      - /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm3
                port: 1433
            resourceGroupName: testrg
            sqlVirtualMachineGroupName: testvmgroup
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/testvmgroup/availabilityGroupListeners/agl-test
                name: agl-test
                properties:
                  loadBalancerConfigurations:
                    - privateIpAddress:
                        ipAddress: 10.1.0.113
                        subnetResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/default
                      sqlVirtualMachineInstances:
                        - /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm2
                        - /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm3
                  port: 1433
                  provisioningState: Updating
                type: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/availabilityGroupListeners
            "201":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/testvmgroup/availabilityGroupListeners/agl-test
                name: agl-test
                properties:
                  loadBalancerConfigurations:
                    - privateIpAddress:
                        ipAddress: 10.1.0.112
                        subnetResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/default
                      sqlVirtualMachineInstances:
                        - /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm2
                        - /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm3
                  port: 1433
                  provisioningState: Provisioning
                type: Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/availabilityGroupListeners
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/{sqlVirtualMachineGroupName}/sqlVirtualMachines":
    get:
      description: Gets the list of sql virtual machines in a SQL virtual machine group.
      operationId: SqlVirtualMachines_ListBySqlVmGroup
      parameters:
        - $ref: "#/parameters/ResourceGroupParameter"
        - description: Name of the SQL virtual machine group.
          in: path
          name: sqlVirtualMachineGroupName
          required: true
          type: string
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully retrieved the list of sql virtual machines in a SQL virtual machine group.
          schema:
            $ref: "#/definitions/SqlVirtualMachineListResult"
        default:
          description: |-
            *** Error Responses: ***

             * 400 FileShareWitnessDisAllowed - For Windows Server 2016 and beyond setup, file share witness is not allowed.

             * 400 InvalidStorageAccountUrl - Invalid storage account url.

             * 400 SqlVmGroupNameTooLong - SQL virtual machine group name cannot exceed 15 characters.

             * 400 InvalidSqlVmGroupName - Invalid SQL virtual machine group name.

             * 400 InvalidStorageAccountCredentials - The storage account credentials provided are incorrect.

             * 400 InvalidStorageAccountType - Only storage account of type 'General-Purpose V2' is allowed for this operation.

             * 400 SqlVmGroupNotEmpty - SQL virtual machine group is not empty.

             * 400 SqlVmGroupUpdateNotAllowed - Update to SQL virtual machine group is not allowed.

             * 400 SqlVmGroupUpdateFailVmAttached - SQL virtual machine group cannot be updated as it has attached a SQL virtual machine.

             * 400 InvalidSqlImageOffer - Provided SQL image offer is invalid.

             * 400 InvalidSqlSku - Provided SQL sku is invalid.

             * 400 OuPathAndDomainMismatch - OU path is not within the domain provided.

             * 400 InvalidAccountNameFormat - Account name format is invalid.

             * 400 CloudWitnessUnsupported - For Windows Server 2012R2 setup cloud witness is not allowed.

             * 404 SubscriptionDoesNotHaveSqlVMGroupInResourceGroup - Subscription does not have SQL virtual machine group in resource group.
      tags:
        - SqlVirtualMachines
      x-ms-examples:
        Gets the list of sql virtual machines in a SQL virtual machine group.:
          parameters:
            api-version: 2017-03-01-preview
            resourceGroupName: testrg
            sqlVirtualMachineGroupName: testvm
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm2
                    location: northeurope
                    name: testvm2
                    properties:
                      provisioningState: Succeeded
                      sqlImageOffer: SQL2014-WS2012R2
                      sqlImageSku: Enterprise
                      sqlManagement: LightWeight
                      sqlServerLicenseType: PAYG
                      sqlVirtualMachineGroupResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/testvmgroup
                      virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm2
                    type: Microsoft.SqlVirtualMachine/sqlVirtualMachines
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines":
    get:
      description: Gets all SQL virtual machines in a resource group.
      operationId: SqlVirtualMachines_ListByResourceGroup
      parameters:
        - $ref: "#/parameters/ResourceGroupParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully retrieved all SQL virtual machines in the resource group.
          schema:
            $ref: "#/definitions/SqlVirtualMachineListResult"
        default:
          description: "*** Error Responses: ***"
      tags:
        - SqlVirtualMachines
      x-ms-examples:
        Gets all SQL virtual machines in a resource group.:
          parameters:
            api-version: 2017-03-01-preview
            resourceGroupName: testrg
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm
                    location: northeurope
                    name: testvm
                    properties:
                      provisioningState: Succeeded
                      sqlImageOffer: SQL2016-WS2016
                      sqlImageSku: Enterprise
                      sqlServerLicenseType: PAYG
                      virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm
                    type: Microsoft.SqlVirtualMachine/sqlVirtualMachines
                  - id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm1
                    location: northeurope
                    name: testvm1
                    properties:
                      provisioningState: Succeeded
                      sqlImageOffer: SQL2017-WS2016
                      sqlImageSku: Enterprise
                      sqlServerLicenseType: PAYG
                      virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm1
                    type: Microsoft.SqlVirtualMachine/sqlVirtualMachines
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/{sqlVirtualMachineName}":
    delete:
      description: Deletes a SQL virtual machine.
      operationId: SqlVirtualMachines_Delete
      parameters:
        - $ref: "#/parameters/ResourceGroupParameter"
        - description: Name of the SQL virtual machine.
          in: path
          name: sqlVirtualMachineName
          required: true
          type: string
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully deleted the SQL virtual machine.
        "202":
          description: Deleting the SQL virtual machine.
        "204":
          description: The specified SQL virtual machine does not exist.
        default:
          description: |-
            *** Error Responses: ***

             * 400 SqlLicenseTypeNotSupported - SqlLicenseType NotSet incorrectly provided

             * 400 UnsupportedSqlManagementMode - Cannot update the SQL management mode to {0}, only {1} mode is supported for Windows Server 2008.

             * 400 SqlSkuMismatchWithGroup - SQL sku set on the SQL virtual machine group does not match that of the SQL virtual machine.

             * 400 SubscriptionDoesNotExist - Subscription id does not exist.

             * 400 SubscriptionNotReady - Subscription not ready

             * 400 AutoBackupEncryptionPasswordNotSpecified - Password not provided when enabling encryption as auto backup setting.

             * 400 BackupScheduleTypeNotSet - Backup schedule type needs to be set.

             * 400 BackupStorageCredentialsNotSpecified - Backup storage credentials are not specified.

             * 400 KeyVaultCredentialsNotSpecified - Key vault credentials not specified.

             * 400 SqlCredentialsNotSpecified - SQL Server credentials are not specified.

             * 400 IncompleteAutoPatchingSettings - Incomplete auto patching settings specified.

             * 400 IncompleteAutoBackupSettings - Incomplete auto backup settings specified.

             * 400 IncompleteSqlStorageSettings - Incomplete SQL storage settings specified.

             * 400 InvalidVmResourceIdChange - Virtual machine resource id property cannot be updated.

             * 400 SqlVmAlreadyIncludedInGroup - SQL virtual machine cannot be moved from one group to another in same operation.

             * 400 SqlVmCannotRemoveFromGroup - SQL virtual machine cannot be removed from group.

             * 400 VmLocationMismatch - VM location does not match that of SQL virtual machine.

             * 400 VmInsufficientPermission - Insufficient permission to Vm.

             * 400 SingleNicOnVmAllowed - Only Single NIC virtual machines are allowed in a SQL VM Group.

             * 400 InvalidSqlVmGroupResourceIdParameterValue - SQL virtual machine group resource id is not in correct format.

             * 400 MismatchVmGroupSubscription - Subscription id for SQL virtual machine and SQL virtual machine group are different.

             * 400 IncompleteDomainCredentialsProperty - Incomplete input provided for domain credentials property.

             * 400 BYOLChangeToPAYGNotSupported - The conversion from AHUB to PAYG is not supported for BYOL images

             * 400 InvalidVmResourceIdParameterValue - Provided virtual machine resource id is not valid.

             * 400 MismatchInSqlVmAndVmResourceIdSubscription - Mismatch in subscription id for SQL virtual machine and virtual machine resource id property.

             * 400 MismatchSqlVmAndVmName - SQL virtual machine name is not same as the virtual machine name provided on VirtualMachineResourceId property.

             * 400 MismatchSqlVmAndVmRgName - SQL virtual machine resource group name is not same as the virtual machine resource group name provided on VirtualMachineResourceId property.

             * 400 NotSupportedSqlVmOSVersion - Virtual machine OS type is not Windows. Only Windows OS versions are supported

             * 400 VmNotRunning - The VM is not in running state.

             * 400 VmAgentNotRunning - The VM agent is not installed or in running state.

             * 400 PAYGNotSupportedForNonGalleryVM - License type PAYG is invalid for this Virtual Machine as this was not created from Azure marketplace image.

             * 400 CannotDetermineSqlVersionAndEditionFromVm - Sql IaaS Extension cannot determine the SQL version and edition from the vm.

             * 400 MismatchSqlVmSku - Sql virtual machine sku mismatch.

             * 400 CannotConvertToFreeBenefit - Cannot convert Free SQL editions to {0}. 

             * 400 SqlEvaluationSkuNotSupported - SQL Evaluation version does not support licensing changes.

             * 400 IncompleteStorageConfigurationSettings - Incomplete Storage Configuration Settings

             * 400 InvalidDefaultFilePath - Invalid Default File Path 

             * 400 InvalidLUNSpecified - Invalid Logical Unit number specified, Logical Unit number should be a non-negative number.

             * 400 BothStorageV1V2Specified - Invalid Request. Only one of SQL Storage Storage Setting or Storage Configuration Settings should be specified

             * 400 InvalidLUNsSpecifiedForSameDrive - Invalid Logical Unit numbers specified. Logical Unit number used for the same drive need to be the same.

             * 400 InvalidLUNsSpecifiedForDifferentDrives - Invalid Logical Unit numbers specified. Different drive could not reuse the same Logical Unit number.

             * 400 InvalidExtendPayload - Invalid Sql Storage Settings Extend Payload. Only support extend one drive at a time.

             * 400 SqlVersionMismatchWithGroup - SQL version mismatch with SQL virtual machine group.

             * 400 SqlLicenseTypeMissing - Please specify license type for Sql Virtual Machine. The property is 'SqlServerLicenceType' and allowed values are PAYG, AHUB and DR.

             * 400 VmOSVersionMismatchWithGroup - OS version mismatch with group.

             * 400 VmAgentIsRunningForNoAgent - Cannot create or update as NoAgent model while the Guest Agent is running.

             * 400 InvalidSqlManagementMode - Cannot update the SQL management mode to {0}, the current mode is {1}.

             * 400 CannotDetermineSqlEditionFromRequest - Cannot determine the SQL edition.

             * 400 SqlManagementMissing - Please specify the Management Mode for Sql Virtual Machine. The property is 'SqlManagement' and allowed values are LightWeight or Full.

             * 400 SqlImageSkuMissingNoAgent - Please specify the Sql Server Edition for Sql Virtual Machine in NoAgent Mode. The property is 'SqlImageSku' and allowed values are Developer, Express, Web, Standard, or Enterprise.

             * 400 SqlImageOfferMissingNoAgent - Please specify the Sql Server Version and OS Version for Sql Virtual Machine in NoAgent Mode. The property is 'SqlImageOffer' and allowed values are SQL2008-WS2008 and SQL2008R2-WS2008.

             * 400 InvalidSqlImageOfferChange - SqlImageOffer property cannot be updated.

             * 400 InvalidParameterValue - An invalid value was given to parameter.

             * 400 RPGenericUser - User Failure when calling other Resource Provider.

             * 400 RPResponseMissingAsyncOperationHeader - Response is missing Async operation header information

             * 400 InvalidArgument - Invalid argument '{0}'.

             * 400 ArgumentNotInRange - Argument '{0}' not in range.

             * 400 ResourceNotProvisioned - As the resource: {0} is not in a provisioned state, the request cannot be proceeded forward

             * 400 CRPNotAllowedOperation - Operation cannot be completed due to the following error: {0}

             * 400 InvalidRgResourceId - Invalid Resourcegroup resource id specified.

             * 403 AccessDenied - Access denied.

             * 404 SubscriptionDoesNotHaveSqlVMInResourceGroup - Subscription does not have SQL virtual machine Instance in resource group.

             * 404 SubscriptionDoesNotHaveSqlVMGroupInResourceGroup - Subscription does not have SQL virtual machine group in resource group.

             * 404 ResourceNotFound - The requested resource was not found.

             * 404 SubscriptionDoesNotExist - Subscription id does not exist.

             * 404 ResourceDoesNotExist - Resource does not exist.

             * 404 RPOperationNotFound - Operation not found

             * 404 OperationIdNotFound - Operation id could not be found.

             * 404 OperationTypeNotFound - Operation Type not found.

             * 409 ResourceAlreadyExists - Resource already exists.

             * 409 LBGenericErrors - LB operation failed

             * 409 NICGenericError - NIC operation failed

             * 409 SqlExtensionNotInstalled - SQL extension not installed.

             * 409 RPPluginSubstatusMissing - RP plugin substatus missing

             * 409 MissingMoveResources - Cannot move resources(s) because some resources are missing in the request.

             * 409 ResourceExists - There was an internal error in cleaning up of resources.

             * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress

             * 409 OperationInProgress - Operation in progress on resource already.

             * 409 OperationCanceled - Operation Cancelled.

             * 500 RPGenericSystem - System Failure when calling other Resource Provider.

             * 500 UnExpectedErrorOccurred - Unexpected error occurred.

             * 500 OperationTimeout - Operation timed out.
      tags:
        - SqlVirtualMachines
      x-ms-examples:
        Deletes a SQL virtual machine.:
          parameters:
            api-version: 2017-03-01-preview
            resourceGroupName: testrg
            sqlVirtualMachineName: testvm1
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200": {}
            "202": {}
            "204": {}
      x-ms-long-running-operation: true
    get:
      description: Gets a SQL virtual machine.
      operationId: SqlVirtualMachines_Get
      parameters:
        - $ref: "#/parameters/ResourceGroupParameter"
        - description: Name of the SQL virtual machine.
          in: path
          name: sqlVirtualMachineName
          required: true
          type: string
        - description: The child resources to include in the response.
          in: query
          name: $expand
          required: false
          type: string
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully retrieved the SQL virtual machine.
          schema:
            $ref: "#/definitions/SqlVirtualMachine"
        default:
          description: |-
            *** Error Responses: ***

             * 400 InvalidParameterValue - An invalid value was given to parameter.

             * 400 RPGenericUser - User Failure when calling other Resource Provider.

             * 400 RPResponseMissingAsyncOperationHeader - Response is missing Async operation header information

             * 400 InvalidArgument - Invalid argument '{0}'.

             * 400 ArgumentNotInRange - Argument '{0}' not in range.

             * 400 ResourceNotProvisioned - As the resource: {0} is not in a provisioned state, the request cannot be proceeded forward

             * 400 CRPNotAllowedOperation - Operation cannot be completed due to the following error: {0}

             * 400 InvalidRgResourceId - Invalid Resourcegroup resource id specified.

             * 403 AccessDenied - Access denied.

             * 404 ResourceNotFound - The requested resource was not found.

             * 404 SubscriptionDoesNotExist - Subscription id does not exist.

             * 404 ResourceDoesNotExist - Resource does not exist.

             * 404 RPOperationNotFound - Operation not found

             * 404 OperationIdNotFound - Operation id could not be found.

             * 404 OperationTypeNotFound - Operation Type not found.

             * 409 ResourceAlreadyExists - Resource already exists.

             * 409 LBGenericErrors - LB operation failed

             * 409 NICGenericError - NIC operation failed

             * 409 SqlExtensionNotInstalled - SQL extension not installed.

             * 409 RPPluginSubstatusMissing - RP plugin substatus missing

             * 409 MissingMoveResources - Cannot move resources(s) because some resources are missing in the request.

             * 409 ResourceExists - There was an internal error in cleaning up of resources.

             * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress

             * 409 OperationInProgress - Operation in progress on resource already.

             * 409 OperationCanceled - Operation Cancelled.

             * 500 RPGenericSystem - System Failure when calling other Resource Provider.

             * 500 UnExpectedErrorOccurred - Unexpected error occurred.

             * 500 OperationTimeout - Operation timed out.
      tags:
        - SqlVirtualMachines
      x-ms-examples:
        Gets a SQL virtual machine.:
          parameters:
            api-version: 2017-03-01-preview
            parameters: {}
            resourceGroupName: testrg
            sqlVirtualMachineName: testvm
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm
                location: northeurope
                name: testvm
                properties:
                  provisioningState: Succeeded
                  sqlImageOffer: SQL2016-WS2016
                  sqlImageSku: Enterprise
                  sqlServerLicenseType: PAYG
                  virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm
                type: Microsoft.SqlVirtualMachine/sqlVirtualMachines
    patch:
      description: Updates a SQL virtual machine.
      operationId: SqlVirtualMachines_Update
      parameters:
        - $ref: "#/parameters/ResourceGroupParameter"
        - description: Name of the SQL virtual machine.
          in: path
          name: sqlVirtualMachineName
          required: true
          type: string
        - description: The SQL virtual machine.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/SqlVirtualMachineUpdate"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully updated the SQL virtual machine.
          schema:
            $ref: "#/definitions/SqlVirtualMachine"
        default:
          description: |-
            *** Error Responses: ***

             * 400 SqlLicenseTypeNotSupported - SqlLicenseType NotSet incorrectly provided

             * 400 UnsupportedSqlManagementMode - Cannot update the SQL management mode to {0}, only {1} mode is supported for Windows Server 2008.

             * 400 SqlSkuMismatchWithGroup - SQL sku set on the SQL virtual machine group does not match that of the SQL virtual machine.

             * 400 SubscriptionDoesNotExist - Subscription id does not exist.

             * 400 SubscriptionNotReady - Subscription not ready

             * 400 AutoBackupEncryptionPasswordNotSpecified - Password not provided when enabling encryption as auto backup setting.

             * 400 BackupScheduleTypeNotSet - Backup schedule type needs to be set.

             * 400 BackupStorageCredentialsNotSpecified - Backup storage credentials are not specified.

             * 400 KeyVaultCredentialsNotSpecified - Key vault credentials not specified.

             * 400 SqlCredentialsNotSpecified - SQL Server credentials are not specified.

             * 400 IncompleteAutoPatchingSettings - Incomplete auto patching settings specified.

             * 400 IncompleteAutoBackupSettings - Incomplete auto backup settings specified.

             * 400 IncompleteSqlStorageSettings - Incomplete SQL storage settings specified.

             * 400 InvalidVmResourceIdChange - Virtual machine resource id property cannot be updated.

             * 400 SqlVmAlreadyIncludedInGroup - SQL virtual machine cannot be moved from one group to another in same operation.

             * 400 SqlVmCannotRemoveFromGroup - SQL virtual machine cannot be removed from group.

             * 400 VmLocationMismatch - VM location does not match that of SQL virtual machine.

             * 400 VmInsufficientPermission - Insufficient permission to Vm.

             * 400 SingleNicOnVmAllowed - Only Single NIC virtual machines are allowed in a SQL VM Group.

             * 400 InvalidSqlVmGroupResourceIdParameterValue - SQL virtual machine group resource id is not in correct format.

             * 400 MismatchVmGroupSubscription - Subscription id for SQL virtual machine and SQL virtual machine group are different.

             * 400 IncompleteDomainCredentialsProperty - Incomplete input provided for domain credentials property.

             * 400 BYOLChangeToPAYGNotSupported - The conversion from AHUB to PAYG is not supported for BYOL images

             * 400 InvalidVmResourceIdParameterValue - Provided virtual machine resource id is not valid.

             * 400 MismatchInSqlVmAndVmResourceIdSubscription - Mismatch in subscription id for SQL virtual machine and virtual machine resource id property.

             * 400 MismatchSqlVmAndVmName - SQL virtual machine name is not same as the virtual machine name provided on VirtualMachineResourceId property.

             * 400 MismatchSqlVmAndVmRgName - SQL virtual machine resource group name is not same as the virtual machine resource group name provided on VirtualMachineResourceId property.

             * 400 NotSupportedSqlVmOSVersion - Virtual machine OS type is not Windows. Only Windows OS versions are supported

             * 400 VmNotRunning - The VM is not in running state.

             * 400 VmAgentNotRunning - The VM agent is not installed or in running state.

             * 400 PAYGNotSupportedForNonGalleryVM - License type PAYG is invalid for this Virtual Machine as this was not created from Azure marketplace image.

             * 400 CannotDetermineSqlVersionAndEditionFromVm - Sql IaaS Extension cannot determine the SQL version and edition from the vm.

             * 400 MismatchSqlVmSku - Sql virtual machine sku mismatch.

             * 400 CannotConvertToFreeBenefit - Cannot convert Free SQL editions to {0}. 

             * 400 SqlEvaluationSkuNotSupported - SQL Evaluation version does not support licensing changes.

             * 400 IncompleteStorageConfigurationSettings - Incomplete Storage Configuration Settings

             * 400 InvalidDefaultFilePath - Invalid Default File Path 

             * 400 InvalidLUNSpecified - Invalid Logical Unit number specified, Logical Unit number should be a non-negative number.

             * 400 BothStorageV1V2Specified - Invalid Request. Only one of SQL Storage Storage Setting or Storage Configuration Settings should be specified

             * 400 InvalidLUNsSpecifiedForSameDrive - Invalid Logical Unit numbers specified. Logical Unit number used for the same drive need to be the same.

             * 400 InvalidLUNsSpecifiedForDifferentDrives - Invalid Logical Unit numbers specified. Different drive could not reuse the same Logical Unit number.

             * 400 InvalidExtendPayload - Invalid Sql Storage Settings Extend Payload. Only support extend one drive at a time.

             * 400 SqlVersionMismatchWithGroup - SQL version mismatch with SQL virtual machine group.

             * 400 SqlLicenseTypeMissing - Please specify license type for Sql Virtual Machine. The property is 'SqlServerLicenceType' and allowed values are PAYG, AHUB and DR.

             * 400 VmOSVersionMismatchWithGroup - OS version mismatch with group.

             * 400 VmAgentIsRunningForNoAgent - Cannot create or update as NoAgent model while the Guest Agent is running.

             * 400 InvalidSqlManagementMode - Cannot update the SQL management mode to {0}, the current mode is {1}.

             * 400 CannotDetermineSqlEditionFromRequest - Cannot determine the SQL edition.

             * 400 SqlManagementMissing - Please specify the Management Mode for Sql Virtual Machine. The property is 'SqlManagement' and allowed values are LightWeight or Full.

             * 400 SqlImageSkuMissingNoAgent - Please specify the Sql Server Edition for Sql Virtual Machine in NoAgent Mode. The property is 'SqlImageSku' and allowed values are Developer, Express, Web, Standard, or Enterprise.

             * 400 SqlImageOfferMissingNoAgent - Please specify the Sql Server Version and OS Version for Sql Virtual Machine in NoAgent Mode. The property is 'SqlImageOffer' and allowed values are SQL2008-WS2008 and SQL2008R2-WS2008.

             * 400 InvalidSqlImageOfferChange - SqlImageOffer property cannot be updated.

             * 400 InvalidParameterValue - An invalid value was given to parameter.

             * 400 RPGenericUser - User Failure when calling other Resource Provider.

             * 400 RPResponseMissingAsyncOperationHeader - Response is missing Async operation header information

             * 400 InvalidArgument - Invalid argument '{0}'.

             * 400 ArgumentNotInRange - Argument '{0}' not in range.

             * 400 ResourceNotProvisioned - As the resource: {0} is not in a provisioned state, the request cannot be proceeded forward

             * 400 CRPNotAllowedOperation - Operation cannot be completed due to the following error: {0}

             * 400 InvalidRgResourceId - Invalid Resourcegroup resource id specified.

             * 403 AccessDenied - Access denied.

             * 404 SubscriptionDoesNotHaveSqlVMInResourceGroup - Subscription does not have SQL virtual machine Instance in resource group.

             * 404 SubscriptionDoesNotHaveSqlVMGroupInResourceGroup - Subscription does not have SQL virtual machine group in resource group.

             * 404 ResourceNotFound - The requested resource was not found.

             * 404 SubscriptionDoesNotExist - Subscription id does not exist.

             * 404 ResourceDoesNotExist - Resource does not exist.

             * 404 RPOperationNotFound - Operation not found

             * 404 OperationIdNotFound - Operation id could not be found.

             * 404 OperationTypeNotFound - Operation Type not found.

             * 409 ResourceAlreadyExists - Resource already exists.

             * 409 LBGenericErrors - LB operation failed

             * 409 NICGenericError - NIC operation failed

             * 409 SqlExtensionNotInstalled - SQL extension not installed.

             * 409 RPPluginSubstatusMissing - RP plugin substatus missing

             * 409 MissingMoveResources - Cannot move resources(s) because some resources are missing in the request.

             * 409 ResourceExists - There was an internal error in cleaning up of resources.

             * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress

             * 409 OperationInProgress - Operation in progress on resource already.

             * 409 OperationCanceled - Operation Cancelled.

             * 500 RPGenericSystem - System Failure when calling other Resource Provider.

             * 500 UnExpectedErrorOccurred - Unexpected error occurred.

             * 500 OperationTimeout - Operation timed out.
      tags:
        - SqlVirtualMachines
      x-ms-examples:
        Updates a SQL virtual machine tags.:
          parameters:
            api-version: 2017-03-01-preview
            parameters:
              tags:
                mytag: myval
            resourceGroupName: testrg
            sqlVirtualMachineName: testvm
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm
                location: northeurope
                name: testvm
                properties:
                  provisioningState: Updating
                  sqlImageSku: Enterprise
                  sqlServerLicenseType: PAYG
                  virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm
                tags:
                  mytag: myval
                type: Microsoft.SqlVirtualMachine/sqlVirtualMachines
      x-ms-long-running-operation: true
    put:
      description: Creates or updates a SQL virtual machine.
      operationId: SqlVirtualMachines_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ResourceGroupParameter"
        - description: Name of the SQL virtual machine.
          in: path
          name: sqlVirtualMachineName
          required: true
          type: string
        - description: The SQL virtual machine.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/SqlVirtualMachine"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully updated the SQL virtual machine.
          schema:
            $ref: "#/definitions/SqlVirtualMachine"
        "201":
          description: Successfully created the SQL virtual machine.
          schema:
            $ref: "#/definitions/SqlVirtualMachine"
        default:
          description: |-
            *** Error Responses: ***

             * 400 SqlLicenseTypeNotSupported - SqlLicenseType NotSet incorrectly provided

             * 400 UnsupportedSqlManagementMode - Cannot update the SQL management mode to {0}, only {1} mode is supported for Windows Server 2008.

             * 400 SqlSkuMismatchWithGroup - SQL sku set on the SQL virtual machine group does not match that of the SQL virtual machine.

             * 400 SubscriptionDoesNotExist - Subscription id does not exist.

             * 400 SubscriptionNotReady - Subscription not ready

             * 400 AutoBackupEncryptionPasswordNotSpecified - Password not provided when enabling encryption as auto backup setting.

             * 400 BackupScheduleTypeNotSet - Backup schedule type needs to be set.

             * 400 BackupStorageCredentialsNotSpecified - Backup storage credentials are not specified.

             * 400 KeyVaultCredentialsNotSpecified - Key vault credentials not specified.

             * 400 SqlCredentialsNotSpecified - SQL Server credentials are not specified.

             * 400 IncompleteAutoPatchingSettings - Incomplete auto patching settings specified.

             * 400 IncompleteAutoBackupSettings - Incomplete auto backup settings specified.

             * 400 IncompleteSqlStorageSettings - Incomplete SQL storage settings specified.

             * 400 InvalidVmResourceIdChange - Virtual machine resource id property cannot be updated.

             * 400 SqlVmAlreadyIncludedInGroup - SQL virtual machine cannot be moved from one group to another in same operation.

             * 400 SqlVmCannotRemoveFromGroup - SQL virtual machine cannot be removed from group.

             * 400 VmLocationMismatch - VM location does not match that of SQL virtual machine.

             * 400 VmInsufficientPermission - Insufficient permission to Vm.

             * 400 SingleNicOnVmAllowed - Only Single NIC virtual machines are allowed in a SQL VM Group.

             * 400 InvalidSqlVmGroupResourceIdParameterValue - SQL virtual machine group resource id is not in correct format.

             * 400 MismatchVmGroupSubscription - Subscription id for SQL virtual machine and SQL virtual machine group are different.

             * 400 IncompleteDomainCredentialsProperty - Incomplete input provided for domain credentials property.

             * 400 BYOLChangeToPAYGNotSupported - The conversion from AHUB to PAYG is not supported for BYOL images

             * 400 InvalidVmResourceIdParameterValue - Provided virtual machine resource id is not valid.

             * 400 MismatchInSqlVmAndVmResourceIdSubscription - Mismatch in subscription id for SQL virtual machine and virtual machine resource id property.

             * 400 MismatchSqlVmAndVmName - SQL virtual machine name is not same as the virtual machine name provided on VirtualMachineResourceId property.

             * 400 MismatchSqlVmAndVmRgName - SQL virtual machine resource group name is not same as the virtual machine resource group name provided on VirtualMachineResourceId property.

             * 400 NotSupportedSqlVmOSVersion - Virtual machine OS type is not Windows. Only Windows OS versions are supported

             * 400 VmNotRunning - The VM is not in running state.

             * 400 VmAgentNotRunning - The VM agent is not installed or in running state.

             * 400 PAYGNotSupportedForNonGalleryVM - License type PAYG is invalid for this Virtual Machine as this was not created from Azure marketplace image.

             * 400 CannotDetermineSqlVersionAndEditionFromVm - Sql IaaS Extension cannot determine the SQL version and edition from the vm.

             * 400 MismatchSqlVmSku - Sql virtual machine sku mismatch.

             * 400 CannotConvertToFreeBenefit - Cannot convert Free SQL editions to {0}. 

             * 400 SqlEvaluationSkuNotSupported - SQL Evaluation version does not support licensing changes.

             * 400 IncompleteStorageConfigurationSettings - Incomplete Storage Configuration Settings

             * 400 InvalidDefaultFilePath - Invalid Default File Path 

             * 400 InvalidLUNSpecified - Invalid Logical Unit number specified, Logical Unit number should be a non-negative number.

             * 400 BothStorageV1V2Specified - Invalid Request. Only one of SQL Storage Storage Setting or Storage Configuration Settings should be specified

             * 400 InvalidLUNsSpecifiedForSameDrive - Invalid Logical Unit numbers specified. Logical Unit number used for the same drive need to be the same.

             * 400 InvalidLUNsSpecifiedForDifferentDrives - Invalid Logical Unit numbers specified. Different drive could not reuse the same Logical Unit number.

             * 400 InvalidExtendPayload - Invalid Sql Storage Settings Extend Payload. Only support extend one drive at a time.

             * 400 SqlVersionMismatchWithGroup - SQL version mismatch with SQL virtual machine group.

             * 400 SqlLicenseTypeMissing - Please specify license type for Sql Virtual Machine. The property is 'SqlServerLicenceType' and allowed values are PAYG, AHUB and DR.

             * 400 VmOSVersionMismatchWithGroup - OS version mismatch with group.

             * 400 VmAgentIsRunningForNoAgent - Cannot create or update as NoAgent model while the Guest Agent is running.

             * 400 InvalidSqlManagementMode - Cannot update the SQL management mode to {0}, the current mode is {1}.

             * 400 CannotDetermineSqlEditionFromRequest - Cannot determine the SQL edition.

             * 400 SqlManagementMissing - Please specify the Management Mode for Sql Virtual Machine. The property is 'SqlManagement' and allowed values are LightWeight or Full.

             * 400 SqlImageSkuMissingNoAgent - Please specify the Sql Server Edition for Sql Virtual Machine in NoAgent Mode. The property is 'SqlImageSku' and allowed values are Developer, Express, Web, Standard, or Enterprise.

             * 400 SqlImageOfferMissingNoAgent - Please specify the Sql Server Version and OS Version for Sql Virtual Machine in NoAgent Mode. The property is 'SqlImageOffer' and allowed values are SQL2008-WS2008 and SQL2008R2-WS2008.

             * 400 InvalidSqlImageOfferChange - SqlImageOffer property cannot be updated.

             * 400 InvalidParameterValue - An invalid value was given to parameter.

             * 400 RPGenericUser - User Failure when calling other Resource Provider.

             * 400 RPResponseMissingAsyncOperationHeader - Response is missing Async operation header information

             * 400 InvalidArgument - Invalid argument '{0}'.

             * 400 ArgumentNotInRange - Argument '{0}' not in range.

             * 400 ResourceNotProvisioned - As the resource: {0} is not in a provisioned state, the request cannot be proceeded forward

             * 400 CRPNotAllowedOperation - Operation cannot be completed due to the following error: {0}

             * 400 InvalidRgResourceId - Invalid Resourcegroup resource id specified.

             * 403 AccessDenied - Access denied.

             * 404 SubscriptionDoesNotHaveSqlVMInResourceGroup - Subscription does not have SQL virtual machine Instance in resource group.

             * 404 SubscriptionDoesNotHaveSqlVMGroupInResourceGroup - Subscription does not have SQL virtual machine group in resource group.

             * 404 ResourceNotFound - The requested resource was not found.

             * 404 SubscriptionDoesNotExist - Subscription id does not exist.

             * 404 ResourceDoesNotExist - Resource does not exist.

             * 404 RPOperationNotFound - Operation not found

             * 404 OperationIdNotFound - Operation id could not be found.

             * 404 OperationTypeNotFound - Operation Type not found.

             * 409 ResourceAlreadyExists - Resource already exists.

             * 409 LBGenericErrors - LB operation failed

             * 409 NICGenericError - NIC operation failed

             * 409 SqlExtensionNotInstalled - SQL extension not installed.

             * 409 RPPluginSubstatusMissing - RP plugin substatus missing

             * 409 MissingMoveResources - Cannot move resources(s) because some resources are missing in the request.

             * 409 ResourceExists - There was an internal error in cleaning up of resources.

             * 409 SubscriptionOperationInProgress - An operation on subscription is already in progress

             * 409 OperationInProgress - Operation in progress on resource already.

             * 409 OperationCanceled - Operation Cancelled.

             * 500 RPGenericSystem - System Failure when calling other Resource Provider.

             * 500 UnExpectedErrorOccurred - Unexpected error occurred.

             * 500 OperationTimeout - Operation timed out.
      tags:
        - SqlVirtualMachines
      x-ms-examples:
        Creates or updates a SQL virtual machine and joins it to a SQL virtual machine group.:
          parameters:
            api-version: 2017-03-01-preview
            parameters:
              location: northeurope
              properties:
                sqlVirtualMachineGroupResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/testvmgroup
                virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm2
                wsfcDomainCredentials:
                  clusterBootstrapAccountPassword: <Password>
                  clusterOperatorAccountPassword: <Password>
                  sqlServiceAccountPassword: <Password>
            resourceGroupName: testrg
            sqlVirtualMachineName: testvm
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm2
                location: northeurope
                name: testvm2
                properties:
                  provisioningState: Updating
                  sqlImageSku: Enterprise
                  sqlServerLicenseType: PAYG
                  sqlVirtualMachineGroupResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/testvmgroup
                  virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm2
                type: Microsoft.SqlVirtualMachine/sqlVirtualMachines
            "201":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm2
                location: northeurope
                name: testvm2
                properties:
                  provisioningState: Provisioning
                  sqlImageSku: Unknown
                  sqlServerLicenseType: PAYG
                  sqlVirtualMachineGroupResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/testvmgroup
                  virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm2
                type: Microsoft.SqlVirtualMachine/sqlVirtualMachines
        "Creates or updates a SQL virtual machine for Storage Configuration Settings to EXTEND Data, Log or TempDB storage pool.":
          parameters:
            api-version: 2017-03-01-preview
            parameters:
              location: northeurope
              properties:
                storageConfigurationSettings:
                  diskConfigurationType: EXTEND
                  sqlDataSettings:
                    luns:
                      - 2
                virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm
            resourceGroupName: testrg
            sqlVirtualMachineName: testvm
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm
                location: northeurope
                name: testvm
                properties:
                  provisioningState: Updating
                  sqlImageSku: Enterprise
                  sqlServerLicenseType: PAYG
                  virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm
                type: Microsoft.SqlVirtualMachine/sqlVirtualMachines
            "201":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm
                location: northeurope
                name: testvm
                properties:
                  provisioningState: Provisioning
                  sqlImageSku: Unknown
                  sqlServerLicenseType: PAYG
                  virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm
                type: Microsoft.SqlVirtualMachine/sqlVirtualMachines
        "Creates or updates a SQL virtual machine for Storage Configuration Settings to NEW Data, Log and TempDB storage pool.":
          parameters:
            api-version: 2017-03-01-preview
            parameters:
              location: northeurope
              properties:
                storageConfigurationSettings:
                  diskConfigurationType: NEW
                  sqlDataSettings:
                    defaultFilePath: F:\folderpath\
                    luns:
                      - 0
                  sqlLogSettings:
                    defaultFilePath: G:\folderpath\
                    luns:
                      - 1
                  sqlTempDbSettings:
                    defaultFilePath: D:\TEMP
                  storageWorkloadType: OLTP
                virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm
            resourceGroupName: testrg
            sqlVirtualMachineName: testvm
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm
                location: northeurope
                name: testvm
                properties:
                  provisioningState: Updating
                  sqlImageSku: Enterprise
                  sqlServerLicenseType: PAYG
                  virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm
                type: Microsoft.SqlVirtualMachine/sqlVirtualMachines
            "201":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm
                location: northeurope
                name: testvm
                properties:
                  provisioningState: Provisioning
                  sqlImageSku: Unknown
                  sqlServerLicenseType: PAYG
                  virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm
                type: Microsoft.SqlVirtualMachine/sqlVirtualMachines
        Creates or updates a SQL virtual machine with max parameters.:
          parameters:
            api-version: 2017-03-01-preview
            parameters:
              location: northeurope
              properties:
                autoBackupSettings:
                  backupScheduleType: Manual
                  backupSystemDbs: true
                  enable: true
                  enableEncryption: true
                  fullBackupFrequency: Daily
                  fullBackupStartTime: 6
                  fullBackupWindowHours: 11
                  logBackupFrequency: 10
                  password: <Password>
                  retentionPeriod: 17
                  storageAccessKey: <primary storage access key>
                  storageAccountUrl: https://teststorage.blob.core.windows.net/
                autoPatchingSettings:
                  dayOfWeek: Sunday
                  enable: true
                  maintenanceWindowDuration: 60
                  maintenanceWindowStartingHour: 2
                keyVaultCredentialSettings:
                  enable: false
                serverConfigurationsManagementSettings:
                  additionalFeaturesServerConfigurations:
                    isRServicesEnabled: false
                  sqlConnectivityUpdateSettings:
                    connectivityType: PRIVATE
                    port: 1433
                    sqlAuthUpdatePassword: <password>
                    sqlAuthUpdateUserName: sqllogin
                  sqlStorageUpdateSettings:
                    diskConfigurationType: NEW
                    diskCount: 1
                    startingDeviceId: 2
                  sqlWorkloadTypeUpdateSettings:
                    sqlWorkloadType: OLTP
                sqlImageSku: Enterprise
                sqlManagement: Full
                sqlServerLicenseType: PAYG
                virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm
            resourceGroupName: testrg
            sqlVirtualMachineName: testvm
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm
                location: northeurope
                name: testvm
                properties:
                  provisioningState: Updating
                  sqlImageSku: Enterprise
                  sqlManagement: Full
                  sqlServerLicenseType: PAYG
                  virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm
                type: Microsoft.SqlVirtualMachine/sqlVirtualMachines
            "201":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm
                location: northeurope
                name: testvm
                properties:
                  provisioningState: Provisioning
                  sqlImageSku: Unknown
                  sqlManagement: Full
                  sqlServerLicenseType: PAYG
                  virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm
                type: Microsoft.SqlVirtualMachine/sqlVirtualMachines
        Creates or updates a SQL virtual machine with min parameters.:
          parameters:
            api-version: 2017-03-01-preview
            parameters:
              location: northeurope
              properties:
                virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm
            resourceGroupName: testrg
            sqlVirtualMachineName: testvm
            subscriptionId: 00000000-1111-2222-3333-444444444444
          responses:
            "200":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm
                location: northeurope
                name: testvm
                properties:
                  provisioningState: Updating
                  sqlImageSku: Enterprise
                  sqlServerLicenseType: PAYG
                  virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm
                type: Microsoft.SqlVirtualMachine/sqlVirtualMachines
            "201":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/testvm
                location: northeurope
                name: testvm
                properties:
                  provisioningState: Provisioning
                  sqlImageSku: Unknown
                  sqlServerLicenseType: PAYG
                  virtualMachineResourceId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm
                type: Microsoft.SqlVirtualMachine/sqlVirtualMachines
      x-ms-long-running-operation: true
definitions:
  AdditionalFeaturesServerConfigurations:
    description: Additional SQL Server feature settings.
    properties:
      isRServicesEnabled:
        description: Enable or disable R services (SQL 2016 onwards).
        type: boolean
    type: object
  AutoBackupSettings:
    description: Configure backups for databases in your SQL virtual machine.
    properties:
      backupScheduleType:
        description: Backup schedule type.
        enum:
          - Manual
          - Automated
        type: string
        x-ms-enum:
          modelAsString: true
          name: BackupScheduleType
      backupSystemDbs:
        description: Include or exclude system databases from auto backup.
        type: boolean
      enable:
        description: Enable or disable autobackup on SQL virtual machine.
        type: boolean
      enableEncryption:
        description: Enable or disable encryption for backup on SQL virtual machine.
        type: boolean
      fullBackupFrequency:
        description: Frequency of full backups. In both cases, full backups begin during the next scheduled time window.
        enum:
          - Daily
          - Weekly
        type: string
        x-ms-enum:
          modelAsString: true
          name: FullBackupFrequencyType
      fullBackupStartTime:
        description: Start time of a given day during which full backups can take place. 0-23 hours.
        format: int32
        type: integer
      fullBackupWindowHours:
        description: Duration of the time window of a given day during which full backups can take place. 1-23 hours.
        format: int32
        type: integer
      logBackupFrequency:
        description: Frequency of log backups. 5-60 minutes.
        format: int32
        type: integer
      password:
        description: Password for encryption on backup.
        type: string
        x-ms-mutability:
          - create
          - update
      retentionPeriod:
        description: "Retention period of backup: 1-30 days."
        format: int32
        type: integer
      storageAccessKey:
        description: Storage account key where backup will be taken to.
        type: string
        x-ms-mutability:
          - create
          - update
      storageAccountUrl:
        description: Storage account url where backup will be taken to.
        type: string
    type: object
  AutoPatchingSettings:
    description: Set a patching window during which Windows and SQL patches will be applied.
    properties:
      dayOfWeek:
        description: Day of week to apply the patch on.
        enum:
          - Monday
          - Tuesday
          - Wednesday
          - Thursday
          - Friday
          - Saturday
          - Sunday
        type: string
        x-ms-enum:
          modelAsString: false
          name: DayOfWeek
      enable:
        description: Enable or disable autopatching on SQL virtual machine.
        type: boolean
      maintenanceWindowDuration:
        description: Duration of patching.
        format: int32
        type: integer
      maintenanceWindowStartingHour:
        description: Hour of the day when patching is initiated. Local VM time.
        format: int32
        type: integer
    type: object
  AvailabilityGroupListener:
    allOf:
      - $ref: "#/definitions/ProxyResource"
    description: A SQL Server availability group listener.
    properties:
      properties:
        $ref: "#/definitions/AvailabilityGroupListenerProperties"
        description: Resource properties.
        x-ms-client-flatten: true
    type: object
  AvailabilityGroupListenerListResult:
    description: A list of availability group listeners.
    properties:
      nextLink:
        description: Link to retrieve next page of results.
        readOnly: true
        type: string
      value:
        description: Array of results.
        items:
          $ref: "#/definitions/AvailabilityGroupListener"
        readOnly: true
        type: array
    type: object
  AvailabilityGroupListenerProperties:
    description: The properties of an availability group listener.
    properties:
      availabilityGroupName:
        description: Name of the availability group.
        type: string
      createDefaultAvailabilityGroupIfNotExist:
        description: Create a default availability group if it does not exist.
        type: boolean
      loadBalancerConfigurations:
        description: List of load balancer configurations for an availability group listener.
        items:
          $ref: "#/definitions/LoadBalancerConfiguration"
        type: array
      port:
        description: Listener port.
        format: int32
        type: integer
      provisioningState:
        description: Provisioning state to track the async operation status.
        readOnly: true
        type: string
    type: object
  KeyVaultCredentialSettings:
    description: Configure your SQL virtual machine to be able to connect to the Azure Key Vault service.
    properties:
      azureKeyVaultUrl:
        description: Azure Key Vault url.
        type: string
      credentialName:
        description: Credential name.
        type: string
      enable:
        description: Enable or disable key vault credential setting.
        type: boolean
      servicePrincipalName:
        description: Service principal name to access key vault.
        type: string
      servicePrincipalSecret:
        description: Service principal name secret to access key vault.
        type: string
        x-ms-mutability:
          - create
          - update
    type: object
  LoadBalancerConfiguration:
    description: A load balancer configuration for an availability group listener.
    properties:
      loadBalancerResourceId:
        description: Resource id of the load balancer.
        type: string
      privateIpAddress:
        $ref: "#/definitions/PrivateIPAddress"
        description: Private IP address.
      probePort:
        description: Probe port.
        format: int32
        type: integer
      publicIpAddressResourceId:
        description: Resource id of the public IP.
        type: string
      sqlVirtualMachineInstances:
        description: List of the SQL virtual machine instance resource id's that are enrolled into the availability group listener.
        items:
          type: string
        type: array
    type: object
  Operation:
    description: SQL REST API operation definition.
    properties:
      display:
        $ref: "#/definitions/OperationDisplay"
        description: The localized display information for this particular operation / action.
        readOnly: true
      name:
        description: The name of the operation being performed on this particular object.
        readOnly: true
        type: string
      origin:
        description: The intended executor of the operation.
        enum:
          - user
          - system
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: OperationOrigin
      properties:
        additionalProperties:
          type: object
        description: Additional descriptions for the operation.
        readOnly: true
        type: object
        x-ms-client-flatten: false
    type: object
  OperationDisplay:
    description: Display metadata associated with the operation.
    properties:
      description:
        description: The localized friendly description for the operation.
        readOnly: true
        type: string
      operation:
        description: The localized friendly name for the operation.
        readOnly: true
        type: string
      provider:
        description: The localized friendly form of the resource provider name.
        readOnly: true
        type: string
      resource:
        description: The localized friendly form of the resource type related to this action/operation.
        readOnly: true
        type: string
    type: object
  OperationListResult:
    description: Result of the request to list SQL operations.
    properties:
      nextLink:
        description: Link to retrieve next page of results.
        readOnly: true
        type: string
      value:
        description: Array of results.
        items:
          $ref: "#/definitions/Operation"
        readOnly: true
        type: array
    type: object
  PrivateIPAddress:
    description: A private IP address bound to the availability group listener.
    properties:
      ipAddress:
        description: Private IP address bound to the availability group listener.
        type: string
      subnetResourceId:
        description: Subnet used to include private IP.
        type: string
    type: object
  ProxyResource:
    allOf:
      - $ref: "#/definitions/Resource"
    description: ARM proxy resource.
    properties: {}
    type: object
  Resource:
    description: ARM resource.
    properties:
      id:
        description: Resource ID.
        readOnly: true
        type: string
      name:
        description: Resource name.
        readOnly: true
        type: string
      type:
        description: Resource type.
        readOnly: true
        type: string
    type: object
    x-ms-azure-resource: true
  ResourceIdentity:
    description: Azure Active Directory identity configuration for a resource.
    properties:
      principalId:
        description: The Azure Active Directory principal id.
        format: uuid
        readOnly: true
        type: string
      tenantId:
        description: The Azure Active Directory tenant id.
        format: uuid
        readOnly: true
        type: string
      type:
        description: The identity type. Set this to 'SystemAssigned' in order to automatically create and assign an Azure Active Directory principal for the resource.
        enum:
          - SystemAssigned
        type: string
        x-ms-enum:
          modelAsString: true
          name: IdentityType
    type: object
  SQLStorageSettings:
    description: Set disk storage settings for SQL Server.
    properties:
      defaultFilePath:
        description: SQL Server default file path
        type: string
      luns:
        description: Logical Unit Numbers for the disks.
        items:
          format: int32
          type: integer
        type: array
    type: object
  ServerConfigurationsManagementSettings:
    description: Set the connectivity, storage and workload settings.
    properties:
      additionalFeaturesServerConfigurations:
        $ref: "#/definitions/AdditionalFeaturesServerConfigurations"
        description: Additional SQL feature settings.
      sqlConnectivityUpdateSettings:
        $ref: "#/definitions/SqlConnectivityUpdateSettings"
        description: SQL connectivity type settings.
      sqlStorageUpdateSettings:
        $ref: "#/definitions/SqlStorageUpdateSettings"
        description: SQL storage update settings.
      sqlWorkloadTypeUpdateSettings:
        $ref: "#/definitions/SqlWorkloadTypeUpdateSettings"
        description: SQL workload type settings.
    type: object
  SqlConnectivityUpdateSettings:
    description: Set the access level and network port settings for SQL Server.
    properties:
      connectivityType:
        description: SQL Server connectivity option.
        enum:
          - LOCAL
          - PRIVATE
          - PUBLIC
        type: string
        x-ms-enum:
          modelAsString: true
          name: ConnectivityType
      port:
        description: SQL Server port.
        format: int32
        type: integer
      sqlAuthUpdatePassword:
        description: SQL Server sysadmin login password.
        type: string
        x-ms-mutability:
          - create
      sqlAuthUpdateUserName:
        description: SQL Server sysadmin login to create.
        type: string
        x-ms-mutability:
          - create
    type: object
  SqlStorageUpdateSettings:
    description: Set disk storage settings for SQL Server.
    properties:
      diskConfigurationType:
        description: Disk configuration to apply to SQL Server.
        enum:
          - NEW
          - EXTEND
          - ADD
        type: string
        x-ms-enum:
          modelAsString: true
          name: DiskConfigurationType
      diskCount:
        description: Virtual machine disk count.
        format: int32
        type: integer
      startingDeviceId:
        description: Device id of the first disk to be updated.
        format: int32
        type: integer
    type: object
  SqlVirtualMachine:
    allOf:
      - $ref: "#/definitions/TrackedResource"
    description: A SQL virtual machine.
    properties:
      identity:
        $ref: "#/definitions/ResourceIdentity"
        description: Azure Active Directory identity of the server.
        x-ms-mutability:
          - read
          - create
      properties:
        $ref: "#/definitions/SqlVirtualMachineProperties"
        description: Resource properties.
        x-ms-client-flatten: true
    required:
      - location
    type: object
  SqlVirtualMachineGroup:
    allOf:
      - $ref: "#/definitions/TrackedResource"
    description: A SQL virtual machine group.
    properties:
      properties:
        $ref: "#/definitions/SqlVirtualMachineGroupProperties"
        description: Resource properties.
        x-ms-client-flatten: true
    required:
      - location
    type: object
  SqlVirtualMachineGroupListResult:
    description: A list of SQL virtual machine groups.
    properties:
      nextLink:
        description: Link to retrieve next page of results.
        readOnly: true
        type: string
      value:
        description: Array of results.
        items:
          $ref: "#/definitions/SqlVirtualMachineGroup"
        readOnly: true
        type: array
    type: object
  SqlVirtualMachineGroupProperties:
    description: The properties of a SQL virtual machine group.
    properties:
      clusterConfiguration:
        description: Cluster type.
        enum:
          - Domainful
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: ClusterConfiguration
      clusterManagerType:
        description: "Type of cluster manager: Windows Server Failover Cluster (WSFC), implied by the scale type of the group and the OS type."
        enum:
          - WSFC
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: ClusterManagerType
      provisioningState:
        description: Provisioning state to track the async operation status.
        readOnly: true
        type: string
      scaleType:
        description: Scale type.
        enum:
          - HA
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: ScaleType
      sqlImageOffer:
        description: SQL image offer. Examples may include SQL2016-WS2016, SQL2017-WS2016.
        type: string
        x-ms-mutability:
          - read
          - create
      sqlImageSku:
        description: SQL image sku.
        enum:
          - Developer
          - Enterprise
        type: string
        x-ms-enum:
          modelAsString: true
          name: SqlVmGroupImageSku
        x-ms-mutability:
          - read
          - create
      wsfcDomainProfile:
        $ref: "#/definitions/WsfcDomainProfile"
        description: Cluster Active Directory domain profile.
        x-ms-mutability:
          - read
          - create
    type: object
  SqlVirtualMachineGroupUpdate:
    description: An update to a SQL virtual machine group.
    properties:
      tags:
        additionalProperties:
          type: string
        description: Resource tags.
        type: object
    type: object
  SqlVirtualMachineListResult:
    description: A list of SQL virtual machines.
    properties:
      nextLink:
        description: Link to retrieve next page of results.
        readOnly: true
        type: string
      value:
        description: Array of results.
        items:
          $ref: "#/definitions/SqlVirtualMachine"
        readOnly: true
        type: array
    type: object
  SqlVirtualMachineProperties:
    description: The SQL virtual machine properties.
    properties:
      autoBackupSettings:
        $ref: "#/definitions/AutoBackupSettings"
        description: Auto backup settings for SQL Server.
      autoPatchingSettings:
        $ref: "#/definitions/AutoPatchingSettings"
        description: Auto patching settings for applying critical security updates to SQL virtual machine.
      keyVaultCredentialSettings:
        $ref: "#/definitions/KeyVaultCredentialSettings"
        description: Key vault credential settings.
      provisioningState:
        description: Provisioning state to track the async operation status.
        readOnly: true
        type: string
      serverConfigurationsManagementSettings:
        $ref: "#/definitions/ServerConfigurationsManagementSettings"
        description: SQL Server configuration management settings.
      sqlImageOffer:
        description: SQL image offer. Examples include SQL2016-WS2016, SQL2017-WS2016.
        type: string
        x-ms-mutability:
          - read
          - create
      sqlImageSku:
        description: SQL Server edition type.
        enum:
          - Developer
          - Express
          - Standard
          - Enterprise
          - Web
        type: string
        x-ms-enum:
          modelAsString: true
          name: SqlImageSku
      sqlManagement:
        description: SQL Server Management type.
        enum:
          - Full
          - LightWeight
          - NoAgent
        type: string
        x-ms-enum:
          modelAsString: true
          name: SqlManagementMode
      sqlServerLicenseType:
        description: SQL Server license type.
        enum:
          - PAYG
          - AHUB
          - DR
        type: string
        x-ms-enum:
          modelAsString: true
          name: SqlServerLicenseType
      sqlVirtualMachineGroupResourceId:
        description: ARM resource id of the SQL virtual machine group this SQL virtual machine is or will be part of.
        type: string
        x-ms-mutability:
          - read
          - update
      storageConfigurationSettings:
        $ref: "#/definitions/StorageConfigurationSettings"
        description: Storage Configuration Settings.
      virtualMachineResourceId:
        description: ARM Resource id of underlying virtual machine created from SQL marketplace image.
        type: string
        x-ms-mutability:
          - read
          - create
      wsfcDomainCredentials:
        $ref: "#/definitions/WsfcDomainCredentials"
        description: Domain credentials for setting up Windows Server Failover Cluster for SQL availability group.
    type: object
  SqlVirtualMachineUpdate:
    description: An update to a SQL virtual machine.
    properties:
      tags:
        additionalProperties:
          type: string
        description: Resource tags.
        type: object
    type: object
  SqlWorkloadTypeUpdateSettings:
    description: Set workload type to optimize storage for SQL Server.
    properties:
      sqlWorkloadType:
        description: SQL Server workload type.
        enum:
          - GENERAL
          - OLTP
          - DW
        type: string
        x-ms-enum:
          modelAsString: true
          name: SqlWorkloadType
        x-ms-mutability:
          - read
          - create
    type: object
  StorageConfigurationSettings:
    description: Storage Configurations for SQL Data, Log and TempDb.
    properties:
      diskConfigurationType:
        description: Disk configuration to apply to SQL Server.
        enum:
          - NEW
          - EXTEND
          - ADD
        type: string
        x-ms-enum:
          modelAsString: true
          name: DiskConfigurationType
      sqlDataSettings:
        $ref: "#/definitions/SQLStorageSettings"
        description: SQL Server Data Storage Settings.
      sqlLogSettings:
        $ref: "#/definitions/SQLStorageSettings"
        description: SQL Server Log Storage Settings.
      sqlTempDbSettings:
        $ref: "#/definitions/SQLStorageSettings"
        description: SQL Server TempDb Storage Settings.
      storageWorkloadType:
        description: Storage workload type.
        enum:
          - GENERAL
          - OLTP
          - DW
        type: string
        x-ms-enum:
          modelAsString: true
          name: StorageWorkloadType
        x-ms-mutability:
          - read
          - create
    type: object
  TrackedResource:
    allOf:
      - $ref: "#/definitions/Resource"
    description: ARM tracked top level resource.
    properties:
      location:
        description: Resource location.
        type: string
        x-ms-mutability:
          - read
          - create
      tags:
        additionalProperties:
          type: string
        description: Resource tags.
        type: object
    required:
      - location
    type: object
  WsfcDomainCredentials:
    description: Domain credentials for setting up Windows Server Failover Cluster for SQL availability group.
    properties:
      clusterBootstrapAccountPassword:
        description: Cluster bootstrap account password.
        type: string
      clusterOperatorAccountPassword:
        description: Cluster operator account password.
        type: string
      sqlServiceAccountPassword:
        description: SQL service account password.
        type: string
    type: object
  WsfcDomainProfile:
    description: Active Directory account details to operate Windows Server Failover Cluster.
    properties:
      clusterBootstrapAccount:
        description: Account name used for creating cluster (at minimum needs permissions to 'Create Computer Objects' in domain).
        type: string
        x-ms-mutability:
          - read
          - create
      clusterOperatorAccount:
        description: Account name used for operating cluster i.e. will be part of administrators group on all the participating virtual machines in the cluster.
        type: string
        x-ms-mutability:
          - read
          - update
      domainFqdn:
        description: Fully qualified name of the domain.
        type: string
        x-ms-mutability:
          - read
          - create
      fileShareWitnessPath:
        description: Optional path for fileshare witness.
        type: string
        x-ms-mutability:
          - read
          - create
      ouPath:
        description: Organizational Unit path in which the nodes and cluster will be present.
        type: string
        x-ms-mutability:
          - read
          - create
      sqlServiceAccount:
        description: Account name under which SQL service will run on all participating SQL virtual machines in the cluster.
        type: string
        x-ms-mutability:
          - read
          - update
      storageAccountPrimaryKey:
        description: Primary key of the witness storage account.
        type: string
        x-ms-mutability:
          - create
      storageAccountUrl:
        description: Fully qualified ARM resource id of the witness storage account.
        type: string
        x-ms-mutability:
          - read
          - create
    type: object
