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

com.pulumi.azurenative.desktopvirtualization.HostPoolArgs Maven / Gradle / Ivy

There is a newer version: 2.82.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.desktopvirtualization;

import com.pulumi.azurenative.desktopvirtualization.enums.HostPoolType;
import com.pulumi.azurenative.desktopvirtualization.enums.LoadBalancerType;
import com.pulumi.azurenative.desktopvirtualization.enums.PersonalDesktopAssignmentType;
import com.pulumi.azurenative.desktopvirtualization.enums.PreferredAppGroupType;
import com.pulumi.azurenative.desktopvirtualization.enums.SSOSecretType;
import com.pulumi.azurenative.desktopvirtualization.inputs.AgentUpdatePropertiesArgs;
import com.pulumi.azurenative.desktopvirtualization.inputs.RegistrationInfoArgs;
import com.pulumi.azurenative.desktopvirtualization.inputs.ResourceModelWithAllowedPropertySetIdentityArgs;
import com.pulumi.azurenative.desktopvirtualization.inputs.ResourceModelWithAllowedPropertySetPlanArgs;
import com.pulumi.azurenative.desktopvirtualization.inputs.ResourceModelWithAllowedPropertySetSkuArgs;
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 HostPoolArgs extends com.pulumi.resources.ResourceArgs {

    public static final HostPoolArgs Empty = new HostPoolArgs();

    /**
     * The session host configuration for updating agent, monitoring agent, and stack component.
     * 
     */
    @Import(name="agentUpdate")
    private @Nullable Output agentUpdate;

    /**
     * @return The session host configuration for updating agent, monitoring agent, and stack component.
     * 
     */
    public Optional> agentUpdate() {
        return Optional.ofNullable(this.agentUpdate);
    }

    /**
     * Custom rdp property of HostPool.
     * 
     */
    @Import(name="customRdpProperty")
    private @Nullable Output customRdpProperty;

    /**
     * @return Custom rdp property of HostPool.
     * 
     */
    public Optional> customRdpProperty() {
        return Optional.ofNullable(this.customRdpProperty);
    }

    /**
     * Description of HostPool.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return Description of HostPool.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * Friendly name of HostPool.
     * 
     */
    @Import(name="friendlyName")
    private @Nullable Output friendlyName;

    /**
     * @return Friendly name of HostPool.
     * 
     */
    public Optional> friendlyName() {
        return Optional.ofNullable(this.friendlyName);
    }

    /**
     * The name of the host pool within the specified resource group
     * 
     */
    @Import(name="hostPoolName")
    private @Nullable Output hostPoolName;

    /**
     * @return The name of the host pool within the specified resource group
     * 
     */
    public Optional> hostPoolName() {
        return Optional.ofNullable(this.hostPoolName);
    }

    /**
     * HostPool type for desktop.
     * 
     */
    @Import(name="hostPoolType", required=true)
    private Output> hostPoolType;

    /**
     * @return HostPool type for desktop.
     * 
     */
    public Output> hostPoolType() {
        return this.hostPoolType;
    }

    @Import(name="identity")
    private @Nullable Output identity;

    public Optional> identity() {
        return Optional.ofNullable(this.identity);
    }

    /**
     * Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type.  If supported, the resource provider must validate and persist this value.
     * 
     */
    @Import(name="kind")
    private @Nullable Output kind;

    /**
     * @return Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type.  If supported, the resource provider must validate and persist this value.
     * 
     */
    public Optional> kind() {
        return Optional.ofNullable(this.kind);
    }

    /**
     * The type of the load balancer.
     * 
     */
    @Import(name="loadBalancerType", required=true)
    private Output> loadBalancerType;

    /**
     * @return The type of the load balancer.
     * 
     */
    public Output> loadBalancerType() {
        return this.loadBalancerType;
    }

    /**
     * The geo-location where the resource lives
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The geo-location where the resource lives
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.
     * 
     */
    @Import(name="managedBy")
    private @Nullable Output managedBy;

    /**
     * @return The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.
     * 
     */
    public Optional> managedBy() {
        return Optional.ofNullable(this.managedBy);
    }

    /**
     * The max session limit of HostPool.
     * 
     */
    @Import(name="maxSessionLimit")
    private @Nullable Output maxSessionLimit;

    /**
     * @return The max session limit of HostPool.
     * 
     */
    public Optional> maxSessionLimit() {
        return Optional.ofNullable(this.maxSessionLimit);
    }

    /**
     * PersonalDesktopAssignment type for HostPool.
     * 
     */
    @Import(name="personalDesktopAssignmentType")
    private @Nullable Output> personalDesktopAssignmentType;

    /**
     * @return PersonalDesktopAssignment type for HostPool.
     * 
     */
    public Optional>> personalDesktopAssignmentType() {
        return Optional.ofNullable(this.personalDesktopAssignmentType);
    }

    @Import(name="plan")
    private @Nullable Output plan;

    public Optional> plan() {
        return Optional.ofNullable(this.plan);
    }

    /**
     * The type of preferred application group type, default to Desktop Application Group
     * 
     */
    @Import(name="preferredAppGroupType", required=true)
    private Output> preferredAppGroupType;

    /**
     * @return The type of preferred application group type, default to Desktop Application Group
     * 
     */
    public Output> preferredAppGroupType() {
        return this.preferredAppGroupType;
    }

    /**
     * The registration info of HostPool.
     * 
     */
    @Import(name="registrationInfo")
    private @Nullable Output registrationInfo;

    /**
     * @return The registration info of HostPool.
     * 
     */
    public Optional> registrationInfo() {
        return Optional.ofNullable(this.registrationInfo);
    }

    /**
     * The name of the resource group. The name is case insensitive.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group. The name is case insensitive.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * The ring number of HostPool.
     * 
     */
    @Import(name="ring")
    private @Nullable Output ring;

    /**
     * @return The ring number of HostPool.
     * 
     */
    public Optional> ring() {
        return Optional.ofNullable(this.ring);
    }

    @Import(name="sku")
    private @Nullable Output sku;

    public Optional> sku() {
        return Optional.ofNullable(this.sku);
    }

    /**
     * ClientId for the registered Relying Party used to issue WVD SSO certificates.
     * 
     */
    @Import(name="ssoClientId")
    private @Nullable Output ssoClientId;

    /**
     * @return ClientId for the registered Relying Party used to issue WVD SSO certificates.
     * 
     */
    public Optional> ssoClientId() {
        return Optional.ofNullable(this.ssoClientId);
    }

    /**
     * Path to Azure KeyVault storing the secret used for communication to ADFS.
     * 
     */
    @Import(name="ssoClientSecretKeyVaultPath")
    private @Nullable Output ssoClientSecretKeyVaultPath;

    /**
     * @return Path to Azure KeyVault storing the secret used for communication to ADFS.
     * 
     */
    public Optional> ssoClientSecretKeyVaultPath() {
        return Optional.ofNullable(this.ssoClientSecretKeyVaultPath);
    }

    /**
     * The type of single sign on Secret Type.
     * 
     */
    @Import(name="ssoSecretType")
    private @Nullable Output> ssoSecretType;

    /**
     * @return The type of single sign on Secret Type.
     * 
     */
    public Optional>> ssoSecretType() {
        return Optional.ofNullable(this.ssoSecretType);
    }

    /**
     * URL to customer ADFS server for signing WVD SSO certificates.
     * 
     */
    @Import(name="ssoadfsAuthority")
    private @Nullable Output ssoadfsAuthority;

    /**
     * @return URL to customer ADFS server for signing WVD SSO certificates.
     * 
     */
    public Optional> ssoadfsAuthority() {
        return Optional.ofNullable(this.ssoadfsAuthority);
    }

    /**
     * The flag to turn on/off StartVMOnConnect feature.
     * 
     */
    @Import(name="startVMOnConnect")
    private @Nullable Output startVMOnConnect;

    /**
     * @return The flag to turn on/off StartVMOnConnect feature.
     * 
     */
    public Optional> startVMOnConnect() {
        return Optional.ofNullable(this.startVMOnConnect);
    }

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

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

    /**
     * Is validation environment.
     * 
     */
    @Import(name="validationEnvironment")
    private @Nullable Output validationEnvironment;

    /**
     * @return Is validation environment.
     * 
     */
    public Optional> validationEnvironment() {
        return Optional.ofNullable(this.validationEnvironment);
    }

    /**
     * VM template for sessionhosts configuration within hostpool.
     * 
     */
    @Import(name="vmTemplate")
    private @Nullable Output vmTemplate;

    /**
     * @return VM template for sessionhosts configuration within hostpool.
     * 
     */
    public Optional> vmTemplate() {
        return Optional.ofNullable(this.vmTemplate);
    }

    private HostPoolArgs() {}

    private HostPoolArgs(HostPoolArgs $) {
        this.agentUpdate = $.agentUpdate;
        this.customRdpProperty = $.customRdpProperty;
        this.description = $.description;
        this.friendlyName = $.friendlyName;
        this.hostPoolName = $.hostPoolName;
        this.hostPoolType = $.hostPoolType;
        this.identity = $.identity;
        this.kind = $.kind;
        this.loadBalancerType = $.loadBalancerType;
        this.location = $.location;
        this.managedBy = $.managedBy;
        this.maxSessionLimit = $.maxSessionLimit;
        this.personalDesktopAssignmentType = $.personalDesktopAssignmentType;
        this.plan = $.plan;
        this.preferredAppGroupType = $.preferredAppGroupType;
        this.registrationInfo = $.registrationInfo;
        this.resourceGroupName = $.resourceGroupName;
        this.ring = $.ring;
        this.sku = $.sku;
        this.ssoClientId = $.ssoClientId;
        this.ssoClientSecretKeyVaultPath = $.ssoClientSecretKeyVaultPath;
        this.ssoSecretType = $.ssoSecretType;
        this.ssoadfsAuthority = $.ssoadfsAuthority;
        this.startVMOnConnect = $.startVMOnConnect;
        this.tags = $.tags;
        this.validationEnvironment = $.validationEnvironment;
        this.vmTemplate = $.vmTemplate;
    }

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

    public static final class Builder {
        private HostPoolArgs $;

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

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

        /**
         * @param agentUpdate The session host configuration for updating agent, monitoring agent, and stack component.
         * 
         * @return builder
         * 
         */
        public Builder agentUpdate(@Nullable Output agentUpdate) {
            $.agentUpdate = agentUpdate;
            return this;
        }

        /**
         * @param agentUpdate The session host configuration for updating agent, monitoring agent, and stack component.
         * 
         * @return builder
         * 
         */
        public Builder agentUpdate(AgentUpdatePropertiesArgs agentUpdate) {
            return agentUpdate(Output.of(agentUpdate));
        }

        /**
         * @param customRdpProperty Custom rdp property of HostPool.
         * 
         * @return builder
         * 
         */
        public Builder customRdpProperty(@Nullable Output customRdpProperty) {
            $.customRdpProperty = customRdpProperty;
            return this;
        }

        /**
         * @param customRdpProperty Custom rdp property of HostPool.
         * 
         * @return builder
         * 
         */
        public Builder customRdpProperty(String customRdpProperty) {
            return customRdpProperty(Output.of(customRdpProperty));
        }

        /**
         * @param description Description of HostPool.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description Description of HostPool.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param friendlyName Friendly name of HostPool.
         * 
         * @return builder
         * 
         */
        public Builder friendlyName(@Nullable Output friendlyName) {
            $.friendlyName = friendlyName;
            return this;
        }

        /**
         * @param friendlyName Friendly name of HostPool.
         * 
         * @return builder
         * 
         */
        public Builder friendlyName(String friendlyName) {
            return friendlyName(Output.of(friendlyName));
        }

        /**
         * @param hostPoolName The name of the host pool within the specified resource group
         * 
         * @return builder
         * 
         */
        public Builder hostPoolName(@Nullable Output hostPoolName) {
            $.hostPoolName = hostPoolName;
            return this;
        }

        /**
         * @param hostPoolName The name of the host pool within the specified resource group
         * 
         * @return builder
         * 
         */
        public Builder hostPoolName(String hostPoolName) {
            return hostPoolName(Output.of(hostPoolName));
        }

        /**
         * @param hostPoolType HostPool type for desktop.
         * 
         * @return builder
         * 
         */
        public Builder hostPoolType(Output> hostPoolType) {
            $.hostPoolType = hostPoolType;
            return this;
        }

        /**
         * @param hostPoolType HostPool type for desktop.
         * 
         * @return builder
         * 
         */
        public Builder hostPoolType(Either hostPoolType) {
            return hostPoolType(Output.of(hostPoolType));
        }

        /**
         * @param hostPoolType HostPool type for desktop.
         * 
         * @return builder
         * 
         */
        public Builder hostPoolType(String hostPoolType) {
            return hostPoolType(Either.ofLeft(hostPoolType));
        }

        /**
         * @param hostPoolType HostPool type for desktop.
         * 
         * @return builder
         * 
         */
        public Builder hostPoolType(HostPoolType hostPoolType) {
            return hostPoolType(Either.ofRight(hostPoolType));
        }

        public Builder identity(@Nullable Output identity) {
            $.identity = identity;
            return this;
        }

        public Builder identity(ResourceModelWithAllowedPropertySetIdentityArgs identity) {
            return identity(Output.of(identity));
        }

        /**
         * @param kind Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type.  If supported, the resource provider must validate and persist this value.
         * 
         * @return builder
         * 
         */
        public Builder kind(@Nullable Output kind) {
            $.kind = kind;
            return this;
        }

        /**
         * @param kind Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type.  If supported, the resource provider must validate and persist this value.
         * 
         * @return builder
         * 
         */
        public Builder kind(String kind) {
            return kind(Output.of(kind));
        }

        /**
         * @param loadBalancerType The type of the load balancer.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerType(Output> loadBalancerType) {
            $.loadBalancerType = loadBalancerType;
            return this;
        }

        /**
         * @param loadBalancerType The type of the load balancer.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerType(Either loadBalancerType) {
            return loadBalancerType(Output.of(loadBalancerType));
        }

        /**
         * @param loadBalancerType The type of the load balancer.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerType(String loadBalancerType) {
            return loadBalancerType(Either.ofLeft(loadBalancerType));
        }

        /**
         * @param loadBalancerType The type of the load balancer.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerType(LoadBalancerType loadBalancerType) {
            return loadBalancerType(Either.ofRight(loadBalancerType));
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param managedBy The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.
         * 
         * @return builder
         * 
         */
        public Builder managedBy(@Nullable Output managedBy) {
            $.managedBy = managedBy;
            return this;
        }

        /**
         * @param managedBy The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource.
         * 
         * @return builder
         * 
         */
        public Builder managedBy(String managedBy) {
            return managedBy(Output.of(managedBy));
        }

        /**
         * @param maxSessionLimit The max session limit of HostPool.
         * 
         * @return builder
         * 
         */
        public Builder maxSessionLimit(@Nullable Output maxSessionLimit) {
            $.maxSessionLimit = maxSessionLimit;
            return this;
        }

        /**
         * @param maxSessionLimit The max session limit of HostPool.
         * 
         * @return builder
         * 
         */
        public Builder maxSessionLimit(Integer maxSessionLimit) {
            return maxSessionLimit(Output.of(maxSessionLimit));
        }

        /**
         * @param personalDesktopAssignmentType PersonalDesktopAssignment type for HostPool.
         * 
         * @return builder
         * 
         */
        public Builder personalDesktopAssignmentType(@Nullable Output> personalDesktopAssignmentType) {
            $.personalDesktopAssignmentType = personalDesktopAssignmentType;
            return this;
        }

        /**
         * @param personalDesktopAssignmentType PersonalDesktopAssignment type for HostPool.
         * 
         * @return builder
         * 
         */
        public Builder personalDesktopAssignmentType(Either personalDesktopAssignmentType) {
            return personalDesktopAssignmentType(Output.of(personalDesktopAssignmentType));
        }

        /**
         * @param personalDesktopAssignmentType PersonalDesktopAssignment type for HostPool.
         * 
         * @return builder
         * 
         */
        public Builder personalDesktopAssignmentType(String personalDesktopAssignmentType) {
            return personalDesktopAssignmentType(Either.ofLeft(personalDesktopAssignmentType));
        }

        /**
         * @param personalDesktopAssignmentType PersonalDesktopAssignment type for HostPool.
         * 
         * @return builder
         * 
         */
        public Builder personalDesktopAssignmentType(PersonalDesktopAssignmentType personalDesktopAssignmentType) {
            return personalDesktopAssignmentType(Either.ofRight(personalDesktopAssignmentType));
        }

        public Builder plan(@Nullable Output plan) {
            $.plan = plan;
            return this;
        }

        public Builder plan(ResourceModelWithAllowedPropertySetPlanArgs plan) {
            return plan(Output.of(plan));
        }

        /**
         * @param preferredAppGroupType The type of preferred application group type, default to Desktop Application Group
         * 
         * @return builder
         * 
         */
        public Builder preferredAppGroupType(Output> preferredAppGroupType) {
            $.preferredAppGroupType = preferredAppGroupType;
            return this;
        }

        /**
         * @param preferredAppGroupType The type of preferred application group type, default to Desktop Application Group
         * 
         * @return builder
         * 
         */
        public Builder preferredAppGroupType(Either preferredAppGroupType) {
            return preferredAppGroupType(Output.of(preferredAppGroupType));
        }

        /**
         * @param preferredAppGroupType The type of preferred application group type, default to Desktop Application Group
         * 
         * @return builder
         * 
         */
        public Builder preferredAppGroupType(String preferredAppGroupType) {
            return preferredAppGroupType(Either.ofLeft(preferredAppGroupType));
        }

        /**
         * @param preferredAppGroupType The type of preferred application group type, default to Desktop Application Group
         * 
         * @return builder
         * 
         */
        public Builder preferredAppGroupType(PreferredAppGroupType preferredAppGroupType) {
            return preferredAppGroupType(Either.ofRight(preferredAppGroupType));
        }

        /**
         * @param registrationInfo The registration info of HostPool.
         * 
         * @return builder
         * 
         */
        public Builder registrationInfo(@Nullable Output registrationInfo) {
            $.registrationInfo = registrationInfo;
            return this;
        }

        /**
         * @param registrationInfo The registration info of HostPool.
         * 
         * @return builder
         * 
         */
        public Builder registrationInfo(RegistrationInfoArgs registrationInfo) {
            return registrationInfo(Output.of(registrationInfo));
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param ring The ring number of HostPool.
         * 
         * @return builder
         * 
         */
        public Builder ring(@Nullable Output ring) {
            $.ring = ring;
            return this;
        }

        /**
         * @param ring The ring number of HostPool.
         * 
         * @return builder
         * 
         */
        public Builder ring(Integer ring) {
            return ring(Output.of(ring));
        }

        public Builder sku(@Nullable Output sku) {
            $.sku = sku;
            return this;
        }

        public Builder sku(ResourceModelWithAllowedPropertySetSkuArgs sku) {
            return sku(Output.of(sku));
        }

        /**
         * @param ssoClientId ClientId for the registered Relying Party used to issue WVD SSO certificates.
         * 
         * @return builder
         * 
         */
        public Builder ssoClientId(@Nullable Output ssoClientId) {
            $.ssoClientId = ssoClientId;
            return this;
        }

        /**
         * @param ssoClientId ClientId for the registered Relying Party used to issue WVD SSO certificates.
         * 
         * @return builder
         * 
         */
        public Builder ssoClientId(String ssoClientId) {
            return ssoClientId(Output.of(ssoClientId));
        }

        /**
         * @param ssoClientSecretKeyVaultPath Path to Azure KeyVault storing the secret used for communication to ADFS.
         * 
         * @return builder
         * 
         */
        public Builder ssoClientSecretKeyVaultPath(@Nullable Output ssoClientSecretKeyVaultPath) {
            $.ssoClientSecretKeyVaultPath = ssoClientSecretKeyVaultPath;
            return this;
        }

        /**
         * @param ssoClientSecretKeyVaultPath Path to Azure KeyVault storing the secret used for communication to ADFS.
         * 
         * @return builder
         * 
         */
        public Builder ssoClientSecretKeyVaultPath(String ssoClientSecretKeyVaultPath) {
            return ssoClientSecretKeyVaultPath(Output.of(ssoClientSecretKeyVaultPath));
        }

        /**
         * @param ssoSecretType The type of single sign on Secret Type.
         * 
         * @return builder
         * 
         */
        public Builder ssoSecretType(@Nullable Output> ssoSecretType) {
            $.ssoSecretType = ssoSecretType;
            return this;
        }

        /**
         * @param ssoSecretType The type of single sign on Secret Type.
         * 
         * @return builder
         * 
         */
        public Builder ssoSecretType(Either ssoSecretType) {
            return ssoSecretType(Output.of(ssoSecretType));
        }

        /**
         * @param ssoSecretType The type of single sign on Secret Type.
         * 
         * @return builder
         * 
         */
        public Builder ssoSecretType(String ssoSecretType) {
            return ssoSecretType(Either.ofLeft(ssoSecretType));
        }

        /**
         * @param ssoSecretType The type of single sign on Secret Type.
         * 
         * @return builder
         * 
         */
        public Builder ssoSecretType(SSOSecretType ssoSecretType) {
            return ssoSecretType(Either.ofRight(ssoSecretType));
        }

        /**
         * @param ssoadfsAuthority URL to customer ADFS server for signing WVD SSO certificates.
         * 
         * @return builder
         * 
         */
        public Builder ssoadfsAuthority(@Nullable Output ssoadfsAuthority) {
            $.ssoadfsAuthority = ssoadfsAuthority;
            return this;
        }

        /**
         * @param ssoadfsAuthority URL to customer ADFS server for signing WVD SSO certificates.
         * 
         * @return builder
         * 
         */
        public Builder ssoadfsAuthority(String ssoadfsAuthority) {
            return ssoadfsAuthority(Output.of(ssoadfsAuthority));
        }

        /**
         * @param startVMOnConnect The flag to turn on/off StartVMOnConnect feature.
         * 
         * @return builder
         * 
         */
        public Builder startVMOnConnect(@Nullable Output startVMOnConnect) {
            $.startVMOnConnect = startVMOnConnect;
            return this;
        }

        /**
         * @param startVMOnConnect The flag to turn on/off StartVMOnConnect feature.
         * 
         * @return builder
         * 
         */
        public Builder startVMOnConnect(Boolean startVMOnConnect) {
            return startVMOnConnect(Output.of(startVMOnConnect));
        }

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

        /**
         * @param validationEnvironment Is validation environment.
         * 
         * @return builder
         * 
         */
        public Builder validationEnvironment(Boolean validationEnvironment) {
            return validationEnvironment(Output.of(validationEnvironment));
        }

        /**
         * @param vmTemplate VM template for sessionhosts configuration within hostpool.
         * 
         * @return builder
         * 
         */
        public Builder vmTemplate(@Nullable Output vmTemplate) {
            $.vmTemplate = vmTemplate;
            return this;
        }

        /**
         * @param vmTemplate VM template for sessionhosts configuration within hostpool.
         * 
         * @return builder
         * 
         */
        public Builder vmTemplate(String vmTemplate) {
            return vmTemplate(Output.of(vmTemplate));
        }

        public HostPoolArgs build() {
            if ($.hostPoolType == null) {
                throw new MissingRequiredPropertyException("HostPoolArgs", "hostPoolType");
            }
            if ($.loadBalancerType == null) {
                throw new MissingRequiredPropertyException("HostPoolArgs", "loadBalancerType");
            }
            if ($.preferredAppGroupType == null) {
                throw new MissingRequiredPropertyException("HostPoolArgs", "preferredAppGroupType");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("HostPoolArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy