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

com.pulumi.azurenative.compute.GalleryImageArgs 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.Architecture;
import com.pulumi.azurenative.compute.enums.HyperVGeneration;
import com.pulumi.azurenative.compute.enums.OperatingSystemStateTypes;
import com.pulumi.azurenative.compute.enums.OperatingSystemTypes;
import com.pulumi.azurenative.compute.inputs.DisallowedArgs;
import com.pulumi.azurenative.compute.inputs.GalleryImageFeatureArgs;
import com.pulumi.azurenative.compute.inputs.GalleryImageIdentifierArgs;
import com.pulumi.azurenative.compute.inputs.ImagePurchasePlanArgs;
import com.pulumi.azurenative.compute.inputs.RecommendedMachineConfigurationArgs;
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.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final GalleryImageArgs Empty = new GalleryImageArgs();

    /**
     * The architecture of the image. Applicable to OS disks only.
     * 
     */
    @Import(name="architecture")
    private @Nullable Output> architecture;

    /**
     * @return The architecture of the image. Applicable to OS disks only.
     * 
     */
    public Optional>> architecture() {
        return Optional.ofNullable(this.architecture);
    }

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

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

    /**
     * Describes the disallowed disk types.
     * 
     */
    @Import(name="disallowed")
    private @Nullable Output disallowed;

    /**
     * @return Describes the disallowed disk types.
     * 
     */
    public Optional> disallowed() {
        return Optional.ofNullable(this.disallowed);
    }

    /**
     * The end of life date of the gallery image 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 image 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 image definition.
     * 
     */
    @Import(name="eula")
    private @Nullable Output eula;

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

    /**
     * A list of gallery image features.
     * 
     */
    @Import(name="features")
    private @Nullable Output> features;

    /**
     * @return A list of gallery image features.
     * 
     */
    public Optional>> features() {
        return Optional.ofNullable(this.features);
    }

    /**
     * The name of the gallery image 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="galleryImageName")
    private @Nullable Output galleryImageName;

    /**
     * @return The name of the gallery image 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> galleryImageName() {
        return Optional.ofNullable(this.galleryImageName);
    }

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

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

    /**
     * The hypervisor generation of the Virtual Machine. Applicable to OS disks only.
     * 
     */
    @Import(name="hyperVGeneration")
    private @Nullable Output> hyperVGeneration;

    /**
     * @return The hypervisor generation of the Virtual Machine. Applicable to OS disks only.
     * 
     */
    public Optional>> hyperVGeneration() {
        return Optional.ofNullable(this.hyperVGeneration);
    }

    /**
     * This is the gallery image definition identifier.
     * 
     */
    @Import(name="identifier", required=true)
    private Output identifier;

    /**
     * @return This is the gallery image definition identifier.
     * 
     */
    public Output identifier() {
        return this.identifier;
    }

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

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

    /**
     * This property allows the user to specify whether the virtual machines created under this image are 'Generalized' or 'Specialized'.
     * 
     */
    @Import(name="osState", required=true)
    private Output osState;

    /**
     * @return This property allows the user to specify whether the virtual machines created under this image are 'Generalized' or 'Specialized'.
     * 
     */
    public Output osState() {
        return this.osState;
    }

    /**
     * This property allows you to specify the type of the OS that is included in the disk when creating a VM from a managed image. <br><br> Possible values are: <br><br> **Windows** <br><br> **Linux**
     * 
     */
    @Import(name="osType", required=true)
    private Output osType;

    /**
     * @return This property allows you to specify the type of the OS that is included in the disk when creating a VM from a managed image. <br><br> Possible values are: <br><br> **Windows** <br><br> **Linux**
     * 
     */
    public Output osType() {
        return this.osType;
    }

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

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

    /**
     * Describes the gallery image definition purchase plan. This is used by marketplace images.
     * 
     */
    @Import(name="purchasePlan")
    private @Nullable Output purchasePlan;

    /**
     * @return Describes the gallery image definition purchase plan. This is used by marketplace images.
     * 
     */
    public Optional> purchasePlan() {
        return Optional.ofNullable(this.purchasePlan);
    }

    /**
     * The properties describe the recommended machine configuration for this Image Definition. These properties are updatable.
     * 
     */
    @Import(name="recommended")
    private @Nullable Output recommended;

    /**
     * @return The properties describe the recommended machine configuration for this Image Definition. These properties are updatable.
     * 
     */
    public Optional> recommended() {
        return Optional.ofNullable(this.recommended);
    }

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

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

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

    private GalleryImageArgs() {}

    private GalleryImageArgs(GalleryImageArgs $) {
        this.architecture = $.architecture;
        this.description = $.description;
        this.disallowed = $.disallowed;
        this.endOfLifeDate = $.endOfLifeDate;
        this.eula = $.eula;
        this.features = $.features;
        this.galleryImageName = $.galleryImageName;
        this.galleryName = $.galleryName;
        this.hyperVGeneration = $.hyperVGeneration;
        this.identifier = $.identifier;
        this.location = $.location;
        this.osState = $.osState;
        this.osType = $.osType;
        this.privacyStatementUri = $.privacyStatementUri;
        this.purchasePlan = $.purchasePlan;
        this.recommended = $.recommended;
        this.releaseNoteUri = $.releaseNoteUri;
        this.resourceGroupName = $.resourceGroupName;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private GalleryImageArgs $;

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

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

        /**
         * @param architecture The architecture of the image. Applicable to OS disks only.
         * 
         * @return builder
         * 
         */
        public Builder architecture(@Nullable Output> architecture) {
            $.architecture = architecture;
            return this;
        }

        /**
         * @param architecture The architecture of the image. Applicable to OS disks only.
         * 
         * @return builder
         * 
         */
        public Builder architecture(Either architecture) {
            return architecture(Output.of(architecture));
        }

        /**
         * @param architecture The architecture of the image. Applicable to OS disks only.
         * 
         * @return builder
         * 
         */
        public Builder architecture(String architecture) {
            return architecture(Either.ofLeft(architecture));
        }

        /**
         * @param architecture The architecture of the image. Applicable to OS disks only.
         * 
         * @return builder
         * 
         */
        public Builder architecture(Architecture architecture) {
            return architecture(Either.ofRight(architecture));
        }

        /**
         * @param description The description of this gallery image 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 image definition resource. This property is updatable.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param disallowed Describes the disallowed disk types.
         * 
         * @return builder
         * 
         */
        public Builder disallowed(@Nullable Output disallowed) {
            $.disallowed = disallowed;
            return this;
        }

        /**
         * @param disallowed Describes the disallowed disk types.
         * 
         * @return builder
         * 
         */
        public Builder disallowed(DisallowedArgs disallowed) {
            return disallowed(Output.of(disallowed));
        }

        /**
         * @param endOfLifeDate The end of life date of the gallery image 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 image 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 image definition.
         * 
         * @return builder
         * 
         */
        public Builder eula(@Nullable Output eula) {
            $.eula = eula;
            return this;
        }

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

        /**
         * @param features A list of gallery image features.
         * 
         * @return builder
         * 
         */
        public Builder features(@Nullable Output> features) {
            $.features = features;
            return this;
        }

        /**
         * @param features A list of gallery image features.
         * 
         * @return builder
         * 
         */
        public Builder features(List features) {
            return features(Output.of(features));
        }

        /**
         * @param features A list of gallery image features.
         * 
         * @return builder
         * 
         */
        public Builder features(GalleryImageFeatureArgs... features) {
            return features(List.of(features));
        }

        /**
         * @param galleryImageName The name of the gallery image 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 galleryImageName(@Nullable Output galleryImageName) {
            $.galleryImageName = galleryImageName;
            return this;
        }

        /**
         * @param galleryImageName The name of the gallery image 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 galleryImageName(String galleryImageName) {
            return galleryImageName(Output.of(galleryImageName));
        }

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

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

        /**
         * @param hyperVGeneration The hypervisor generation of the Virtual Machine. Applicable to OS disks only.
         * 
         * @return builder
         * 
         */
        public Builder hyperVGeneration(@Nullable Output> hyperVGeneration) {
            $.hyperVGeneration = hyperVGeneration;
            return this;
        }

        /**
         * @param hyperVGeneration The hypervisor generation of the Virtual Machine. Applicable to OS disks only.
         * 
         * @return builder
         * 
         */
        public Builder hyperVGeneration(Either hyperVGeneration) {
            return hyperVGeneration(Output.of(hyperVGeneration));
        }

        /**
         * @param hyperVGeneration The hypervisor generation of the Virtual Machine. Applicable to OS disks only.
         * 
         * @return builder
         * 
         */
        public Builder hyperVGeneration(String hyperVGeneration) {
            return hyperVGeneration(Either.ofLeft(hyperVGeneration));
        }

        /**
         * @param hyperVGeneration The hypervisor generation of the Virtual Machine. Applicable to OS disks only.
         * 
         * @return builder
         * 
         */
        public Builder hyperVGeneration(HyperVGeneration hyperVGeneration) {
            return hyperVGeneration(Either.ofRight(hyperVGeneration));
        }

        /**
         * @param identifier This is the gallery image definition identifier.
         * 
         * @return builder
         * 
         */
        public Builder identifier(Output identifier) {
            $.identifier = identifier;
            return this;
        }

        /**
         * @param identifier This is the gallery image definition identifier.
         * 
         * @return builder
         * 
         */
        public Builder identifier(GalleryImageIdentifierArgs identifier) {
            return identifier(Output.of(identifier));
        }

        /**
         * @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 osState This property allows the user to specify whether the virtual machines created under this image are 'Generalized' or 'Specialized'.
         * 
         * @return builder
         * 
         */
        public Builder osState(Output osState) {
            $.osState = osState;
            return this;
        }

        /**
         * @param osState This property allows the user to specify whether the virtual machines created under this image are 'Generalized' or 'Specialized'.
         * 
         * @return builder
         * 
         */
        public Builder osState(OperatingSystemStateTypes osState) {
            return osState(Output.of(osState));
        }

        /**
         * @param osType This property allows you to specify the type of the OS that is included in the disk when creating a VM from a managed image. <br><br> Possible values are: <br><br> **Windows** <br><br> **Linux**
         * 
         * @return builder
         * 
         */
        public Builder osType(Output osType) {
            $.osType = osType;
            return this;
        }

        /**
         * @param osType This property allows you to specify the type of the OS that is included in the disk when creating a VM from a managed image. <br><br> Possible values are: <br><br> **Windows** <br><br> **Linux**
         * 
         * @return builder
         * 
         */
        public Builder osType(OperatingSystemTypes osType) {
            return osType(Output.of(osType));
        }

        /**
         * @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 purchasePlan Describes the gallery image definition purchase plan. This is used by marketplace images.
         * 
         * @return builder
         * 
         */
        public Builder purchasePlan(@Nullable Output purchasePlan) {
            $.purchasePlan = purchasePlan;
            return this;
        }

        /**
         * @param purchasePlan Describes the gallery image definition purchase plan. This is used by marketplace images.
         * 
         * @return builder
         * 
         */
        public Builder purchasePlan(ImagePurchasePlanArgs purchasePlan) {
            return purchasePlan(Output.of(purchasePlan));
        }

        /**
         * @param recommended The properties describe the recommended machine configuration for this Image Definition. These properties are updatable.
         * 
         * @return builder
         * 
         */
        public Builder recommended(@Nullable Output recommended) {
            $.recommended = recommended;
            return this;
        }

        /**
         * @param recommended The properties describe the recommended machine configuration for this Image Definition. These properties are updatable.
         * 
         * @return builder
         * 
         */
        public Builder recommended(RecommendedMachineConfigurationArgs recommended) {
            return recommended(Output.of(recommended));
        }

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

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy