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

com.pulumi.googlenative.baremetalsolution.v2.inputs.InstanceConfigArgs 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.baremetalsolution.v2.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.googlenative.baremetalsolution.v2.enums.InstanceConfigNetworkConfig;
import com.pulumi.googlenative.baremetalsolution.v2.inputs.GoogleCloudBaremetalsolutionV2LogicalInterfaceArgs;
import com.pulumi.googlenative.baremetalsolution.v2.inputs.NetworkAddressArgs;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Configuration parameters for a new instance.
 * 
 */
public final class InstanceConfigArgs extends com.pulumi.resources.ResourceArgs {

    public static final InstanceConfigArgs Empty = new InstanceConfigArgs();

    /**
     * If true networks can be from different projects of the same vendor account.
     * 
     */
    @Import(name="accountNetworksEnabled")
    private @Nullable Output accountNetworksEnabled;

    /**
     * @return If true networks can be from different projects of the same vendor account.
     * 
     */
    public Optional> accountNetworksEnabled() {
        return Optional.ofNullable(this.accountNetworksEnabled);
    }

    /**
     * Client network address. Filled if InstanceConfig.multivlan_config is false.
     * 
     */
    @Import(name="clientNetwork")
    private @Nullable Output clientNetwork;

    /**
     * @return Client network address. Filled if InstanceConfig.multivlan_config is false.
     * 
     */
    public Optional> clientNetwork() {
        return Optional.ofNullable(this.clientNetwork);
    }

    /**
     * Whether the instance should be provisioned with Hyperthreading enabled.
     * 
     */
    @Import(name="hyperthreading")
    private @Nullable Output hyperthreading;

    /**
     * @return Whether the instance should be provisioned with Hyperthreading enabled.
     * 
     */
    public Optional> hyperthreading() {
        return Optional.ofNullable(this.hyperthreading);
    }

    /**
     * A transient unique identifier to idenfity an instance within an ProvisioningConfig request.
     * 
     */
    @Import(name="id")
    private @Nullable Output id;

    /**
     * @return A transient unique identifier to idenfity an instance within an ProvisioningConfig request.
     * 
     */
    public Optional> id() {
        return Optional.ofNullable(this.id);
    }

    /**
     * Instance type. [Available types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
     * 
     */
    @Import(name="instanceType")
    private @Nullable Output instanceType;

    /**
     * @return Instance type. [Available types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
     * 
     */
    public Optional> instanceType() {
        return Optional.ofNullable(this.instanceType);
    }

    /**
     * List of logical interfaces for the instance. The number of logical interfaces will be the same as number of hardware bond/nic on the chosen network template. Filled if InstanceConfig.multivlan_config is true.
     * 
     */
    @Import(name="logicalInterfaces")
    private @Nullable Output> logicalInterfaces;

    /**
     * @return List of logical interfaces for the instance. The number of logical interfaces will be the same as number of hardware bond/nic on the chosen network template. Filled if InstanceConfig.multivlan_config is true.
     * 
     */
    public Optional>> logicalInterfaces() {
        return Optional.ofNullable(this.logicalInterfaces);
    }

    /**
     * The type of network configuration on the instance.
     * 
     */
    @Import(name="networkConfig")
    private @Nullable Output networkConfig;

    /**
     * @return The type of network configuration on the instance.
     * 
     */
    public Optional> networkConfig() {
        return Optional.ofNullable(this.networkConfig);
    }

    /**
     * Server network template name. Filled if InstanceConfig.multivlan_config is true.
     * 
     */
    @Import(name="networkTemplate")
    private @Nullable Output networkTemplate;

    /**
     * @return Server network template name. Filled if InstanceConfig.multivlan_config is true.
     * 
     */
    public Optional> networkTemplate() {
        return Optional.ofNullable(this.networkTemplate);
    }

    /**
     * OS image to initialize the instance. [Available images](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
     * 
     */
    @Import(name="osImage")
    private @Nullable Output osImage;

    /**
     * @return OS image to initialize the instance. [Available images](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
     * 
     */
    public Optional> osImage() {
        return Optional.ofNullable(this.osImage);
    }

    /**
     * Private network address, if any. Filled if InstanceConfig.multivlan_config is false.
     * 
     */
    @Import(name="privateNetwork")
    private @Nullable Output privateNetwork;

    /**
     * @return Private network address, if any. Filled if InstanceConfig.multivlan_config is false.
     * 
     */
    public Optional> privateNetwork() {
        return Optional.ofNullable(this.privateNetwork);
    }

    /**
     * User note field, it can be used by customers to add additional information for the BMS Ops team .
     * 
     */
    @Import(name="userNote")
    private @Nullable Output userNote;

    /**
     * @return User note field, it can be used by customers to add additional information for the BMS Ops team .
     * 
     */
    public Optional> userNote() {
        return Optional.ofNullable(this.userNote);
    }

    private InstanceConfigArgs() {}

    private InstanceConfigArgs(InstanceConfigArgs $) {
        this.accountNetworksEnabled = $.accountNetworksEnabled;
        this.clientNetwork = $.clientNetwork;
        this.hyperthreading = $.hyperthreading;
        this.id = $.id;
        this.instanceType = $.instanceType;
        this.logicalInterfaces = $.logicalInterfaces;
        this.networkConfig = $.networkConfig;
        this.networkTemplate = $.networkTemplate;
        this.osImage = $.osImage;
        this.privateNetwork = $.privateNetwork;
        this.userNote = $.userNote;
    }

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

    public static final class Builder {
        private InstanceConfigArgs $;

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

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

        /**
         * @param accountNetworksEnabled If true networks can be from different projects of the same vendor account.
         * 
         * @return builder
         * 
         */
        public Builder accountNetworksEnabled(@Nullable Output accountNetworksEnabled) {
            $.accountNetworksEnabled = accountNetworksEnabled;
            return this;
        }

        /**
         * @param accountNetworksEnabled If true networks can be from different projects of the same vendor account.
         * 
         * @return builder
         * 
         */
        public Builder accountNetworksEnabled(Boolean accountNetworksEnabled) {
            return accountNetworksEnabled(Output.of(accountNetworksEnabled));
        }

        /**
         * @param clientNetwork Client network address. Filled if InstanceConfig.multivlan_config is false.
         * 
         * @return builder
         * 
         */
        public Builder clientNetwork(@Nullable Output clientNetwork) {
            $.clientNetwork = clientNetwork;
            return this;
        }

        /**
         * @param clientNetwork Client network address. Filled if InstanceConfig.multivlan_config is false.
         * 
         * @return builder
         * 
         */
        public Builder clientNetwork(NetworkAddressArgs clientNetwork) {
            return clientNetwork(Output.of(clientNetwork));
        }

        /**
         * @param hyperthreading Whether the instance should be provisioned with Hyperthreading enabled.
         * 
         * @return builder
         * 
         */
        public Builder hyperthreading(@Nullable Output hyperthreading) {
            $.hyperthreading = hyperthreading;
            return this;
        }

        /**
         * @param hyperthreading Whether the instance should be provisioned with Hyperthreading enabled.
         * 
         * @return builder
         * 
         */
        public Builder hyperthreading(Boolean hyperthreading) {
            return hyperthreading(Output.of(hyperthreading));
        }

        /**
         * @param id A transient unique identifier to idenfity an instance within an ProvisioningConfig request.
         * 
         * @return builder
         * 
         */
        public Builder id(@Nullable Output id) {
            $.id = id;
            return this;
        }

        /**
         * @param id A transient unique identifier to idenfity an instance within an ProvisioningConfig request.
         * 
         * @return builder
         * 
         */
        public Builder id(String id) {
            return id(Output.of(id));
        }

        /**
         * @param instanceType Instance type. [Available types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
         * 
         * @return builder
         * 
         */
        public Builder instanceType(@Nullable Output instanceType) {
            $.instanceType = instanceType;
            return this;
        }

        /**
         * @param instanceType Instance type. [Available types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
         * 
         * @return builder
         * 
         */
        public Builder instanceType(String instanceType) {
            return instanceType(Output.of(instanceType));
        }

        /**
         * @param logicalInterfaces List of logical interfaces for the instance. The number of logical interfaces will be the same as number of hardware bond/nic on the chosen network template. Filled if InstanceConfig.multivlan_config is true.
         * 
         * @return builder
         * 
         */
        public Builder logicalInterfaces(@Nullable Output> logicalInterfaces) {
            $.logicalInterfaces = logicalInterfaces;
            return this;
        }

        /**
         * @param logicalInterfaces List of logical interfaces for the instance. The number of logical interfaces will be the same as number of hardware bond/nic on the chosen network template. Filled if InstanceConfig.multivlan_config is true.
         * 
         * @return builder
         * 
         */
        public Builder logicalInterfaces(List logicalInterfaces) {
            return logicalInterfaces(Output.of(logicalInterfaces));
        }

        /**
         * @param logicalInterfaces List of logical interfaces for the instance. The number of logical interfaces will be the same as number of hardware bond/nic on the chosen network template. Filled if InstanceConfig.multivlan_config is true.
         * 
         * @return builder
         * 
         */
        public Builder logicalInterfaces(GoogleCloudBaremetalsolutionV2LogicalInterfaceArgs... logicalInterfaces) {
            return logicalInterfaces(List.of(logicalInterfaces));
        }

        /**
         * @param networkConfig The type of network configuration on the instance.
         * 
         * @return builder
         * 
         */
        public Builder networkConfig(@Nullable Output networkConfig) {
            $.networkConfig = networkConfig;
            return this;
        }

        /**
         * @param networkConfig The type of network configuration on the instance.
         * 
         * @return builder
         * 
         */
        public Builder networkConfig(InstanceConfigNetworkConfig networkConfig) {
            return networkConfig(Output.of(networkConfig));
        }

        /**
         * @param networkTemplate Server network template name. Filled if InstanceConfig.multivlan_config is true.
         * 
         * @return builder
         * 
         */
        public Builder networkTemplate(@Nullable Output networkTemplate) {
            $.networkTemplate = networkTemplate;
            return this;
        }

        /**
         * @param networkTemplate Server network template name. Filled if InstanceConfig.multivlan_config is true.
         * 
         * @return builder
         * 
         */
        public Builder networkTemplate(String networkTemplate) {
            return networkTemplate(Output.of(networkTemplate));
        }

        /**
         * @param osImage OS image to initialize the instance. [Available images](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
         * 
         * @return builder
         * 
         */
        public Builder osImage(@Nullable Output osImage) {
            $.osImage = osImage;
            return this;
        }

        /**
         * @param osImage OS image to initialize the instance. [Available images](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
         * 
         * @return builder
         * 
         */
        public Builder osImage(String osImage) {
            return osImage(Output.of(osImage));
        }

        /**
         * @param privateNetwork Private network address, if any. Filled if InstanceConfig.multivlan_config is false.
         * 
         * @return builder
         * 
         */
        public Builder privateNetwork(@Nullable Output privateNetwork) {
            $.privateNetwork = privateNetwork;
            return this;
        }

        /**
         * @param privateNetwork Private network address, if any. Filled if InstanceConfig.multivlan_config is false.
         * 
         * @return builder
         * 
         */
        public Builder privateNetwork(NetworkAddressArgs privateNetwork) {
            return privateNetwork(Output.of(privateNetwork));
        }

        /**
         * @param userNote User note field, it can be used by customers to add additional information for the BMS Ops team .
         * 
         * @return builder
         * 
         */
        public Builder userNote(@Nullable Output userNote) {
            $.userNote = userNote;
            return this;
        }

        /**
         * @param userNote User note field, it can be used by customers to add additional information for the BMS Ops team .
         * 
         * @return builder
         * 
         */
        public Builder userNote(String userNote) {
            return userNote(Output.of(userNote));
        }

        public InstanceConfigArgs build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy