All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.azurenative.sqlvirtualmachine.kotlin.SqlVirtualMachineArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.sqlvirtualmachine.kotlin

import com.pulumi.azurenative.sqlvirtualmachine.SqlVirtualMachineArgs.builder
import com.pulumi.azurenative.sqlvirtualmachine.kotlin.enums.SqlImageSku
import com.pulumi.azurenative.sqlvirtualmachine.kotlin.enums.SqlManagementMode
import com.pulumi.azurenative.sqlvirtualmachine.kotlin.enums.SqlServerLicenseType
import com.pulumi.azurenative.sqlvirtualmachine.kotlin.inputs.AssessmentSettingsArgs
import com.pulumi.azurenative.sqlvirtualmachine.kotlin.inputs.AssessmentSettingsArgsBuilder
import com.pulumi.azurenative.sqlvirtualmachine.kotlin.inputs.AutoBackupSettingsArgs
import com.pulumi.azurenative.sqlvirtualmachine.kotlin.inputs.AutoBackupSettingsArgsBuilder
import com.pulumi.azurenative.sqlvirtualmachine.kotlin.inputs.AutoPatchingSettingsArgs
import com.pulumi.azurenative.sqlvirtualmachine.kotlin.inputs.AutoPatchingSettingsArgsBuilder
import com.pulumi.azurenative.sqlvirtualmachine.kotlin.inputs.KeyVaultCredentialSettingsArgs
import com.pulumi.azurenative.sqlvirtualmachine.kotlin.inputs.KeyVaultCredentialSettingsArgsBuilder
import com.pulumi.azurenative.sqlvirtualmachine.kotlin.inputs.ResourceIdentityArgs
import com.pulumi.azurenative.sqlvirtualmachine.kotlin.inputs.ResourceIdentityArgsBuilder
import com.pulumi.azurenative.sqlvirtualmachine.kotlin.inputs.ServerConfigurationsManagementSettingsArgs
import com.pulumi.azurenative.sqlvirtualmachine.kotlin.inputs.ServerConfigurationsManagementSettingsArgsBuilder
import com.pulumi.azurenative.sqlvirtualmachine.kotlin.inputs.StorageConfigurationSettingsArgs
import com.pulumi.azurenative.sqlvirtualmachine.kotlin.inputs.StorageConfigurationSettingsArgsBuilder
import com.pulumi.azurenative.sqlvirtualmachine.kotlin.inputs.WsfcDomainCredentialsArgs
import com.pulumi.azurenative.sqlvirtualmachine.kotlin.inputs.WsfcDomainCredentialsArgsBuilder
import com.pulumi.core.Either
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * A SQL virtual machine.
 * Azure REST API version: 2022-02-01. Prior API version in Azure Native 1.x: 2017-03-01-preview.
 * Other available API versions: 2023-01-01-preview, 2023-10-01.
 * ## Example Usage
 * ### Creates or updates a SQL virtual machine and joins it to a SQL virtual machine group.
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var sqlVirtualMachine = new AzureNative.SqlVirtualMachine.SqlVirtualMachine("sqlVirtualMachine", new()
 *     {
 *         Location = "northeurope",
 *         ResourceGroupName = "testrg",
 *         SqlVirtualMachineGroupResourceId = "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/testvmgroup",
 *         SqlVirtualMachineName = "testvm",
 *         VirtualMachineResourceId = "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm2",
 *         WsfcDomainCredentials = new AzureNative.SqlVirtualMachine.Inputs.WsfcDomainCredentialsArgs
 *         {
 *             ClusterBootstrapAccountPassword = "",
 *             ClusterOperatorAccountPassword = "",
 *             SqlServiceAccountPassword = "",
 *         },
 *         WsfcStaticIp = "10.0.0.7",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	sqlvirtualmachine "github.com/pulumi/pulumi-azure-native-sdk/sqlvirtualmachine/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := sqlvirtualmachine.NewSqlVirtualMachine(ctx, "sqlVirtualMachine", &sqlvirtualmachine.SqlVirtualMachineArgs{
 * 			Location:                         pulumi.String("northeurope"),
 * 			ResourceGroupName:                pulumi.String("testrg"),
 * 			SqlVirtualMachineGroupResourceId: pulumi.String("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/testvmgroup"),
 * 			SqlVirtualMachineName:            pulumi.String("testvm"),
 * 			VirtualMachineResourceId:         pulumi.String("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm2"),
 * 			WsfcDomainCredentials: &sqlvirtualmachine.WsfcDomainCredentialsArgs{
 * 				ClusterBootstrapAccountPassword: pulumi.String(""),
 * 				ClusterOperatorAccountPassword:  pulumi.String(""),
 * 				SqlServiceAccountPassword:       pulumi.String(""),
 * 			},
 * 			WsfcStaticIp: pulumi.String("10.0.0.7"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.sqlvirtualmachine.SqlVirtualMachine;
 * import com.pulumi.azurenative.sqlvirtualmachine.SqlVirtualMachineArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.WsfcDomainCredentialsArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var sqlVirtualMachine = new SqlVirtualMachine("sqlVirtualMachine", SqlVirtualMachineArgs.builder()
 *             .location("northeurope")
 *             .resourceGroupName("testrg")
 *             .sqlVirtualMachineGroupResourceId("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/testvmgroup")
 *             .sqlVirtualMachineName("testvm")
 *             .virtualMachineResourceId("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm2")
 *             .wsfcDomainCredentials(WsfcDomainCredentialsArgs.builder()
 *                 .clusterBootstrapAccountPassword("")
 *                 .clusterOperatorAccountPassword("")
 *                 .sqlServiceAccountPassword("")
 *                 .build())
 *             .wsfcStaticIp("10.0.0.7")
 *             .build());
 *     }
 * }
 * ```
 * ### Creates or updates a SQL virtual machine for Automated Back up Settings with Weekly and Days of the week to run the back up.
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var sqlVirtualMachine = new AzureNative.SqlVirtualMachine.SqlVirtualMachine("sqlVirtualMachine", new()
 *     {
 *         AutoBackupSettings = new AzureNative.SqlVirtualMachine.Inputs.AutoBackupSettingsArgs
 *         {
 *             BackupScheduleType = AzureNative.SqlVirtualMachine.BackupScheduleType.Manual,
 *             BackupSystemDbs = true,
 *             DaysOfWeek = new[]
 *             {
 *                 AzureNative.SqlVirtualMachine.AutoBackupDaysOfWeek.Monday,
 *                 AzureNative.SqlVirtualMachine.AutoBackupDaysOfWeek.Friday,
 *             },
 *             Enable = true,
 *             EnableEncryption = true,
 *             FullBackupFrequency = AzureNative.SqlVirtualMachine.FullBackupFrequencyType.Weekly,
 *             FullBackupStartTime = 6,
 *             FullBackupWindowHours = 11,
 *             LogBackupFrequency = 10,
 *             Password = "",
 *             RetentionPeriod = 17,
 *             StorageAccessKey = "",
 *             StorageAccountUrl = "https://teststorage.blob.core.windows.net/",
 *             StorageContainerName = "testcontainer",
 *         },
 *         AutoPatchingSettings = new AzureNative.SqlVirtualMachine.Inputs.AutoPatchingSettingsArgs
 *         {
 *             DayOfWeek = AzureNative.SqlVirtualMachine.DayOfWeek.Sunday,
 *             Enable = true,
 *             MaintenanceWindowDuration = 60,
 *             MaintenanceWindowStartingHour = 2,
 *         },
 *         KeyVaultCredentialSettings = new AzureNative.SqlVirtualMachine.Inputs.KeyVaultCredentialSettingsArgs
 *         {
 *             Enable = false,
 *         },
 *         Location = "northeurope",
 *         ResourceGroupName = "testrg",
 *         ServerConfigurationsManagementSettings = new AzureNative.SqlVirtualMachine.Inputs.ServerConfigurationsManagementSettingsArgs
 *         {
 *             AdditionalFeaturesServerConfigurations = new AzureNative.SqlVirtualMachine.Inputs.AdditionalFeaturesServerConfigurationsArgs
 *             {
 *                 IsRServicesEnabled = false,
 *             },
 *             SqlConnectivityUpdateSettings = new AzureNative.SqlVirtualMachine.Inputs.SqlConnectivityUpdateSettingsArgs
 *             {
 *                 ConnectivityType = AzureNative.SqlVirtualMachine.ConnectivityType.PRIVATE,
 *                 Port = 1433,
 *                 SqlAuthUpdatePassword = "",
 *                 SqlAuthUpdateUserName = "sqllogin",
 *             },
 *             SqlStorageUpdateSettings = new AzureNative.SqlVirtualMachine.Inputs.SqlStorageUpdateSettingsArgs
 *             {
 *                 DiskConfigurationType = AzureNative.SqlVirtualMachine.DiskConfigurationType.NEW,
 *                 DiskCount = 1,
 *                 StartingDeviceId = 2,
 *             },
 *             SqlWorkloadTypeUpdateSettings = new AzureNative.SqlVirtualMachine.Inputs.SqlWorkloadTypeUpdateSettingsArgs
 *             {
 *                 SqlWorkloadType = AzureNative.SqlVirtualMachine.SqlWorkloadType.OLTP,
 *             },
 *         },
 *         SqlImageSku = AzureNative.SqlVirtualMachine.SqlImageSku.Enterprise,
 *         SqlManagement = AzureNative.SqlVirtualMachine.SqlManagementMode.Full,
 *         SqlServerLicenseType = AzureNative.SqlVirtualMachine.SqlServerLicenseType.PAYG,
 *         SqlVirtualMachineName = "testvm",
 *         VirtualMachineResourceId = "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	sqlvirtualmachine "github.com/pulumi/pulumi-azure-native-sdk/sqlvirtualmachine/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := sqlvirtualmachine.NewSqlVirtualMachine(ctx, "sqlVirtualMachine", &sqlvirtualmachine.SqlVirtualMachineArgs{
 * 			AutoBackupSettings: &sqlvirtualmachine.AutoBackupSettingsArgs{
 * 				BackupScheduleType: pulumi.String(sqlvirtualmachine.BackupScheduleTypeManual),
 * 				BackupSystemDbs:    pulumi.Bool(true),
 * 				DaysOfWeek: pulumi.StringArray{
 * 					pulumi.String(sqlvirtualmachine.AutoBackupDaysOfWeekMonday),
 * 					pulumi.String(sqlvirtualmachine.AutoBackupDaysOfWeekFriday),
 * 				},
 * 				Enable:                pulumi.Bool(true),
 * 				EnableEncryption:      pulumi.Bool(true),
 * 				FullBackupFrequency:   pulumi.String(sqlvirtualmachine.FullBackupFrequencyTypeWeekly),
 * 				FullBackupStartTime:   pulumi.Int(6),
 * 				FullBackupWindowHours: pulumi.Int(11),
 * 				LogBackupFrequency:    pulumi.Int(10),
 * 				Password:              pulumi.String(""),
 * 				RetentionPeriod:       pulumi.Int(17),
 * 				StorageAccessKey:      pulumi.String(""),
 * 				StorageAccountUrl:     pulumi.String("https://teststorage.blob.core.windows.net/"),
 * 				StorageContainerName:  pulumi.String("testcontainer"),
 * 			},
 * 			AutoPatchingSettings: &sqlvirtualmachine.AutoPatchingSettingsArgs{
 * 				DayOfWeek:                     sqlvirtualmachine.DayOfWeekSunday,
 * 				Enable:                        pulumi.Bool(true),
 * 				MaintenanceWindowDuration:     pulumi.Int(60),
 * 				MaintenanceWindowStartingHour: pulumi.Int(2),
 * 			},
 * 			KeyVaultCredentialSettings: &sqlvirtualmachine.KeyVaultCredentialSettingsArgs{
 * 				Enable: pulumi.Bool(false),
 * 			},
 * 			Location:          pulumi.String("northeurope"),
 * 			ResourceGroupName: pulumi.String("testrg"),
 * 			ServerConfigurationsManagementSettings: &sqlvirtualmachine.ServerConfigurationsManagementSettingsArgs{
 * 				AdditionalFeaturesServerConfigurations: &sqlvirtualmachine.AdditionalFeaturesServerConfigurationsArgs{
 * 					IsRServicesEnabled: pulumi.Bool(false),
 * 				},
 * 				SqlConnectivityUpdateSettings: &sqlvirtualmachine.SqlConnectivityUpdateSettingsArgs{
 * 					ConnectivityType:      pulumi.String(sqlvirtualmachine.ConnectivityTypePRIVATE),
 * 					Port:                  pulumi.Int(1433),
 * 					SqlAuthUpdatePassword: pulumi.String(""),
 * 					SqlAuthUpdateUserName: pulumi.String("sqllogin"),
 * 				},
 * 				SqlStorageUpdateSettings: &sqlvirtualmachine.SqlStorageUpdateSettingsArgs{
 * 					DiskConfigurationType: pulumi.String(sqlvirtualmachine.DiskConfigurationTypeNEW),
 * 					DiskCount:             pulumi.Int(1),
 * 					StartingDeviceId:      pulumi.Int(2),
 * 				},
 * 				SqlWorkloadTypeUpdateSettings: &sqlvirtualmachine.SqlWorkloadTypeUpdateSettingsArgs{
 * 					SqlWorkloadType: pulumi.String(sqlvirtualmachine.SqlWorkloadTypeOLTP),
 * 				},
 * 			},
 * 			SqlImageSku:              pulumi.String(sqlvirtualmachine.SqlImageSkuEnterprise),
 * 			SqlManagement:            pulumi.String(sqlvirtualmachine.SqlManagementModeFull),
 * 			SqlServerLicenseType:     pulumi.String(sqlvirtualmachine.SqlServerLicenseTypePAYG),
 * 			SqlVirtualMachineName:    pulumi.String("testvm"),
 * 			VirtualMachineResourceId: pulumi.String("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.sqlvirtualmachine.SqlVirtualMachine;
 * import com.pulumi.azurenative.sqlvirtualmachine.SqlVirtualMachineArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.AutoBackupSettingsArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.AutoPatchingSettingsArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.KeyVaultCredentialSettingsArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.ServerConfigurationsManagementSettingsArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.AdditionalFeaturesServerConfigurationsArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.SqlConnectivityUpdateSettingsArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.SqlStorageUpdateSettingsArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.SqlWorkloadTypeUpdateSettingsArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var sqlVirtualMachine = new SqlVirtualMachine("sqlVirtualMachine", SqlVirtualMachineArgs.builder()
 *             .autoBackupSettings(AutoBackupSettingsArgs.builder()
 *                 .backupScheduleType("Manual")
 *                 .backupSystemDbs(true)
 *                 .daysOfWeek(
 *                     "Monday",
 *                     "Friday")
 *                 .enable(true)
 *                 .enableEncryption(true)
 *                 .fullBackupFrequency("Weekly")
 *                 .fullBackupStartTime(6)
 *                 .fullBackupWindowHours(11)
 *                 .logBackupFrequency(10)
 *                 .password("")
 *                 .retentionPeriod(17)
 *                 .storageAccessKey("")
 *                 .storageAccountUrl("https://teststorage.blob.core.windows.net/")
 *                 .storageContainerName("testcontainer")
 *                 .build())
 *             .autoPatchingSettings(AutoPatchingSettingsArgs.builder()
 *                 .dayOfWeek("Sunday")
 *                 .enable(true)
 *                 .maintenanceWindowDuration(60)
 *                 .maintenanceWindowStartingHour(2)
 *                 .build())
 *             .keyVaultCredentialSettings(KeyVaultCredentialSettingsArgs.builder()
 *                 .enable(false)
 *                 .build())
 *             .location("northeurope")
 *             .resourceGroupName("testrg")
 *             .serverConfigurationsManagementSettings(ServerConfigurationsManagementSettingsArgs.builder()
 *                 .additionalFeaturesServerConfigurations(AdditionalFeaturesServerConfigurationsArgs.builder()
 *                     .isRServicesEnabled(false)
 *                     .build())
 *                 .sqlConnectivityUpdateSettings(SqlConnectivityUpdateSettingsArgs.builder()
 *                     .connectivityType("PRIVATE")
 *                     .port(1433)
 *                     .sqlAuthUpdatePassword("")
 *                     .sqlAuthUpdateUserName("sqllogin")
 *                     .build())
 *                 .sqlStorageUpdateSettings(SqlStorageUpdateSettingsArgs.builder()
 *                     .diskConfigurationType("NEW")
 *                     .diskCount(1)
 *                     .startingDeviceId(2)
 *                     .build())
 *                 .sqlWorkloadTypeUpdateSettings(SqlWorkloadTypeUpdateSettingsArgs.builder()
 *                     .sqlWorkloadType("OLTP")
 *                     .build())
 *                 .build())
 *             .sqlImageSku("Enterprise")
 *             .sqlManagement("Full")
 *             .sqlServerLicenseType("PAYG")
 *             .sqlVirtualMachineName("testvm")
 *             .virtualMachineResourceId("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm")
 *             .build());
 *     }
 * }
 * ```
 * ### Creates or updates a SQL virtual machine for Storage Configuration Settings to EXTEND Data, Log or TempDB storage pool.
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var sqlVirtualMachine = new AzureNative.SqlVirtualMachine.SqlVirtualMachine("sqlVirtualMachine", new()
 *     {
 *         Location = "northeurope",
 *         ResourceGroupName = "testrg",
 *         SqlVirtualMachineName = "testvm",
 *         StorageConfigurationSettings = new AzureNative.SqlVirtualMachine.Inputs.StorageConfigurationSettingsArgs
 *         {
 *             DiskConfigurationType = AzureNative.SqlVirtualMachine.DiskConfigurationType.EXTEND,
 *             SqlDataSettings = new AzureNative.SqlVirtualMachine.Inputs.SQLStorageSettingsArgs
 *             {
 *                 Luns = new[]
 *                 {
 *                     2,
 *                 },
 *             },
 *         },
 *         VirtualMachineResourceId = "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	sqlvirtualmachine "github.com/pulumi/pulumi-azure-native-sdk/sqlvirtualmachine/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := sqlvirtualmachine.NewSqlVirtualMachine(ctx, "sqlVirtualMachine", &sqlvirtualmachine.SqlVirtualMachineArgs{
 * 			Location:              pulumi.String("northeurope"),
 * 			ResourceGroupName:     pulumi.String("testrg"),
 * 			SqlVirtualMachineName: pulumi.String("testvm"),
 * 			StorageConfigurationSettings: &sqlvirtualmachine.StorageConfigurationSettingsArgs{
 * 				DiskConfigurationType: pulumi.String(sqlvirtualmachine.DiskConfigurationTypeEXTEND),
 * 				SqlDataSettings: &sqlvirtualmachine.SQLStorageSettingsArgs{
 * 					Luns: pulumi.IntArray{
 * 						pulumi.Int(2),
 * 					},
 * 				},
 * 			},
 * 			VirtualMachineResourceId: pulumi.String("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.sqlvirtualmachine.SqlVirtualMachine;
 * import com.pulumi.azurenative.sqlvirtualmachine.SqlVirtualMachineArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.StorageConfigurationSettingsArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.SQLStorageSettingsArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var sqlVirtualMachine = new SqlVirtualMachine("sqlVirtualMachine", SqlVirtualMachineArgs.builder()
 *             .location("northeurope")
 *             .resourceGroupName("testrg")
 *             .sqlVirtualMachineName("testvm")
 *             .storageConfigurationSettings(StorageConfigurationSettingsArgs.builder()
 *                 .diskConfigurationType("EXTEND")
 *                 .sqlDataSettings(SQLStorageSettingsArgs.builder()
 *                     .luns(2)
 *                     .build())
 *                 .build())
 *             .virtualMachineResourceId("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm")
 *             .build());
 *     }
 * }
 * ```
 * ### Creates or updates a SQL virtual machine for Storage Configuration Settings to NEW Data, Log and TempDB storage pool.
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var sqlVirtualMachine = new AzureNative.SqlVirtualMachine.SqlVirtualMachine("sqlVirtualMachine", new()
 *     {
 *         Location = "northeurope",
 *         ResourceGroupName = "testrg",
 *         SqlVirtualMachineName = "testvm",
 *         StorageConfigurationSettings = new AzureNative.SqlVirtualMachine.Inputs.StorageConfigurationSettingsArgs
 *         {
 *             DiskConfigurationType = AzureNative.SqlVirtualMachine.DiskConfigurationType.NEW,
 *             SqlDataSettings = new AzureNative.SqlVirtualMachine.Inputs.SQLStorageSettingsArgs
 *             {
 *                 DefaultFilePath = "F:\\folderpath\\",
 *                 Luns = new[]
 *                 {
 *                     0,
 *                 },
 *             },
 *             SqlLogSettings = new AzureNative.SqlVirtualMachine.Inputs.SQLStorageSettingsArgs
 *             {
 *                 DefaultFilePath = "G:\\folderpath\\",
 *                 Luns = new[]
 *                 {
 *                     1,
 *                 },
 *             },
 *             SqlSystemDbOnDataDisk = true,
 *             SqlTempDbSettings = new AzureNative.SqlVirtualMachine.Inputs.SQLTempDbSettingsArgs
 *             {
 *                 DataFileCount = 8,
 *                 DataFileSize = 256,
 *                 DataGrowth = 512,
 *                 DefaultFilePath = "D:\\TEMP",
 *                 LogFileSize = 256,
 *                 LogGrowth = 512,
 *             },
 *             StorageWorkloadType = AzureNative.SqlVirtualMachine.StorageWorkloadType.OLTP,
 *         },
 *         VirtualMachineResourceId = "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	sqlvirtualmachine "github.com/pulumi/pulumi-azure-native-sdk/sqlvirtualmachine/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := sqlvirtualmachine.NewSqlVirtualMachine(ctx, "sqlVirtualMachine", &sqlvirtualmachine.SqlVirtualMachineArgs{
 * 			Location:              pulumi.String("northeurope"),
 * 			ResourceGroupName:     pulumi.String("testrg"),
 * 			SqlVirtualMachineName: pulumi.String("testvm"),
 * 			StorageConfigurationSettings: &sqlvirtualmachine.StorageConfigurationSettingsArgs{
 * 				DiskConfigurationType: pulumi.String(sqlvirtualmachine.DiskConfigurationTypeNEW),
 * 				SqlDataSettings: &sqlvirtualmachine.SQLStorageSettingsArgs{
 * 					DefaultFilePath: pulumi.String("F:\\folderpath\\"),
 * 					Luns: pulumi.IntArray{
 * 						pulumi.Int(0),
 * 					},
 * 				},
 * 				SqlLogSettings: &sqlvirtualmachine.SQLStorageSettingsArgs{
 * 					DefaultFilePath: pulumi.String("G:\\folderpath\\"),
 * 					Luns: pulumi.IntArray{
 * 						pulumi.Int(1),
 * 					},
 * 				},
 * 				SqlSystemDbOnDataDisk: pulumi.Bool(true),
 * 				SqlTempDbSettings: &sqlvirtualmachine.SQLTempDbSettingsArgs{
 * 					DataFileCount:   pulumi.Int(8),
 * 					DataFileSize:    pulumi.Int(256),
 * 					DataGrowth:      pulumi.Int(512),
 * 					DefaultFilePath: pulumi.String("D:\\TEMP"),
 * 					LogFileSize:     pulumi.Int(256),
 * 					LogGrowth:       pulumi.Int(512),
 * 				},
 * 				StorageWorkloadType: pulumi.String(sqlvirtualmachine.StorageWorkloadTypeOLTP),
 * 			},
 * 			VirtualMachineResourceId: pulumi.String("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.sqlvirtualmachine.SqlVirtualMachine;
 * import com.pulumi.azurenative.sqlvirtualmachine.SqlVirtualMachineArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.StorageConfigurationSettingsArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.SQLStorageSettingsArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.SQLTempDbSettingsArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var sqlVirtualMachine = new SqlVirtualMachine("sqlVirtualMachine", SqlVirtualMachineArgs.builder()
 *             .location("northeurope")
 *             .resourceGroupName("testrg")
 *             .sqlVirtualMachineName("testvm")
 *             .storageConfigurationSettings(StorageConfigurationSettingsArgs.builder()
 *                 .diskConfigurationType("NEW")
 *                 .sqlDataSettings(SQLStorageSettingsArgs.builder()
 *                     .defaultFilePath("F:\\folderpath\\")
 *                     .luns(0)
 *                     .build())
 *                 .sqlLogSettings(SQLStorageSettingsArgs.builder()
 *                     .defaultFilePath("G:\\folderpath\\")
 *                     .luns(1)
 *                     .build())
 *                 .sqlSystemDbOnDataDisk(true)
 *                 .sqlTempDbSettings(SQLTempDbSettingsArgs.builder()
 *                     .dataFileCount(8)
 *                     .dataFileSize(256)
 *                     .dataGrowth(512)
 *                     .defaultFilePath("D:\\TEMP")
 *                     .logFileSize(256)
 *                     .logGrowth(512)
 *                     .build())
 *                 .storageWorkloadType("OLTP")
 *                 .build())
 *             .virtualMachineResourceId("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm")
 *             .build());
 *     }
 * }
 * ```
 * ### Creates or updates a SQL virtual machine with max parameters.
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var sqlVirtualMachine = new AzureNative.SqlVirtualMachine.SqlVirtualMachine("sqlVirtualMachine", new()
 *     {
 *         AssessmentSettings = new AzureNative.SqlVirtualMachine.Inputs.AssessmentSettingsArgs
 *         {
 *             Enable = true,
 *             RunImmediately = true,
 *             Schedule = new AzureNative.SqlVirtualMachine.Inputs.ScheduleArgs
 *             {
 *                 DayOfWeek = AzureNative.SqlVirtualMachine.AssessmentDayOfWeek.Sunday,
 *                 Enable = true,
 *                 StartTime = "23:17",
 *                 WeeklyInterval = 1,
 *             },
 *         },
 *         AutoBackupSettings = new AzureNative.SqlVirtualMachine.Inputs.AutoBackupSettingsArgs
 *         {
 *             BackupScheduleType = AzureNative.SqlVirtualMachine.BackupScheduleType.Manual,
 *             BackupSystemDbs = true,
 *             Enable = true,
 *             EnableEncryption = true,
 *             FullBackupFrequency = AzureNative.SqlVirtualMachine.FullBackupFrequencyType.Daily,
 *             FullBackupStartTime = 6,
 *             FullBackupWindowHours = 11,
 *             LogBackupFrequency = 10,
 *             Password = "",
 *             RetentionPeriod = 17,
 *             StorageAccessKey = "",
 *             StorageAccountUrl = "https://teststorage.blob.core.windows.net/",
 *             StorageContainerName = "testcontainer",
 *         },
 *         AutoPatchingSettings = new AzureNative.SqlVirtualMachine.Inputs.AutoPatchingSettingsArgs
 *         {
 *             DayOfWeek = AzureNative.SqlVirtualMachine.DayOfWeek.Sunday,
 *             Enable = true,
 *             MaintenanceWindowDuration = 60,
 *             MaintenanceWindowStartingHour = 2,
 *         },
 *         KeyVaultCredentialSettings = new AzureNative.SqlVirtualMachine.Inputs.KeyVaultCredentialSettingsArgs
 *         {
 *             Enable = false,
 *         },
 *         Location = "northeurope",
 *         ResourceGroupName = "testrg",
 *         ServerConfigurationsManagementSettings = new AzureNative.SqlVirtualMachine.Inputs.ServerConfigurationsManagementSettingsArgs
 *         {
 *             AdditionalFeaturesServerConfigurations = new AzureNative.SqlVirtualMachine.Inputs.AdditionalFeaturesServerConfigurationsArgs
 *             {
 *                 IsRServicesEnabled = false,
 *             },
 *             SqlConnectivityUpdateSettings = new AzureNative.SqlVirtualMachine.Inputs.SqlConnectivityUpdateSettingsArgs
 *             {
 *                 ConnectivityType = AzureNative.SqlVirtualMachine.ConnectivityType.PRIVATE,
 *                 Port = 1433,
 *                 SqlAuthUpdatePassword = "",
 *                 SqlAuthUpdateUserName = "sqllogin",
 *             },
 *             SqlInstanceSettings = new AzureNative.SqlVirtualMachine.Inputs.SQLInstanceSettingsArgs
 *             {
 *                 Collation = "SQL_Latin1_General_CP1_CI_AS",
 *                 IsIfiEnabled = true,
 *                 IsLpimEnabled = true,
 *                 IsOptimizeForAdHocWorkloadsEnabled = true,
 *                 MaxDop = 8,
 *                 MaxServerMemoryMB = 128,
 *                 MinServerMemoryMB = 0,
 *             },
 *             SqlStorageUpdateSettings = new AzureNative.SqlVirtualMachine.Inputs.SqlStorageUpdateSettingsArgs
 *             {
 *                 DiskConfigurationType = AzureNative.SqlVirtualMachine.DiskConfigurationType.NEW,
 *                 DiskCount = 1,
 *                 StartingDeviceId = 2,
 *             },
 *             SqlWorkloadTypeUpdateSettings = new AzureNative.SqlVirtualMachine.Inputs.SqlWorkloadTypeUpdateSettingsArgs
 *             {
 *                 SqlWorkloadType = AzureNative.SqlVirtualMachine.SqlWorkloadType.OLTP,
 *             },
 *         },
 *         SqlImageSku = AzureNative.SqlVirtualMachine.SqlImageSku.Enterprise,
 *         SqlManagement = AzureNative.SqlVirtualMachine.SqlManagementMode.Full,
 *         SqlServerLicenseType = AzureNative.SqlVirtualMachine.SqlServerLicenseType.PAYG,
 *         SqlVirtualMachineName = "testvm",
 *         VirtualMachineResourceId = "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	sqlvirtualmachine "github.com/pulumi/pulumi-azure-native-sdk/sqlvirtualmachine/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := sqlvirtualmachine.NewSqlVirtualMachine(ctx, "sqlVirtualMachine", &sqlvirtualmachine.SqlVirtualMachineArgs{
 * 			AssessmentSettings: &sqlvirtualmachine.AssessmentSettingsArgs{
 * 				Enable:         pulumi.Bool(true),
 * 				RunImmediately: pulumi.Bool(true),
 * 				Schedule: &sqlvirtualmachine.ScheduleArgs{
 * 					DayOfWeek:      sqlvirtualmachine.AssessmentDayOfWeekSunday,
 * 					Enable:         pulumi.Bool(true),
 * 					StartTime:      pulumi.String("23:17"),
 * 					WeeklyInterval: pulumi.Int(1),
 * 				},
 * 			},
 * 			AutoBackupSettings: &sqlvirtualmachine.AutoBackupSettingsArgs{
 * 				BackupScheduleType:    pulumi.String(sqlvirtualmachine.BackupScheduleTypeManual),
 * 				BackupSystemDbs:       pulumi.Bool(true),
 * 				Enable:                pulumi.Bool(true),
 * 				EnableEncryption:      pulumi.Bool(true),
 * 				FullBackupFrequency:   pulumi.String(sqlvirtualmachine.FullBackupFrequencyTypeDaily),
 * 				FullBackupStartTime:   pulumi.Int(6),
 * 				FullBackupWindowHours: pulumi.Int(11),
 * 				LogBackupFrequency:    pulumi.Int(10),
 * 				Password:              pulumi.String(""),
 * 				RetentionPeriod:       pulumi.Int(17),
 * 				StorageAccessKey:      pulumi.String(""),
 * 				StorageAccountUrl:     pulumi.String("https://teststorage.blob.core.windows.net/"),
 * 				StorageContainerName:  pulumi.String("testcontainer"),
 * 			},
 * 			AutoPatchingSettings: &sqlvirtualmachine.AutoPatchingSettingsArgs{
 * 				DayOfWeek:                     sqlvirtualmachine.DayOfWeekSunday,
 * 				Enable:                        pulumi.Bool(true),
 * 				MaintenanceWindowDuration:     pulumi.Int(60),
 * 				MaintenanceWindowStartingHour: pulumi.Int(2),
 * 			},
 * 			KeyVaultCredentialSettings: &sqlvirtualmachine.KeyVaultCredentialSettingsArgs{
 * 				Enable: pulumi.Bool(false),
 * 			},
 * 			Location:          pulumi.String("northeurope"),
 * 			ResourceGroupName: pulumi.String("testrg"),
 * 			ServerConfigurationsManagementSettings: &sqlvirtualmachine.ServerConfigurationsManagementSettingsArgs{
 * 				AdditionalFeaturesServerConfigurations: &sqlvirtualmachine.AdditionalFeaturesServerConfigurationsArgs{
 * 					IsRServicesEnabled: pulumi.Bool(false),
 * 				},
 * 				SqlConnectivityUpdateSettings: &sqlvirtualmachine.SqlConnectivityUpdateSettingsArgs{
 * 					ConnectivityType:      pulumi.String(sqlvirtualmachine.ConnectivityTypePRIVATE),
 * 					Port:                  pulumi.Int(1433),
 * 					SqlAuthUpdatePassword: pulumi.String(""),
 * 					SqlAuthUpdateUserName: pulumi.String("sqllogin"),
 * 				},
 * 				SqlInstanceSettings: &sqlvirtualmachine.SQLInstanceSettingsArgs{
 * 					Collation:                          pulumi.String("SQL_Latin1_General_CP1_CI_AS"),
 * 					IsIfiEnabled:                       pulumi.Bool(true),
 * 					IsLpimEnabled:                      pulumi.Bool(true),
 * 					IsOptimizeForAdHocWorkloadsEnabled: pulumi.Bool(true),
 * 					MaxDop:                             pulumi.Int(8),
 * 					MaxServerMemoryMB:                  pulumi.Int(128),
 * 					MinServerMemoryMB:                  pulumi.Int(0),
 * 				},
 * 				SqlStorageUpdateSettings: &sqlvirtualmachine.SqlStorageUpdateSettingsArgs{
 * 					DiskConfigurationType: pulumi.String(sqlvirtualmachine.DiskConfigurationTypeNEW),
 * 					DiskCount:             pulumi.Int(1),
 * 					StartingDeviceId:      pulumi.Int(2),
 * 				},
 * 				SqlWorkloadTypeUpdateSettings: &sqlvirtualmachine.SqlWorkloadTypeUpdateSettingsArgs{
 * 					SqlWorkloadType: pulumi.String(sqlvirtualmachine.SqlWorkloadTypeOLTP),
 * 				},
 * 			},
 * 			SqlImageSku:              pulumi.String(sqlvirtualmachine.SqlImageSkuEnterprise),
 * 			SqlManagement:            pulumi.String(sqlvirtualmachine.SqlManagementModeFull),
 * 			SqlServerLicenseType:     pulumi.String(sqlvirtualmachine.SqlServerLicenseTypePAYG),
 * 			SqlVirtualMachineName:    pulumi.String("testvm"),
 * 			VirtualMachineResourceId: pulumi.String("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.sqlvirtualmachine.SqlVirtualMachine;
 * import com.pulumi.azurenative.sqlvirtualmachine.SqlVirtualMachineArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.AssessmentSettingsArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.ScheduleArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.AutoBackupSettingsArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.AutoPatchingSettingsArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.KeyVaultCredentialSettingsArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.ServerConfigurationsManagementSettingsArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.AdditionalFeaturesServerConfigurationsArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.SqlConnectivityUpdateSettingsArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.SQLInstanceSettingsArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.SqlStorageUpdateSettingsArgs;
 * import com.pulumi.azurenative.sqlvirtualmachine.inputs.SqlWorkloadTypeUpdateSettingsArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var sqlVirtualMachine = new SqlVirtualMachine("sqlVirtualMachine", SqlVirtualMachineArgs.builder()
 *             .assessmentSettings(AssessmentSettingsArgs.builder()
 *                 .enable(true)
 *                 .runImmediately(true)
 *                 .schedule(ScheduleArgs.builder()
 *                     .dayOfWeek("Sunday")
 *                     .enable(true)
 *                     .startTime("23:17")
 *                     .weeklyInterval(1)
 *                     .build())
 *                 .build())
 *             .autoBackupSettings(AutoBackupSettingsArgs.builder()
 *                 .backupScheduleType("Manual")
 *                 .backupSystemDbs(true)
 *                 .enable(true)
 *                 .enableEncryption(true)
 *                 .fullBackupFrequency("Daily")
 *                 .fullBackupStartTime(6)
 *                 .fullBackupWindowHours(11)
 *                 .logBackupFrequency(10)
 *                 .password("")
 *                 .retentionPeriod(17)
 *                 .storageAccessKey("")
 *                 .storageAccountUrl("https://teststorage.blob.core.windows.net/")
 *                 .storageContainerName("testcontainer")
 *                 .build())
 *             .autoPatchingSettings(AutoPatchingSettingsArgs.builder()
 *                 .dayOfWeek("Sunday")
 *                 .enable(true)
 *                 .maintenanceWindowDuration(60)
 *                 .maintenanceWindowStartingHour(2)
 *                 .build())
 *             .keyVaultCredentialSettings(KeyVaultCredentialSettingsArgs.builder()
 *                 .enable(false)
 *                 .build())
 *             .location("northeurope")
 *             .resourceGroupName("testrg")
 *             .serverConfigurationsManagementSettings(ServerConfigurationsManagementSettingsArgs.builder()
 *                 .additionalFeaturesServerConfigurations(AdditionalFeaturesServerConfigurationsArgs.builder()
 *                     .isRServicesEnabled(false)
 *                     .build())
 *                 .sqlConnectivityUpdateSettings(SqlConnectivityUpdateSettingsArgs.builder()
 *                     .connectivityType("PRIVATE")
 *                     .port(1433)
 *                     .sqlAuthUpdatePassword("")
 *                     .sqlAuthUpdateUserName("sqllogin")
 *                     .build())
 *                 .sqlInstanceSettings(SQLInstanceSettingsArgs.builder()
 *                     .collation("SQL_Latin1_General_CP1_CI_AS")
 *                     .isIfiEnabled(true)
 *                     .isLpimEnabled(true)
 *                     .isOptimizeForAdHocWorkloadsEnabled(true)
 *                     .maxDop(8)
 *                     .maxServerMemoryMB(128)
 *                     .minServerMemoryMB(0)
 *                     .build())
 *                 .sqlStorageUpdateSettings(SqlStorageUpdateSettingsArgs.builder()
 *                     .diskConfigurationType("NEW")
 *                     .diskCount(1)
 *                     .startingDeviceId(2)
 *                     .build())
 *                 .sqlWorkloadTypeUpdateSettings(SqlWorkloadTypeUpdateSettingsArgs.builder()
 *                     .sqlWorkloadType("OLTP")
 *                     .build())
 *                 .build())
 *             .sqlImageSku("Enterprise")
 *             .sqlManagement("Full")
 *             .sqlServerLicenseType("PAYG")
 *             .sqlVirtualMachineName("testvm")
 *             .virtualMachineResourceId("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm")
 *             .build());
 *     }
 * }
 * ```
 * ### Creates or updates a SQL virtual machine with min parameters.
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var sqlVirtualMachine = new AzureNative.SqlVirtualMachine.SqlVirtualMachine("sqlVirtualMachine", new()
 *     {
 *         Location = "northeurope",
 *         ResourceGroupName = "testrg",
 *         SqlVirtualMachineName = "testvm",
 *         VirtualMachineResourceId = "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	sqlvirtualmachine "github.com/pulumi/pulumi-azure-native-sdk/sqlvirtualmachine/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := sqlvirtualmachine.NewSqlVirtualMachine(ctx, "sqlVirtualMachine", &sqlvirtualmachine.SqlVirtualMachineArgs{
 * 			Location:                 pulumi.String("northeurope"),
 * 			ResourceGroupName:        pulumi.String("testrg"),
 * 			SqlVirtualMachineName:    pulumi.String("testvm"),
 * 			VirtualMachineResourceId: pulumi.String("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.sqlvirtualmachine.SqlVirtualMachine;
 * import com.pulumi.azurenative.sqlvirtualmachine.SqlVirtualMachineArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var sqlVirtualMachine = new SqlVirtualMachine("sqlVirtualMachine", SqlVirtualMachineArgs.builder()
 *             .location("northeurope")
 *             .resourceGroupName("testrg")
 *             .sqlVirtualMachineName("testvm")
 *             .virtualMachineResourceId("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.Compute/virtualMachines/testvm")
 *             .build());
 *     }
 * }
 * ```
 * ## Import
 * An existing resource can be imported using its type token, name, and identifier, e.g.
 * ```sh
 * $ pulumi import azure-native:sqlvirtualmachine:SqlVirtualMachine testvm /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines/{sqlVirtualMachineName}
 * ```
 * @property assessmentSettings Assessment Settings.
 * @property autoBackupSettings Auto backup settings for SQL Server.
 * @property autoPatchingSettings Auto patching settings for applying critical security updates to SQL virtual machine.
 * @property identity Azure Active Directory identity of the server.
 * @property keyVaultCredentialSettings Key vault credential settings.
 * @property location Resource location.
 * @property resourceGroupName Name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
 * @property serverConfigurationsManagementSettings SQL Server configuration management settings.
 * @property sqlImageOffer SQL image offer. Examples include SQL2016-WS2016, SQL2017-WS2016.
 * @property sqlImageSku SQL Server edition type.
 * @property sqlManagement SQL Server Management type.
 * @property sqlServerLicenseType SQL Server license type.
 * @property sqlVirtualMachineGroupResourceId ARM resource id of the SQL virtual machine group this SQL virtual machine is or will be part of.
 * @property sqlVirtualMachineName Name of the SQL virtual machine.
 * @property storageConfigurationSettings Storage Configuration Settings.
 * @property tags Resource tags.
 * @property virtualMachineResourceId ARM Resource id of underlying virtual machine created from SQL marketplace image.
 * @property wsfcDomainCredentials Domain credentials for setting up Windows Server Failover Cluster for SQL availability group.
 * @property wsfcStaticIp Domain credentials for setting up Windows Server Failover Cluster for SQL availability group.
 */
public data class SqlVirtualMachineArgs(
    public val assessmentSettings: Output? = null,
    public val autoBackupSettings: Output? = null,
    public val autoPatchingSettings: Output? = null,
    public val identity: Output? = null,
    public val keyVaultCredentialSettings: Output? = null,
    public val location: Output? = null,
    public val resourceGroupName: Output? = null,
    public val serverConfigurationsManagementSettings: Output? = null,
    public val sqlImageOffer: Output? = null,
    public val sqlImageSku: Output>? = null,
    public val sqlManagement: Output>? = null,
    public val sqlServerLicenseType: Output>? = null,
    public val sqlVirtualMachineGroupResourceId: Output? = null,
    public val sqlVirtualMachineName: Output? = null,
    public val storageConfigurationSettings: Output? = null,
    public val tags: Output>? = null,
    public val virtualMachineResourceId: Output? = null,
    public val wsfcDomainCredentials: Output? = null,
    public val wsfcStaticIp: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.sqlvirtualmachine.SqlVirtualMachineArgs =
        com.pulumi.azurenative.sqlvirtualmachine.SqlVirtualMachineArgs.builder()
            .assessmentSettings(
                assessmentSettings?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .autoBackupSettings(
                autoBackupSettings?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .autoPatchingSettings(
                autoPatchingSettings?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .identity(identity?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .keyVaultCredentialSettings(
                keyVaultCredentialSettings?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .location(location?.applyValue({ args0 -> args0 }))
            .resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 }))
            .serverConfigurationsManagementSettings(
                serverConfigurationsManagementSettings?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .sqlImageOffer(sqlImageOffer?.applyValue({ args0 -> args0 }))
            .sqlImageSku(
                sqlImageSku?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .sqlManagement(
                sqlManagement?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .sqlServerLicenseType(
                sqlServerLicenseType?.applyValue({ args0 ->
                    args0.transform(
                        { args0 -> args0 },
                        { args0 -> args0.let({ args0 -> args0.toJava() }) },
                    )
                }),
            )
            .sqlVirtualMachineGroupResourceId(sqlVirtualMachineGroupResourceId?.applyValue({ args0 -> args0 }))
            .sqlVirtualMachineName(sqlVirtualMachineName?.applyValue({ args0 -> args0 }))
            .storageConfigurationSettings(
                storageConfigurationSettings?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .virtualMachineResourceId(virtualMachineResourceId?.applyValue({ args0 -> args0 }))
            .wsfcDomainCredentials(
                wsfcDomainCredentials?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .wsfcStaticIp(wsfcStaticIp?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [SqlVirtualMachineArgs].
 */
@PulumiTagMarker
public class SqlVirtualMachineArgsBuilder internal constructor() {
    private var assessmentSettings: Output? = null

    private var autoBackupSettings: Output? = null

    private var autoPatchingSettings: Output? = null

    private var identity: Output? = null

    private var keyVaultCredentialSettings: Output? = null

    private var location: Output? = null

    private var resourceGroupName: Output? = null

    private var serverConfigurationsManagementSettings:
        Output? = null

    private var sqlImageOffer: Output? = null

    private var sqlImageSku: Output>? = null

    private var sqlManagement: Output>? = null

    private var sqlServerLicenseType: Output>? = null

    private var sqlVirtualMachineGroupResourceId: Output? = null

    private var sqlVirtualMachineName: Output? = null

    private var storageConfigurationSettings: Output? = null

    private var tags: Output>? = null

    private var virtualMachineResourceId: Output? = null

    private var wsfcDomainCredentials: Output? = null

    private var wsfcStaticIp: Output? = null

    /**
     * @param value Assessment Settings.
     */
    @JvmName("lykvblkptiahcbyq")
    public suspend fun assessmentSettings(`value`: Output) {
        this.assessmentSettings = value
    }

    /**
     * @param value Auto backup settings for SQL Server.
     */
    @JvmName("lxkvufihvgitypay")
    public suspend fun autoBackupSettings(`value`: Output) {
        this.autoBackupSettings = value
    }

    /**
     * @param value Auto patching settings for applying critical security updates to SQL virtual machine.
     */
    @JvmName("hyvysrydvagndije")
    public suspend fun autoPatchingSettings(`value`: Output) {
        this.autoPatchingSettings = value
    }

    /**
     * @param value Azure Active Directory identity of the server.
     */
    @JvmName("tvwqyibxagwkcldc")
    public suspend fun identity(`value`: Output) {
        this.identity = value
    }

    /**
     * @param value Key vault credential settings.
     */
    @JvmName("gcwxwlsgdfigfbim")
    public suspend fun keyVaultCredentialSettings(`value`: Output) {
        this.keyVaultCredentialSettings = value
    }

    /**
     * @param value Resource location.
     */
    @JvmName("aicvhjaldwyvjhnf")
    public suspend fun location(`value`: Output) {
        this.location = value
    }

    /**
     * @param value Name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
     */
    @JvmName("mottyfcdwhqvnaly")
    public suspend fun resourceGroupName(`value`: Output) {
        this.resourceGroupName = value
    }

    /**
     * @param value SQL Server configuration management settings.
     */
    @JvmName("mebxitywfhmwidoc")
    public suspend fun serverConfigurationsManagementSettings(`value`: Output) {
        this.serverConfigurationsManagementSettings = value
    }

    /**
     * @param value SQL image offer. Examples include SQL2016-WS2016, SQL2017-WS2016.
     */
    @JvmName("ixhwdpjnmvwsjklc")
    public suspend fun sqlImageOffer(`value`: Output) {
        this.sqlImageOffer = value
    }

    /**
     * @param value SQL Server edition type.
     */
    @JvmName("kxqysnkhniwkdwxx")
    public suspend fun sqlImageSku(`value`: Output>) {
        this.sqlImageSku = value
    }

    /**
     * @param value SQL Server Management type.
     */
    @JvmName("gbhtnkrrnrkkctjm")
    public suspend fun sqlManagement(`value`: Output>) {
        this.sqlManagement = value
    }

    /**
     * @param value SQL Server license type.
     */
    @JvmName("klamdqdpiskigtju")
    public suspend fun sqlServerLicenseType(`value`: Output>) {
        this.sqlServerLicenseType = value
    }

    /**
     * @param value ARM resource id of the SQL virtual machine group this SQL virtual machine is or will be part of.
     */
    @JvmName("kronaavdoqsdhebw")
    public suspend fun sqlVirtualMachineGroupResourceId(`value`: Output) {
        this.sqlVirtualMachineGroupResourceId = value
    }

    /**
     * @param value Name of the SQL virtual machine.
     */
    @JvmName("nhoiusnpsdshgtgm")
    public suspend fun sqlVirtualMachineName(`value`: Output) {
        this.sqlVirtualMachineName = value
    }

    /**
     * @param value Storage Configuration Settings.
     */
    @JvmName("nedcvektgldkwvdg")
    public suspend fun storageConfigurationSettings(`value`: Output) {
        this.storageConfigurationSettings = value
    }

    /**
     * @param value Resource tags.
     */
    @JvmName("bqyvktyddbmatxmm")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    /**
     * @param value ARM Resource id of underlying virtual machine created from SQL marketplace image.
     */
    @JvmName("wbikcafrkipesmsh")
    public suspend fun virtualMachineResourceId(`value`: Output) {
        this.virtualMachineResourceId = value
    }

    /**
     * @param value Domain credentials for setting up Windows Server Failover Cluster for SQL availability group.
     */
    @JvmName("tfgjmxhoohmgmlqu")
    public suspend fun wsfcDomainCredentials(`value`: Output) {
        this.wsfcDomainCredentials = value
    }

    /**
     * @param value Domain credentials for setting up Windows Server Failover Cluster for SQL availability group.
     */
    @JvmName("tegshledmwukpfnw")
    public suspend fun wsfcStaticIp(`value`: Output) {
        this.wsfcStaticIp = value
    }

    /**
     * @param value Assessment Settings.
     */
    @JvmName("myejwkwymakvdscr")
    public suspend fun assessmentSettings(`value`: AssessmentSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.assessmentSettings = mapped
    }

    /**
     * @param argument Assessment Settings.
     */
    @JvmName("fgitvjxgdlnwyvvx")
    public suspend fun assessmentSettings(argument: suspend AssessmentSettingsArgsBuilder.() -> Unit) {
        val toBeMapped = AssessmentSettingsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.assessmentSettings = mapped
    }

    /**
     * @param value Auto backup settings for SQL Server.
     */
    @JvmName("vebimkoeawnrcibs")
    public suspend fun autoBackupSettings(`value`: AutoBackupSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autoBackupSettings = mapped
    }

    /**
     * @param argument Auto backup settings for SQL Server.
     */
    @JvmName("ffmufhgtsrpxiwpy")
    public suspend fun autoBackupSettings(argument: suspend AutoBackupSettingsArgsBuilder.() -> Unit) {
        val toBeMapped = AutoBackupSettingsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.autoBackupSettings = mapped
    }

    /**
     * @param value Auto patching settings for applying critical security updates to SQL virtual machine.
     */
    @JvmName("wafxkvpvkllwmolj")
    public suspend fun autoPatchingSettings(`value`: AutoPatchingSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autoPatchingSettings = mapped
    }

    /**
     * @param argument Auto patching settings for applying critical security updates to SQL virtual machine.
     */
    @JvmName("quepxaftuykplbch")
    public suspend fun autoPatchingSettings(argument: suspend AutoPatchingSettingsArgsBuilder.() -> Unit) {
        val toBeMapped = AutoPatchingSettingsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.autoPatchingSettings = mapped
    }

    /**
     * @param value Azure Active Directory identity of the server.
     */
    @JvmName("tfqwkrbphdhqfytp")
    public suspend fun identity(`value`: ResourceIdentityArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.identity = mapped
    }

    /**
     * @param argument Azure Active Directory identity of the server.
     */
    @JvmName("jmryvygcmfthcoig")
    public suspend fun identity(argument: suspend ResourceIdentityArgsBuilder.() -> Unit) {
        val toBeMapped = ResourceIdentityArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.identity = mapped
    }

    /**
     * @param value Key vault credential settings.
     */
    @JvmName("wdocputmehxbsrub")
    public suspend fun keyVaultCredentialSettings(`value`: KeyVaultCredentialSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.keyVaultCredentialSettings = mapped
    }

    /**
     * @param argument Key vault credential settings.
     */
    @JvmName("dpvjmbhfgmaimhif")
    public suspend fun keyVaultCredentialSettings(argument: suspend KeyVaultCredentialSettingsArgsBuilder.() -> Unit) {
        val toBeMapped = KeyVaultCredentialSettingsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.keyVaultCredentialSettings = mapped
    }

    /**
     * @param value Resource location.
     */
    @JvmName("vqimifwgjrcvkgop")
    public suspend fun location(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.location = mapped
    }

    /**
     * @param value Name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
     */
    @JvmName("blbgoowbxdkxxbeb")
    public suspend fun resourceGroupName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceGroupName = mapped
    }

    /**
     * @param value SQL Server configuration management settings.
     */
    @JvmName("iggocowxnkdrsmen")
    public suspend fun serverConfigurationsManagementSettings(`value`: ServerConfigurationsManagementSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serverConfigurationsManagementSettings = mapped
    }

    /**
     * @param argument SQL Server configuration management settings.
     */
    @JvmName("mhwvnnsqiaasnwpp")
    public suspend fun serverConfigurationsManagementSettings(argument: suspend ServerConfigurationsManagementSettingsArgsBuilder.() -> Unit) {
        val toBeMapped = ServerConfigurationsManagementSettingsArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.serverConfigurationsManagementSettings = mapped
    }

    /**
     * @param value SQL image offer. Examples include SQL2016-WS2016, SQL2017-WS2016.
     */
    @JvmName("heteidqwlkgbhruy")
    public suspend fun sqlImageOffer(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sqlImageOffer = mapped
    }

    /**
     * @param value SQL Server edition type.
     */
    @JvmName("ogfuhdiouoosimnu")
    public suspend fun sqlImageSku(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sqlImageSku = mapped
    }

    /**
     * @param value SQL Server edition type.
     */
    @JvmName("kamijushkpjlbqyu")
    public fun sqlImageSku(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.sqlImageSku = mapped
    }

    /**
     * @param value SQL Server edition type.
     */
    @JvmName("mchnsfbactugictk")
    public fun sqlImageSku(`value`: SqlImageSku) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.sqlImageSku = mapped
    }

    /**
     * @param value SQL Server Management type.
     */
    @JvmName("kslcjoxxfyrycvpn")
    public suspend fun sqlManagement(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sqlManagement = mapped
    }

    /**
     * @param value SQL Server Management type.
     */
    @JvmName("pwgsltuhqmjmgqia")
    public fun sqlManagement(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.sqlManagement = mapped
    }

    /**
     * @param value SQL Server Management type.
     */
    @JvmName("bcoybfqnkuutsejs")
    public fun sqlManagement(`value`: SqlManagementMode) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.sqlManagement = mapped
    }

    /**
     * @param value SQL Server license type.
     */
    @JvmName("uqfhwcfnmjuklisq")
    public suspend fun sqlServerLicenseType(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sqlServerLicenseType = mapped
    }

    /**
     * @param value SQL Server license type.
     */
    @JvmName("ejyxipgugdnxgnpb")
    public fun sqlServerLicenseType(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.sqlServerLicenseType = mapped
    }

    /**
     * @param value SQL Server license type.
     */
    @JvmName("prceqosobygpjcbc")
    public fun sqlServerLicenseType(`value`: SqlServerLicenseType) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.sqlServerLicenseType = mapped
    }

    /**
     * @param value ARM resource id of the SQL virtual machine group this SQL virtual machine is or will be part of.
     */
    @JvmName("ouilngoxhmxtfesl")
    public suspend fun sqlVirtualMachineGroupResourceId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sqlVirtualMachineGroupResourceId = mapped
    }

    /**
     * @param value Name of the SQL virtual machine.
     */
    @JvmName("sscwlxqheyiqwnsy")
    public suspend fun sqlVirtualMachineName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sqlVirtualMachineName = mapped
    }

    /**
     * @param value Storage Configuration Settings.
     */
    @JvmName("lwkavvlarcmvfbby")
    public suspend fun storageConfigurationSettings(`value`: StorageConfigurationSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.storageConfigurationSettings = mapped
    }

    /**
     * @param argument Storage Configuration Settings.
     */
    @JvmName("gltgyyhgnpytwilt")
    public suspend fun storageConfigurationSettings(argument: suspend StorageConfigurationSettingsArgsBuilder.() -> Unit) {
        val toBeMapped = StorageConfigurationSettingsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.storageConfigurationSettings = mapped
    }

    /**
     * @param value Resource tags.
     */
    @JvmName("kuedptrusyhvekpu")
    public suspend fun tags(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param values Resource tags.
     */
    @JvmName("nhniibjcignlgdmo")
    public fun tags(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value ARM Resource id of underlying virtual machine created from SQL marketplace image.
     */
    @JvmName("dnbvtlilsvtlxqgn")
    public suspend fun virtualMachineResourceId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.virtualMachineResourceId = mapped
    }

    /**
     * @param value Domain credentials for setting up Windows Server Failover Cluster for SQL availability group.
     */
    @JvmName("cgtdjkxaptcuetpl")
    public suspend fun wsfcDomainCredentials(`value`: WsfcDomainCredentialsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.wsfcDomainCredentials = mapped
    }

    /**
     * @param argument Domain credentials for setting up Windows Server Failover Cluster for SQL availability group.
     */
    @JvmName("dmsxjjdjwldtlnws")
    public suspend fun wsfcDomainCredentials(argument: suspend WsfcDomainCredentialsArgsBuilder.() -> Unit) {
        val toBeMapped = WsfcDomainCredentialsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.wsfcDomainCredentials = mapped
    }

    /**
     * @param value Domain credentials for setting up Windows Server Failover Cluster for SQL availability group.
     */
    @JvmName("isxiktrdjbcxajus")
    public suspend fun wsfcStaticIp(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.wsfcStaticIp = mapped
    }

    internal fun build(): SqlVirtualMachineArgs = SqlVirtualMachineArgs(
        assessmentSettings = assessmentSettings,
        autoBackupSettings = autoBackupSettings,
        autoPatchingSettings = autoPatchingSettings,
        identity = identity,
        keyVaultCredentialSettings = keyVaultCredentialSettings,
        location = location,
        resourceGroupName = resourceGroupName,
        serverConfigurationsManagementSettings = serverConfigurationsManagementSettings,
        sqlImageOffer = sqlImageOffer,
        sqlImageSku = sqlImageSku,
        sqlManagement = sqlManagement,
        sqlServerLicenseType = sqlServerLicenseType,
        sqlVirtualMachineGroupResourceId = sqlVirtualMachineGroupResourceId,
        sqlVirtualMachineName = sqlVirtualMachineName,
        storageConfigurationSettings = storageConfigurationSettings,
        tags = tags,
        virtualMachineResourceId = virtualMachineResourceId,
        wsfcDomainCredentials = wsfcDomainCredentials,
        wsfcStaticIp = wsfcStaticIp,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy