import * as pulumi from "@pulumi/pulumi"; /** * Allows you to manage rules for allowing traffic between an Azure SQL server and a subnet of a virtual network. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const example = new azure.core.ResourceGroup("example", { * name: "example-sql-server-vnet-rule", * location: "West Europe", * }); * const exampleVirtualNetwork = new azure.network.VirtualNetwork("example", { * name: "example-vnet", * addressSpaces: ["10.7.29.0/29"], * location: example.location, * resourceGroupName: example.name, * }); * const exampleSubnet = new azure.network.Subnet("example", { * name: "example-subnet", * resourceGroupName: example.name, * virtualNetworkName: exampleVirtualNetwork.name, * addressPrefixes: ["10.7.29.0/29"], * serviceEndpoints: ["Microsoft.Sql"], * }); * const exampleServer = new azure.mssql.Server("example", { * name: "uniqueazuresqlserver", * resourceGroupName: example.name, * location: example.location, * version: "12.0", * administratorLogin: "4dm1n157r470r", * administratorLoginPassword: "4-v3ry-53cr37-p455w0rd", * }); * const exampleVirtualNetworkRule = new azure.mssql.VirtualNetworkRule("example", { * name: "sql-vnet-rule", * serverId: exampleServer.id, * subnetId: exampleSubnet.id, * }); * ``` * * ## API Providers * * * This resource uses the following Azure API Providers: * * * `Microsoft.Sql` - 2023-08-01-preview * * ## Import * * SQL Virtual Network Rules can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:mssql/virtualNetworkRule:VirtualNetworkRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Sql/servers/myserver/virtualNetworkRules/vnetrulename * ``` */ export declare class VirtualNetworkRule extends pulumi.CustomResource { /** * Get an existing VirtualNetworkRule resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: VirtualNetworkRuleState, opts?: pulumi.CustomResourceOptions): VirtualNetworkRule; /** * Returns true if the given object is an instance of VirtualNetworkRule. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is VirtualNetworkRule; /** * Create the virtual network rule before the subnet has the virtual network service endpoint enabled. Defaults to `false`. * * > **Note:** If `ignoreMissingVnetServiceEndpoint` is false, and the target subnet does not contain the `Microsoft.SQL` endpoint in the `serviceEndpoints` array, the deployment will fail when it tries to create the SQL virtual network rule. */ readonly ignoreMissingVnetServiceEndpoint: pulumi.Output; /** * The name of the SQL virtual network rule. Changing this forces a new resource to be created. */ readonly name: pulumi.Output; /** * The resource ID of the SQL Server to which this SQL virtual network rule will be applied. Changing this forces a new resource to be created. */ readonly serverId: pulumi.Output; /** * The ID of the subnet from which the SQL server will accept communications. */ readonly subnetId: pulumi.Output; /** * Create a VirtualNetworkRule resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: VirtualNetworkRuleArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering VirtualNetworkRule resources. */ export interface VirtualNetworkRuleState { /** * Create the virtual network rule before the subnet has the virtual network service endpoint enabled. Defaults to `false`. * * > **Note:** If `ignoreMissingVnetServiceEndpoint` is false, and the target subnet does not contain the `Microsoft.SQL` endpoint in the `serviceEndpoints` array, the deployment will fail when it tries to create the SQL virtual network rule. */ ignoreMissingVnetServiceEndpoint?: pulumi.Input; /** * The name of the SQL virtual network rule. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * The resource ID of the SQL Server to which this SQL virtual network rule will be applied. Changing this forces a new resource to be created. */ serverId?: pulumi.Input; /** * The ID of the subnet from which the SQL server will accept communications. */ subnetId?: pulumi.Input; } /** * The set of arguments for constructing a VirtualNetworkRule resource. */ export interface VirtualNetworkRuleArgs { /** * Create the virtual network rule before the subnet has the virtual network service endpoint enabled. Defaults to `false`. * * > **Note:** If `ignoreMissingVnetServiceEndpoint` is false, and the target subnet does not contain the `Microsoft.SQL` endpoint in the `serviceEndpoints` array, the deployment will fail when it tries to create the SQL virtual network rule. */ ignoreMissingVnetServiceEndpoint?: pulumi.Input; /** * The name of the SQL virtual network rule. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * The resource ID of the SQL Server to which this SQL virtual network rule will be applied. Changing this forces a new resource to be created. */ serverId: pulumi.Input; /** * The ID of the subnet from which the SQL server will accept communications. */ subnetId: pulumi.Input; }