@pulumi/gcp
Version:
A Pulumi package for creating and managing Google Cloud Platform resources.
626 lines (625 loc) • 25.4 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
* Manages a VM instance resource within GCE. For more information see
* [the official documentation](https://cloud.google.com/compute/docs/instances)
* and
* [API](https://cloud.google.com/compute/docs/reference/latest/instances).
*
* This resource is specifically to create a compute instance from a given
* `sourceMachineImage`. To create an instance without a machine image, use the
* `gcp.compute.Instance` resource.
*
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const tpl = new gcp.compute.InstanceFromMachineImage("tpl", {
* name: "instance-from-machine-image",
* zone: "us-central1-a",
* sourceMachineImage: "projects/PROJECT-ID/global/machineImages/NAME",
* canIpForward: false,
* labels: {
* my_key: "my_value",
* },
* });
* ```
*/
export declare class InstanceFromMachineImage extends pulumi.CustomResource {
/**
* Get an existing InstanceFromMachineImage resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: InstanceFromMachineImageState, opts?: pulumi.CustomResourceOptions): InstanceFromMachineImage;
/**
* Returns true if the given object is an instance of InstanceFromMachineImage. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj: any): obj is InstanceFromMachineImage;
/**
* Controls for advanced machine-related behavior features.
*/
readonly advancedMachineFeatures: pulumi.Output<outputs.compute.InstanceFromMachineImageAdvancedMachineFeatures>;
readonly allowStoppingForUpdate: pulumi.Output<boolean>;
/**
* List of disks attached to the instance
*/
readonly attachedDisks: pulumi.Output<outputs.compute.InstanceFromMachineImageAttachedDisk[]>;
/**
* The boot disk for the instance.
*/
readonly bootDisks: pulumi.Output<outputs.compute.InstanceFromMachineImageBootDisk[]>;
/**
* Whether sending and receiving of packets with non-matching source or destination IPs is allowed.
*/
readonly canIpForward: pulumi.Output<boolean>;
/**
* The Confidential VM config being used by the instance. onHostMaintenance has to be set to TERMINATE or this will fail to
* create.
*/
readonly confidentialInstanceConfig: pulumi.Output<outputs.compute.InstanceFromMachineImageConfidentialInstanceConfig>;
/**
* The CPU platform used by this instance.
*/
readonly cpuPlatform: pulumi.Output<string>;
/**
* Creation timestamp in RFC3339 text format.
*/
readonly creationTimestamp: pulumi.Output<string>;
/**
* Current status of the instance. This could be one of the following values: PROVISIONING, STAGING, RUNNING, STOPPING,
* SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more information about the status of the instance, see [Instance
* life cycle](https://cloud.google.com/compute/docs/instances/instance-life-cycle).
*/
readonly currentStatus: pulumi.Output<string>;
/**
* Whether deletion protection is enabled on this instance.
*/
readonly deletionProtection: pulumi.Output<boolean>;
/**
* A brief description of the resource.
*/
readonly description: pulumi.Output<string>;
/**
* Desired status of the instance. Either "RUNNING", "SUSPENDED" or "TERMINATED".
*/
readonly desiredStatus: pulumi.Output<string>;
readonly effectiveLabels: pulumi.Output<{
[key: string]: string;
}>;
/**
* Whether the instance has virtual displays enabled.
*/
readonly enableDisplay: pulumi.Output<boolean>;
/**
* List of the type and count of accelerator cards attached to the instance.
*/
readonly guestAccelerators: pulumi.Output<outputs.compute.InstanceFromMachineImageGuestAccelerator[]>;
/**
* A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of
* labels 1-63 characters long matching the regular expression a-z, concatenated with periods. The entire hostname must not
* exceed 253 characters. Changing this forces a new resource to be created.
*/
readonly hostname: pulumi.Output<string>;
/**
* Encryption key used to provide data encryption on the given instance.
*/
readonly instanceEncryptionKey: pulumi.Output<outputs.compute.InstanceFromMachineImageInstanceEncryptionKey>;
/**
* The server-assigned unique identifier of this instance.
*/
readonly instanceId: pulumi.Output<string>;
/**
* Action to be taken when a customer's encryption key is revoked. Supports "STOP" and "NONE", with "NONE" being the
* default.
*/
readonly keyRevocationActionType: pulumi.Output<string>;
/**
* The unique fingerprint of the labels.
*/
readonly labelFingerprint: pulumi.Output<string>;
/**
* A set of key/value label pairs assigned to the instance. **Note**: This field is non-authoritative, and will only manage
* the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on
* the resource.
*/
readonly labels: pulumi.Output<{
[key: string]: string;
}>;
/**
* The machine type to create.
*/
readonly machineType: pulumi.Output<string>;
/**
* Metadata key/value pairs made available within the instance.
*/
readonly metadata: pulumi.Output<{
[key: string]: string;
}>;
/**
* The unique fingerprint of the metadata.
*/
readonly metadataFingerprint: pulumi.Output<string>;
/**
* Metadata startup scripts made available within the instance.
*/
readonly metadataStartupScript: pulumi.Output<string>;
/**
* The minimum CPU platform specified for the VM instance.
*/
readonly minCpuPlatform: pulumi.Output<string>;
/**
* A unique name for the resource, required by GCE.
* Changing this forces a new resource to be created.
*/
readonly name: pulumi.Output<string>;
/**
* The networks attached to the instance.
*/
readonly networkInterfaces: pulumi.Output<outputs.compute.InstanceFromMachineImageNetworkInterface[]>;
/**
* Configures network performance settings for the instance. If not specified, the instance will be created with its
* default network performance configuration.
*/
readonly networkPerformanceConfig: pulumi.Output<outputs.compute.InstanceFromMachineImageNetworkPerformanceConfig>;
/**
* Stores additional params passed with the request, but not persisted as part of resource payload.
*/
readonly params: pulumi.Output<outputs.compute.InstanceFromMachineImageParams>;
/**
* Partner Metadata Map made available within the instance.
*/
readonly partnerMetadata: pulumi.Output<{
[key: string]: string;
}>;
/**
* The ID of the project in which the resource belongs. If selfLink is provided, this value is ignored. If neither selfLink
* nor project are provided, the provider project is used.
*/
readonly project: pulumi.Output<string>;
/**
* The combination of labels configured directly on the resource and default labels configured on the provider.
*/
readonly pulumiLabels: pulumi.Output<{
[key: string]: string;
}>;
/**
* Specifies the reservations that this instance can consume from.
*/
readonly reservationAffinity: pulumi.Output<outputs.compute.InstanceFromMachineImageReservationAffinity>;
/**
* A list of selfLinks of resource policies to attach to the instance. Currently a max of 1 resource policy is supported.
*/
readonly resourcePolicies: pulumi.Output<string>;
/**
* The scheduling strategy being used by the instance.
*/
readonly scheduling: pulumi.Output<outputs.compute.InstanceFromMachineImageScheduling>;
/**
* The scratch disks attached to the instance.
*/
readonly scratchDisks: pulumi.Output<outputs.compute.InstanceFromMachineImageScratchDisk[]>;
/**
* The URI of the created resource.
*/
readonly selfLink: pulumi.Output<string>;
/**
* The service account to attach to the instance.
*/
readonly serviceAccount: pulumi.Output<outputs.compute.InstanceFromMachineImageServiceAccount>;
/**
* The shielded vm config being used by the instance.
*/
readonly shieldedInstanceConfig: pulumi.Output<outputs.compute.InstanceFromMachineImageShieldedInstanceConfig>;
/**
* Name or self link of a machine
* image to create the instance based on.
*
* - - -
*/
readonly sourceMachineImage: pulumi.Output<string>;
/**
* Encryption key for the source machine image.
*/
readonly sourceMachineImageEncryptionKey: pulumi.Output<outputs.compute.InstanceFromMachineImageSourceMachineImageEncryptionKey | undefined>;
/**
* The list of tags attached to the instance.
*/
readonly tags: pulumi.Output<string[]>;
/**
* The unique fingerprint of the tags.
*/
readonly tagsFingerprint: pulumi.Output<string>;
/**
* The zone that the machine should be created in. If not
* set, the provider zone is used.
*
* In addition to these, most* arguments from `gcp.compute.Instance` are supported
* as a way to override the properties in the machine image. All exported attributes
* from `gcp.compute.Instance` are likewise exported here.
*
* > **Warning:** *Due to API limitations, disk overrides are currently disabled. This includes the "bootDisk", "attachedDisk", and "scratchDisk" fields.
*/
readonly zone: pulumi.Output<string>;
/**
* Create a InstanceFromMachineImage resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args: InstanceFromMachineImageArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering InstanceFromMachineImage resources.
*/
export interface InstanceFromMachineImageState {
/**
* Controls for advanced machine-related behavior features.
*/
advancedMachineFeatures?: pulumi.Input<inputs.compute.InstanceFromMachineImageAdvancedMachineFeatures>;
allowStoppingForUpdate?: pulumi.Input<boolean>;
/**
* List of disks attached to the instance
*/
attachedDisks?: pulumi.Input<pulumi.Input<inputs.compute.InstanceFromMachineImageAttachedDisk>[]>;
/**
* The boot disk for the instance.
*/
bootDisks?: pulumi.Input<pulumi.Input<inputs.compute.InstanceFromMachineImageBootDisk>[]>;
/**
* Whether sending and receiving of packets with non-matching source or destination IPs is allowed.
*/
canIpForward?: pulumi.Input<boolean>;
/**
* The Confidential VM config being used by the instance. onHostMaintenance has to be set to TERMINATE or this will fail to
* create.
*/
confidentialInstanceConfig?: pulumi.Input<inputs.compute.InstanceFromMachineImageConfidentialInstanceConfig>;
/**
* The CPU platform used by this instance.
*/
cpuPlatform?: pulumi.Input<string>;
/**
* Creation timestamp in RFC3339 text format.
*/
creationTimestamp?: pulumi.Input<string>;
/**
* Current status of the instance. This could be one of the following values: PROVISIONING, STAGING, RUNNING, STOPPING,
* SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more information about the status of the instance, see [Instance
* life cycle](https://cloud.google.com/compute/docs/instances/instance-life-cycle).
*/
currentStatus?: pulumi.Input<string>;
/**
* Whether deletion protection is enabled on this instance.
*/
deletionProtection?: pulumi.Input<boolean>;
/**
* A brief description of the resource.
*/
description?: pulumi.Input<string>;
/**
* Desired status of the instance. Either "RUNNING", "SUSPENDED" or "TERMINATED".
*/
desiredStatus?: pulumi.Input<string>;
effectiveLabels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Whether the instance has virtual displays enabled.
*/
enableDisplay?: pulumi.Input<boolean>;
/**
* List of the type and count of accelerator cards attached to the instance.
*/
guestAccelerators?: pulumi.Input<pulumi.Input<inputs.compute.InstanceFromMachineImageGuestAccelerator>[]>;
/**
* A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of
* labels 1-63 characters long matching the regular expression a-z, concatenated with periods. The entire hostname must not
* exceed 253 characters. Changing this forces a new resource to be created.
*/
hostname?: pulumi.Input<string>;
/**
* Encryption key used to provide data encryption on the given instance.
*/
instanceEncryptionKey?: pulumi.Input<inputs.compute.InstanceFromMachineImageInstanceEncryptionKey>;
/**
* The server-assigned unique identifier of this instance.
*/
instanceId?: pulumi.Input<string>;
/**
* Action to be taken when a customer's encryption key is revoked. Supports "STOP" and "NONE", with "NONE" being the
* default.
*/
keyRevocationActionType?: pulumi.Input<string>;
/**
* The unique fingerprint of the labels.
*/
labelFingerprint?: pulumi.Input<string>;
/**
* A set of key/value label pairs assigned to the instance. **Note**: This field is non-authoritative, and will only manage
* the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on
* the resource.
*/
labels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The machine type to create.
*/
machineType?: pulumi.Input<string>;
/**
* Metadata key/value pairs made available within the instance.
*/
metadata?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The unique fingerprint of the metadata.
*/
metadataFingerprint?: pulumi.Input<string>;
/**
* Metadata startup scripts made available within the instance.
*/
metadataStartupScript?: pulumi.Input<string>;
/**
* The minimum CPU platform specified for the VM instance.
*/
minCpuPlatform?: pulumi.Input<string>;
/**
* A unique name for the resource, required by GCE.
* Changing this forces a new resource to be created.
*/
name?: pulumi.Input<string>;
/**
* The networks attached to the instance.
*/
networkInterfaces?: pulumi.Input<pulumi.Input<inputs.compute.InstanceFromMachineImageNetworkInterface>[]>;
/**
* Configures network performance settings for the instance. If not specified, the instance will be created with its
* default network performance configuration.
*/
networkPerformanceConfig?: pulumi.Input<inputs.compute.InstanceFromMachineImageNetworkPerformanceConfig>;
/**
* Stores additional params passed with the request, but not persisted as part of resource payload.
*/
params?: pulumi.Input<inputs.compute.InstanceFromMachineImageParams>;
/**
* Partner Metadata Map made available within the instance.
*/
partnerMetadata?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The ID of the project in which the resource belongs. If selfLink is provided, this value is ignored. If neither selfLink
* nor project are provided, the provider project is used.
*/
project?: pulumi.Input<string>;
/**
* The combination of labels configured directly on the resource and default labels configured on the provider.
*/
pulumiLabels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Specifies the reservations that this instance can consume from.
*/
reservationAffinity?: pulumi.Input<inputs.compute.InstanceFromMachineImageReservationAffinity>;
/**
* A list of selfLinks of resource policies to attach to the instance. Currently a max of 1 resource policy is supported.
*/
resourcePolicies?: pulumi.Input<string>;
/**
* The scheduling strategy being used by the instance.
*/
scheduling?: pulumi.Input<inputs.compute.InstanceFromMachineImageScheduling>;
/**
* The scratch disks attached to the instance.
*/
scratchDisks?: pulumi.Input<pulumi.Input<inputs.compute.InstanceFromMachineImageScratchDisk>[]>;
/**
* The URI of the created resource.
*/
selfLink?: pulumi.Input<string>;
/**
* The service account to attach to the instance.
*/
serviceAccount?: pulumi.Input<inputs.compute.InstanceFromMachineImageServiceAccount>;
/**
* The shielded vm config being used by the instance.
*/
shieldedInstanceConfig?: pulumi.Input<inputs.compute.InstanceFromMachineImageShieldedInstanceConfig>;
/**
* Name or self link of a machine
* image to create the instance based on.
*
* - - -
*/
sourceMachineImage?: pulumi.Input<string>;
/**
* Encryption key for the source machine image.
*/
sourceMachineImageEncryptionKey?: pulumi.Input<inputs.compute.InstanceFromMachineImageSourceMachineImageEncryptionKey>;
/**
* The list of tags attached to the instance.
*/
tags?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The unique fingerprint of the tags.
*/
tagsFingerprint?: pulumi.Input<string>;
/**
* The zone that the machine should be created in. If not
* set, the provider zone is used.
*
* In addition to these, most* arguments from `gcp.compute.Instance` are supported
* as a way to override the properties in the machine image. All exported attributes
* from `gcp.compute.Instance` are likewise exported here.
*
* > **Warning:** *Due to API limitations, disk overrides are currently disabled. This includes the "bootDisk", "attachedDisk", and "scratchDisk" fields.
*/
zone?: pulumi.Input<string>;
}
/**
* The set of arguments for constructing a InstanceFromMachineImage resource.
*/
export interface InstanceFromMachineImageArgs {
/**
* Controls for advanced machine-related behavior features.
*/
advancedMachineFeatures?: pulumi.Input<inputs.compute.InstanceFromMachineImageAdvancedMachineFeatures>;
allowStoppingForUpdate?: pulumi.Input<boolean>;
/**
* Whether sending and receiving of packets with non-matching source or destination IPs is allowed.
*/
canIpForward?: pulumi.Input<boolean>;
/**
* The Confidential VM config being used by the instance. onHostMaintenance has to be set to TERMINATE or this will fail to
* create.
*/
confidentialInstanceConfig?: pulumi.Input<inputs.compute.InstanceFromMachineImageConfidentialInstanceConfig>;
/**
* Whether deletion protection is enabled on this instance.
*/
deletionProtection?: pulumi.Input<boolean>;
/**
* A brief description of the resource.
*/
description?: pulumi.Input<string>;
/**
* Desired status of the instance. Either "RUNNING", "SUSPENDED" or "TERMINATED".
*/
desiredStatus?: pulumi.Input<string>;
/**
* Whether the instance has virtual displays enabled.
*/
enableDisplay?: pulumi.Input<boolean>;
/**
* List of the type and count of accelerator cards attached to the instance.
*/
guestAccelerators?: pulumi.Input<pulumi.Input<inputs.compute.InstanceFromMachineImageGuestAccelerator>[]>;
/**
* A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of
* labels 1-63 characters long matching the regular expression a-z, concatenated with periods. The entire hostname must not
* exceed 253 characters. Changing this forces a new resource to be created.
*/
hostname?: pulumi.Input<string>;
/**
* Encryption key used to provide data encryption on the given instance.
*/
instanceEncryptionKey?: pulumi.Input<inputs.compute.InstanceFromMachineImageInstanceEncryptionKey>;
/**
* Action to be taken when a customer's encryption key is revoked. Supports "STOP" and "NONE", with "NONE" being the
* default.
*/
keyRevocationActionType?: pulumi.Input<string>;
/**
* A set of key/value label pairs assigned to the instance. **Note**: This field is non-authoritative, and will only manage
* the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on
* the resource.
*/
labels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The machine type to create.
*/
machineType?: pulumi.Input<string>;
/**
* Metadata key/value pairs made available within the instance.
*/
metadata?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Metadata startup scripts made available within the instance.
*/
metadataStartupScript?: pulumi.Input<string>;
/**
* The minimum CPU platform specified for the VM instance.
*/
minCpuPlatform?: pulumi.Input<string>;
/**
* A unique name for the resource, required by GCE.
* Changing this forces a new resource to be created.
*/
name?: pulumi.Input<string>;
/**
* The networks attached to the instance.
*/
networkInterfaces?: pulumi.Input<pulumi.Input<inputs.compute.InstanceFromMachineImageNetworkInterface>[]>;
/**
* Configures network performance settings for the instance. If not specified, the instance will be created with its
* default network performance configuration.
*/
networkPerformanceConfig?: pulumi.Input<inputs.compute.InstanceFromMachineImageNetworkPerformanceConfig>;
/**
* Stores additional params passed with the request, but not persisted as part of resource payload.
*/
params?: pulumi.Input<inputs.compute.InstanceFromMachineImageParams>;
/**
* Partner Metadata Map made available within the instance.
*/
partnerMetadata?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The ID of the project in which the resource belongs. If selfLink is provided, this value is ignored. If neither selfLink
* nor project are provided, the provider project is used.
*/
project?: pulumi.Input<string>;
/**
* Specifies the reservations that this instance can consume from.
*/
reservationAffinity?: pulumi.Input<inputs.compute.InstanceFromMachineImageReservationAffinity>;
/**
* A list of selfLinks of resource policies to attach to the instance. Currently a max of 1 resource policy is supported.
*/
resourcePolicies?: pulumi.Input<string>;
/**
* The scheduling strategy being used by the instance.
*/
scheduling?: pulumi.Input<inputs.compute.InstanceFromMachineImageScheduling>;
/**
* The service account to attach to the instance.
*/
serviceAccount?: pulumi.Input<inputs.compute.InstanceFromMachineImageServiceAccount>;
/**
* The shielded vm config being used by the instance.
*/
shieldedInstanceConfig?: pulumi.Input<inputs.compute.InstanceFromMachineImageShieldedInstanceConfig>;
/**
* Name or self link of a machine
* image to create the instance based on.
*
* - - -
*/
sourceMachineImage: pulumi.Input<string>;
/**
* Encryption key for the source machine image.
*/
sourceMachineImageEncryptionKey?: pulumi.Input<inputs.compute.InstanceFromMachineImageSourceMachineImageEncryptionKey>;
/**
* The list of tags attached to the instance.
*/
tags?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The zone that the machine should be created in. If not
* set, the provider zone is used.
*
* In addition to these, most* arguments from `gcp.compute.Instance` are supported
* as a way to override the properties in the machine image. All exported attributes
* from `gcp.compute.Instance` are likewise exported here.
*
* > **Warning:** *Due to API limitations, disk overrides are currently disabled. This includes the "bootDisk", "attachedDisk", and "scratchDisk" fields.
*/
zone?: pulumi.Input<string>;
}