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

com.pulumi.azurenative.containerinstance.ContainerGroupProfileArgs 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.containerinstance;

import com.pulumi.azurenative.containerinstance.enums.ContainerGroupPriority;
import com.pulumi.azurenative.containerinstance.enums.ContainerGroupRestartPolicy;
import com.pulumi.azurenative.containerinstance.enums.ContainerGroupSku;
import com.pulumi.azurenative.containerinstance.enums.OperatingSystemTypes;
import com.pulumi.azurenative.containerinstance.inputs.ConfidentialComputePropertiesArgs;
import com.pulumi.azurenative.containerinstance.inputs.ContainerArgs;
import com.pulumi.azurenative.containerinstance.inputs.ContainerGroupDiagnosticsArgs;
import com.pulumi.azurenative.containerinstance.inputs.DeploymentExtensionSpecArgs;
import com.pulumi.azurenative.containerinstance.inputs.EncryptionPropertiesArgs;
import com.pulumi.azurenative.containerinstance.inputs.ImageRegistryCredentialArgs;
import com.pulumi.azurenative.containerinstance.inputs.InitContainerDefinitionArgs;
import com.pulumi.azurenative.containerinstance.inputs.IpAddressArgs;
import com.pulumi.azurenative.containerinstance.inputs.VolumeArgs;
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 ContainerGroupProfileArgs extends com.pulumi.resources.ResourceArgs {

    public static final ContainerGroupProfileArgs Empty = new ContainerGroupProfileArgs();

    /**
     * The properties for confidential container group
     * 
     */
    @Import(name="confidentialComputeProperties")
    private @Nullable Output confidentialComputeProperties;

    /**
     * @return The properties for confidential container group
     * 
     */
    public Optional> confidentialComputeProperties() {
        return Optional.ofNullable(this.confidentialComputeProperties);
    }

    /**
     * The name of the container group profile.
     * 
     */
    @Import(name="containerGroupProfileName")
    private @Nullable Output containerGroupProfileName;

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

    /**
     * The containers within the container group.
     * 
     */
    @Import(name="containers", required=true)
    private Output> containers;

    /**
     * @return The containers within the container group.
     * 
     */
    public Output> containers() {
        return this.containers;
    }

    /**
     * The diagnostic information for a container group.
     * 
     */
    @Import(name="diagnostics")
    private @Nullable Output diagnostics;

    /**
     * @return The diagnostic information for a container group.
     * 
     */
    public Optional> diagnostics() {
        return Optional.ofNullable(this.diagnostics);
    }

    /**
     * The encryption properties for a container group.
     * 
     */
    @Import(name="encryptionProperties")
    private @Nullable Output encryptionProperties;

    /**
     * @return The encryption properties for a container group.
     * 
     */
    public Optional> encryptionProperties() {
        return Optional.ofNullable(this.encryptionProperties);
    }

    /**
     * extensions used by virtual kubelet
     * 
     */
    @Import(name="extensions")
    private @Nullable Output> extensions;

    /**
     * @return extensions used by virtual kubelet
     * 
     */
    public Optional>> extensions() {
        return Optional.ofNullable(this.extensions);
    }

    /**
     * The image registry credentials by which the container group is created from.
     * 
     */
    @Import(name="imageRegistryCredentials")
    private @Nullable Output> imageRegistryCredentials;

    /**
     * @return The image registry credentials by which the container group is created from.
     * 
     */
    public Optional>> imageRegistryCredentials() {
        return Optional.ofNullable(this.imageRegistryCredentials);
    }

    /**
     * The init containers for a container group.
     * 
     */
    @Import(name="initContainers")
    private @Nullable Output> initContainers;

    /**
     * @return The init containers for a container group.
     * 
     */
    public Optional>> initContainers() {
        return Optional.ofNullable(this.initContainers);
    }

    /**
     * The IP address type of the container group.
     * 
     */
    @Import(name="ipAddress")
    private @Nullable Output ipAddress;

    /**
     * @return The IP address type of the container group.
     * 
     */
    public Optional> ipAddress() {
        return Optional.ofNullable(this.ipAddress);
    }

    /**
     * The resource location.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

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

    /**
     * The operating system type required by the containers in the container group.
     * 
     */
    @Import(name="osType", required=true)
    private Output> osType;

    /**
     * @return The operating system type required by the containers in the container group.
     * 
     */
    public Output> osType() {
        return this.osType;
    }

    /**
     * The priority of the container group.
     * 
     */
    @Import(name="priority")
    private @Nullable Output> priority;

    /**
     * @return The priority of the container group.
     * 
     */
    public Optional>> priority() {
        return Optional.ofNullable(this.priority);
    }

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

    /**
     * Restart policy for all containers within the container group.
     * - `Always` Always restart
     * - `OnFailure` Restart on failure
     * - `Never` Never restart
     * 
     */
    @Import(name="restartPolicy")
    private @Nullable Output> restartPolicy;

    /**
     * @return Restart policy for all containers within the container group.
     * - `Always` Always restart
     * - `OnFailure` Restart on failure
     * - `Never` Never restart
     * 
     */
    public Optional>> restartPolicy() {
        return Optional.ofNullable(this.restartPolicy);
    }

    /**
     * The SKU for a container group.
     * 
     */
    @Import(name="sku")
    private @Nullable Output> sku;

    /**
     * @return The SKU for a container group.
     * 
     */
    public Optional>> sku() {
        return Optional.ofNullable(this.sku);
    }

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

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

    /**
     * The list of volumes that can be mounted by containers in this container group.
     * 
     */
    @Import(name="volumes")
    private @Nullable Output> volumes;

    /**
     * @return The list of volumes that can be mounted by containers in this container group.
     * 
     */
    public Optional>> volumes() {
        return Optional.ofNullable(this.volumes);
    }

    /**
     * The zones for the container group.
     * 
     */
    @Import(name="zones")
    private @Nullable Output> zones;

    /**
     * @return The zones for the container group.
     * 
     */
    public Optional>> zones() {
        return Optional.ofNullable(this.zones);
    }

    private ContainerGroupProfileArgs() {}

    private ContainerGroupProfileArgs(ContainerGroupProfileArgs $) {
        this.confidentialComputeProperties = $.confidentialComputeProperties;
        this.containerGroupProfileName = $.containerGroupProfileName;
        this.containers = $.containers;
        this.diagnostics = $.diagnostics;
        this.encryptionProperties = $.encryptionProperties;
        this.extensions = $.extensions;
        this.imageRegistryCredentials = $.imageRegistryCredentials;
        this.initContainers = $.initContainers;
        this.ipAddress = $.ipAddress;
        this.location = $.location;
        this.osType = $.osType;
        this.priority = $.priority;
        this.resourceGroupName = $.resourceGroupName;
        this.restartPolicy = $.restartPolicy;
        this.sku = $.sku;
        this.tags = $.tags;
        this.volumes = $.volumes;
        this.zones = $.zones;
    }

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

    public static final class Builder {
        private ContainerGroupProfileArgs $;

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

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

        /**
         * @param confidentialComputeProperties The properties for confidential container group
         * 
         * @return builder
         * 
         */
        public Builder confidentialComputeProperties(@Nullable Output confidentialComputeProperties) {
            $.confidentialComputeProperties = confidentialComputeProperties;
            return this;
        }

        /**
         * @param confidentialComputeProperties The properties for confidential container group
         * 
         * @return builder
         * 
         */
        public Builder confidentialComputeProperties(ConfidentialComputePropertiesArgs confidentialComputeProperties) {
            return confidentialComputeProperties(Output.of(confidentialComputeProperties));
        }

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

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

        /**
         * @param containers The containers within the container group.
         * 
         * @return builder
         * 
         */
        public Builder containers(Output> containers) {
            $.containers = containers;
            return this;
        }

        /**
         * @param containers The containers within the container group.
         * 
         * @return builder
         * 
         */
        public Builder containers(List containers) {
            return containers(Output.of(containers));
        }

        /**
         * @param containers The containers within the container group.
         * 
         * @return builder
         * 
         */
        public Builder containers(ContainerArgs... containers) {
            return containers(List.of(containers));
        }

        /**
         * @param diagnostics The diagnostic information for a container group.
         * 
         * @return builder
         * 
         */
        public Builder diagnostics(@Nullable Output diagnostics) {
            $.diagnostics = diagnostics;
            return this;
        }

        /**
         * @param diagnostics The diagnostic information for a container group.
         * 
         * @return builder
         * 
         */
        public Builder diagnostics(ContainerGroupDiagnosticsArgs diagnostics) {
            return diagnostics(Output.of(diagnostics));
        }

        /**
         * @param encryptionProperties The encryption properties for a container group.
         * 
         * @return builder
         * 
         */
        public Builder encryptionProperties(@Nullable Output encryptionProperties) {
            $.encryptionProperties = encryptionProperties;
            return this;
        }

        /**
         * @param encryptionProperties The encryption properties for a container group.
         * 
         * @return builder
         * 
         */
        public Builder encryptionProperties(EncryptionPropertiesArgs encryptionProperties) {
            return encryptionProperties(Output.of(encryptionProperties));
        }

        /**
         * @param extensions extensions used by virtual kubelet
         * 
         * @return builder
         * 
         */
        public Builder extensions(@Nullable Output> extensions) {
            $.extensions = extensions;
            return this;
        }

        /**
         * @param extensions extensions used by virtual kubelet
         * 
         * @return builder
         * 
         */
        public Builder extensions(List extensions) {
            return extensions(Output.of(extensions));
        }

        /**
         * @param extensions extensions used by virtual kubelet
         * 
         * @return builder
         * 
         */
        public Builder extensions(DeploymentExtensionSpecArgs... extensions) {
            return extensions(List.of(extensions));
        }

        /**
         * @param imageRegistryCredentials The image registry credentials by which the container group is created from.
         * 
         * @return builder
         * 
         */
        public Builder imageRegistryCredentials(@Nullable Output> imageRegistryCredentials) {
            $.imageRegistryCredentials = imageRegistryCredentials;
            return this;
        }

        /**
         * @param imageRegistryCredentials The image registry credentials by which the container group is created from.
         * 
         * @return builder
         * 
         */
        public Builder imageRegistryCredentials(List imageRegistryCredentials) {
            return imageRegistryCredentials(Output.of(imageRegistryCredentials));
        }

        /**
         * @param imageRegistryCredentials The image registry credentials by which the container group is created from.
         * 
         * @return builder
         * 
         */
        public Builder imageRegistryCredentials(ImageRegistryCredentialArgs... imageRegistryCredentials) {
            return imageRegistryCredentials(List.of(imageRegistryCredentials));
        }

        /**
         * @param initContainers The init containers for a container group.
         * 
         * @return builder
         * 
         */
        public Builder initContainers(@Nullable Output> initContainers) {
            $.initContainers = initContainers;
            return this;
        }

        /**
         * @param initContainers The init containers for a container group.
         * 
         * @return builder
         * 
         */
        public Builder initContainers(List initContainers) {
            return initContainers(Output.of(initContainers));
        }

        /**
         * @param initContainers The init containers for a container group.
         * 
         * @return builder
         * 
         */
        public Builder initContainers(InitContainerDefinitionArgs... initContainers) {
            return initContainers(List.of(initContainers));
        }

        /**
         * @param ipAddress The IP address type of the container group.
         * 
         * @return builder
         * 
         */
        public Builder ipAddress(@Nullable Output ipAddress) {
            $.ipAddress = ipAddress;
            return this;
        }

        /**
         * @param ipAddress The IP address type of the container group.
         * 
         * @return builder
         * 
         */
        public Builder ipAddress(IpAddressArgs ipAddress) {
            return ipAddress(Output.of(ipAddress));
        }

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

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

        /**
         * @param osType The operating system type required by the containers in the container group.
         * 
         * @return builder
         * 
         */
        public Builder osType(Output> osType) {
            $.osType = osType;
            return this;
        }

        /**
         * @param osType The operating system type required by the containers in the container group.
         * 
         * @return builder
         * 
         */
        public Builder osType(Either osType) {
            return osType(Output.of(osType));
        }

        /**
         * @param osType The operating system type required by the containers in the container group.
         * 
         * @return builder
         * 
         */
        public Builder osType(String osType) {
            return osType(Either.ofLeft(osType));
        }

        /**
         * @param osType The operating system type required by the containers in the container group.
         * 
         * @return builder
         * 
         */
        public Builder osType(OperatingSystemTypes osType) {
            return osType(Either.ofRight(osType));
        }

        /**
         * @param priority The priority of the container group.
         * 
         * @return builder
         * 
         */
        public Builder priority(@Nullable Output> priority) {
            $.priority = priority;
            return this;
        }

        /**
         * @param priority The priority of the container group.
         * 
         * @return builder
         * 
         */
        public Builder priority(Either priority) {
            return priority(Output.of(priority));
        }

        /**
         * @param priority The priority of the container group.
         * 
         * @return builder
         * 
         */
        public Builder priority(String priority) {
            return priority(Either.ofLeft(priority));
        }

        /**
         * @param priority The priority of the container group.
         * 
         * @return builder
         * 
         */
        public Builder priority(ContainerGroupPriority priority) {
            return priority(Either.ofRight(priority));
        }

        /**
         * @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 restartPolicy Restart policy for all containers within the container group.
         * - `Always` Always restart
         * - `OnFailure` Restart on failure
         * - `Never` Never restart
         * 
         * @return builder
         * 
         */
        public Builder restartPolicy(@Nullable Output> restartPolicy) {
            $.restartPolicy = restartPolicy;
            return this;
        }

        /**
         * @param restartPolicy Restart policy for all containers within the container group.
         * - `Always` Always restart
         * - `OnFailure` Restart on failure
         * - `Never` Never restart
         * 
         * @return builder
         * 
         */
        public Builder restartPolicy(Either restartPolicy) {
            return restartPolicy(Output.of(restartPolicy));
        }

        /**
         * @param restartPolicy Restart policy for all containers within the container group.
         * - `Always` Always restart
         * - `OnFailure` Restart on failure
         * - `Never` Never restart
         * 
         * @return builder
         * 
         */
        public Builder restartPolicy(String restartPolicy) {
            return restartPolicy(Either.ofLeft(restartPolicy));
        }

        /**
         * @param restartPolicy Restart policy for all containers within the container group.
         * - `Always` Always restart
         * - `OnFailure` Restart on failure
         * - `Never` Never restart
         * 
         * @return builder
         * 
         */
        public Builder restartPolicy(ContainerGroupRestartPolicy restartPolicy) {
            return restartPolicy(Either.ofRight(restartPolicy));
        }

        /**
         * @param sku The SKU for a container group.
         * 
         * @return builder
         * 
         */
        public Builder sku(@Nullable Output> sku) {
            $.sku = sku;
            return this;
        }

        /**
         * @param sku The SKU for a container group.
         * 
         * @return builder
         * 
         */
        public Builder sku(Either sku) {
            return sku(Output.of(sku));
        }

        /**
         * @param sku The SKU for a container group.
         * 
         * @return builder
         * 
         */
        public Builder sku(String sku) {
            return sku(Either.ofLeft(sku));
        }

        /**
         * @param sku The SKU for a container group.
         * 
         * @return builder
         * 
         */
        public Builder sku(ContainerGroupSku sku) {
            return sku(Either.ofRight(sku));
        }

        /**
         * @param tags The resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags The resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param volumes The list of volumes that can be mounted by containers in this container group.
         * 
         * @return builder
         * 
         */
        public Builder volumes(@Nullable Output> volumes) {
            $.volumes = volumes;
            return this;
        }

        /**
         * @param volumes The list of volumes that can be mounted by containers in this container group.
         * 
         * @return builder
         * 
         */
        public Builder volumes(List volumes) {
            return volumes(Output.of(volumes));
        }

        /**
         * @param volumes The list of volumes that can be mounted by containers in this container group.
         * 
         * @return builder
         * 
         */
        public Builder volumes(VolumeArgs... volumes) {
            return volumes(List.of(volumes));
        }

        /**
         * @param zones The zones for the container group.
         * 
         * @return builder
         * 
         */
        public Builder zones(@Nullable Output> zones) {
            $.zones = zones;
            return this;
        }

        /**
         * @param zones The zones for the container group.
         * 
         * @return builder
         * 
         */
        public Builder zones(List zones) {
            return zones(Output.of(zones));
        }

        /**
         * @param zones The zones for the container group.
         * 
         * @return builder
         * 
         */
        public Builder zones(String... zones) {
            return zones(List.of(zones));
        }

        public ContainerGroupProfileArgs build() {
            if ($.containers == null) {
                throw new MissingRequiredPropertyException("ContainerGroupProfileArgs", "containers");
            }
            if ($.osType == null) {
                throw new MissingRequiredPropertyException("ContainerGroupProfileArgs", "osType");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("ContainerGroupProfileArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy