swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: The Azure SQL Database management API provides a RESTful set of web APIs that interact with Azure SQL Database services to manage your databases. The API enables users to create, retrieve, update, and delete databases, servers, and other entities.
  title: SqlManagementClient
  version: 2015-05-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/sql/resource-manager/Microsoft.Sql/preview/2015-05-01-preview/virtualNetworkRules.json
      version: "2.0"
  x-providerName: azure.com
  x-serviceName: sql-virtualNetworkRules
  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: The API version to use for the request.
    in: query
    name: api-version
    required: true
    type: string
    x-ms-parameter-location: client
  DatabaseNameParameter:
    description: The name of the database.
    in: path
    name: databaseName
    required: true
    type: string
    x-ms-parameter-location: method
  ManagedInstanceNameParameter:
    description: The name of the managed instance.
    in: path
    name: managedInstanceName
    required: true
    type: string
    x-ms-parameter-location: method
  ResourceGroupParameter:
    description: The 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
  ServerNameParameter:
    description: The name of the server.
    in: path
    name: serverName
    required: true
    type: string
    x-ms-parameter-location: method
  SqlVirtualMachineContainerNameParameter:
    description: The name of the SqlVirtualMachineContainer.
    in: path
    name: sqlVirtualMachineContainerName
    required: true
    type: string
    x-ms-parameter-location: method
  SqlVirtualMachineInstanceNameParameter:
    description: The name of the SqlVirtualMachineInstance.
    in: path
    name: sqlVirtualMachineInstanceName
    required: true
    type: string
    x-ms-parameter-location: method
  SubscriptionIdParameter:
    description: The subscription ID that identifies an Azure subscription.
    in: path
    name: subscriptionId
    required: true
    type: string
    x-ms-parameter-location: client
  VirtualClusterNameParameter:
    description: The name of the virtual cluster.
    in: path
    name: virtualClusterName
    required: true
    type: string
    x-ms-parameter-location: method
paths:
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/virtualNetworkRules":
    get:
      description: Gets a list of virtual network rules in a server.
      operationId: VirtualNetworkRules_ListByServer
      parameters:
        - $ref: "#/parameters/ResourceGroupParameter"
        - $ref: "#/parameters/ServerNameParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully retrieved the list of virtual network rules.
          schema:
            $ref: "#/definitions/VirtualNetworkRuleListResult"
        default:
          description: |-
            *** Error Responses: ***

             * 404 SubscriptionDoesNotHaveServer - The requested server was not found

             * 404 ResourceNotFound - The requested resource was not found.
      tags:
        - VirtualNetworkRules
      x-ms-examples:
        List virtual network rules:
          parameters:
            api-version: 2015-05-01-preview
            resourceGroupName: Default
            serverName: vnet-test-svr
            subscriptionId: 00000000-1111-2222-3333-444444444444
            virtualNetworkRuleName: vnet-firewall-rule
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Sql/servers/vnet-test-svr/virtualNetworkRules/vnet-firewall-rule
                    name: vnet-firewall-rule
                    properties:
                      ignoreMissingVnetServiceEndpoint: false
                      state: Ready
                      virtualNetworkSubnetId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Network/virtualNetworks/testvnet/subnets/testsubnet
                    type: Microsoft.Sql/servers/virtualNetworkRules
                  - id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Sql/servers/vnet-test-svr/virtualNetworkRules/vnet-firewall-rule
                    name: vnet-firewall-rule
                    properties:
                      ignoreMissingVnetServiceEndpoint: false
                      state: Ready
                      virtualNetworkSubnetId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Network/virtualNetworks/testvnet/subnets/testsubnet
                    type: Microsoft.Sql/servers/virtualNetworkRules
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/virtualNetworkRules/{virtualNetworkRuleName}":
    delete:
      description: Deletes the virtual network rule with the given name.
      operationId: VirtualNetworkRules_Delete
      parameters:
        - $ref: "#/parameters/ResourceGroupParameter"
        - $ref: "#/parameters/ServerNameParameter"
        - description: The name of the virtual network rule.
          in: path
          name: virtualNetworkRuleName
          required: true
          type: string
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully deleted the virtual network rule.
        "202":
          description: Accepted
        "204":
          description: The specified virtual network rule does not exist.
        default:
          description: |-
            *** Error Responses: ***

             * 400 InvalidResourceId - Invalid resource identifier.

             * 400 MismatchingSubscriptionWithUrl - The provided subscription did not match the subscription in the Url.

             * 400 MismatchingResourceGroupNameWithUrl - The provided resource group name did not match the name in the Url.

             * 400 MismatchingServerNameWithUrl - The provided server name did not match the name in the Url.

             * 400 NullVirtualNetworkRequest - Virtual Network Request is Null

             * 400 NullVirtualNetworkRequestParameters - Virtual Network Request Parameters are Null

             * 404 SubscriptionDoesNotHaveServer - The requested server was not found

             * 404 OperationIdNotFound - The operation with Id does not exist.

             * 409 OperationCancelled - The operation has been cancelled by user.

             * 409 OperationInterrupted - The operation on the resource could not be completed because it was interrupted by another operation on the same resource.

             * 500 OperationTimedOut - The operation timed out and automatically rolled back. Please retry the operation.
      tags:
        - VirtualNetworkRules
      x-ms-examples:
        Delete a virtual network rule:
          parameters:
            api-version: 2015-05-01-preview
            resourceGroupName: Default
            serverName: vnet-test-svr
            subscriptionId: 00000000-1111-2222-3333-444444444444
            virtualNetworkRuleName: vnet-firewall-rule
          responses:
            "200": {}
            "202": {}
            "204": {}
      x-ms-long-running-operation: true
    get:
      description: Gets a virtual network rule.
      operationId: VirtualNetworkRules_Get
      parameters:
        - $ref: "#/parameters/ResourceGroupParameter"
        - $ref: "#/parameters/ServerNameParameter"
        - description: The name of the virtual network rule.
          in: path
          name: virtualNetworkRuleName
          required: true
          type: string
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully retrieved a specified virtual network rule.
          schema:
            $ref: "#/definitions/VirtualNetworkRule"
        default:
          description: |-
            *** Error Responses: ***

             * 404 SubscriptionDoesNotHaveServer - The requested server was not found

             * 404 ResourceNotFound - The requested resource was not found.
      tags:
        - VirtualNetworkRules
      x-ms-examples:
        Gets a virtual network rule:
          parameters:
            api-version: 2015-05-01-preview
            resourceGroupName: Default
            serverName: vnet-test-svr
            subscriptionId: 00000000-1111-2222-3333-444444444444
            virtualNetworkRuleName: vnet-firewall-rule
          responses:
            "200":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Sql/servers/vnet-test-svr/virtualNetworkRules/vnet-firewall-rule
                name: vnet-firewall-rule
                properties:
                  ignoreMissingVnetServiceEndpoint: false
                  state: Ready
                  virtualNetworkSubnetId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Network/virtualNetworks/testvnet/subnets/testsubnet
                type: Microsoft.Sql/servers/virtualNetworkRules
    put:
      description: Creates or updates an existing virtual network rule.
      operationId: VirtualNetworkRules_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ResourceGroupParameter"
        - $ref: "#/parameters/ServerNameParameter"
        - description: The name of the virtual network rule.
          in: path
          name: virtualNetworkRuleName
          required: true
          type: string
        - description: The requested virtual Network Rule Resource state.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/VirtualNetworkRule"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: Successfully updated a virtual network rule.
          schema:
            $ref: "#/definitions/VirtualNetworkRule"
        "201":
          description: Successfully created a virtual network rule.
          schema:
            $ref: "#/definitions/VirtualNetworkRule"
        "202":
          description: Accepted
        default:
          description: |-
            *** Error Responses: ***

             * 400 InvalidResourceId - Invalid resource identifier.

             * 400 MismatchingSubscriptionWithUrl - The provided subscription did not match the subscription in the Url.

             * 400 MismatchingResourceGroupNameWithUrl - The provided resource group name did not match the name in the Url.

             * 400 MismatchingServerNameWithUrl - The provided server name did not match the name in the Url.

             * 400 NullVirtualNetworkRequest - Virtual Network Request is Null

             * 400 NullVirtualNetworkRequestParameters - Virtual Network Request Parameters are Null

             * 400 NullVirtualNetworkSubnetId - The Virtual Network Subnet Id is null

             * 404 SubscriptionDoesNotHaveServer - The requested server was not found

             * 404 VirtualNetworkRuleNotEnabled - Azure SQL Server Virtual Network Rule feature is not enabled

             * 404 OperationIdNotFound - The operation with Id does not exist.

             * 409 OperationCancelled - The operation has been cancelled by user.

             * 409 OperationInterrupted - The operation on the resource could not be completed because it was interrupted by another operation on the same resource.

             * 500 OperationTimedOut - The operation timed out and automatically rolled back. Please retry the operation.
      tags:
        - VirtualNetworkRules
      x-ms-examples:
        Create or update a virtual network rule:
          parameters:
            api-version: 2015-05-01-preview
            parameters:
              properties:
                ignoreMissingVnetServiceEndpoint: false
                virtualNetworkSubnetId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Network/virtualNetworks/testvnet/subnets/testsubnet
            resourceGroupName: Default
            serverName: vnet-test-svr
            subscriptionId: 00000000-1111-2222-3333-444444444444
            virtualNetworkRuleName: vnet-firewall-rule
          responses:
            "200":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Sql/servers/vnet-test-svr/virtualNetworkRules/vnet-firewall-rule
                name: vnet-firewall-rule
                properties:
                  ignoreMissingVnetServiceEndpoint: false
                  virtualNetworkSubnetId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Network/virtualNetworks/testvnet/subnets/testsubnet
                type: Microsoft.Sql/servers/virtualNetworkRules
            "201":
              body:
                id: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Sql/servers/vnet-test-svr/virtualNetworkRules/vnet-firewall-rule
                name: vnet-firewall-rule
                properties:
                  ignoreMissingVnetServiceEndpoint: false
                  virtualNetworkSubnetId: /subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default/providers/Microsoft.Network/virtualNetworks/testvnet/subnets/testsubnet
                type: Microsoft.Sql/servers/virtualNetworkRules
            "202": {}
      x-ms-long-running-operation: true
definitions:
  VirtualNetworkRule:
    allOf:
      - allOf:
          - 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
        description: ARM proxy resource.
        properties: {}
        type: object
    description: A virtual network rule.
    properties:
      properties:
        $ref: "#/definitions/VirtualNetworkRuleProperties"
        description: Resource properties.
        x-ms-client-flatten: true
    type: object
  VirtualNetworkRuleListResult:
    description: A list of virtual network rules.
    properties:
      nextLink:
        description: Link to retrieve next page of results.
        readOnly: true
        type: string
      value:
        description: Array of results.
        items:
          $ref: "#/definitions/VirtualNetworkRule"
        readOnly: true
        type: array
    type: object
  VirtualNetworkRuleProperties:
    description: Properties of a virtual network rule.
    properties:
      ignoreMissingVnetServiceEndpoint:
        description: Create firewall rule before the virtual network has vnet service endpoint enabled.
        type: boolean
      state:
        description: Virtual Network Rule State
        enum:
          - Initializing
          - InProgress
          - Ready
          - Deleting
          - Unknown
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: VirtualNetworkRuleState
      virtualNetworkSubnetId:
        description: The ARM resource id of the virtual network subnet.
        type: string
    required:
      - virtualNetworkSubnetId
    type: object
