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

com.pulumi.azurenative.desktopvirtualization.AppAttachPackageArgs 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.inputs.AppAttachPackagePropertiesArgs;
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.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 AppAttachPackageArgs extends com.pulumi.resources.ResourceArgs {

    public static final AppAttachPackageArgs Empty = new AppAttachPackageArgs();

    /**
     * The name of the App Attach package arm object
     * 
     */
    @Import(name="appAttachPackageName")
    private @Nullable Output appAttachPackageName;

    /**
     * @return The name of the App Attach package arm object
     * 
     */
    public Optional> appAttachPackageName() {
        return Optional.ofNullable(this.appAttachPackageName);
    }

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

    /**
     * Detailed properties for App Attach Package
     * 
     */
    @Import(name="properties", required=true)
    private Output properties;

    /**
     * @return Detailed properties for App Attach Package
     * 
     */
    public Output properties() {
        return this.properties;
    }

    /**
     * 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 AppAttachPackageArgs() {}

    private AppAttachPackageArgs(AppAttachPackageArgs $) {
        this.appAttachPackageName = $.appAttachPackageName;
        this.identity = $.identity;
        this.kind = $.kind;
        this.location = $.location;
        this.managedBy = $.managedBy;
        this.plan = $.plan;
        this.properties = $.properties;
        this.resourceGroupName = $.resourceGroupName;
        this.sku = $.sku;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private AppAttachPackageArgs $;

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

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

        /**
         * @param appAttachPackageName The name of the App Attach package arm object
         * 
         * @return builder
         * 
         */
        public Builder appAttachPackageName(@Nullable Output appAttachPackageName) {
            $.appAttachPackageName = appAttachPackageName;
            return this;
        }

        /**
         * @param appAttachPackageName The name of the App Attach package arm object
         * 
         * @return builder
         * 
         */
        public Builder appAttachPackageName(String appAttachPackageName) {
            return appAttachPackageName(Output.of(appAttachPackageName));
        }

        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 properties Detailed properties for App Attach Package
         * 
         * @return builder
         * 
         */
        public Builder properties(Output properties) {
            $.properties = properties;
            return this;
        }

        /**
         * @param properties Detailed properties for App Attach Package
         * 
         * @return builder
         * 
         */
        public Builder properties(AppAttachPackagePropertiesArgs properties) {
            return properties(Output.of(properties));
        }

        /**
         * @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 AppAttachPackageArgs build() {
            if ($.properties == null) {
                throw new MissingRequiredPropertyException("AppAttachPackageArgs", "properties");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("AppAttachPackageArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy