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

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

There is a newer version: 2.78.0
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.azurenative.sql;

import com.pulumi.azurenative.sql.enums.BackupStorageRedundancy;
import com.pulumi.azurenative.sql.enums.ManagedInstanceLicenseType;
import com.pulumi.azurenative.sql.enums.ManagedInstanceProxyOverride;
import com.pulumi.azurenative.sql.enums.ManagedServerCreateMode;
import com.pulumi.azurenative.sql.inputs.ManagedInstanceExternalAdministratorArgs;
import com.pulumi.azurenative.sql.inputs.ResourceIdentityArgs;
import com.pulumi.azurenative.sql.inputs.ServicePrincipalArgs;
import com.pulumi.azurenative.sql.inputs.SkuArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class ManagedInstanceArgs extends com.pulumi.resources.ResourceArgs {

    public static final ManagedInstanceArgs Empty = new ManagedInstanceArgs();

    /**
     * Administrator username for the managed instance. Can only be specified when the managed instance is being created (and is required for creation).
     * 
     */
    @Import(name="administratorLogin")
    private @Nullable Output administratorLogin;

    /**
     * @return Administrator username for the managed instance. Can only be specified when the managed instance is being created (and is required for creation).
     * 
     */
    public Optional> administratorLogin() {
        return Optional.ofNullable(this.administratorLogin);
    }

    /**
     * The administrator login password (required for managed instance creation).
     * 
     */
    @Import(name="administratorLoginPassword")
    private @Nullable Output administratorLoginPassword;

    /**
     * @return The administrator login password (required for managed instance creation).
     * 
     */
    public Optional> administratorLoginPassword() {
        return Optional.ofNullable(this.administratorLoginPassword);
    }

    /**
     * The Azure Active Directory administrator of the server.
     * 
     */
    @Import(name="administrators")
    private @Nullable Output administrators;

    /**
     * @return The Azure Active Directory administrator of the server.
     * 
     */
    public Optional> administrators() {
        return Optional.ofNullable(this.administrators);
    }

    /**
     * Collation of the managed instance.
     * 
     */
    @Import(name="collation")
    private @Nullable Output collation;

    /**
     * @return Collation of the managed instance.
     * 
     */
    public Optional> collation() {
        return Optional.ofNullable(this.collation);
    }

    /**
     * The resource id of another managed instance whose DNS zone this managed instance will share after creation.
     * 
     */
    @Import(name="dnsZonePartner")
    private @Nullable Output dnsZonePartner;

    /**
     * @return The resource id of another managed instance whose DNS zone this managed instance will share after creation.
     * 
     */
    public Optional> dnsZonePartner() {
        return Optional.ofNullable(this.dnsZonePartner);
    }

    /**
     * The Azure Active Directory identity of the managed instance.
     * 
     */
    @Import(name="identity")
    private @Nullable Output identity;

    /**
     * @return The Azure Active Directory identity of the managed instance.
     * 
     */
    public Optional> identity() {
        return Optional.ofNullable(this.identity);
    }

    /**
     * The Id of the instance pool this managed server belongs to.
     * 
     */
    @Import(name="instancePoolId")
    private @Nullable Output instancePoolId;

    /**
     * @return The Id of the instance pool this managed server belongs to.
     * 
     */
    public Optional> instancePoolId() {
        return Optional.ofNullable(this.instancePoolId);
    }

    /**
     * A CMK URI of the key to use for encryption.
     * 
     */
    @Import(name="keyId")
    private @Nullable Output keyId;

    /**
     * @return A CMK URI of the key to use for encryption.
     * 
     */
    public Optional> keyId() {
        return Optional.ofNullable(this.keyId);
    }

    /**
     * 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).
     * 
     */
    @Import(name="licenseType")
    private @Nullable Output> licenseType;

    /**
     * @return 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).
     * 
     */
    public Optional>> licenseType() {
        return Optional.ofNullable(this.licenseType);
    }

    /**
     * Resource location.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return Resource location.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * Specifies maintenance configuration id to apply to this managed instance.
     * 
     */
    @Import(name="maintenanceConfigurationId")
    private @Nullable Output maintenanceConfigurationId;

    /**
     * @return Specifies maintenance configuration id to apply to this managed instance.
     * 
     */
    public Optional> maintenanceConfigurationId() {
        return Optional.ofNullable(this.maintenanceConfigurationId);
    }

    /**
     * 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.
     * 
     */
    @Import(name="managedInstanceCreateMode")
    private @Nullable Output> managedInstanceCreateMode;

    /**
     * @return 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.
     * 
     */
    public Optional>> managedInstanceCreateMode() {
        return Optional.ofNullable(this.managedInstanceCreateMode);
    }

    /**
     * The name of the managed instance.
     * 
     */
    @Import(name="managedInstanceName")
    private @Nullable Output managedInstanceName;

    /**
     * @return The name of the managed instance.
     * 
     */
    public Optional> managedInstanceName() {
        return Optional.ofNullable(this.managedInstanceName);
    }

    /**
     * Minimal TLS version. Allowed values: 'None', '1.0', '1.1', '1.2'
     * 
     */
    @Import(name="minimalTlsVersion")
    private @Nullable Output minimalTlsVersion;

    /**
     * @return Minimal TLS version. Allowed values: 'None', '1.0', '1.1', '1.2'
     * 
     */
    public Optional> minimalTlsVersion() {
        return Optional.ofNullable(this.minimalTlsVersion);
    }

    /**
     * The resource id of a user assigned identity to be used by default.
     * 
     */
    @Import(name="primaryUserAssignedIdentityId")
    private @Nullable Output primaryUserAssignedIdentityId;

    /**
     * @return The resource id of a user assigned identity to be used by default.
     * 
     */
    public Optional> primaryUserAssignedIdentityId() {
        return Optional.ofNullable(this.primaryUserAssignedIdentityId);
    }

    /**
     * Connection type used for connecting to the instance.
     * 
     */
    @Import(name="proxyOverride")
    private @Nullable Output> proxyOverride;

    /**
     * @return Connection type used for connecting to the instance.
     * 
     */
    public Optional>> proxyOverride() {
        return Optional.ofNullable(this.proxyOverride);
    }

    /**
     * Whether or not the public data endpoint is enabled.
     * 
     */
    @Import(name="publicDataEndpointEnabled")
    private @Nullable Output publicDataEndpointEnabled;

    /**
     * @return Whether or not the public data endpoint is enabled.
     * 
     */
    public Optional> publicDataEndpointEnabled() {
        return Optional.ofNullable(this.publicDataEndpointEnabled);
    }

    /**
     * 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)
     * 
     */
    @Import(name="requestedBackupStorageRedundancy")
    private @Nullable Output> requestedBackupStorageRedundancy;

    /**
     * @return 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)
     * 
     */
    public Optional>> requestedBackupStorageRedundancy() {
        return Optional.ofNullable(this.requestedBackupStorageRedundancy);
    }

    /**
     * The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * Specifies the point in time (ISO8601 format) of the source database that will be restored to create the new database.
     * 
     */
    @Import(name="restorePointInTime")
    private @Nullable Output restorePointInTime;

    /**
     * @return Specifies the point in time (ISO8601 format) of the source database that will be restored to create the new database.
     * 
     */
    public Optional> restorePointInTime() {
        return Optional.ofNullable(this.restorePointInTime);
    }

    /**
     * The managed instance's service principal.
     * 
     */
    @Import(name="servicePrincipal")
    private @Nullable Output servicePrincipal;

    /**
     * @return The managed instance's service principal.
     * 
     */
    public Optional> servicePrincipal() {
        return Optional.ofNullable(this.servicePrincipal);
    }

    /**
     * Managed instance SKU. Allowed values for sku.name: GP_Gen5, GP_G8IM, GP_G8IH, BC_Gen5, BC_G8IM, BC_G8IH
     * 
     */
    @Import(name="sku")
    private @Nullable Output sku;

    /**
     * @return Managed instance SKU. Allowed values for sku.name: GP_Gen5, GP_G8IM, GP_G8IH, BC_Gen5, BC_G8IM, BC_G8IH
     * 
     */
    public Optional> sku() {
        return Optional.ofNullable(this.sku);
    }

    /**
     * The resource identifier of the source managed instance associated with create operation of this instance.
     * 
     */
    @Import(name="sourceManagedInstanceId")
    private @Nullable Output sourceManagedInstanceId;

    /**
     * @return The resource identifier of the source managed instance associated with create operation of this instance.
     * 
     */
    public Optional> sourceManagedInstanceId() {
        return Optional.ofNullable(this.sourceManagedInstanceId);
    }

    /**
     * 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.
     * 
     */
    @Import(name="storageSizeInGB")
    private @Nullable Output storageSizeInGB;

    /**
     * @return 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.
     * 
     */
    public Optional> storageSizeInGB() {
        return Optional.ofNullable(this.storageSizeInGB);
    }

    /**
     * Subnet resource ID for the managed instance.
     * 
     */
    @Import(name="subnetId")
    private @Nullable Output subnetId;

    /**
     * @return Subnet resource ID for the managed instance.
     * 
     */
    public Optional> subnetId() {
        return Optional.ofNullable(this.subnetId);
    }

    /**
     * Resource tags.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Resource tags.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * 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".
     * 
     */
    @Import(name="timezoneId")
    private @Nullable Output timezoneId;

    /**
     * @return 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".
     * 
     */
    public Optional> timezoneId() {
        return Optional.ofNullable(this.timezoneId);
    }

    /**
     * The number of vCores. Allowed values: 8, 16, 24, 32, 40, 64, 80.
     * 
     */
    @Import(name="vCores")
    private @Nullable Output vCores;

    /**
     * @return The number of vCores. Allowed values: 8, 16, 24, 32, 40, 64, 80.
     * 
     */
    public Optional> vCores() {
        return Optional.ofNullable(this.vCores);
    }

    /**
     * Whether or not the multi-az is enabled.
     * 
     */
    @Import(name="zoneRedundant")
    private @Nullable Output zoneRedundant;

    /**
     * @return Whether or not the multi-az is enabled.
     * 
     */
    public Optional> zoneRedundant() {
        return Optional.ofNullable(this.zoneRedundant);
    }

    private ManagedInstanceArgs() {}

    private ManagedInstanceArgs(ManagedInstanceArgs $) {
        this.administratorLogin = $.administratorLogin;
        this.administratorLoginPassword = $.administratorLoginPassword;
        this.administrators = $.administrators;
        this.collation = $.collation;
        this.dnsZonePartner = $.dnsZonePartner;
        this.identity = $.identity;
        this.instancePoolId = $.instancePoolId;
        this.keyId = $.keyId;
        this.licenseType = $.licenseType;
        this.location = $.location;
        this.maintenanceConfigurationId = $.maintenanceConfigurationId;
        this.managedInstanceCreateMode = $.managedInstanceCreateMode;
        this.managedInstanceName = $.managedInstanceName;
        this.minimalTlsVersion = $.minimalTlsVersion;
        this.primaryUserAssignedIdentityId = $.primaryUserAssignedIdentityId;
        this.proxyOverride = $.proxyOverride;
        this.publicDataEndpointEnabled = $.publicDataEndpointEnabled;
        this.requestedBackupStorageRedundancy = $.requestedBackupStorageRedundancy;
        this.resourceGroupName = $.resourceGroupName;
        this.restorePointInTime = $.restorePointInTime;
        this.servicePrincipal = $.servicePrincipal;
        this.sku = $.sku;
        this.sourceManagedInstanceId = $.sourceManagedInstanceId;
        this.storageSizeInGB = $.storageSizeInGB;
        this.subnetId = $.subnetId;
        this.tags = $.tags;
        this.timezoneId = $.timezoneId;
        this.vCores = $.vCores;
        this.zoneRedundant = $.zoneRedundant;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(ManagedInstanceArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private ManagedInstanceArgs $;

        public Builder() {
            $ = new ManagedInstanceArgs();
        }

        public Builder(ManagedInstanceArgs defaults) {
            $ = new ManagedInstanceArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param administratorLogin Administrator username for the managed instance. Can only be specified when the managed instance is being created (and is required for creation).
         * 
         * @return builder
         * 
         */
        public Builder administratorLogin(@Nullable Output administratorLogin) {
            $.administratorLogin = administratorLogin;
            return this;
        }

        /**
         * @param administratorLogin Administrator username for the managed instance. Can only be specified when the managed instance is being created (and is required for creation).
         * 
         * @return builder
         * 
         */
        public Builder administratorLogin(String administratorLogin) {
            return administratorLogin(Output.of(administratorLogin));
        }

        /**
         * @param administratorLoginPassword The administrator login password (required for managed instance creation).
         * 
         * @return builder
         * 
         */
        public Builder administratorLoginPassword(@Nullable Output administratorLoginPassword) {
            $.administratorLoginPassword = administratorLoginPassword;
            return this;
        }

        /**
         * @param administratorLoginPassword The administrator login password (required for managed instance creation).
         * 
         * @return builder
         * 
         */
        public Builder administratorLoginPassword(String administratorLoginPassword) {
            return administratorLoginPassword(Output.of(administratorLoginPassword));
        }

        /**
         * @param administrators The Azure Active Directory administrator of the server.
         * 
         * @return builder
         * 
         */
        public Builder administrators(@Nullable Output administrators) {
            $.administrators = administrators;
            return this;
        }

        /**
         * @param administrators The Azure Active Directory administrator of the server.
         * 
         * @return builder
         * 
         */
        public Builder administrators(ManagedInstanceExternalAdministratorArgs administrators) {
            return administrators(Output.of(administrators));
        }

        /**
         * @param collation Collation of the managed instance.
         * 
         * @return builder
         * 
         */
        public Builder collation(@Nullable Output collation) {
            $.collation = collation;
            return this;
        }

        /**
         * @param collation Collation of the managed instance.
         * 
         * @return builder
         * 
         */
        public Builder collation(String collation) {
            return collation(Output.of(collation));
        }

        /**
         * @param dnsZonePartner The resource id of another managed instance whose DNS zone this managed instance will share after creation.
         * 
         * @return builder
         * 
         */
        public Builder dnsZonePartner(@Nullable Output dnsZonePartner) {
            $.dnsZonePartner = dnsZonePartner;
            return this;
        }

        /**
         * @param dnsZonePartner The resource id of another managed instance whose DNS zone this managed instance will share after creation.
         * 
         * @return builder
         * 
         */
        public Builder dnsZonePartner(String dnsZonePartner) {
            return dnsZonePartner(Output.of(dnsZonePartner));
        }

        /**
         * @param identity The Azure Active Directory identity of the managed instance.
         * 
         * @return builder
         * 
         */
        public Builder identity(@Nullable Output identity) {
            $.identity = identity;
            return this;
        }

        /**
         * @param identity The Azure Active Directory identity of the managed instance.
         * 
         * @return builder
         * 
         */
        public Builder identity(ResourceIdentityArgs identity) {
            return identity(Output.of(identity));
        }

        /**
         * @param instancePoolId The Id of the instance pool this managed server belongs to.
         * 
         * @return builder
         * 
         */
        public Builder instancePoolId(@Nullable Output instancePoolId) {
            $.instancePoolId = instancePoolId;
            return this;
        }

        /**
         * @param instancePoolId The Id of the instance pool this managed server belongs to.
         * 
         * @return builder
         * 
         */
        public Builder instancePoolId(String instancePoolId) {
            return instancePoolId(Output.of(instancePoolId));
        }

        /**
         * @param keyId A CMK URI of the key to use for encryption.
         * 
         * @return builder
         * 
         */
        public Builder keyId(@Nullable Output keyId) {
            $.keyId = keyId;
            return this;
        }

        /**
         * @param keyId A CMK URI of the key to use for encryption.
         * 
         * @return builder
         * 
         */
        public Builder keyId(String keyId) {
            return keyId(Output.of(keyId));
        }

        /**
         * @param 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).
         * 
         * @return builder
         * 
         */
        public Builder licenseType(@Nullable Output> licenseType) {
            $.licenseType = licenseType;
            return this;
        }

        /**
         * @param 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).
         * 
         * @return builder
         * 
         */
        public Builder licenseType(Either licenseType) {
            return licenseType(Output.of(licenseType));
        }

        /**
         * @param 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).
         * 
         * @return builder
         * 
         */
        public Builder licenseType(String licenseType) {
            return licenseType(Either.ofLeft(licenseType));
        }

        /**
         * @param 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).
         * 
         * @return builder
         * 
         */
        public Builder licenseType(ManagedInstanceLicenseType licenseType) {
            return licenseType(Either.ofRight(licenseType));
        }

        /**
         * @param location Resource location.
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location Resource location.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param maintenanceConfigurationId Specifies maintenance configuration id to apply to this managed instance.
         * 
         * @return builder
         * 
         */
        public Builder maintenanceConfigurationId(@Nullable Output maintenanceConfigurationId) {
            $.maintenanceConfigurationId = maintenanceConfigurationId;
            return this;
        }

        /**
         * @param maintenanceConfigurationId Specifies maintenance configuration id to apply to this managed instance.
         * 
         * @return builder
         * 
         */
        public Builder maintenanceConfigurationId(String maintenanceConfigurationId) {
            return maintenanceConfigurationId(Output.of(maintenanceConfigurationId));
        }

        /**
         * @param 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.
         * 
         * @return builder
         * 
         */
        public Builder managedInstanceCreateMode(@Nullable Output> managedInstanceCreateMode) {
            $.managedInstanceCreateMode = managedInstanceCreateMode;
            return this;
        }

        /**
         * @param 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.
         * 
         * @return builder
         * 
         */
        public Builder managedInstanceCreateMode(Either managedInstanceCreateMode) {
            return managedInstanceCreateMode(Output.of(managedInstanceCreateMode));
        }

        /**
         * @param 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.
         * 
         * @return builder
         * 
         */
        public Builder managedInstanceCreateMode(String managedInstanceCreateMode) {
            return managedInstanceCreateMode(Either.ofLeft(managedInstanceCreateMode));
        }

        /**
         * @param 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.
         * 
         * @return builder
         * 
         */
        public Builder managedInstanceCreateMode(ManagedServerCreateMode managedInstanceCreateMode) {
            return managedInstanceCreateMode(Either.ofRight(managedInstanceCreateMode));
        }

        /**
         * @param managedInstanceName The name of the managed instance.
         * 
         * @return builder
         * 
         */
        public Builder managedInstanceName(@Nullable Output managedInstanceName) {
            $.managedInstanceName = managedInstanceName;
            return this;
        }

        /**
         * @param managedInstanceName The name of the managed instance.
         * 
         * @return builder
         * 
         */
        public Builder managedInstanceName(String managedInstanceName) {
            return managedInstanceName(Output.of(managedInstanceName));
        }

        /**
         * @param minimalTlsVersion Minimal TLS version. Allowed values: 'None', '1.0', '1.1', '1.2'
         * 
         * @return builder
         * 
         */
        public Builder minimalTlsVersion(@Nullable Output minimalTlsVersion) {
            $.minimalTlsVersion = minimalTlsVersion;
            return this;
        }

        /**
         * @param minimalTlsVersion Minimal TLS version. Allowed values: 'None', '1.0', '1.1', '1.2'
         * 
         * @return builder
         * 
         */
        public Builder minimalTlsVersion(String minimalTlsVersion) {
            return minimalTlsVersion(Output.of(minimalTlsVersion));
        }

        /**
         * @param primaryUserAssignedIdentityId The resource id of a user assigned identity to be used by default.
         * 
         * @return builder
         * 
         */
        public Builder primaryUserAssignedIdentityId(@Nullable Output primaryUserAssignedIdentityId) {
            $.primaryUserAssignedIdentityId = primaryUserAssignedIdentityId;
            return this;
        }

        /**
         * @param primaryUserAssignedIdentityId The resource id of a user assigned identity to be used by default.
         * 
         * @return builder
         * 
         */
        public Builder primaryUserAssignedIdentityId(String primaryUserAssignedIdentityId) {
            return primaryUserAssignedIdentityId(Output.of(primaryUserAssignedIdentityId));
        }

        /**
         * @param proxyOverride Connection type used for connecting to the instance.
         * 
         * @return builder
         * 
         */
        public Builder proxyOverride(@Nullable Output> proxyOverride) {
            $.proxyOverride = proxyOverride;
            return this;
        }

        /**
         * @param proxyOverride Connection type used for connecting to the instance.
         * 
         * @return builder
         * 
         */
        public Builder proxyOverride(Either proxyOverride) {
            return proxyOverride(Output.of(proxyOverride));
        }

        /**
         * @param proxyOverride Connection type used for connecting to the instance.
         * 
         * @return builder
         * 
         */
        public Builder proxyOverride(String proxyOverride) {
            return proxyOverride(Either.ofLeft(proxyOverride));
        }

        /**
         * @param proxyOverride Connection type used for connecting to the instance.
         * 
         * @return builder
         * 
         */
        public Builder proxyOverride(ManagedInstanceProxyOverride proxyOverride) {
            return proxyOverride(Either.ofRight(proxyOverride));
        }

        /**
         * @param publicDataEndpointEnabled Whether or not the public data endpoint is enabled.
         * 
         * @return builder
         * 
         */
        public Builder publicDataEndpointEnabled(@Nullable Output publicDataEndpointEnabled) {
            $.publicDataEndpointEnabled = publicDataEndpointEnabled;
            return this;
        }

        /**
         * @param publicDataEndpointEnabled Whether or not the public data endpoint is enabled.
         * 
         * @return builder
         * 
         */
        public Builder publicDataEndpointEnabled(Boolean publicDataEndpointEnabled) {
            return publicDataEndpointEnabled(Output.of(publicDataEndpointEnabled));
        }

        /**
         * @param 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)
         * 
         * @return builder
         * 
         */
        public Builder requestedBackupStorageRedundancy(@Nullable Output> requestedBackupStorageRedundancy) {
            $.requestedBackupStorageRedundancy = requestedBackupStorageRedundancy;
            return this;
        }

        /**
         * @param 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)
         * 
         * @return builder
         * 
         */
        public Builder requestedBackupStorageRedundancy(Either requestedBackupStorageRedundancy) {
            return requestedBackupStorageRedundancy(Output.of(requestedBackupStorageRedundancy));
        }

        /**
         * @param 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)
         * 
         * @return builder
         * 
         */
        public Builder requestedBackupStorageRedundancy(String requestedBackupStorageRedundancy) {
            return requestedBackupStorageRedundancy(Either.ofLeft(requestedBackupStorageRedundancy));
        }

        /**
         * @param 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)
         * 
         * @return builder
         * 
         */
        public Builder requestedBackupStorageRedundancy(BackupStorageRedundancy requestedBackupStorageRedundancy) {
            return requestedBackupStorageRedundancy(Either.ofRight(requestedBackupStorageRedundancy));
        }

        /**
         * @param 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.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param 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.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param restorePointInTime Specifies the point in time (ISO8601 format) of the source database that will be restored to create the new database.
         * 
         * @return builder
         * 
         */
        public Builder restorePointInTime(@Nullable Output restorePointInTime) {
            $.restorePointInTime = restorePointInTime;
            return this;
        }

        /**
         * @param restorePointInTime Specifies the point in time (ISO8601 format) of the source database that will be restored to create the new database.
         * 
         * @return builder
         * 
         */
        public Builder restorePointInTime(String restorePointInTime) {
            return restorePointInTime(Output.of(restorePointInTime));
        }

        /**
         * @param servicePrincipal The managed instance's service principal.
         * 
         * @return builder
         * 
         */
        public Builder servicePrincipal(@Nullable Output servicePrincipal) {
            $.servicePrincipal = servicePrincipal;
            return this;
        }

        /**
         * @param servicePrincipal The managed instance's service principal.
         * 
         * @return builder
         * 
         */
        public Builder servicePrincipal(ServicePrincipalArgs servicePrincipal) {
            return servicePrincipal(Output.of(servicePrincipal));
        }

        /**
         * @param sku Managed instance SKU. Allowed values for sku.name: GP_Gen5, GP_G8IM, GP_G8IH, BC_Gen5, BC_G8IM, BC_G8IH
         * 
         * @return builder
         * 
         */
        public Builder sku(@Nullable Output sku) {
            $.sku = sku;
            return this;
        }

        /**
         * @param sku Managed instance SKU. Allowed values for sku.name: GP_Gen5, GP_G8IM, GP_G8IH, BC_Gen5, BC_G8IM, BC_G8IH
         * 
         * @return builder
         * 
         */
        public Builder sku(SkuArgs sku) {
            return sku(Output.of(sku));
        }

        /**
         * @param sourceManagedInstanceId The resource identifier of the source managed instance associated with create operation of this instance.
         * 
         * @return builder
         * 
         */
        public Builder sourceManagedInstanceId(@Nullable Output sourceManagedInstanceId) {
            $.sourceManagedInstanceId = sourceManagedInstanceId;
            return this;
        }

        /**
         * @param sourceManagedInstanceId The resource identifier of the source managed instance associated with create operation of this instance.
         * 
         * @return builder
         * 
         */
        public Builder sourceManagedInstanceId(String sourceManagedInstanceId) {
            return sourceManagedInstanceId(Output.of(sourceManagedInstanceId));
        }

        /**
         * @param 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.
         * 
         * @return builder
         * 
         */
        public Builder storageSizeInGB(@Nullable Output storageSizeInGB) {
            $.storageSizeInGB = storageSizeInGB;
            return this;
        }

        /**
         * @param 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.
         * 
         * @return builder
         * 
         */
        public Builder storageSizeInGB(Integer storageSizeInGB) {
            return storageSizeInGB(Output.of(storageSizeInGB));
        }

        /**
         * @param subnetId Subnet resource ID for the managed instance.
         * 
         * @return builder
         * 
         */
        public Builder subnetId(@Nullable Output subnetId) {
            $.subnetId = subnetId;
            return this;
        }

        /**
         * @param subnetId Subnet resource ID for the managed instance.
         * 
         * @return builder
         * 
         */
        public Builder subnetId(String subnetId) {
            return subnetId(Output.of(subnetId));
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param 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".
         * 
         * @return builder
         * 
         */
        public Builder timezoneId(@Nullable Output timezoneId) {
            $.timezoneId = timezoneId;
            return this;
        }

        /**
         * @param 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".
         * 
         * @return builder
         * 
         */
        public Builder timezoneId(String timezoneId) {
            return timezoneId(Output.of(timezoneId));
        }

        /**
         * @param vCores The number of vCores. Allowed values: 8, 16, 24, 32, 40, 64, 80.
         * 
         * @return builder
         * 
         */
        public Builder vCores(@Nullable Output vCores) {
            $.vCores = vCores;
            return this;
        }

        /**
         * @param vCores The number of vCores. Allowed values: 8, 16, 24, 32, 40, 64, 80.
         * 
         * @return builder
         * 
         */
        public Builder vCores(Integer vCores) {
            return vCores(Output.of(vCores));
        }

        /**
         * @param zoneRedundant Whether or not the multi-az is enabled.
         * 
         * @return builder
         * 
         */
        public Builder zoneRedundant(@Nullable Output zoneRedundant) {
            $.zoneRedundant = zoneRedundant;
            return this;
        }

        /**
         * @param zoneRedundant Whether or not the multi-az is enabled.
         * 
         * @return builder
         * 
         */
        public Builder zoneRedundant(Boolean zoneRedundant) {
            return zoneRedundant(Output.of(zoneRedundant));
        }

        public ManagedInstanceArgs build() {
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("ManagedInstanceArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy