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.compute.alpha.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.compute.alpha;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.googlenative.compute.alpha.enums.InstanceKeyRevocationActionType;
import com.pulumi.googlenative.compute.alpha.enums.InstancePostKeyRevocationActionType;
import com.pulumi.googlenative.compute.alpha.enums.InstancePrivateIpv6GoogleAccess;
import com.pulumi.googlenative.compute.alpha.inputs.AcceleratorConfigArgs;
import com.pulumi.googlenative.compute.alpha.inputs.AdvancedMachineFeaturesArgs;
import com.pulumi.googlenative.compute.alpha.inputs.AttachedDiskArgs;
import com.pulumi.googlenative.compute.alpha.inputs.ConfidentialInstanceConfigArgs;
import com.pulumi.googlenative.compute.alpha.inputs.CustomerEncryptionKeyArgs;
import com.pulumi.googlenative.compute.alpha.inputs.DisplayDeviceArgs;
import com.pulumi.googlenative.compute.alpha.inputs.InstanceParamsArgs;
import com.pulumi.googlenative.compute.alpha.inputs.MetadataArgs;
import com.pulumi.googlenative.compute.alpha.inputs.NetworkInterfaceArgs;
import com.pulumi.googlenative.compute.alpha.inputs.NetworkPerformanceConfigArgs;
import com.pulumi.googlenative.compute.alpha.inputs.ReservationAffinityArgs;
import com.pulumi.googlenative.compute.alpha.inputs.SchedulingArgs;
import com.pulumi.googlenative.compute.alpha.inputs.ServiceAccountArgs;
import com.pulumi.googlenative.compute.alpha.inputs.ShieldedInstanceConfigArgs;
import com.pulumi.googlenative.compute.alpha.inputs.ShieldedInstanceIntegrityPolicyArgs;
import com.pulumi.googlenative.compute.alpha.inputs.ShieldedVmConfigArgs;
import com.pulumi.googlenative.compute.alpha.inputs.ShieldedVmIntegrityPolicyArgs;
import com.pulumi.googlenative.compute.alpha.inputs.TagsArgs;
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();
/**
* Controls for advanced machine-related behavior features.
*
*/
@Import(name="advancedMachineFeatures")
private @Nullable Output advancedMachineFeatures;
/**
* @return Controls for advanced machine-related behavior features.
*
*/
public Optional> advancedMachineFeatures() {
return Optional.ofNullable(this.advancedMachineFeatures);
}
/**
* Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding .
*
*/
@Import(name="canIpForward")
private @Nullable Output canIpForward;
/**
* @return Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding .
*
*/
public Optional> canIpForward() {
return Optional.ofNullable(this.canIpForward);
}
@Import(name="confidentialInstanceConfig")
private @Nullable Output confidentialInstanceConfig;
public Optional> confidentialInstanceConfig() {
return Optional.ofNullable(this.confidentialInstanceConfig);
}
/**
* Whether the resource should be protected against deletion.
*
*/
@Import(name="deletionProtection")
private @Nullable Output deletionProtection;
/**
* @return Whether the resource should be protected against deletion.
*
*/
public Optional> deletionProtection() {
return Optional.ofNullable(this.deletionProtection);
}
/**
* An optional description of this resource. Provide this property when you create the resource.
*
*/
@Import(name="description")
private @Nullable Output description;
/**
* @return An optional description of this resource. Provide this property when you create the resource.
*
*/
public Optional> description() {
return Optional.ofNullable(this.description);
}
/**
* Array of disks associated with this instance. Persistent disks must be created before you can assign them.
*
*/
@Import(name="disks")
private @Nullable Output> disks;
/**
* @return Array of disks associated with this instance. Persistent disks must be created before you can assign them.
*
*/
public Optional>> disks() {
return Optional.ofNullable(this.disks);
}
/**
* Enables display device for the instance.
*
*/
@Import(name="displayDevice")
private @Nullable Output displayDevice;
/**
* @return Enables display device for the instance.
*
*/
public Optional> displayDevice() {
return Optional.ofNullable(this.displayDevice);
}
/**
* Specifies whether the disks restored from source snapshots or source machine image should erase Windows specific VSS signature.
*
*/
@Import(name="eraseWindowsVssSignature")
private @Nullable Output eraseWindowsVssSignature;
/**
* @return Specifies whether the disks restored from source snapshots or source machine image should erase Windows specific VSS signature.
*
*/
public Optional> eraseWindowsVssSignature() {
return Optional.ofNullable(this.eraseWindowsVssSignature);
}
/**
* A list of the type and count of accelerator cards attached to the instance.
*
*/
@Import(name="guestAccelerators")
private @Nullable Output> guestAccelerators;
/**
* @return A list of the type and count of accelerator cards attached to the instance.
*
*/
public Optional>> guestAccelerators() {
return Optional.ofNullable(this.guestAccelerators);
}
/**
* Specifies the hostname of the instance. The specified hostname must be RFC1035 compliant. If hostname is not specified, the default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when using the global DNS, and [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.
*
*/
@Import(name="hostname")
private @Nullable Output hostname;
/**
* @return Specifies the hostname of the instance. The specified hostname must be RFC1035 compliant. If hostname is not specified, the default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when using the global DNS, and [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.
*
*/
public Optional> hostname() {
return Optional.ofNullable(this.hostname);
}
/**
* Encrypts suspended data for an instance with a customer-managed encryption key. If you are creating a new instance, this field will encrypt the local SSD and in-memory contents of the instance during the suspend operation. If you do not provide an encryption key when creating the instance, then the local SSD and in-memory contents will be encrypted using an automatically generated key during the suspend operation.
*
*/
@Import(name="instanceEncryptionKey")
private @Nullable Output instanceEncryptionKey;
/**
* @return Encrypts suspended data for an instance with a customer-managed encryption key. If you are creating a new instance, this field will encrypt the local SSD and in-memory contents of the instance during the suspend operation. If you do not provide an encryption key when creating the instance, then the local SSD and in-memory contents will be encrypted using an automatically generated key during the suspend operation.
*
*/
public Optional> instanceEncryptionKey() {
return Optional.ofNullable(this.instanceEncryptionKey);
}
/**
* KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified.
*
*/
@Import(name="keyRevocationActionType")
private @Nullable Output keyRevocationActionType;
/**
* @return KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified.
*
*/
public Optional> keyRevocationActionType() {
return Optional.ofNullable(this.keyRevocationActionType);
}
/**
* Labels to apply to this instance. These can be later modified by the setLabels method.
*
*/
@Import(name="labels")
private @Nullable Output> labels;
/**
* @return Labels to apply to this instance. These can be later modified by the setLabels method.
*
*/
public Optional>> labels() {
return Optional.ofNullable(this.labels);
}
/**
* Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type: zones/us-central1-f/machineTypes/n1-standard-1 To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB): zones/zone/machineTypes/custom-CPUS-MEMORY For example: zones/us-central1-f/machineTypes/custom-4-5120 For a full list of restrictions, read the Specifications for custom machine types.
*
*/
@Import(name="machineType")
private @Nullable Output machineType;
/**
* @return Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type: zones/us-central1-f/machineTypes/n1-standard-1 To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB): zones/zone/machineTypes/custom-CPUS-MEMORY For example: zones/us-central1-f/machineTypes/custom-4-5120 For a full list of restrictions, read the Specifications for custom machine types.
*
*/
public Optional> machineType() {
return Optional.ofNullable(this.machineType);
}
/**
* The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
*
*/
@Import(name="metadata")
private @Nullable Output metadata;
/**
* @return The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
*
*/
public Optional> metadata() {
return Optional.ofNullable(this.metadata);
}
/**
* Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge".
*
*/
@Import(name="minCpuPlatform")
private @Nullable Output minCpuPlatform;
/**
* @return Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge".
*
*/
public Optional> minCpuPlatform() {
return Optional.ofNullable(this.minCpuPlatform);
}
/**
* The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
*
*/
@Import(name="name")
private @Nullable Output name;
/**
* @return The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
*
*/
public Optional> name() {
return Optional.ofNullable(this.name);
}
/**
* An array of network configurations for this instance. These specify how interfaces are configured to interact with other network services, such as connecting to the internet. Multiple interfaces are supported per instance.
*
*/
@Import(name="networkInterfaces")
private @Nullable Output> networkInterfaces;
/**
* @return An array of network configurations for this instance. These specify how interfaces are configured to interact with other network services, such as connecting to the internet. Multiple interfaces are supported per instance.
*
*/
public Optional>> networkInterfaces() {
return Optional.ofNullable(this.networkInterfaces);
}
@Import(name="networkPerformanceConfig")
private @Nullable Output networkPerformanceConfig;
public Optional> networkPerformanceConfig() {
return Optional.ofNullable(this.networkPerformanceConfig);
}
/**
* Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload.
*
*/
@Import(name="params")
private @Nullable Output params;
/**
* @return Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload.
*
*/
public Optional> params() {
return Optional.ofNullable(this.params);
}
/**
* PostKeyRevocationActionType of the instance.
*
*/
@Import(name="postKeyRevocationActionType")
private @Nullable Output postKeyRevocationActionType;
/**
* @return PostKeyRevocationActionType of the instance.
*
*/
public Optional> postKeyRevocationActionType() {
return Optional.ofNullable(this.postKeyRevocationActionType);
}
/**
* Total amount of preserved state for SUSPENDED instances. Read-only in the api.
*
*/
@Import(name="preservedStateSizeGb")
private @Nullable Output preservedStateSizeGb;
/**
* @return Total amount of preserved state for SUSPENDED instances. Read-only in the api.
*
*/
public Optional> preservedStateSizeGb() {
return Optional.ofNullable(this.preservedStateSizeGb);
}
/**
* The private IPv6 google access type for the VM. If not specified, use INHERIT_FROM_SUBNETWORK as default.
*
*/
@Import(name="privateIpv6GoogleAccess")
private @Nullable Output privateIpv6GoogleAccess;
/**
* @return The private IPv6 google access type for the VM. If not specified, use INHERIT_FROM_SUBNETWORK as default.
*
*/
public Optional> privateIpv6GoogleAccess() {
return Optional.ofNullable(this.privateIpv6GoogleAccess);
}
@Import(name="project")
private @Nullable Output project;
public Optional> project() {
return Optional.ofNullable(this.project);
}
/**
* An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
*
*/
@Import(name="requestId")
private @Nullable Output requestId;
/**
* @return An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
*
*/
public Optional> requestId() {
return Optional.ofNullable(this.requestId);
}
/**
* Specifies the reservations that this instance can consume from.
*
*/
@Import(name="reservationAffinity")
private @Nullable Output reservationAffinity;
/**
* @return Specifies the reservations that this instance can consume from.
*
*/
public Optional> reservationAffinity() {
return Optional.ofNullable(this.reservationAffinity);
}
/**
* Resource policies applied to this instance.
*
*/
@Import(name="resourcePolicies")
private @Nullable Output> resourcePolicies;
/**
* @return Resource policies applied to this instance.
*
*/
public Optional>> resourcePolicies() {
return Optional.ofNullable(this.resourcePolicies);
}
/**
* Sets the scheduling options for this instance.
*
*/
@Import(name="scheduling")
private @Nullable Output scheduling;
/**
* @return Sets the scheduling options for this instance.
*
*/
public Optional> scheduling() {
return Optional.ofNullable(this.scheduling);
}
/**
* [Input Only] Secure tags to apply to this instance. These can be later modified by the update method. Maximum number of secure tags allowed is 50.
*
*/
@Import(name="secureTags")
private @Nullable Output> secureTags;
/**
* @return [Input Only] Secure tags to apply to this instance. These can be later modified by the update method. Maximum number of secure tags allowed is 50.
*
*/
public Optional>> secureTags() {
return Optional.ofNullable(this.secureTags);
}
/**
* A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
*
*/
@Import(name="serviceAccounts")
private @Nullable Output> serviceAccounts;
/**
* @return A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
*
*/
public Optional>> serviceAccounts() {
return Optional.ofNullable(this.serviceAccounts);
}
/**
* Mapping of user-defined keys to specifications for service integrations. Currently only a single key-value pair is supported.
*
*/
@Import(name="serviceIntegrationSpecs")
private @Nullable Output> serviceIntegrationSpecs;
/**
* @return Mapping of user-defined keys to specifications for service integrations. Currently only a single key-value pair is supported.
*
*/
public Optional>> serviceIntegrationSpecs() {
return Optional.ofNullable(this.serviceIntegrationSpecs);
}
@Import(name="shieldedInstanceConfig")
private @Nullable Output shieldedInstanceConfig;
public Optional> shieldedInstanceConfig() {
return Optional.ofNullable(this.shieldedInstanceConfig);
}
@Import(name="shieldedInstanceIntegrityPolicy")
private @Nullable Output shieldedInstanceIntegrityPolicy;
public Optional> shieldedInstanceIntegrityPolicy() {
return Optional.ofNullable(this.shieldedInstanceIntegrityPolicy);
}
/**
* Deprecating, please use shielded_instance_config.
*
*/
@Import(name="shieldedVmConfig")
private @Nullable Output shieldedVmConfig;
/**
* @return Deprecating, please use shielded_instance_config.
*
*/
public Optional> shieldedVmConfig() {
return Optional.ofNullable(this.shieldedVmConfig);
}
/**
* Deprecating, please use shielded_instance_integrity_policy.
*
*/
@Import(name="shieldedVmIntegrityPolicy")
private @Nullable Output shieldedVmIntegrityPolicy;
/**
* @return Deprecating, please use shielded_instance_integrity_policy.
*
*/
public Optional> shieldedVmIntegrityPolicy() {
return Optional.ofNullable(this.shieldedVmIntegrityPolicy);
}
/**
* Specifies instance template to create the instance. This field is optional. It can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate
*
*/
@Import(name="sourceInstanceTemplate")
private @Nullable Output sourceInstanceTemplate;
/**
* @return Specifies instance template to create the instance. This field is optional. It can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate
*
*/
public Optional> sourceInstanceTemplate() {
return Optional.ofNullable(this.sourceInstanceTemplate);
}
/**
* Source machine image
*
*/
@Import(name="sourceMachineImage")
private @Nullable Output sourceMachineImage;
/**
* @return Source machine image
*
*/
public Optional> sourceMachineImage() {
return Optional.ofNullable(this.sourceMachineImage);
}
/**
* Source machine image encryption key when creating an instance from a machine image.
*
*/
@Import(name="sourceMachineImageEncryptionKey")
private @Nullable Output sourceMachineImageEncryptionKey;
/**
* @return Source machine image encryption key when creating an instance from a machine image.
*
*/
public Optional> sourceMachineImageEncryptionKey() {
return Optional.ofNullable(this.sourceMachineImageEncryptionKey);
}
/**
* Tags to apply to this instance. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035. Multiple tags can be specified via the 'tags.items' field.
*
*/
@Import(name="tags")
private @Nullable Output tags;
/**
* @return Tags to apply to this instance. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035. Multiple tags can be specified via the 'tags.items' field.
*
*/
public Optional> tags() {
return Optional.ofNullable(this.tags);
}
@Import(name="zone")
private @Nullable Output zone;
public Optional> zone() {
return Optional.ofNullable(this.zone);
}
private InstanceArgs() {}
private InstanceArgs(InstanceArgs $) {
this.advancedMachineFeatures = $.advancedMachineFeatures;
this.canIpForward = $.canIpForward;
this.confidentialInstanceConfig = $.confidentialInstanceConfig;
this.deletionProtection = $.deletionProtection;
this.description = $.description;
this.disks = $.disks;
this.displayDevice = $.displayDevice;
this.eraseWindowsVssSignature = $.eraseWindowsVssSignature;
this.guestAccelerators = $.guestAccelerators;
this.hostname = $.hostname;
this.instanceEncryptionKey = $.instanceEncryptionKey;
this.keyRevocationActionType = $.keyRevocationActionType;
this.labels = $.labels;
this.machineType = $.machineType;
this.metadata = $.metadata;
this.minCpuPlatform = $.minCpuPlatform;
this.name = $.name;
this.networkInterfaces = $.networkInterfaces;
this.networkPerformanceConfig = $.networkPerformanceConfig;
this.params = $.params;
this.postKeyRevocationActionType = $.postKeyRevocationActionType;
this.preservedStateSizeGb = $.preservedStateSizeGb;
this.privateIpv6GoogleAccess = $.privateIpv6GoogleAccess;
this.project = $.project;
this.requestId = $.requestId;
this.reservationAffinity = $.reservationAffinity;
this.resourcePolicies = $.resourcePolicies;
this.scheduling = $.scheduling;
this.secureTags = $.secureTags;
this.serviceAccounts = $.serviceAccounts;
this.serviceIntegrationSpecs = $.serviceIntegrationSpecs;
this.shieldedInstanceConfig = $.shieldedInstanceConfig;
this.shieldedInstanceIntegrityPolicy = $.shieldedInstanceIntegrityPolicy;
this.shieldedVmConfig = $.shieldedVmConfig;
this.shieldedVmIntegrityPolicy = $.shieldedVmIntegrityPolicy;
this.sourceInstanceTemplate = $.sourceInstanceTemplate;
this.sourceMachineImage = $.sourceMachineImage;
this.sourceMachineImageEncryptionKey = $.sourceMachineImageEncryptionKey;
this.tags = $.tags;
this.zone = $.zone;
}
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 advancedMachineFeatures Controls for advanced machine-related behavior features.
*
* @return builder
*
*/
public Builder advancedMachineFeatures(@Nullable Output advancedMachineFeatures) {
$.advancedMachineFeatures = advancedMachineFeatures;
return this;
}
/**
* @param advancedMachineFeatures Controls for advanced machine-related behavior features.
*
* @return builder
*
*/
public Builder advancedMachineFeatures(AdvancedMachineFeaturesArgs advancedMachineFeatures) {
return advancedMachineFeatures(Output.of(advancedMachineFeatures));
}
/**
* @param canIpForward Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding .
*
* @return builder
*
*/
public Builder canIpForward(@Nullable Output canIpForward) {
$.canIpForward = canIpForward;
return this;
}
/**
* @param canIpForward Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding .
*
* @return builder
*
*/
public Builder canIpForward(Boolean canIpForward) {
return canIpForward(Output.of(canIpForward));
}
public Builder confidentialInstanceConfig(@Nullable Output confidentialInstanceConfig) {
$.confidentialInstanceConfig = confidentialInstanceConfig;
return this;
}
public Builder confidentialInstanceConfig(ConfidentialInstanceConfigArgs confidentialInstanceConfig) {
return confidentialInstanceConfig(Output.of(confidentialInstanceConfig));
}
/**
* @param deletionProtection Whether the resource should be protected against deletion.
*
* @return builder
*
*/
public Builder deletionProtection(@Nullable Output deletionProtection) {
$.deletionProtection = deletionProtection;
return this;
}
/**
* @param deletionProtection Whether the resource should be protected against deletion.
*
* @return builder
*
*/
public Builder deletionProtection(Boolean deletionProtection) {
return deletionProtection(Output.of(deletionProtection));
}
/**
* @param description An optional description of this resource. Provide this property when you create the resource.
*
* @return builder
*
*/
public Builder description(@Nullable Output description) {
$.description = description;
return this;
}
/**
* @param description An optional description of this resource. Provide this property when you create the resource.
*
* @return builder
*
*/
public Builder description(String description) {
return description(Output.of(description));
}
/**
* @param disks Array of disks associated with this instance. Persistent disks must be created before you can assign them.
*
* @return builder
*
*/
public Builder disks(@Nullable Output> disks) {
$.disks = disks;
return this;
}
/**
* @param disks Array of disks associated with this instance. Persistent disks must be created before you can assign them.
*
* @return builder
*
*/
public Builder disks(List disks) {
return disks(Output.of(disks));
}
/**
* @param disks Array of disks associated with this instance. Persistent disks must be created before you can assign them.
*
* @return builder
*
*/
public Builder disks(AttachedDiskArgs... disks) {
return disks(List.of(disks));
}
/**
* @param displayDevice Enables display device for the instance.
*
* @return builder
*
*/
public Builder displayDevice(@Nullable Output displayDevice) {
$.displayDevice = displayDevice;
return this;
}
/**
* @param displayDevice Enables display device for the instance.
*
* @return builder
*
*/
public Builder displayDevice(DisplayDeviceArgs displayDevice) {
return displayDevice(Output.of(displayDevice));
}
/**
* @param eraseWindowsVssSignature Specifies whether the disks restored from source snapshots or source machine image should erase Windows specific VSS signature.
*
* @return builder
*
*/
public Builder eraseWindowsVssSignature(@Nullable Output eraseWindowsVssSignature) {
$.eraseWindowsVssSignature = eraseWindowsVssSignature;
return this;
}
/**
* @param eraseWindowsVssSignature Specifies whether the disks restored from source snapshots or source machine image should erase Windows specific VSS signature.
*
* @return builder
*
*/
public Builder eraseWindowsVssSignature(Boolean eraseWindowsVssSignature) {
return eraseWindowsVssSignature(Output.of(eraseWindowsVssSignature));
}
/**
* @param guestAccelerators A list of the type and count of accelerator cards attached to the instance.
*
* @return builder
*
*/
public Builder guestAccelerators(@Nullable Output> guestAccelerators) {
$.guestAccelerators = guestAccelerators;
return this;
}
/**
* @param guestAccelerators A list of the type and count of accelerator cards attached to the instance.
*
* @return builder
*
*/
public Builder guestAccelerators(List guestAccelerators) {
return guestAccelerators(Output.of(guestAccelerators));
}
/**
* @param guestAccelerators A list of the type and count of accelerator cards attached to the instance.
*
* @return builder
*
*/
public Builder guestAccelerators(AcceleratorConfigArgs... guestAccelerators) {
return guestAccelerators(List.of(guestAccelerators));
}
/**
* @param hostname Specifies the hostname of the instance. The specified hostname must be RFC1035 compliant. If hostname is not specified, the default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when using the global DNS, and [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.
*
* @return builder
*
*/
public Builder hostname(@Nullable Output hostname) {
$.hostname = hostname;
return this;
}
/**
* @param hostname Specifies the hostname of the instance. The specified hostname must be RFC1035 compliant. If hostname is not specified, the default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when using the global DNS, and [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.
*
* @return builder
*
*/
public Builder hostname(String hostname) {
return hostname(Output.of(hostname));
}
/**
* @param instanceEncryptionKey Encrypts suspended data for an instance with a customer-managed encryption key. If you are creating a new instance, this field will encrypt the local SSD and in-memory contents of the instance during the suspend operation. If you do not provide an encryption key when creating the instance, then the local SSD and in-memory contents will be encrypted using an automatically generated key during the suspend operation.
*
* @return builder
*
*/
public Builder instanceEncryptionKey(@Nullable Output instanceEncryptionKey) {
$.instanceEncryptionKey = instanceEncryptionKey;
return this;
}
/**
* @param instanceEncryptionKey Encrypts suspended data for an instance with a customer-managed encryption key. If you are creating a new instance, this field will encrypt the local SSD and in-memory contents of the instance during the suspend operation. If you do not provide an encryption key when creating the instance, then the local SSD and in-memory contents will be encrypted using an automatically generated key during the suspend operation.
*
* @return builder
*
*/
public Builder instanceEncryptionKey(CustomerEncryptionKeyArgs instanceEncryptionKey) {
return instanceEncryptionKey(Output.of(instanceEncryptionKey));
}
/**
* @param keyRevocationActionType KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified.
*
* @return builder
*
*/
public Builder keyRevocationActionType(@Nullable Output keyRevocationActionType) {
$.keyRevocationActionType = keyRevocationActionType;
return this;
}
/**
* @param keyRevocationActionType KeyRevocationActionType of the instance. Supported options are "STOP" and "NONE". The default value is "NONE" if it is not specified.
*
* @return builder
*
*/
public Builder keyRevocationActionType(InstanceKeyRevocationActionType keyRevocationActionType) {
return keyRevocationActionType(Output.of(keyRevocationActionType));
}
/**
* @param labels Labels to apply to this instance. These can be later modified by the setLabels method.
*
* @return builder
*
*/
public Builder labels(@Nullable Output> labels) {
$.labels = labels;
return this;
}
/**
* @param labels Labels to apply to this instance. These can be later modified by the setLabels method.
*
* @return builder
*
*/
public Builder labels(Map labels) {
return labels(Output.of(labels));
}
/**
* @param machineType Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type: zones/us-central1-f/machineTypes/n1-standard-1 To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB): zones/zone/machineTypes/custom-CPUS-MEMORY For example: zones/us-central1-f/machineTypes/custom-4-5120 For a full list of restrictions, read the Specifications for custom machine types.
*
* @return builder
*
*/
public Builder machineType(@Nullable Output machineType) {
$.machineType = machineType;
return this;
}
/**
* @param machineType Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type: zones/us-central1-f/machineTypes/n1-standard-1 To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB): zones/zone/machineTypes/custom-CPUS-MEMORY For example: zones/us-central1-f/machineTypes/custom-4-5120 For a full list of restrictions, read the Specifications for custom machine types.
*
* @return builder
*
*/
public Builder machineType(String machineType) {
return machineType(Output.of(machineType));
}
/**
* @param metadata The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
*
* @return builder
*
*/
public Builder metadata(@Nullable Output metadata) {
$.metadata = metadata;
return this;
}
/**
* @param metadata The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
*
* @return builder
*
*/
public Builder metadata(MetadataArgs metadata) {
return metadata(Output.of(metadata));
}
/**
* @param minCpuPlatform Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge".
*
* @return builder
*
*/
public Builder minCpuPlatform(@Nullable Output minCpuPlatform) {
$.minCpuPlatform = minCpuPlatform;
return this;
}
/**
* @param minCpuPlatform Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge".
*
* @return builder
*
*/
public Builder minCpuPlatform(String minCpuPlatform) {
return minCpuPlatform(Output.of(minCpuPlatform));
}
/**
* @param name The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
*
* @return builder
*
*/
public Builder name(@Nullable Output name) {
$.name = name;
return this;
}
/**
* @param name The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
*
* @return builder
*
*/
public Builder name(String name) {
return name(Output.of(name));
}
/**
* @param networkInterfaces An array of network configurations for this instance. These specify how interfaces are configured to interact with other network services, such as connecting to the internet. Multiple interfaces are supported per instance.
*
* @return builder
*
*/
public Builder networkInterfaces(@Nullable Output> networkInterfaces) {
$.networkInterfaces = networkInterfaces;
return this;
}
/**
* @param networkInterfaces An array of network configurations for this instance. These specify how interfaces are configured to interact with other network services, such as connecting to the internet. Multiple interfaces are supported per instance.
*
* @return builder
*
*/
public Builder networkInterfaces(List networkInterfaces) {
return networkInterfaces(Output.of(networkInterfaces));
}
/**
* @param networkInterfaces An array of network configurations for this instance. These specify how interfaces are configured to interact with other network services, such as connecting to the internet. Multiple interfaces are supported per instance.
*
* @return builder
*
*/
public Builder networkInterfaces(NetworkInterfaceArgs... networkInterfaces) {
return networkInterfaces(List.of(networkInterfaces));
}
public Builder networkPerformanceConfig(@Nullable Output networkPerformanceConfig) {
$.networkPerformanceConfig = networkPerformanceConfig;
return this;
}
public Builder networkPerformanceConfig(NetworkPerformanceConfigArgs networkPerformanceConfig) {
return networkPerformanceConfig(Output.of(networkPerformanceConfig));
}
/**
* @param params Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload.
*
* @return builder
*
*/
public Builder params(@Nullable Output params) {
$.params = params;
return this;
}
/**
* @param params Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload.
*
* @return builder
*
*/
public Builder params(InstanceParamsArgs params) {
return params(Output.of(params));
}
/**
* @param postKeyRevocationActionType PostKeyRevocationActionType of the instance.
*
* @return builder
*
*/
public Builder postKeyRevocationActionType(@Nullable Output postKeyRevocationActionType) {
$.postKeyRevocationActionType = postKeyRevocationActionType;
return this;
}
/**
* @param postKeyRevocationActionType PostKeyRevocationActionType of the instance.
*
* @return builder
*
*/
public Builder postKeyRevocationActionType(InstancePostKeyRevocationActionType postKeyRevocationActionType) {
return postKeyRevocationActionType(Output.of(postKeyRevocationActionType));
}
/**
* @param preservedStateSizeGb Total amount of preserved state for SUSPENDED instances. Read-only in the api.
*
* @return builder
*
*/
public Builder preservedStateSizeGb(@Nullable Output preservedStateSizeGb) {
$.preservedStateSizeGb = preservedStateSizeGb;
return this;
}
/**
* @param preservedStateSizeGb Total amount of preserved state for SUSPENDED instances. Read-only in the api.
*
* @return builder
*
*/
public Builder preservedStateSizeGb(String preservedStateSizeGb) {
return preservedStateSizeGb(Output.of(preservedStateSizeGb));
}
/**
* @param privateIpv6GoogleAccess The private IPv6 google access type for the VM. If not specified, use INHERIT_FROM_SUBNETWORK as default.
*
* @return builder
*
*/
public Builder privateIpv6GoogleAccess(@Nullable Output privateIpv6GoogleAccess) {
$.privateIpv6GoogleAccess = privateIpv6GoogleAccess;
return this;
}
/**
* @param privateIpv6GoogleAccess The private IPv6 google access type for the VM. If not specified, use INHERIT_FROM_SUBNETWORK as default.
*
* @return builder
*
*/
public Builder privateIpv6GoogleAccess(InstancePrivateIpv6GoogleAccess privateIpv6GoogleAccess) {
return privateIpv6GoogleAccess(Output.of(privateIpv6GoogleAccess));
}
public Builder project(@Nullable Output project) {
$.project = project;
return this;
}
public Builder project(String project) {
return project(Output.of(project));
}
/**
* @param requestId An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
*
* @return builder
*
*/
public Builder requestId(@Nullable Output requestId) {
$.requestId = requestId;
return this;
}
/**
* @param requestId An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
*
* @return builder
*
*/
public Builder requestId(String requestId) {
return requestId(Output.of(requestId));
}
/**
* @param reservationAffinity Specifies the reservations that this instance can consume from.
*
* @return builder
*
*/
public Builder reservationAffinity(@Nullable Output reservationAffinity) {
$.reservationAffinity = reservationAffinity;
return this;
}
/**
* @param reservationAffinity Specifies the reservations that this instance can consume from.
*
* @return builder
*
*/
public Builder reservationAffinity(ReservationAffinityArgs reservationAffinity) {
return reservationAffinity(Output.of(reservationAffinity));
}
/**
* @param resourcePolicies Resource policies applied to this instance.
*
* @return builder
*
*/
public Builder resourcePolicies(@Nullable Output> resourcePolicies) {
$.resourcePolicies = resourcePolicies;
return this;
}
/**
* @param resourcePolicies Resource policies applied to this instance.
*
* @return builder
*
*/
public Builder resourcePolicies(List resourcePolicies) {
return resourcePolicies(Output.of(resourcePolicies));
}
/**
* @param resourcePolicies Resource policies applied to this instance.
*
* @return builder
*
*/
public Builder resourcePolicies(String... resourcePolicies) {
return resourcePolicies(List.of(resourcePolicies));
}
/**
* @param scheduling Sets the scheduling options for this instance.
*
* @return builder
*
*/
public Builder scheduling(@Nullable Output scheduling) {
$.scheduling = scheduling;
return this;
}
/**
* @param scheduling Sets the scheduling options for this instance.
*
* @return builder
*
*/
public Builder scheduling(SchedulingArgs scheduling) {
return scheduling(Output.of(scheduling));
}
/**
* @param secureTags [Input Only] Secure tags to apply to this instance. These can be later modified by the update method. Maximum number of secure tags allowed is 50.
*
* @return builder
*
*/
public Builder secureTags(@Nullable Output> secureTags) {
$.secureTags = secureTags;
return this;
}
/**
* @param secureTags [Input Only] Secure tags to apply to this instance. These can be later modified by the update method. Maximum number of secure tags allowed is 50.
*
* @return builder
*
*/
public Builder secureTags(List secureTags) {
return secureTags(Output.of(secureTags));
}
/**
* @param secureTags [Input Only] Secure tags to apply to this instance. These can be later modified by the update method. Maximum number of secure tags allowed is 50.
*
* @return builder
*
*/
public Builder secureTags(String... secureTags) {
return secureTags(List.of(secureTags));
}
/**
* @param serviceAccounts A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
*
* @return builder
*
*/
public Builder serviceAccounts(@Nullable Output> serviceAccounts) {
$.serviceAccounts = serviceAccounts;
return this;
}
/**
* @param serviceAccounts A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
*
* @return builder
*
*/
public Builder serviceAccounts(List serviceAccounts) {
return serviceAccounts(Output.of(serviceAccounts));
}
/**
* @param serviceAccounts A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.
*
* @return builder
*
*/
public Builder serviceAccounts(ServiceAccountArgs... serviceAccounts) {
return serviceAccounts(List.of(serviceAccounts));
}
/**
* @param serviceIntegrationSpecs Mapping of user-defined keys to specifications for service integrations. Currently only a single key-value pair is supported.
*
* @return builder
*
*/
public Builder serviceIntegrationSpecs(@Nullable Output> serviceIntegrationSpecs) {
$.serviceIntegrationSpecs = serviceIntegrationSpecs;
return this;
}
/**
* @param serviceIntegrationSpecs Mapping of user-defined keys to specifications for service integrations. Currently only a single key-value pair is supported.
*
* @return builder
*
*/
public Builder serviceIntegrationSpecs(Map serviceIntegrationSpecs) {
return serviceIntegrationSpecs(Output.of(serviceIntegrationSpecs));
}
public Builder shieldedInstanceConfig(@Nullable Output shieldedInstanceConfig) {
$.shieldedInstanceConfig = shieldedInstanceConfig;
return this;
}
public Builder shieldedInstanceConfig(ShieldedInstanceConfigArgs shieldedInstanceConfig) {
return shieldedInstanceConfig(Output.of(shieldedInstanceConfig));
}
public Builder shieldedInstanceIntegrityPolicy(@Nullable Output shieldedInstanceIntegrityPolicy) {
$.shieldedInstanceIntegrityPolicy = shieldedInstanceIntegrityPolicy;
return this;
}
public Builder shieldedInstanceIntegrityPolicy(ShieldedInstanceIntegrityPolicyArgs shieldedInstanceIntegrityPolicy) {
return shieldedInstanceIntegrityPolicy(Output.of(shieldedInstanceIntegrityPolicy));
}
/**
* @param shieldedVmConfig Deprecating, please use shielded_instance_config.
*
* @return builder
*
*/
public Builder shieldedVmConfig(@Nullable Output shieldedVmConfig) {
$.shieldedVmConfig = shieldedVmConfig;
return this;
}
/**
* @param shieldedVmConfig Deprecating, please use shielded_instance_config.
*
* @return builder
*
*/
public Builder shieldedVmConfig(ShieldedVmConfigArgs shieldedVmConfig) {
return shieldedVmConfig(Output.of(shieldedVmConfig));
}
/**
* @param shieldedVmIntegrityPolicy Deprecating, please use shielded_instance_integrity_policy.
*
* @return builder
*
*/
public Builder shieldedVmIntegrityPolicy(@Nullable Output shieldedVmIntegrityPolicy) {
$.shieldedVmIntegrityPolicy = shieldedVmIntegrityPolicy;
return this;
}
/**
* @param shieldedVmIntegrityPolicy Deprecating, please use shielded_instance_integrity_policy.
*
* @return builder
*
*/
public Builder shieldedVmIntegrityPolicy(ShieldedVmIntegrityPolicyArgs shieldedVmIntegrityPolicy) {
return shieldedVmIntegrityPolicy(Output.of(shieldedVmIntegrityPolicy));
}
/**
* @param sourceInstanceTemplate Specifies instance template to create the instance. This field is optional. It can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate
*
* @return builder
*
*/
public Builder sourceInstanceTemplate(@Nullable Output sourceInstanceTemplate) {
$.sourceInstanceTemplate = sourceInstanceTemplate;
return this;
}
/**
* @param sourceInstanceTemplate Specifies instance template to create the instance. This field is optional. It can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate
*
* @return builder
*
*/
public Builder sourceInstanceTemplate(String sourceInstanceTemplate) {
return sourceInstanceTemplate(Output.of(sourceInstanceTemplate));
}
/**
* @param sourceMachineImage Source machine image
*
* @return builder
*
*/
public Builder sourceMachineImage(@Nullable Output sourceMachineImage) {
$.sourceMachineImage = sourceMachineImage;
return this;
}
/**
* @param sourceMachineImage Source machine image
*
* @return builder
*
*/
public Builder sourceMachineImage(String sourceMachineImage) {
return sourceMachineImage(Output.of(sourceMachineImage));
}
/**
* @param sourceMachineImageEncryptionKey Source machine image encryption key when creating an instance from a machine image.
*
* @return builder
*
*/
public Builder sourceMachineImageEncryptionKey(@Nullable Output sourceMachineImageEncryptionKey) {
$.sourceMachineImageEncryptionKey = sourceMachineImageEncryptionKey;
return this;
}
/**
* @param sourceMachineImageEncryptionKey Source machine image encryption key when creating an instance from a machine image.
*
* @return builder
*
*/
public Builder sourceMachineImageEncryptionKey(CustomerEncryptionKeyArgs sourceMachineImageEncryptionKey) {
return sourceMachineImageEncryptionKey(Output.of(sourceMachineImageEncryptionKey));
}
/**
* @param tags Tags to apply to this instance. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035. Multiple tags can be specified via the 'tags.items' field.
*
* @return builder
*
*/
public Builder tags(@Nullable Output tags) {
$.tags = tags;
return this;
}
/**
* @param tags Tags to apply to this instance. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035. Multiple tags can be specified via the 'tags.items' field.
*
* @return builder
*
*/
public Builder tags(TagsArgs tags) {
return tags(Output.of(tags));
}
public Builder zone(@Nullable Output zone) {
$.zone = zone;
return this;
}
public Builder zone(String zone) {
return zone(Output.of(zone));
}
public InstanceArgs build() {
return $;
}
}
}