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

com.pulumi.azurenative.sql.kotlin.ManagedInstanceArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.sql.kotlin

import com.pulumi.azurenative.sql.ManagedInstanceArgs.builder
import com.pulumi.azurenative.sql.kotlin.enums.BackupStorageRedundancy
import com.pulumi.azurenative.sql.kotlin.enums.ManagedInstanceLicenseType
import com.pulumi.azurenative.sql.kotlin.enums.ManagedInstanceProxyOverride
import com.pulumi.azurenative.sql.kotlin.enums.ManagedServerCreateMode
import com.pulumi.azurenative.sql.kotlin.inputs.ManagedInstanceExternalAdministratorArgs
import com.pulumi.azurenative.sql.kotlin.inputs.ManagedInstanceExternalAdministratorArgsBuilder
import com.pulumi.azurenative.sql.kotlin.inputs.ResourceIdentityArgs
import com.pulumi.azurenative.sql.kotlin.inputs.ResourceIdentityArgsBuilder
import com.pulumi.azurenative.sql.kotlin.inputs.ServicePrincipalArgs
import com.pulumi.azurenative.sql.kotlin.inputs.ServicePrincipalArgsBuilder
import com.pulumi.azurenative.sql.kotlin.inputs.SkuArgs
import com.pulumi.azurenative.sql.kotlin.inputs.SkuArgsBuilder
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.Boolean
import kotlin.Int
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * An Azure SQL managed instance.
 * Azure REST API version: 2021-11-01. Prior API version in Azure Native 1.x: 2020-11-01-preview.
 * Other available API versions: 2021-02-01-preview, 2022-11-01-preview, 2023-02-01-preview, 2023-05-01-preview, 2023-08-01-preview.
 * ## Example Usage
 * ### Create managed instance with all properties
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var managedInstance = new AzureNative.Sql.ManagedInstance("managedInstance", new()
 *     {
 *         AdministratorLogin = "dummylogin",
 *         AdministratorLoginPassword = "PLACEHOLDER",
 *         Administrators = new AzureNative.Sql.Inputs.ManagedInstanceExternalAdministratorArgs
 *         {
 *             AzureADOnlyAuthentication = true,
 *             Login = "[email protected]",
 *             PrincipalType = AzureNative.Sql.PrincipalType.User,
 *             Sid = "00000011-1111-2222-2222-123456789111",
 *             TenantId = "00000011-1111-2222-2222-123456789111",
 *         },
 *         Collation = "SQL_Latin1_General_CP1_CI_AS",
 *         DnsZonePartner = "/subscriptions/20D7082A-0FC7-4468-82BD-542694D5042B/resourceGroups/testrg/providers/Microsoft.Sql/managedInstances/testinstance",
 *         InstancePoolId = "/subscriptions/20D7082A-0FC7-4468-82BD-542694D5042B/resourceGroups/testrg/providers/Microsoft.Sql/instancePools/pool1",
 *         LicenseType = AzureNative.Sql.ManagedInstanceLicenseType.LicenseIncluded,
 *         Location = "Japan East",
 *         MaintenanceConfigurationId = "/subscriptions/20D7082A-0FC7-4468-82BD-542694D5042B/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_JapanEast_MI_1",
 *         ManagedInstanceName = "testinstance",
 *         MinimalTlsVersion = "1.2",
 *         ProxyOverride = AzureNative.Sql.ManagedInstanceProxyOverride.Redirect,
 *         PublicDataEndpointEnabled = false,
 *         RequestedBackupStorageRedundancy = AzureNative.Sql.BackupStorageRedundancy.Geo,
 *         ResourceGroupName = "testrg",
 *         ServicePrincipal = new AzureNative.Sql.Inputs.ServicePrincipalArgs
 *         {
 *             Type = AzureNative.Sql.ServicePrincipalType.SystemAssigned,
 *         },
 *         Sku = new AzureNative.Sql.Inputs.SkuArgs
 *         {
 *             Name = "GP_Gen5",
 *             Tier = "GeneralPurpose",
 *         },
 *         StorageSizeInGB = 1024,
 *         SubnetId = "/subscriptions/20D7082A-0FC7-4468-82BD-542694D5042B/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1",
 *         Tags =
 *         {
 *             { "tagKey1", "TagValue1" },
 *         },
 *         TimezoneId = "UTC",
 *         VCores = 8,
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	sql "github.com/pulumi/pulumi-azure-native-sdk/sql/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := sql.NewManagedInstance(ctx, "managedInstance", &sql.ManagedInstanceArgs{
 * 			AdministratorLogin:         pulumi.String("dummylogin"),
 * 			AdministratorLoginPassword: pulumi.String("PLACEHOLDER"),
 * 			Administrators: &sql.ManagedInstanceExternalAdministratorArgs{
 * 				AzureADOnlyAuthentication: pulumi.Bool(true),
 * 				Login:                     pulumi.String("[email protected]"),
 * 				PrincipalType:             pulumi.String(sql.PrincipalTypeUser),
 * 				Sid:                       pulumi.String("00000011-1111-2222-2222-123456789111"),
 * 				TenantId:                  pulumi.String("00000011-1111-2222-2222-123456789111"),
 * 			},
 * 			Collation:                        pulumi.String("SQL_Latin1_General_CP1_CI_AS"),
 * 			DnsZonePartner:                   pulumi.String("/subscriptions/20D7082A-0FC7-4468-82BD-542694D5042B/resourceGroups/testrg/providers/Microsoft.Sql/managedInstances/testinstance"),
 * 			InstancePoolId:                   pulumi.String("/subscriptions/20D7082A-0FC7-4468-82BD-542694D5042B/resourceGroups/testrg/providers/Microsoft.Sql/instancePools/pool1"),
 * 			LicenseType:                      pulumi.String(sql.ManagedInstanceLicenseTypeLicenseIncluded),
 * 			Location:                         pulumi.String("Japan East"),
 * 			MaintenanceConfigurationId:       pulumi.String("/subscriptions/20D7082A-0FC7-4468-82BD-542694D5042B/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_JapanEast_MI_1"),
 * 			ManagedInstanceName:              pulumi.String("testinstance"),
 * 			MinimalTlsVersion:                pulumi.String("1.2"),
 * 			ProxyOverride:                    pulumi.String(sql.ManagedInstanceProxyOverrideRedirect),
 * 			PublicDataEndpointEnabled:        pulumi.Bool(false),
 * 			RequestedBackupStorageRedundancy: pulumi.String(sql.BackupStorageRedundancyGeo),
 * 			ResourceGroupName:                pulumi.String("testrg"),
 * 			ServicePrincipal: &sql.ServicePrincipalArgs{
 * 				Type: pulumi.String(sql.ServicePrincipalTypeSystemAssigned),
 * 			},
 * 			Sku: &sql.SkuArgs{
 * 				Name: pulumi.String("GP_Gen5"),
 * 				Tier: pulumi.String("GeneralPurpose"),
 * 			},
 * 			StorageSizeInGB: pulumi.Int(1024),
 * 			SubnetId:        pulumi.String("/subscriptions/20D7082A-0FC7-4468-82BD-542694D5042B/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"),
 * 			Tags: pulumi.StringMap{
 * 				"tagKey1": pulumi.String("TagValue1"),
 * 			},
 * 			TimezoneId: pulumi.String("UTC"),
 * 			VCores:     pulumi.Int(8),
 * 		})
 * 		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.sql.ManagedInstance;
 * import com.pulumi.azurenative.sql.ManagedInstanceArgs;
 * import com.pulumi.azurenative.sql.inputs.ManagedInstanceExternalAdministratorArgs;
 * import com.pulumi.azurenative.sql.inputs.ServicePrincipalArgs;
 * import com.pulumi.azurenative.sql.inputs.SkuArgs;
 * 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 managedInstance = new ManagedInstance("managedInstance", ManagedInstanceArgs.builder()
 *             .administratorLogin("dummylogin")
 *             .administratorLoginPassword("PLACEHOLDER")
 *             .administrators(ManagedInstanceExternalAdministratorArgs.builder()
 *                 .azureADOnlyAuthentication(true)
 *                 .login("[email protected]")
 *                 .principalType("User")
 *                 .sid("00000011-1111-2222-2222-123456789111")
 *                 .tenantId("00000011-1111-2222-2222-123456789111")
 *                 .build())
 *             .collation("SQL_Latin1_General_CP1_CI_AS")
 *             .dnsZonePartner("/subscriptions/20D7082A-0FC7-4468-82BD-542694D5042B/resourceGroups/testrg/providers/Microsoft.Sql/managedInstances/testinstance")
 *             .instancePoolId("/subscriptions/20D7082A-0FC7-4468-82BD-542694D5042B/resourceGroups/testrg/providers/Microsoft.Sql/instancePools/pool1")
 *             .licenseType("LicenseIncluded")
 *             .location("Japan East")
 *             .maintenanceConfigurationId("/subscriptions/20D7082A-0FC7-4468-82BD-542694D5042B/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_JapanEast_MI_1")
 *             .managedInstanceName("testinstance")
 *             .minimalTlsVersion("1.2")
 *             .proxyOverride("Redirect")
 *             .publicDataEndpointEnabled(false)
 *             .requestedBackupStorageRedundancy("Geo")
 *             .resourceGroupName("testrg")
 *             .servicePrincipal(ServicePrincipalArgs.builder()
 *                 .type("SystemAssigned")
 *                 .build())
 *             .sku(SkuArgs.builder()
 *                 .name("GP_Gen5")
 *                 .tier("GeneralPurpose")
 *                 .build())
 *             .storageSizeInGB(1024)
 *             .subnetId("/subscriptions/20D7082A-0FC7-4468-82BD-542694D5042B/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1")
 *             .tags(Map.of("tagKey1", "TagValue1"))
 *             .timezoneId("UTC")
 *             .vCores(8)
 *             .build());
 *     }
 * }
 * ```
 * ### Create managed instance with minimal properties
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var managedInstance = new AzureNative.Sql.ManagedInstance("managedInstance", new()
 *     {
 *         AdministratorLogin = "dummylogin",
 *         AdministratorLoginPassword = "PLACEHOLDER",
 *         LicenseType = AzureNative.Sql.ManagedInstanceLicenseType.LicenseIncluded,
 *         Location = "Japan East",
 *         ManagedInstanceName = "testinstance",
 *         ResourceGroupName = "testrg",
 *         Sku = new AzureNative.Sql.Inputs.SkuArgs
 *         {
 *             Name = "GP_Gen4",
 *             Tier = "GeneralPurpose",
 *         },
 *         StorageSizeInGB = 1024,
 *         SubnetId = "/subscriptions/20D7082A-0FC7-4468-82BD-542694D5042B/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1",
 *         VCores = 8,
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	sql "github.com/pulumi/pulumi-azure-native-sdk/sql/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := sql.NewManagedInstance(ctx, "managedInstance", &sql.ManagedInstanceArgs{
 * 			AdministratorLogin:         pulumi.String("dummylogin"),
 * 			AdministratorLoginPassword: pulumi.String("PLACEHOLDER"),
 * 			LicenseType:                pulumi.String(sql.ManagedInstanceLicenseTypeLicenseIncluded),
 * 			Location:                   pulumi.String("Japan East"),
 * 			ManagedInstanceName:        pulumi.String("testinstance"),
 * 			ResourceGroupName:          pulumi.String("testrg"),
 * 			Sku: &sql.SkuArgs{
 * 				Name: pulumi.String("GP_Gen4"),
 * 				Tier: pulumi.String("GeneralPurpose"),
 * 			},
 * 			StorageSizeInGB: pulumi.Int(1024),
 * 			SubnetId:        pulumi.String("/subscriptions/20D7082A-0FC7-4468-82BD-542694D5042B/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"),
 * 			VCores:          pulumi.Int(8),
 * 		})
 * 		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.sql.ManagedInstance;
 * import com.pulumi.azurenative.sql.ManagedInstanceArgs;
 * import com.pulumi.azurenative.sql.inputs.SkuArgs;
 * 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 managedInstance = new ManagedInstance("managedInstance", ManagedInstanceArgs.builder()
 *             .administratorLogin("dummylogin")
 *             .administratorLoginPassword("PLACEHOLDER")
 *             .licenseType("LicenseIncluded")
 *             .location("Japan East")
 *             .managedInstanceName("testinstance")
 *             .resourceGroupName("testrg")
 *             .sku(SkuArgs.builder()
 *                 .name("GP_Gen4")
 *                 .tier("GeneralPurpose")
 *                 .build())
 *             .storageSizeInGB(1024)
 *             .subnetId("/subscriptions/20D7082A-0FC7-4468-82BD-542694D5042B/resourceGroups/testrg/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1")
 *             .vCores(8)
 *             .build());
 *     }
 * }
 * ```
 * ## Import
 * An existing resource can be imported using its type token, name, and identifier, e.g.
 * ```sh
 * $ pulumi import azure-native:sql:ManagedInstance testinstance /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}
 * ```
 * @property administratorLogin Administrator username for the managed instance. Can only be specified when the managed instance is being created (and is required for creation).
 * @property administratorLoginPassword The administrator login password (required for managed instance creation).
 * @property administrators The Azure Active Directory administrator of the server.
 * @property collation Collation of the managed instance.
 * @property dnsZonePartner The resource id of another managed instance whose DNS zone this managed instance will share after creation.
 * @property identity The Azure Active Directory identity of the managed instance.
 * @property instancePoolId The Id of the instance pool this managed server belongs to.
 * @property keyId A CMK URI of the key to use for encryption.
 * @property licenseType The license type. Possible values are 'LicenseIncluded' (regular price inclusive of a new SQL license) and 'BasePrice' (discounted AHB price for bringing your own SQL licenses).
 * @property location Resource location.
 * @property maintenanceConfigurationId Specifies maintenance configuration id to apply to this managed instance.
 * @property managedInstanceCreateMode Specifies the mode of database creation.
 * Default: Regular instance creation.
 * Restore: Creates an instance by restoring a set of backups to specific point in time. RestorePointInTime and SourceManagedInstanceId must be specified.
 * @property managedInstanceName The name of the managed instance.
 * @property minimalTlsVersion Minimal TLS version. Allowed values: 'None', '1.0', '1.1', '1.2'
 * @property primaryUserAssignedIdentityId The resource id of a user assigned identity to be used by default.
 * @property proxyOverride Connection type used for connecting to the instance.
 * @property publicDataEndpointEnabled Whether or not the public data endpoint is enabled.
 * @property requestedBackupStorageRedundancy The storage account type to be used to store backups for this instance. The options are Local (LocallyRedundantStorage), Zone (ZoneRedundantStorage), Geo (GeoRedundantStorage) and GeoZone(GeoZoneRedundantStorage)
 * @property resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
 * @property restorePointInTime Specifies the point in time (ISO8601 format) of the source database that will be restored to create the new database.
 * @property servicePrincipal The managed instance's service principal.
 * @property sku Managed instance SKU. Allowed values for sku.name: GP_Gen5, GP_G8IM, GP_G8IH, BC_Gen5, BC_G8IM, BC_G8IH
 * @property sourceManagedInstanceId The resource identifier of the source managed instance associated with create operation of this instance.
 * @property storageSizeInGB Storage size in GB. Minimum value: 32. Maximum value: 16384. Increments of 32 GB allowed only. Maximum value depends on the selected hardware family and number of vCores.
 * @property subnetId Subnet resource ID for the managed instance.
 * @property tags Resource tags.
 * @property timezoneId Id of the timezone. Allowed values are timezones supported by Windows.
 * Windows keeps details on supported timezones, including the id, in registry under
 * KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones.
 * You can get those registry values via SQL Server by querying SELECT name AS timezone_id FROM sys.time_zone_info.
 * List of Ids can also be obtained by executing [System.TimeZoneInfo]::GetSystemTimeZones() in PowerShell.
 * An example of valid timezone id is "Pacific Standard Time" or "W. Europe Standard Time".
 * @property vCores The number of vCores. Allowed values: 8, 16, 24, 32, 40, 64, 80.
 * @property zoneRedundant Whether or not the multi-az is enabled.
 */
public data class ManagedInstanceArgs(
    public val administratorLogin: Output? = null,
    public val administratorLoginPassword: Output? = null,
    public val administrators: Output? = null,
    public val collation: Output? = null,
    public val dnsZonePartner: Output? = null,
    public val identity: Output? = null,
    public val instancePoolId: Output? = null,
    public val keyId: Output? = null,
    public val licenseType: Output>? = null,
    public val location: Output? = null,
    public val maintenanceConfigurationId: Output? = null,
    public val managedInstanceCreateMode: Output>? = null,
    public val managedInstanceName: Output? = null,
    public val minimalTlsVersion: Output? = null,
    public val primaryUserAssignedIdentityId: Output? = null,
    public val proxyOverride: Output>? = null,
    public val publicDataEndpointEnabled: Output? = null,
    public val requestedBackupStorageRedundancy: Output>? =
        null,
    public val resourceGroupName: Output? = null,
    public val restorePointInTime: Output? = null,
    public val servicePrincipal: Output? = null,
    public val sku: Output? = null,
    public val sourceManagedInstanceId: Output? = null,
    public val storageSizeInGB: Output? = null,
    public val subnetId: Output? = null,
    public val tags: Output>? = null,
    public val timezoneId: Output? = null,
    public val vCores: Output? = null,
    public val zoneRedundant: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.sql.ManagedInstanceArgs =
        com.pulumi.azurenative.sql.ManagedInstanceArgs.builder()
            .administratorLogin(administratorLogin?.applyValue({ args0 -> args0 }))
            .administratorLoginPassword(administratorLoginPassword?.applyValue({ args0 -> args0 }))
            .administrators(administrators?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .collation(collation?.applyValue({ args0 -> args0 }))
            .dnsZonePartner(dnsZonePartner?.applyValue({ args0 -> args0 }))
            .identity(identity?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .instancePoolId(instancePoolId?.applyValue({ args0 -> args0 }))
            .keyId(keyId?.applyValue({ args0 -> args0 }))
            .licenseType(
                licenseType?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .location(location?.applyValue({ args0 -> args0 }))
            .maintenanceConfigurationId(maintenanceConfigurationId?.applyValue({ args0 -> args0 }))
            .managedInstanceCreateMode(
                managedInstanceCreateMode?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .managedInstanceName(managedInstanceName?.applyValue({ args0 -> args0 }))
            .minimalTlsVersion(minimalTlsVersion?.applyValue({ args0 -> args0 }))
            .primaryUserAssignedIdentityId(primaryUserAssignedIdentityId?.applyValue({ args0 -> args0 }))
            .proxyOverride(
                proxyOverride?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .publicDataEndpointEnabled(publicDataEndpointEnabled?.applyValue({ args0 -> args0 }))
            .requestedBackupStorageRedundancy(
                requestedBackupStorageRedundancy?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 }))
            .restorePointInTime(restorePointInTime?.applyValue({ args0 -> args0 }))
            .servicePrincipal(servicePrincipal?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .sku(sku?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .sourceManagedInstanceId(sourceManagedInstanceId?.applyValue({ args0 -> args0 }))
            .storageSizeInGB(storageSizeInGB?.applyValue({ args0 -> args0 }))
            .subnetId(subnetId?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .timezoneId(timezoneId?.applyValue({ args0 -> args0 }))
            .vCores(vCores?.applyValue({ args0 -> args0 }))
            .zoneRedundant(zoneRedundant?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ManagedInstanceArgs].
 */
@PulumiTagMarker
public class ManagedInstanceArgsBuilder internal constructor() {
    private var administratorLogin: Output? = null

    private var administratorLoginPassword: Output? = null

    private var administrators: Output? = null

    private var collation: Output? = null

    private var dnsZonePartner: Output? = null

    private var identity: Output? = null

    private var instancePoolId: Output? = null

    private var keyId: Output? = null

    private var licenseType: Output>? = null

    private var location: Output? = null

    private var maintenanceConfigurationId: Output? = null

    private var managedInstanceCreateMode: Output>? = null

    private var managedInstanceName: Output? = null

    private var minimalTlsVersion: Output? = null

    private var primaryUserAssignedIdentityId: Output? = null

    private var proxyOverride: Output>? = null

    private var publicDataEndpointEnabled: Output? = null

    private var requestedBackupStorageRedundancy: Output>? =
        null

    private var resourceGroupName: Output? = null

    private var restorePointInTime: Output? = null

    private var servicePrincipal: Output? = null

    private var sku: Output? = null

    private var sourceManagedInstanceId: Output? = null

    private var storageSizeInGB: Output? = null

    private var subnetId: Output? = null

    private var tags: Output>? = null

    private var timezoneId: Output? = null

    private var vCores: Output? = null

    private var zoneRedundant: Output? = null

    /**
     * @param value Administrator username for the managed instance. Can only be specified when the managed instance is being created (and is required for creation).
     */
    @JvmName("kbfwbmgoknwpmcpj")
    public suspend fun administratorLogin(`value`: Output) {
        this.administratorLogin = value
    }

    /**
     * @param value The administrator login password (required for managed instance creation).
     */
    @JvmName("tncdueqfkyogjqrs")
    public suspend fun administratorLoginPassword(`value`: Output) {
        this.administratorLoginPassword = value
    }

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

    /**
     * @param value Collation of the managed instance.
     */
    @JvmName("bukjoosmjumwetim")
    public suspend fun collation(`value`: Output) {
        this.collation = value
    }

    /**
     * @param value The resource id of another managed instance whose DNS zone this managed instance will share after creation.
     */
    @JvmName("xugwaoagfieluqee")
    public suspend fun dnsZonePartner(`value`: Output) {
        this.dnsZonePartner = value
    }

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

    /**
     * @param value The Id of the instance pool this managed server belongs to.
     */
    @JvmName("mkvgtvjlpqfwqtbe")
    public suspend fun instancePoolId(`value`: Output) {
        this.instancePoolId = value
    }

    /**
     * @param value A CMK URI of the key to use for encryption.
     */
    @JvmName("rsnlooxeuoagfwdy")
    public suspend fun keyId(`value`: Output) {
        this.keyId = value
    }

    /**
     * @param value The license type. Possible values are 'LicenseIncluded' (regular price inclusive of a new SQL license) and 'BasePrice' (discounted AHB price for bringing your own SQL licenses).
     */
    @JvmName("yhqqlnxwsychjrll")
    public suspend fun licenseType(`value`: Output>) {
        this.licenseType = value
    }

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

    /**
     * @param value Specifies maintenance configuration id to apply to this managed instance.
     */
    @JvmName("odmrhxldmbgqabhd")
    public suspend fun maintenanceConfigurationId(`value`: Output) {
        this.maintenanceConfigurationId = value
    }

    /**
     * @param value Specifies the mode of database creation.
     * Default: Regular instance creation.
     * Restore: Creates an instance by restoring a set of backups to specific point in time. RestorePointInTime and SourceManagedInstanceId must be specified.
     */
    @JvmName("ndydijbecbhicexf")
    public suspend fun managedInstanceCreateMode(`value`: Output>) {
        this.managedInstanceCreateMode = value
    }

    /**
     * @param value The name of the managed instance.
     */
    @JvmName("bwixfpjpavvmhnaf")
    public suspend fun managedInstanceName(`value`: Output) {
        this.managedInstanceName = value
    }

    /**
     * @param value Minimal TLS version. Allowed values: 'None', '1.0', '1.1', '1.2'
     */
    @JvmName("bsrjfjycymfrxlgw")
    public suspend fun minimalTlsVersion(`value`: Output) {
        this.minimalTlsVersion = value
    }

    /**
     * @param value The resource id of a user assigned identity to be used by default.
     */
    @JvmName("uggbbgjvlpojefwq")
    public suspend fun primaryUserAssignedIdentityId(`value`: Output) {
        this.primaryUserAssignedIdentityId = value
    }

    /**
     * @param value Connection type used for connecting to the instance.
     */
    @JvmName("rsahfsibammofnjt")
    public suspend fun proxyOverride(`value`: Output>) {
        this.proxyOverride = value
    }

    /**
     * @param value Whether or not the public data endpoint is enabled.
     */
    @JvmName("wvievirdhdbqtnit")
    public suspend fun publicDataEndpointEnabled(`value`: Output) {
        this.publicDataEndpointEnabled = value
    }

    /**
     * @param value The storage account type to be used to store backups for this instance. The options are Local (LocallyRedundantStorage), Zone (ZoneRedundantStorage), Geo (GeoRedundantStorage) and GeoZone(GeoZoneRedundantStorage)
     */
    @JvmName("wjtbstjvqvqmirit")
    public suspend fun requestedBackupStorageRedundancy(`value`: Output>) {
        this.requestedBackupStorageRedundancy = value
    }

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

    /**
     * @param value Specifies the point in time (ISO8601 format) of the source database that will be restored to create the new database.
     */
    @JvmName("lfjedfljbgwfndvi")
    public suspend fun restorePointInTime(`value`: Output) {
        this.restorePointInTime = value
    }

    /**
     * @param value The managed instance's service principal.
     */
    @JvmName("gfwgqdqqiclyxhyu")
    public suspend fun servicePrincipal(`value`: Output) {
        this.servicePrincipal = value
    }

    /**
     * @param value Managed instance SKU. Allowed values for sku.name: GP_Gen5, GP_G8IM, GP_G8IH, BC_Gen5, BC_G8IM, BC_G8IH
     */
    @JvmName("ugynvumgbwvfeocx")
    public suspend fun sku(`value`: Output) {
        this.sku = value
    }

    /**
     * @param value The resource identifier of the source managed instance associated with create operation of this instance.
     */
    @JvmName("jlyluhkqjrsrtmxj")
    public suspend fun sourceManagedInstanceId(`value`: Output) {
        this.sourceManagedInstanceId = value
    }

    /**
     * @param value Storage size in GB. Minimum value: 32. Maximum value: 16384. Increments of 32 GB allowed only. Maximum value depends on the selected hardware family and number of vCores.
     */
    @JvmName("qduwoxedkmsmxvyq")
    public suspend fun storageSizeInGB(`value`: Output) {
        this.storageSizeInGB = value
    }

    /**
     * @param value Subnet resource ID for the managed instance.
     */
    @JvmName("qxugruwsqrdfbtft")
    public suspend fun subnetId(`value`: Output) {
        this.subnetId = value
    }

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

    /**
     * @param value Id of the timezone. Allowed values are timezones supported by Windows.
     * Windows keeps details on supported timezones, including the id, in registry under
     * KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones.
     * You can get those registry values via SQL Server by querying SELECT name AS timezone_id FROM sys.time_zone_info.
     * List of Ids can also be obtained by executing [System.TimeZoneInfo]::GetSystemTimeZones() in PowerShell.
     * An example of valid timezone id is "Pacific Standard Time" or "W. Europe Standard Time".
     */
    @JvmName("jolyakdevteptcfg")
    public suspend fun timezoneId(`value`: Output) {
        this.timezoneId = value
    }

    /**
     * @param value The number of vCores. Allowed values: 8, 16, 24, 32, 40, 64, 80.
     */
    @JvmName("piqqbomyjqebdurb")
    public suspend fun vCores(`value`: Output) {
        this.vCores = value
    }

    /**
     * @param value Whether or not the multi-az is enabled.
     */
    @JvmName("dnihcouxkaiegkxf")
    public suspend fun zoneRedundant(`value`: Output) {
        this.zoneRedundant = value
    }

    /**
     * @param value Administrator username for the managed instance. Can only be specified when the managed instance is being created (and is required for creation).
     */
    @JvmName("rcerxqitmyibrsgf")
    public suspend fun administratorLogin(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.administratorLogin = mapped
    }

    /**
     * @param value The administrator login password (required for managed instance creation).
     */
    @JvmName("pnfsiwwexwaokcwl")
    public suspend fun administratorLoginPassword(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.administratorLoginPassword = mapped
    }

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

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

    /**
     * @param value Collation of the managed instance.
     */
    @JvmName("lwyovgunypipglna")
    public suspend fun collation(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.collation = mapped
    }

    /**
     * @param value The resource id of another managed instance whose DNS zone this managed instance will share after creation.
     */
    @JvmName("bpygpyfgsgsjhgdv")
    public suspend fun dnsZonePartner(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dnsZonePartner = mapped
    }

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

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

    /**
     * @param value The Id of the instance pool this managed server belongs to.
     */
    @JvmName("jgggtovysqcmsctw")
    public suspend fun instancePoolId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.instancePoolId = mapped
    }

    /**
     * @param value A CMK URI of the key to use for encryption.
     */
    @JvmName("dymptpcblfujcwto")
    public suspend fun keyId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.keyId = mapped
    }

    /**
     * @param value The license type. Possible values are 'LicenseIncluded' (regular price inclusive of a new SQL license) and 'BasePrice' (discounted AHB price for bringing your own SQL licenses).
     */
    @JvmName("dgchejnydplaqcve")
    public suspend fun licenseType(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.licenseType = mapped
    }

    /**
     * @param value The license type. Possible values are 'LicenseIncluded' (regular price inclusive of a new SQL license) and 'BasePrice' (discounted AHB price for bringing your own SQL licenses).
     */
    @JvmName("gdwovqvbmlknylef")
    public fun licenseType(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.licenseType = mapped
    }

    /**
     * @param value The license type. Possible values are 'LicenseIncluded' (regular price inclusive of a new SQL license) and 'BasePrice' (discounted AHB price for bringing your own SQL licenses).
     */
    @JvmName("kpjndnblrdopxdtj")
    public fun licenseType(`value`: ManagedInstanceLicenseType) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.licenseType = mapped
    }

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

    /**
     * @param value Specifies maintenance configuration id to apply to this managed instance.
     */
    @JvmName("yqbfajvmswwfsnot")
    public suspend fun maintenanceConfigurationId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maintenanceConfigurationId = mapped
    }

    /**
     * @param value Specifies the mode of database creation.
     * Default: Regular instance creation.
     * Restore: Creates an instance by restoring a set of backups to specific point in time. RestorePointInTime and SourceManagedInstanceId must be specified.
     */
    @JvmName("atnixtfjlgddxbcn")
    public suspend fun managedInstanceCreateMode(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.managedInstanceCreateMode = mapped
    }

    /**
     * @param value Specifies the mode of database creation.
     * Default: Regular instance creation.
     * Restore: Creates an instance by restoring a set of backups to specific point in time. RestorePointInTime and SourceManagedInstanceId must be specified.
     */
    @JvmName("vjhaygjgtqkhljuf")
    public fun managedInstanceCreateMode(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.managedInstanceCreateMode = mapped
    }

    /**
     * @param value Specifies the mode of database creation.
     * Default: Regular instance creation.
     * Restore: Creates an instance by restoring a set of backups to specific point in time. RestorePointInTime and SourceManagedInstanceId must be specified.
     */
    @JvmName("rutibmaduihvigbs")
    public fun managedInstanceCreateMode(`value`: ManagedServerCreateMode) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.managedInstanceCreateMode = mapped
    }

    /**
     * @param value The name of the managed instance.
     */
    @JvmName("jobeeglwniajjsaf")
    public suspend fun managedInstanceName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.managedInstanceName = mapped
    }

    /**
     * @param value Minimal TLS version. Allowed values: 'None', '1.0', '1.1', '1.2'
     */
    @JvmName("ifohebvxairwoynv")
    public suspend fun minimalTlsVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.minimalTlsVersion = mapped
    }

    /**
     * @param value The resource id of a user assigned identity to be used by default.
     */
    @JvmName("snakbinklvwkhqcq")
    public suspend fun primaryUserAssignedIdentityId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.primaryUserAssignedIdentityId = mapped
    }

    /**
     * @param value Connection type used for connecting to the instance.
     */
    @JvmName("amfdiooyikhrwcjk")
    public suspend fun proxyOverride(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.proxyOverride = mapped
    }

    /**
     * @param value Connection type used for connecting to the instance.
     */
    @JvmName("oreiawenyxkssccd")
    public fun proxyOverride(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.proxyOverride = mapped
    }

    /**
     * @param value Connection type used for connecting to the instance.
     */
    @JvmName("tnuubcqjbwhvbvkf")
    public fun proxyOverride(`value`: ManagedInstanceProxyOverride) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.proxyOverride = mapped
    }

    /**
     * @param value Whether or not the public data endpoint is enabled.
     */
    @JvmName("jbgrhfyynxltsmxc")
    public suspend fun publicDataEndpointEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.publicDataEndpointEnabled = mapped
    }

    /**
     * @param value The storage account type to be used to store backups for this instance. The options are Local (LocallyRedundantStorage), Zone (ZoneRedundantStorage), Geo (GeoRedundantStorage) and GeoZone(GeoZoneRedundantStorage)
     */
    @JvmName("pqkfqnbhiairflkx")
    public suspend fun requestedBackupStorageRedundancy(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.requestedBackupStorageRedundancy = mapped
    }

    /**
     * @param value The storage account type to be used to store backups for this instance. The options are Local (LocallyRedundantStorage), Zone (ZoneRedundantStorage), Geo (GeoRedundantStorage) and GeoZone(GeoZoneRedundantStorage)
     */
    @JvmName("pghkyoimarbogsxk")
    public fun requestedBackupStorageRedundancy(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.requestedBackupStorageRedundancy = mapped
    }

    /**
     * @param value The storage account type to be used to store backups for this instance. The options are Local (LocallyRedundantStorage), Zone (ZoneRedundantStorage), Geo (GeoRedundantStorage) and GeoZone(GeoZoneRedundantStorage)
     */
    @JvmName("imnknospymsvfnqx")
    public fun requestedBackupStorageRedundancy(`value`: BackupStorageRedundancy) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.requestedBackupStorageRedundancy = mapped
    }

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

    /**
     * @param value Specifies the point in time (ISO8601 format) of the source database that will be restored to create the new database.
     */
    @JvmName("vricmrkrmdhlffug")
    public suspend fun restorePointInTime(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.restorePointInTime = mapped
    }

    /**
     * @param value The managed instance's service principal.
     */
    @JvmName("qhykkdilrybxmkfm")
    public suspend fun servicePrincipal(`value`: ServicePrincipalArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.servicePrincipal = mapped
    }

    /**
     * @param argument The managed instance's service principal.
     */
    @JvmName("upsqguhiuqwwnpis")
    public suspend fun servicePrincipal(argument: suspend ServicePrincipalArgsBuilder.() -> Unit) {
        val toBeMapped = ServicePrincipalArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.servicePrincipal = mapped
    }

    /**
     * @param value Managed instance SKU. Allowed values for sku.name: GP_Gen5, GP_G8IM, GP_G8IH, BC_Gen5, BC_G8IM, BC_G8IH
     */
    @JvmName("daaevdttteyyaxaq")
    public suspend fun sku(`value`: SkuArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sku = mapped
    }

    /**
     * @param argument Managed instance SKU. Allowed values for sku.name: GP_Gen5, GP_G8IM, GP_G8IH, BC_Gen5, BC_G8IM, BC_G8IH
     */
    @JvmName("nbpilaovjkxfmmsg")
    public suspend fun sku(argument: suspend SkuArgsBuilder.() -> Unit) {
        val toBeMapped = SkuArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.sku = mapped
    }

    /**
     * @param value The resource identifier of the source managed instance associated with create operation of this instance.
     */
    @JvmName("lyeumbmuhxvuhbwf")
    public suspend fun sourceManagedInstanceId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sourceManagedInstanceId = mapped
    }

    /**
     * @param value Storage size in GB. Minimum value: 32. Maximum value: 16384. Increments of 32 GB allowed only. Maximum value depends on the selected hardware family and number of vCores.
     */
    @JvmName("nkucbochtxvymfgv")
    public suspend fun storageSizeInGB(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.storageSizeInGB = mapped
    }

    /**
     * @param value Subnet resource ID for the managed instance.
     */
    @JvmName("qddnyimcpacrjapt")
    public suspend fun subnetId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subnetId = mapped
    }

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

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

    /**
     * @param value Id of the timezone. Allowed values are timezones supported by Windows.
     * Windows keeps details on supported timezones, including the id, in registry under
     * KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones.
     * You can get those registry values via SQL Server by querying SELECT name AS timezone_id FROM sys.time_zone_info.
     * List of Ids can also be obtained by executing [System.TimeZoneInfo]::GetSystemTimeZones() in PowerShell.
     * An example of valid timezone id is "Pacific Standard Time" or "W. Europe Standard Time".
     */
    @JvmName("chbcfrwrmqqjxbjg")
    public suspend fun timezoneId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.timezoneId = mapped
    }

    /**
     * @param value The number of vCores. Allowed values: 8, 16, 24, 32, 40, 64, 80.
     */
    @JvmName("hlkqeargnwkfsypn")
    public suspend fun vCores(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vCores = mapped
    }

    /**
     * @param value Whether or not the multi-az is enabled.
     */
    @JvmName("nneityybuqntoelb")
    public suspend fun zoneRedundant(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.zoneRedundant = mapped
    }

    internal fun build(): ManagedInstanceArgs = ManagedInstanceArgs(
        administratorLogin = administratorLogin,
        administratorLoginPassword = administratorLoginPassword,
        administrators = administrators,
        collation = collation,
        dnsZonePartner = dnsZonePartner,
        identity = identity,
        instancePoolId = instancePoolId,
        keyId = keyId,
        licenseType = licenseType,
        location = location,
        maintenanceConfigurationId = maintenanceConfigurationId,
        managedInstanceCreateMode = managedInstanceCreateMode,
        managedInstanceName = managedInstanceName,
        minimalTlsVersion = minimalTlsVersion,
        primaryUserAssignedIdentityId = primaryUserAssignedIdentityId,
        proxyOverride = proxyOverride,
        publicDataEndpointEnabled = publicDataEndpointEnabled,
        requestedBackupStorageRedundancy = requestedBackupStorageRedundancy,
        resourceGroupName = resourceGroupName,
        restorePointInTime = restorePointInTime,
        servicePrincipal = servicePrincipal,
        sku = sku,
        sourceManagedInstanceId = sourceManagedInstanceId,
        storageSizeInGB = storageSizeInGB,
        subnetId = subnetId,
        tags = tags,
        timezoneId = timezoneId,
        vCores = vCores,
        zoneRedundant = zoneRedundant,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy