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

com.pulumi.googlenative.vmmigration.v1.inputs.ComputeEngineTargetDefaultsArgs 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.vmmigration.v1.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.googlenative.vmmigration.v1.enums.ComputeEngineTargetDefaultsDiskType;
import com.pulumi.googlenative.vmmigration.v1.enums.ComputeEngineTargetDefaultsLicenseType;
import com.pulumi.googlenative.vmmigration.v1.inputs.ComputeSchedulingArgs;
import com.pulumi.googlenative.vmmigration.v1.inputs.NetworkInterfaceArgs;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * ComputeEngineTargetDefaults is a collection of details for creating a VM in a target Compute Engine project.
 * 
 */
public final class ComputeEngineTargetDefaultsArgs extends com.pulumi.resources.ResourceArgs {

    public static final ComputeEngineTargetDefaultsArgs Empty = new ComputeEngineTargetDefaultsArgs();

    /**
     * Additional licenses to assign to the VM.
     * 
     */
    @Import(name="additionalLicenses")
    private @Nullable Output> additionalLicenses;

    /**
     * @return Additional licenses to assign to the VM.
     * 
     */
    public Optional>> additionalLicenses() {
        return Optional.ofNullable(this.additionalLicenses);
    }

    /**
     * Compute instance scheduling information (if empty default is used).
     * 
     */
    @Import(name="computeScheduling")
    private @Nullable Output computeScheduling;

    /**
     * @return Compute instance scheduling information (if empty default is used).
     * 
     */
    public Optional> computeScheduling() {
        return Optional.ofNullable(this.computeScheduling);
    }

    /**
     * The disk type to use in the VM.
     * 
     */
    @Import(name="diskType")
    private @Nullable Output diskType;

    /**
     * @return The disk type to use in the VM.
     * 
     */
    public Optional> diskType() {
        return Optional.ofNullable(this.diskType);
    }

    /**
     * The hostname to assign to the VM.
     * 
     */
    @Import(name="hostname")
    private @Nullable Output hostname;

    /**
     * @return The hostname to assign to the VM.
     * 
     */
    public Optional> hostname() {
        return Optional.ofNullable(this.hostname);
    }

    /**
     * A map of labels to associate with the VM.
     * 
     */
    @Import(name="labels")
    private @Nullable Output> labels;

    /**
     * @return A map of labels to associate with the VM.
     * 
     */
    public Optional>> labels() {
        return Optional.ofNullable(this.labels);
    }

    /**
     * The license type to use in OS adaptation.
     * 
     */
    @Import(name="licenseType")
    private @Nullable Output licenseType;

    /**
     * @return The license type to use in OS adaptation.
     * 
     */
    public Optional> licenseType() {
        return Optional.ofNullable(this.licenseType);
    }

    /**
     * The machine type to create the VM with.
     * 
     */
    @Import(name="machineType")
    private @Nullable Output machineType;

    /**
     * @return The machine type to create the VM with.
     * 
     */
    public Optional> machineType() {
        return Optional.ofNullable(this.machineType);
    }

    /**
     * The machine type series to create the VM with.
     * 
     */
    @Import(name="machineTypeSeries")
    private @Nullable Output machineTypeSeries;

    /**
     * @return The machine type series to create the VM with.
     * 
     */
    public Optional> machineTypeSeries() {
        return Optional.ofNullable(this.machineTypeSeries);
    }

    /**
     * The metadata key/value pairs to assign to the VM.
     * 
     */
    @Import(name="metadata")
    private @Nullable Output> metadata;

    /**
     * @return The metadata key/value pairs to assign to the VM.
     * 
     */
    public Optional>> metadata() {
        return Optional.ofNullable(this.metadata);
    }

    /**
     * List of NICs connected to this VM.
     * 
     */
    @Import(name="networkInterfaces")
    private @Nullable Output> networkInterfaces;

    /**
     * @return List of NICs connected to this VM.
     * 
     */
    public Optional>> networkInterfaces() {
        return Optional.ofNullable(this.networkInterfaces);
    }

    /**
     * A map of network tags to associate with the VM.
     * 
     */
    @Import(name="networkTags")
    private @Nullable Output> networkTags;

    /**
     * @return A map of network tags to associate with the VM.
     * 
     */
    public Optional>> networkTags() {
        return Optional.ofNullable(this.networkTags);
    }

    /**
     * Defines whether the instance has Secure Boot enabled. This can be set to true only if the vm boot option is EFI.
     * 
     */
    @Import(name="secureBoot")
    private @Nullable Output secureBoot;

    /**
     * @return Defines whether the instance has Secure Boot enabled. This can be set to true only if the vm boot option is EFI.
     * 
     */
    public Optional> secureBoot() {
        return Optional.ofNullable(this.secureBoot);
    }

    /**
     * The service account to associate the VM with.
     * 
     */
    @Import(name="serviceAccount")
    private @Nullable Output serviceAccount;

    /**
     * @return The service account to associate the VM with.
     * 
     */
    public Optional> serviceAccount() {
        return Optional.ofNullable(this.serviceAccount);
    }

    /**
     * The full path of the resource of type TargetProject which represents the Compute Engine project in which to create this VM.
     * 
     */
    @Import(name="targetProject")
    private @Nullable Output targetProject;

    /**
     * @return The full path of the resource of type TargetProject which represents the Compute Engine project in which to create this VM.
     * 
     */
    public Optional> targetProject() {
        return Optional.ofNullable(this.targetProject);
    }

    /**
     * The name of the VM to create.
     * 
     */
    @Import(name="vmName")
    private @Nullable Output vmName;

    /**
     * @return The name of the VM to create.
     * 
     */
    public Optional> vmName() {
        return Optional.ofNullable(this.vmName);
    }

    /**
     * The zone in which to create the VM.
     * 
     */
    @Import(name="zone")
    private @Nullable Output zone;

    /**
     * @return The zone in which to create the VM.
     * 
     */
    public Optional> zone() {
        return Optional.ofNullable(this.zone);
    }

    private ComputeEngineTargetDefaultsArgs() {}

    private ComputeEngineTargetDefaultsArgs(ComputeEngineTargetDefaultsArgs $) {
        this.additionalLicenses = $.additionalLicenses;
        this.computeScheduling = $.computeScheduling;
        this.diskType = $.diskType;
        this.hostname = $.hostname;
        this.labels = $.labels;
        this.licenseType = $.licenseType;
        this.machineType = $.machineType;
        this.machineTypeSeries = $.machineTypeSeries;
        this.metadata = $.metadata;
        this.networkInterfaces = $.networkInterfaces;
        this.networkTags = $.networkTags;
        this.secureBoot = $.secureBoot;
        this.serviceAccount = $.serviceAccount;
        this.targetProject = $.targetProject;
        this.vmName = $.vmName;
        this.zone = $.zone;
    }

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

    public static final class Builder {
        private ComputeEngineTargetDefaultsArgs $;

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

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

        /**
         * @param additionalLicenses Additional licenses to assign to the VM.
         * 
         * @return builder
         * 
         */
        public Builder additionalLicenses(@Nullable Output> additionalLicenses) {
            $.additionalLicenses = additionalLicenses;
            return this;
        }

        /**
         * @param additionalLicenses Additional licenses to assign to the VM.
         * 
         * @return builder
         * 
         */
        public Builder additionalLicenses(List additionalLicenses) {
            return additionalLicenses(Output.of(additionalLicenses));
        }

        /**
         * @param additionalLicenses Additional licenses to assign to the VM.
         * 
         * @return builder
         * 
         */
        public Builder additionalLicenses(String... additionalLicenses) {
            return additionalLicenses(List.of(additionalLicenses));
        }

        /**
         * @param computeScheduling Compute instance scheduling information (if empty default is used).
         * 
         * @return builder
         * 
         */
        public Builder computeScheduling(@Nullable Output computeScheduling) {
            $.computeScheduling = computeScheduling;
            return this;
        }

        /**
         * @param computeScheduling Compute instance scheduling information (if empty default is used).
         * 
         * @return builder
         * 
         */
        public Builder computeScheduling(ComputeSchedulingArgs computeScheduling) {
            return computeScheduling(Output.of(computeScheduling));
        }

        /**
         * @param diskType The disk type to use in the VM.
         * 
         * @return builder
         * 
         */
        public Builder diskType(@Nullable Output diskType) {
            $.diskType = diskType;
            return this;
        }

        /**
         * @param diskType The disk type to use in the VM.
         * 
         * @return builder
         * 
         */
        public Builder diskType(ComputeEngineTargetDefaultsDiskType diskType) {
            return diskType(Output.of(diskType));
        }

        /**
         * @param hostname The hostname to assign to the VM.
         * 
         * @return builder
         * 
         */
        public Builder hostname(@Nullable Output hostname) {
            $.hostname = hostname;
            return this;
        }

        /**
         * @param hostname The hostname to assign to the VM.
         * 
         * @return builder
         * 
         */
        public Builder hostname(String hostname) {
            return hostname(Output.of(hostname));
        }

        /**
         * @param labels A map of labels to associate with the VM.
         * 
         * @return builder
         * 
         */
        public Builder labels(@Nullable Output> labels) {
            $.labels = labels;
            return this;
        }

        /**
         * @param labels A map of labels to associate with the VM.
         * 
         * @return builder
         * 
         */
        public Builder labels(Map labels) {
            return labels(Output.of(labels));
        }

        /**
         * @param licenseType The license type to use in OS adaptation.
         * 
         * @return builder
         * 
         */
        public Builder licenseType(@Nullable Output licenseType) {
            $.licenseType = licenseType;
            return this;
        }

        /**
         * @param licenseType The license type to use in OS adaptation.
         * 
         * @return builder
         * 
         */
        public Builder licenseType(ComputeEngineTargetDefaultsLicenseType licenseType) {
            return licenseType(Output.of(licenseType));
        }

        /**
         * @param machineType The machine type to create the VM with.
         * 
         * @return builder
         * 
         */
        public Builder machineType(@Nullable Output machineType) {
            $.machineType = machineType;
            return this;
        }

        /**
         * @param machineType The machine type to create the VM with.
         * 
         * @return builder
         * 
         */
        public Builder machineType(String machineType) {
            return machineType(Output.of(machineType));
        }

        /**
         * @param machineTypeSeries The machine type series to create the VM with.
         * 
         * @return builder
         * 
         */
        public Builder machineTypeSeries(@Nullable Output machineTypeSeries) {
            $.machineTypeSeries = machineTypeSeries;
            return this;
        }

        /**
         * @param machineTypeSeries The machine type series to create the VM with.
         * 
         * @return builder
         * 
         */
        public Builder machineTypeSeries(String machineTypeSeries) {
            return machineTypeSeries(Output.of(machineTypeSeries));
        }

        /**
         * @param metadata The metadata key/value pairs to assign to the VM.
         * 
         * @return builder
         * 
         */
        public Builder metadata(@Nullable Output> metadata) {
            $.metadata = metadata;
            return this;
        }

        /**
         * @param metadata The metadata key/value pairs to assign to the VM.
         * 
         * @return builder
         * 
         */
        public Builder metadata(Map metadata) {
            return metadata(Output.of(metadata));
        }

        /**
         * @param networkInterfaces List of NICs connected to this VM.
         * 
         * @return builder
         * 
         */
        public Builder networkInterfaces(@Nullable Output> networkInterfaces) {
            $.networkInterfaces = networkInterfaces;
            return this;
        }

        /**
         * @param networkInterfaces List of NICs connected to this VM.
         * 
         * @return builder
         * 
         */
        public Builder networkInterfaces(List networkInterfaces) {
            return networkInterfaces(Output.of(networkInterfaces));
        }

        /**
         * @param networkInterfaces List of NICs connected to this VM.
         * 
         * @return builder
         * 
         */
        public Builder networkInterfaces(NetworkInterfaceArgs... networkInterfaces) {
            return networkInterfaces(List.of(networkInterfaces));
        }

        /**
         * @param networkTags A map of network tags to associate with the VM.
         * 
         * @return builder
         * 
         */
        public Builder networkTags(@Nullable Output> networkTags) {
            $.networkTags = networkTags;
            return this;
        }

        /**
         * @param networkTags A map of network tags to associate with the VM.
         * 
         * @return builder
         * 
         */
        public Builder networkTags(List networkTags) {
            return networkTags(Output.of(networkTags));
        }

        /**
         * @param networkTags A map of network tags to associate with the VM.
         * 
         * @return builder
         * 
         */
        public Builder networkTags(String... networkTags) {
            return networkTags(List.of(networkTags));
        }

        /**
         * @param secureBoot Defines whether the instance has Secure Boot enabled. This can be set to true only if the vm boot option is EFI.
         * 
         * @return builder
         * 
         */
        public Builder secureBoot(@Nullable Output secureBoot) {
            $.secureBoot = secureBoot;
            return this;
        }

        /**
         * @param secureBoot Defines whether the instance has Secure Boot enabled. This can be set to true only if the vm boot option is EFI.
         * 
         * @return builder
         * 
         */
        public Builder secureBoot(Boolean secureBoot) {
            return secureBoot(Output.of(secureBoot));
        }

        /**
         * @param serviceAccount The service account to associate the VM with.
         * 
         * @return builder
         * 
         */
        public Builder serviceAccount(@Nullable Output serviceAccount) {
            $.serviceAccount = serviceAccount;
            return this;
        }

        /**
         * @param serviceAccount The service account to associate the VM with.
         * 
         * @return builder
         * 
         */
        public Builder serviceAccount(String serviceAccount) {
            return serviceAccount(Output.of(serviceAccount));
        }

        /**
         * @param targetProject The full path of the resource of type TargetProject which represents the Compute Engine project in which to create this VM.
         * 
         * @return builder
         * 
         */
        public Builder targetProject(@Nullable Output targetProject) {
            $.targetProject = targetProject;
            return this;
        }

        /**
         * @param targetProject The full path of the resource of type TargetProject which represents the Compute Engine project in which to create this VM.
         * 
         * @return builder
         * 
         */
        public Builder targetProject(String targetProject) {
            return targetProject(Output.of(targetProject));
        }

        /**
         * @param vmName The name of the VM to create.
         * 
         * @return builder
         * 
         */
        public Builder vmName(@Nullable Output vmName) {
            $.vmName = vmName;
            return this;
        }

        /**
         * @param vmName The name of the VM to create.
         * 
         * @return builder
         * 
         */
        public Builder vmName(String vmName) {
            return vmName(Output.of(vmName));
        }

        /**
         * @param zone The zone in which to create the VM.
         * 
         * @return builder
         * 
         */
        public Builder zone(@Nullable Output zone) {
            $.zone = zone;
            return this;
        }

        /**
         * @param zone The zone in which to create the VM.
         * 
         * @return builder
         * 
         */
        public Builder zone(String zone) {
            return zone(Output.of(zone));
        }

        public ComputeEngineTargetDefaultsArgs build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy