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

com.pulumi.azurenative.compute.GalleryApplicationArgs 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.compute;

import com.pulumi.azurenative.compute.enums.OperatingSystemTypes;
import com.pulumi.azurenative.compute.inputs.GalleryApplicationCustomActionArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final GalleryApplicationArgs Empty = new GalleryApplicationArgs();

    /**
     * A list of custom actions that can be performed with all of the Gallery Application Versions within this Gallery Application.
     * 
     */
    @Import(name="customActions")
    private @Nullable Output> customActions;

    /**
     * @return A list of custom actions that can be performed with all of the Gallery Application Versions within this Gallery Application.
     * 
     */
    public Optional>> customActions() {
        return Optional.ofNullable(this.customActions);
    }

    /**
     * The description of this gallery Application Definition resource. This property is updatable.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return The description of this gallery Application Definition resource. This property is updatable.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * The end of life date of the gallery Application Definition. This property can be used for decommissioning purposes. This property is updatable.
     * 
     */
    @Import(name="endOfLifeDate")
    private @Nullable Output endOfLifeDate;

    /**
     * @return The end of life date of the gallery Application Definition. This property can be used for decommissioning purposes. This property is updatable.
     * 
     */
    public Optional> endOfLifeDate() {
        return Optional.ofNullable(this.endOfLifeDate);
    }

    /**
     * The Eula agreement for the gallery Application Definition.
     * 
     */
    @Import(name="eula")
    private @Nullable Output eula;

    /**
     * @return The Eula agreement for the gallery Application Definition.
     * 
     */
    public Optional> eula() {
        return Optional.ofNullable(this.eula);
    }

    /**
     * The name of the gallery Application Definition to be created or updated. The allowed characters are alphabets and numbers with dots, dashes, and periods allowed in the middle. The maximum length is 80 characters.
     * 
     */
    @Import(name="galleryApplicationName")
    private @Nullable Output galleryApplicationName;

    /**
     * @return The name of the gallery Application Definition to be created or updated. The allowed characters are alphabets and numbers with dots, dashes, and periods allowed in the middle. The maximum length is 80 characters.
     * 
     */
    public Optional> galleryApplicationName() {
        return Optional.ofNullable(this.galleryApplicationName);
    }

    /**
     * The name of the Shared Application Gallery in which the Application Definition is to be created.
     * 
     */
    @Import(name="galleryName", required=true)
    private Output galleryName;

    /**
     * @return The name of the Shared Application Gallery in which the Application Definition is to be created.
     * 
     */
    public Output galleryName() {
        return this.galleryName;
    }

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

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

    /**
     * The privacy statement uri.
     * 
     */
    @Import(name="privacyStatementUri")
    private @Nullable Output privacyStatementUri;

    /**
     * @return The privacy statement uri.
     * 
     */
    public Optional> privacyStatementUri() {
        return Optional.ofNullable(this.privacyStatementUri);
    }

    /**
     * The release note uri.
     * 
     */
    @Import(name="releaseNoteUri")
    private @Nullable Output releaseNoteUri;

    /**
     * @return The release note uri.
     * 
     */
    public Optional> releaseNoteUri() {
        return Optional.ofNullable(this.releaseNoteUri);
    }

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

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

    /**
     * This property allows you to specify the supported type of the OS that application is built for. <br><br> Possible values are: <br><br> **Windows** <br><br> **Linux**
     * 
     */
    @Import(name="supportedOSType", required=true)
    private Output supportedOSType;

    /**
     * @return This property allows you to specify the supported type of the OS that application is built for. <br><br> Possible values are: <br><br> **Windows** <br><br> **Linux**
     * 
     */
    public Output supportedOSType() {
        return this.supportedOSType;
    }

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

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

    private GalleryApplicationArgs() {}

    private GalleryApplicationArgs(GalleryApplicationArgs $) {
        this.customActions = $.customActions;
        this.description = $.description;
        this.endOfLifeDate = $.endOfLifeDate;
        this.eula = $.eula;
        this.galleryApplicationName = $.galleryApplicationName;
        this.galleryName = $.galleryName;
        this.location = $.location;
        this.privacyStatementUri = $.privacyStatementUri;
        this.releaseNoteUri = $.releaseNoteUri;
        this.resourceGroupName = $.resourceGroupName;
        this.supportedOSType = $.supportedOSType;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private GalleryApplicationArgs $;

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

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

        /**
         * @param customActions A list of custom actions that can be performed with all of the Gallery Application Versions within this Gallery Application.
         * 
         * @return builder
         * 
         */
        public Builder customActions(@Nullable Output> customActions) {
            $.customActions = customActions;
            return this;
        }

        /**
         * @param customActions A list of custom actions that can be performed with all of the Gallery Application Versions within this Gallery Application.
         * 
         * @return builder
         * 
         */
        public Builder customActions(List customActions) {
            return customActions(Output.of(customActions));
        }

        /**
         * @param customActions A list of custom actions that can be performed with all of the Gallery Application Versions within this Gallery Application.
         * 
         * @return builder
         * 
         */
        public Builder customActions(GalleryApplicationCustomActionArgs... customActions) {
            return customActions(List.of(customActions));
        }

        /**
         * @param description The description of this gallery Application Definition resource. This property is updatable.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description The description of this gallery Application Definition resource. This property is updatable.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param endOfLifeDate The end of life date of the gallery Application Definition. This property can be used for decommissioning purposes. This property is updatable.
         * 
         * @return builder
         * 
         */
        public Builder endOfLifeDate(@Nullable Output endOfLifeDate) {
            $.endOfLifeDate = endOfLifeDate;
            return this;
        }

        /**
         * @param endOfLifeDate The end of life date of the gallery Application Definition. This property can be used for decommissioning purposes. This property is updatable.
         * 
         * @return builder
         * 
         */
        public Builder endOfLifeDate(String endOfLifeDate) {
            return endOfLifeDate(Output.of(endOfLifeDate));
        }

        /**
         * @param eula The Eula agreement for the gallery Application Definition.
         * 
         * @return builder
         * 
         */
        public Builder eula(@Nullable Output eula) {
            $.eula = eula;
            return this;
        }

        /**
         * @param eula The Eula agreement for the gallery Application Definition.
         * 
         * @return builder
         * 
         */
        public Builder eula(String eula) {
            return eula(Output.of(eula));
        }

        /**
         * @param galleryApplicationName The name of the gallery Application Definition to be created or updated. The allowed characters are alphabets and numbers with dots, dashes, and periods allowed in the middle. The maximum length is 80 characters.
         * 
         * @return builder
         * 
         */
        public Builder galleryApplicationName(@Nullable Output galleryApplicationName) {
            $.galleryApplicationName = galleryApplicationName;
            return this;
        }

        /**
         * @param galleryApplicationName The name of the gallery Application Definition to be created or updated. The allowed characters are alphabets and numbers with dots, dashes, and periods allowed in the middle. The maximum length is 80 characters.
         * 
         * @return builder
         * 
         */
        public Builder galleryApplicationName(String galleryApplicationName) {
            return galleryApplicationName(Output.of(galleryApplicationName));
        }

        /**
         * @param galleryName The name of the Shared Application Gallery in which the Application Definition is to be created.
         * 
         * @return builder
         * 
         */
        public Builder galleryName(Output galleryName) {
            $.galleryName = galleryName;
            return this;
        }

        /**
         * @param galleryName The name of the Shared Application Gallery in which the Application Definition is to be created.
         * 
         * @return builder
         * 
         */
        public Builder galleryName(String galleryName) {
            return galleryName(Output.of(galleryName));
        }

        /**
         * @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 privacyStatementUri The privacy statement uri.
         * 
         * @return builder
         * 
         */
        public Builder privacyStatementUri(@Nullable Output privacyStatementUri) {
            $.privacyStatementUri = privacyStatementUri;
            return this;
        }

        /**
         * @param privacyStatementUri The privacy statement uri.
         * 
         * @return builder
         * 
         */
        public Builder privacyStatementUri(String privacyStatementUri) {
            return privacyStatementUri(Output.of(privacyStatementUri));
        }

        /**
         * @param releaseNoteUri The release note uri.
         * 
         * @return builder
         * 
         */
        public Builder releaseNoteUri(@Nullable Output releaseNoteUri) {
            $.releaseNoteUri = releaseNoteUri;
            return this;
        }

        /**
         * @param releaseNoteUri The release note uri.
         * 
         * @return builder
         * 
         */
        public Builder releaseNoteUri(String releaseNoteUri) {
            return releaseNoteUri(Output.of(releaseNoteUri));
        }

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

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

        /**
         * @param supportedOSType This property allows you to specify the supported type of the OS that application is built for. <br><br> Possible values are: <br><br> **Windows** <br><br> **Linux**
         * 
         * @return builder
         * 
         */
        public Builder supportedOSType(Output supportedOSType) {
            $.supportedOSType = supportedOSType;
            return this;
        }

        /**
         * @param supportedOSType This property allows you to specify the supported type of the OS that application is built for. <br><br> Possible values are: <br><br> **Windows** <br><br> **Linux**
         * 
         * @return builder
         * 
         */
        public Builder supportedOSType(OperatingSystemTypes supportedOSType) {
            return supportedOSType(Output.of(supportedOSType));
        }

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

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy