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

com.pulumi.googlenative.workstations.v1beta.inputs.GceInstanceArgs 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.googlenative.workstations.v1beta.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.googlenative.workstations.v1beta.inputs.AcceleratorArgs;
import com.pulumi.googlenative.workstations.v1beta.inputs.GceConfidentialInstanceConfigArgs;
import com.pulumi.googlenative.workstations.v1beta.inputs.GceShieldedInstanceConfigArgs;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * A runtime using a Compute Engine instance.
 * 
 */
public final class GceInstanceArgs extends com.pulumi.resources.ResourceArgs {

    public static final GceInstanceArgs Empty = new GceInstanceArgs();

    /**
     * A list of the type and count of accelerator cards attached to the instance.
     * 
     */
    @Import(name="accelerators")
    private @Nullable Output> accelerators;

    /**
     * @return A list of the type and count of accelerator cards attached to the instance.
     * 
     */
    public Optional>> accelerators() {
        return Optional.ofNullable(this.accelerators);
    }

    /**
     * Size of the boot disk in GB. Defaults to 50.
     * 
     */
    @Import(name="bootDiskSizeGb")
    private @Nullable Output bootDiskSizeGb;

    /**
     * @return Size of the boot disk in GB. Defaults to 50.
     * 
     */
    public Optional> bootDiskSizeGb() {
        return Optional.ofNullable(this.bootDiskSizeGb);
    }

    /**
     * A set of Compute Engine Confidential VM instance options.
     * 
     */
    @Import(name="confidentialInstanceConfig")
    private @Nullable Output confidentialInstanceConfig;

    /**
     * @return A set of Compute Engine Confidential VM instance options.
     * 
     */
    public Optional> confidentialInstanceConfig() {
        return Optional.ofNullable(this.confidentialInstanceConfig);
    }

    /**
     * Whether instances have no public IP address.
     * 
     */
    @Import(name="disablePublicIpAddresses")
    private @Nullable Output disablePublicIpAddresses;

    /**
     * @return Whether instances have no public IP address.
     * 
     */
    public Optional> disablePublicIpAddresses() {
        return Optional.ofNullable(this.disablePublicIpAddresses);
    }

    /**
     * The name of a Compute Engine machine type.
     * 
     */
    @Import(name="machineType")
    private @Nullable Output machineType;

    /**
     * @return The name of a Compute Engine machine type.
     * 
     */
    public Optional> machineType() {
        return Optional.ofNullable(this.machineType);
    }

    /**
     * Number of instances to pool for faster workstation startup.
     * 
     */
    @Import(name="poolSize")
    private @Nullable Output poolSize;

    /**
     * @return Number of instances to pool for faster workstation startup.
     * 
     */
    public Optional> poolSize() {
        return Optional.ofNullable(this.poolSize);
    }

    /**
     * Email address of the service account used on VM instances used to support this configuration. If not set, VMs run with a Google-managed service account. This service account must have permission to pull the specified container image; otherwise, the image must be publicly accessible.
     * 
     */
    @Import(name="serviceAccount")
    private @Nullable Output serviceAccount;

    /**
     * @return Email address of the service account used on VM instances used to support this configuration. If not set, VMs run with a Google-managed service account. This service account must have permission to pull the specified container image; otherwise, the image must be publicly accessible.
     * 
     */
    public Optional> serviceAccount() {
        return Optional.ofNullable(this.serviceAccount);
    }

    /**
     * A set of Compute Engine Shielded instance options.
     * 
     */
    @Import(name="shieldedInstanceConfig")
    private @Nullable Output shieldedInstanceConfig;

    /**
     * @return A set of Compute Engine Shielded instance options.
     * 
     */
    public Optional> shieldedInstanceConfig() {
        return Optional.ofNullable(this.shieldedInstanceConfig);
    }

    /**
     * Network tags to add to the Compute Engine machines backing the Workstations.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Network tags to add to the Compute Engine machines backing the Workstations.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    private GceInstanceArgs() {}

    private GceInstanceArgs(GceInstanceArgs $) {
        this.accelerators = $.accelerators;
        this.bootDiskSizeGb = $.bootDiskSizeGb;
        this.confidentialInstanceConfig = $.confidentialInstanceConfig;
        this.disablePublicIpAddresses = $.disablePublicIpAddresses;
        this.machineType = $.machineType;
        this.poolSize = $.poolSize;
        this.serviceAccount = $.serviceAccount;
        this.shieldedInstanceConfig = $.shieldedInstanceConfig;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private GceInstanceArgs $;

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

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

        /**
         * @param accelerators A list of the type and count of accelerator cards attached to the instance.
         * 
         * @return builder
         * 
         */
        public Builder accelerators(@Nullable Output> accelerators) {
            $.accelerators = accelerators;
            return this;
        }

        /**
         * @param accelerators A list of the type and count of accelerator cards attached to the instance.
         * 
         * @return builder
         * 
         */
        public Builder accelerators(List accelerators) {
            return accelerators(Output.of(accelerators));
        }

        /**
         * @param accelerators A list of the type and count of accelerator cards attached to the instance.
         * 
         * @return builder
         * 
         */
        public Builder accelerators(AcceleratorArgs... accelerators) {
            return accelerators(List.of(accelerators));
        }

        /**
         * @param bootDiskSizeGb Size of the boot disk in GB. Defaults to 50.
         * 
         * @return builder
         * 
         */
        public Builder bootDiskSizeGb(@Nullable Output bootDiskSizeGb) {
            $.bootDiskSizeGb = bootDiskSizeGb;
            return this;
        }

        /**
         * @param bootDiskSizeGb Size of the boot disk in GB. Defaults to 50.
         * 
         * @return builder
         * 
         */
        public Builder bootDiskSizeGb(Integer bootDiskSizeGb) {
            return bootDiskSizeGb(Output.of(bootDiskSizeGb));
        }

        /**
         * @param confidentialInstanceConfig A set of Compute Engine Confidential VM instance options.
         * 
         * @return builder
         * 
         */
        public Builder confidentialInstanceConfig(@Nullable Output confidentialInstanceConfig) {
            $.confidentialInstanceConfig = confidentialInstanceConfig;
            return this;
        }

        /**
         * @param confidentialInstanceConfig A set of Compute Engine Confidential VM instance options.
         * 
         * @return builder
         * 
         */
        public Builder confidentialInstanceConfig(GceConfidentialInstanceConfigArgs confidentialInstanceConfig) {
            return confidentialInstanceConfig(Output.of(confidentialInstanceConfig));
        }

        /**
         * @param disablePublicIpAddresses Whether instances have no public IP address.
         * 
         * @return builder
         * 
         */
        public Builder disablePublicIpAddresses(@Nullable Output disablePublicIpAddresses) {
            $.disablePublicIpAddresses = disablePublicIpAddresses;
            return this;
        }

        /**
         * @param disablePublicIpAddresses Whether instances have no public IP address.
         * 
         * @return builder
         * 
         */
        public Builder disablePublicIpAddresses(Boolean disablePublicIpAddresses) {
            return disablePublicIpAddresses(Output.of(disablePublicIpAddresses));
        }

        /**
         * @param machineType The name of a Compute Engine machine type.
         * 
         * @return builder
         * 
         */
        public Builder machineType(@Nullable Output machineType) {
            $.machineType = machineType;
            return this;
        }

        /**
         * @param machineType The name of a Compute Engine machine type.
         * 
         * @return builder
         * 
         */
        public Builder machineType(String machineType) {
            return machineType(Output.of(machineType));
        }

        /**
         * @param poolSize Number of instances to pool for faster workstation startup.
         * 
         * @return builder
         * 
         */
        public Builder poolSize(@Nullable Output poolSize) {
            $.poolSize = poolSize;
            return this;
        }

        /**
         * @param poolSize Number of instances to pool for faster workstation startup.
         * 
         * @return builder
         * 
         */
        public Builder poolSize(Integer poolSize) {
            return poolSize(Output.of(poolSize));
        }

        /**
         * @param serviceAccount Email address of the service account used on VM instances used to support this configuration. If not set, VMs run with a Google-managed service account. This service account must have permission to pull the specified container image; otherwise, the image must be publicly accessible.
         * 
         * @return builder
         * 
         */
        public Builder serviceAccount(@Nullable Output serviceAccount) {
            $.serviceAccount = serviceAccount;
            return this;
        }

        /**
         * @param serviceAccount Email address of the service account used on VM instances used to support this configuration. If not set, VMs run with a Google-managed service account. This service account must have permission to pull the specified container image; otherwise, the image must be publicly accessible.
         * 
         * @return builder
         * 
         */
        public Builder serviceAccount(String serviceAccount) {
            return serviceAccount(Output.of(serviceAccount));
        }

        /**
         * @param shieldedInstanceConfig A set of Compute Engine Shielded instance options.
         * 
         * @return builder
         * 
         */
        public Builder shieldedInstanceConfig(@Nullable Output shieldedInstanceConfig) {
            $.shieldedInstanceConfig = shieldedInstanceConfig;
            return this;
        }

        /**
         * @param shieldedInstanceConfig A set of Compute Engine Shielded instance options.
         * 
         * @return builder
         * 
         */
        public Builder shieldedInstanceConfig(GceShieldedInstanceConfigArgs shieldedInstanceConfig) {
            return shieldedInstanceConfig(Output.of(shieldedInstanceConfig));
        }

        /**
         * @param tags Network tags to add to the Compute Engine machines backing the Workstations.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Network tags to add to the Compute Engine machines backing the Workstations.
         * 
         * @return builder
         * 
         */
        public Builder tags(List tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param tags Network tags to add to the Compute Engine machines backing the Workstations.
         * 
         * @return builder
         * 
         */
        public Builder tags(String... tags) {
            return tags(List.of(tags));
        }

        public GceInstanceArgs build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy