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

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

// *** 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.ApplicationGroupType;
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.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ApplicationGroupArgs Empty = new ApplicationGroupArgs();

    /**
     * The name of the application group
     * 
     */
    @Import(name="applicationGroupName")
    private @Nullable Output applicationGroupName;

    /**
     * @return The name of the application group
     * 
     */
    public Optional> applicationGroupName() {
        return Optional.ofNullable(this.applicationGroupName);
    }

    /**
     * Resource Type of ApplicationGroup.
     * 
     */
    @Import(name="applicationGroupType", required=true)
    private Output> applicationGroupType;

    /**
     * @return Resource Type of ApplicationGroup.
     * 
     */
    public Output> applicationGroupType() {
        return this.applicationGroupType;
    }

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

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

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

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

    /**
     * HostPool arm path of ApplicationGroup.
     * 
     */
    @Import(name="hostPoolArmPath", required=true)
    private Output hostPoolArmPath;

    /**
     * @return HostPool arm path of ApplicationGroup.
     * 
     */
    public Output hostPoolArmPath() {
        return this.hostPoolArmPath;
    }

    @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 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);
    }

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

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

    /**
     * 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;
    }

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

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

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

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

    private ApplicationGroupArgs() {}

    private ApplicationGroupArgs(ApplicationGroupArgs $) {
        this.applicationGroupName = $.applicationGroupName;
        this.applicationGroupType = $.applicationGroupType;
        this.description = $.description;
        this.friendlyName = $.friendlyName;
        this.hostPoolArmPath = $.hostPoolArmPath;
        this.identity = $.identity;
        this.kind = $.kind;
        this.location = $.location;
        this.managedBy = $.managedBy;
        this.plan = $.plan;
        this.resourceGroupName = $.resourceGroupName;
        this.sku = $.sku;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private ApplicationGroupArgs $;

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

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

        /**
         * @param applicationGroupName The name of the application group
         * 
         * @return builder
         * 
         */
        public Builder applicationGroupName(@Nullable Output applicationGroupName) {
            $.applicationGroupName = applicationGroupName;
            return this;
        }

        /**
         * @param applicationGroupName The name of the application group
         * 
         * @return builder
         * 
         */
        public Builder applicationGroupName(String applicationGroupName) {
            return applicationGroupName(Output.of(applicationGroupName));
        }

        /**
         * @param applicationGroupType Resource Type of ApplicationGroup.
         * 
         * @return builder
         * 
         */
        public Builder applicationGroupType(Output> applicationGroupType) {
            $.applicationGroupType = applicationGroupType;
            return this;
        }

        /**
         * @param applicationGroupType Resource Type of ApplicationGroup.
         * 
         * @return builder
         * 
         */
        public Builder applicationGroupType(Either applicationGroupType) {
            return applicationGroupType(Output.of(applicationGroupType));
        }

        /**
         * @param applicationGroupType Resource Type of ApplicationGroup.
         * 
         * @return builder
         * 
         */
        public Builder applicationGroupType(String applicationGroupType) {
            return applicationGroupType(Either.ofLeft(applicationGroupType));
        }

        /**
         * @param applicationGroupType Resource Type of ApplicationGroup.
         * 
         * @return builder
         * 
         */
        public Builder applicationGroupType(ApplicationGroupType applicationGroupType) {
            return applicationGroupType(Either.ofRight(applicationGroupType));
        }

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

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

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

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

        /**
         * @param hostPoolArmPath HostPool arm path of ApplicationGroup.
         * 
         * @return builder
         * 
         */
        public Builder hostPoolArmPath(Output hostPoolArmPath) {
            $.hostPoolArmPath = hostPoolArmPath;
            return this;
        }

        /**
         * @param hostPoolArmPath HostPool arm path of ApplicationGroup.
         * 
         * @return builder
         * 
         */
        public Builder hostPoolArmPath(String hostPoolArmPath) {
            return hostPoolArmPath(Output.of(hostPoolArmPath));
        }

        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 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));
        }

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

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

        /**
         * @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));
        }

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

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

        /**
         * @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));
        }

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

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy