Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.googlenative.baremetalsolution.v2.InstanceArgs 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;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.googlenative.baremetalsolution.v2.enums.InstanceWorkloadProfile;
import com.pulumi.googlenative.baremetalsolution.v2.inputs.GoogleCloudBaremetalsolutionV2LogicalInterfaceArgs;
import com.pulumi.googlenative.baremetalsolution.v2.inputs.LunArgs;
import com.pulumi.googlenative.baremetalsolution.v2.inputs.VolumeArgs;
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;
public final class InstanceArgs extends com.pulumi.resources.ResourceArgs {
public static final InstanceArgs Empty = new InstanceArgs();
/**
* True if you enable hyperthreading for the server, otherwise false. The default value is false.
*
*/
@Import(name="hyperthreadingEnabled")
private @Nullable Output hyperthreadingEnabled;
/**
* @return True if you enable hyperthreading for the server, otherwise false. The default value is false.
*
*/
public Optional> hyperthreadingEnabled() {
return Optional.ofNullable(this.hyperthreadingEnabled);
}
/**
* Labels as key value pairs.
*
*/
@Import(name="labels")
private @Nullable Output> labels;
/**
* @return Labels as key value pairs.
*
*/
public Optional>> labels() {
return Optional.ofNullable(this.labels);
}
@Import(name="location")
private @Nullable Output location;
public Optional> location() {
return Optional.ofNullable(this.location);
}
/**
* 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. For the non-multivlan configurations (for eg, existing servers) that use existing default network template (bondaa-bondaa), both the Instance.networks field and the Instance.logical_interfaces fields will be filled to ensure backward compatibility. For the others, only Instance.logical_interfaces will be filled.
*
*/
@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. For the non-multivlan configurations (for eg, existing servers) that use existing default network template (bondaa-bondaa), both the Instance.networks field and the Instance.logical_interfaces fields will be filled to ensure backward compatibility. For the others, only Instance.logical_interfaces will be filled.
*
*/
public Optional>> logicalInterfaces() {
return Optional.ofNullable(this.logicalInterfaces);
}
/**
* Immutable. List of LUNs associated with this server.
*
*/
@Import(name="luns")
private @Nullable Output> luns;
/**
* @return Immutable. List of LUNs associated with this server.
*
*/
public Optional>> luns() {
return Optional.ofNullable(this.luns);
}
/**
* Immutable. The server type. [Available server types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
*
*/
@Import(name="machineType")
private @Nullable Output machineType;
/**
* @return Immutable. The server type. [Available server types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
*
*/
public Optional> machineType() {
return Optional.ofNullable(this.machineType);
}
/**
* Immutable. The resource name of this `Instance`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/instances/{instance}`
*
*/
@Import(name="name")
private @Nullable Output name;
/**
* @return Immutable. The resource name of this `Instance`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/instances/{instance}`
*
*/
public Optional> name() {
return Optional.ofNullable(this.name);
}
/**
* Instance network template name. For eg, bondaa-bondaa, bondab-nic, etc. Generally, the template name follows the syntax of "bond" or "nic".
*
*/
@Import(name="networkTemplate")
private @Nullable Output networkTemplate;
/**
* @return Instance network template name. For eg, bondaa-bondaa, bondab-nic, etc. Generally, the template name follows the syntax of "bond" or "nic".
*
*/
public Optional> networkTemplate() {
return Optional.ofNullable(this.networkTemplate);
}
/**
* The OS image currently installed on the server.
*
*/
@Import(name="osImage")
private @Nullable Output osImage;
/**
* @return The OS image currently installed on the server.
*
*/
public Optional> osImage() {
return Optional.ofNullable(this.osImage);
}
/**
* Immutable. Pod name. Pod is an independent part of infrastructure. Instance can be connected to the assets (networks, volumes) allocated in the same pod only.
*
*/
@Import(name="pod")
private @Nullable Output pod;
/**
* @return Immutable. Pod name. Pod is an independent part of infrastructure. Instance can be connected to the assets (networks, volumes) allocated in the same pod only.
*
*/
public Optional> pod() {
return Optional.ofNullable(this.pod);
}
@Import(name="project")
private @Nullable Output project;
public Optional> project() {
return Optional.ofNullable(this.project);
}
/**
* Input only. List of Volumes to attach to this Instance on creation. This field won't be populated in Get/List responses.
*
*/
@Import(name="volumes")
private @Nullable Output> volumes;
/**
* @return Input only. List of Volumes to attach to this Instance on creation. This field won't be populated in Get/List responses.
*
*/
public Optional>> volumes() {
return Optional.ofNullable(this.volumes);
}
/**
* The workload profile for the instance.
*
*/
@Import(name="workloadProfile")
private @Nullable Output workloadProfile;
/**
* @return The workload profile for the instance.
*
*/
public Optional> workloadProfile() {
return Optional.ofNullable(this.workloadProfile);
}
private InstanceArgs() {}
private InstanceArgs(InstanceArgs $) {
this.hyperthreadingEnabled = $.hyperthreadingEnabled;
this.labels = $.labels;
this.location = $.location;
this.logicalInterfaces = $.logicalInterfaces;
this.luns = $.luns;
this.machineType = $.machineType;
this.name = $.name;
this.networkTemplate = $.networkTemplate;
this.osImage = $.osImage;
this.pod = $.pod;
this.project = $.project;
this.volumes = $.volumes;
this.workloadProfile = $.workloadProfile;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(InstanceArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private InstanceArgs $;
public Builder() {
$ = new InstanceArgs();
}
public Builder(InstanceArgs defaults) {
$ = new InstanceArgs(Objects.requireNonNull(defaults));
}
/**
* @param hyperthreadingEnabled True if you enable hyperthreading for the server, otherwise false. The default value is false.
*
* @return builder
*
*/
public Builder hyperthreadingEnabled(@Nullable Output hyperthreadingEnabled) {
$.hyperthreadingEnabled = hyperthreadingEnabled;
return this;
}
/**
* @param hyperthreadingEnabled True if you enable hyperthreading for the server, otherwise false. The default value is false.
*
* @return builder
*
*/
public Builder hyperthreadingEnabled(Boolean hyperthreadingEnabled) {
return hyperthreadingEnabled(Output.of(hyperthreadingEnabled));
}
/**
* @param labels Labels as key value pairs.
*
* @return builder
*
*/
public Builder labels(@Nullable Output> labels) {
$.labels = labels;
return this;
}
/**
* @param labels Labels as key value pairs.
*
* @return builder
*
*/
public Builder labels(Map labels) {
return labels(Output.of(labels));
}
public Builder location(@Nullable Output location) {
$.location = location;
return this;
}
public Builder location(String location) {
return location(Output.of(location));
}
/**
* @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. For the non-multivlan configurations (for eg, existing servers) that use existing default network template (bondaa-bondaa), both the Instance.networks field and the Instance.logical_interfaces fields will be filled to ensure backward compatibility. For the others, only Instance.logical_interfaces will be filled.
*
* @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. For the non-multivlan configurations (for eg, existing servers) that use existing default network template (bondaa-bondaa), both the Instance.networks field and the Instance.logical_interfaces fields will be filled to ensure backward compatibility. For the others, only Instance.logical_interfaces will be filled.
*
* @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. For the non-multivlan configurations (for eg, existing servers) that use existing default network template (bondaa-bondaa), both the Instance.networks field and the Instance.logical_interfaces fields will be filled to ensure backward compatibility. For the others, only Instance.logical_interfaces will be filled.
*
* @return builder
*
*/
public Builder logicalInterfaces(GoogleCloudBaremetalsolutionV2LogicalInterfaceArgs... logicalInterfaces) {
return logicalInterfaces(List.of(logicalInterfaces));
}
/**
* @param luns Immutable. List of LUNs associated with this server.
*
* @return builder
*
*/
public Builder luns(@Nullable Output> luns) {
$.luns = luns;
return this;
}
/**
* @param luns Immutable. List of LUNs associated with this server.
*
* @return builder
*
*/
public Builder luns(List luns) {
return luns(Output.of(luns));
}
/**
* @param luns Immutable. List of LUNs associated with this server.
*
* @return builder
*
*/
public Builder luns(LunArgs... luns) {
return luns(List.of(luns));
}
/**
* @param machineType Immutable. The server type. [Available server types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
*
* @return builder
*
*/
public Builder machineType(@Nullable Output machineType) {
$.machineType = machineType;
return this;
}
/**
* @param machineType Immutable. The server type. [Available server types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
*
* @return builder
*
*/
public Builder machineType(String machineType) {
return machineType(Output.of(machineType));
}
/**
* @param name Immutable. The resource name of this `Instance`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/instances/{instance}`
*
* @return builder
*
*/
public Builder name(@Nullable Output name) {
$.name = name;
return this;
}
/**
* @param name Immutable. The resource name of this `Instance`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/instances/{instance}`
*
* @return builder
*
*/
public Builder name(String name) {
return name(Output.of(name));
}
/**
* @param networkTemplate Instance network template name. For eg, bondaa-bondaa, bondab-nic, etc. Generally, the template name follows the syntax of "bond" or "nic".
*
* @return builder
*
*/
public Builder networkTemplate(@Nullable Output networkTemplate) {
$.networkTemplate = networkTemplate;
return this;
}
/**
* @param networkTemplate Instance network template name. For eg, bondaa-bondaa, bondab-nic, etc. Generally, the template name follows the syntax of "bond" or "nic".
*
* @return builder
*
*/
public Builder networkTemplate(String networkTemplate) {
return networkTemplate(Output.of(networkTemplate));
}
/**
* @param osImage The OS image currently installed on the server.
*
* @return builder
*
*/
public Builder osImage(@Nullable Output osImage) {
$.osImage = osImage;
return this;
}
/**
* @param osImage The OS image currently installed on the server.
*
* @return builder
*
*/
public Builder osImage(String osImage) {
return osImage(Output.of(osImage));
}
/**
* @param pod Immutable. Pod name. Pod is an independent part of infrastructure. Instance can be connected to the assets (networks, volumes) allocated in the same pod only.
*
* @return builder
*
*/
public Builder pod(@Nullable Output pod) {
$.pod = pod;
return this;
}
/**
* @param pod Immutable. Pod name. Pod is an independent part of infrastructure. Instance can be connected to the assets (networks, volumes) allocated in the same pod only.
*
* @return builder
*
*/
public Builder pod(String pod) {
return pod(Output.of(pod));
}
public Builder project(@Nullable Output project) {
$.project = project;
return this;
}
public Builder project(String project) {
return project(Output.of(project));
}
/**
* @param volumes Input only. List of Volumes to attach to this Instance on creation. This field won't be populated in Get/List responses.
*
* @return builder
*
*/
public Builder volumes(@Nullable Output> volumes) {
$.volumes = volumes;
return this;
}
/**
* @param volumes Input only. List of Volumes to attach to this Instance on creation. This field won't be populated in Get/List responses.
*
* @return builder
*
*/
public Builder volumes(List volumes) {
return volumes(Output.of(volumes));
}
/**
* @param volumes Input only. List of Volumes to attach to this Instance on creation. This field won't be populated in Get/List responses.
*
* @return builder
*
*/
public Builder volumes(VolumeArgs... volumes) {
return volumes(List.of(volumes));
}
/**
* @param workloadProfile The workload profile for the instance.
*
* @return builder
*
*/
public Builder workloadProfile(@Nullable Output workloadProfile) {
$.workloadProfile = workloadProfile;
return this;
}
/**
* @param workloadProfile The workload profile for the instance.
*
* @return builder
*
*/
public Builder workloadProfile(InstanceWorkloadProfile workloadProfile) {
return workloadProfile(Output.of(workloadProfile));
}
public InstanceArgs build() {
return $;
}
}
}