MachineImage class
Represents a Machine Image resource. Machine images store all the configuration, metadata, permissions, and data from one or more disks required to create a Virtual machine (VM) instance.
> Warning: This resource is in beta, and should be used with the terraform-provider-google-beta provider. See Provider Versions for more details on beta resources.
To get more information about MachineImage, see:
- API documentation
- How-to Guides
- Official Documentation
Example Usage
Machine Image Basic
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const vm = new gcp.compute.Instance("vm", {
name: "my-vm",
machineType: "e2-medium",
bootDisk: {
initializeParams: {
image: "debian-cloud/debian-11",
},
},
networkInterfaces: [{
network: "default",
}],
});
const image = new gcp.compute.MachineImage("image", {
name: "my-image",
sourceInstance: vm.selfLink,
});
import pulumi
import pulumi_gcp as gcp
vm = gcp.compute.Instance("vm",
name="my-vm",
machine_type="e2-medium",
boot_disk={
"initialize_params": {
"image": "debian-cloud/debian-11",
},
},
network_interfaces=[{
"network": "default",
}])
image = gcp.compute.MachineImage("image",
name="my-image",
source_instance=vm.self_link)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var vm = new Gcp.Compute.Instance("vm", new()
{
Name = "my-vm",
MachineType = "e2-medium",
BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs
{
InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs
{
Image = "debian-cloud/debian-11",
},
},
NetworkInterfaces = new[]
{
new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs
{
Network = "default",
},
},
});
var image = new Gcp.Compute.MachineImage("image", new()
{
Name = "my-image",
SourceInstance = vm.SelfLink,
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/compute"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
vm, err := compute.NewInstance(ctx, "vm", &compute.InstanceArgs{
Name: pulumi.String("my-vm"),
MachineType: pulumi.String("e2-medium"),
BootDisk: &compute.InstanceBootDiskArgs{
InitializeParams: &compute.InstanceBootDiskInitializeParamsArgs{
Image: pulumi.String("debian-cloud/debian-11"),
},
},
NetworkInterfaces: compute.InstanceNetworkInterfaceArray{
&compute.InstanceNetworkInterfaceArgs{
Network: pulumi.String("default"),
},
},
})
if err != nil {
return err
}
_, err = compute.NewMachineImage(ctx, "image", &compute.MachineImageArgs{
Name: pulumi.String("my-image"),
SourceInstance: vm.SelfLink,
})
if err != nil {
return err
}
return nil
})
}
pulumi {
required_providers {
gcp = {
source = "pulumi/gcp"
}
}
}
resource "gcp_compute_instance" "vm" {
name = "my-vm"
machine_type = "e2-medium"
boot_disk = {
initialize_params = {
image = "debian-cloud/debian-11"
}
}
network_interfaces {
network = "default"
}
}
resource "gcp_compute_machineimage" "image" {
name = "my-image"
source_instance = gcp_compute_instance.vm.self_link
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Instance;
import com.pulumi.gcp.compute.InstanceArgs;
import com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;
import com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;
import com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;
import com.pulumi.gcp.compute.MachineImage;
import com.pulumi.gcp.compute.MachineImageArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var vm = new Instance("vm", InstanceArgs.builder()
.name("my-vm")
.machineType("e2-medium")
.bootDisk(InstanceBootDiskArgs.builder()
.initializeParams(InstanceBootDiskInitializeParamsArgs.builder()
.image("debian-cloud/debian-11")
.build())
.build())
.networkInterfaces(InstanceNetworkInterfaceArgs.builder()
.network("default")
.build())
.build());
var image = new MachineImage("image", MachineImageArgs.builder()
.name("my-image")
.sourceInstance(vm.selfLink())
.build());
}
}
resources:
vm:
type: gcp:compute:Instance
properties:
name: my-vm
machineType: e2-medium
bootDisk:
initializeParams:
image: debian-cloud/debian-11
networkInterfaces:
- network: default
image:
type: gcp:compute:MachineImage
properties:
name: my-image
sourceInstance: ${vm.selfLink}
Compute Machine Image Kms
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const vm = new gcp.compute.Instance("vm", {
name: "my-vm",
machineType: "e2-medium",
bootDisk: {
initializeParams: {
image: "debian-cloud/debian-11",
},
},
networkInterfaces: [{
network: "default",
}],
});
const keyRing = new gcp.kms.KeyRing("key_ring", {
name: "keyring",
location: "us",
});
const cryptoKey = new gcp.kms.CryptoKey("crypto_key", {
name: "key",
keyRing: keyRing.id,
});
const image = new gcp.compute.MachineImage("image", {
name: "my-image",
sourceInstance: vm.selfLink,
machineImageEncryptionKey: {
kmsKeyName: cryptoKey.id,
},
});
import pulumi
import pulumi_gcp as gcp
vm = gcp.compute.Instance("vm",
name="my-vm",
machine_type="e2-medium",
boot_disk={
"initialize_params": {
"image": "debian-cloud/debian-11",
},
},
network_interfaces=[{
"network": "default",
}])
key_ring = gcp.kms.KeyRing("key_ring",
name="keyring",
location="us")
crypto_key = gcp.kms.CryptoKey("crypto_key",
name="key",
key_ring=key_ring.id)
image = gcp.compute.MachineImage("image",
name="my-image",
source_instance=vm.self_link,
machine_image_encryption_key={
"kms_key_name": crypto_key.id,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var vm = new Gcp.Compute.Instance("vm", new()
{
Name = "my-vm",
MachineType = "e2-medium",
BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs
{
InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs
{
Image = "debian-cloud/debian-11",
},
},
NetworkInterfaces = new[]
{
new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs
{
Network = "default",
},
},
});
var keyRing = new Gcp.Kms.KeyRing("key_ring", new()
{
Name = "keyring",
Location = "us",
});
var cryptoKey = new Gcp.Kms.CryptoKey("crypto_key", new()
{
Name = "key",
KeyRing = keyRing.Id,
});
var image = new Gcp.Compute.MachineImage("image", new()
{
Name = "my-image",
SourceInstance = vm.SelfLink,
MachineImageEncryptionKey = new Gcp.Compute.Inputs.MachineImageMachineImageEncryptionKeyArgs
{
KmsKeyName = cryptoKey.Id,
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/compute"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
vm, err := compute.NewInstance(ctx, "vm", &compute.InstanceArgs{
Name: pulumi.String("my-vm"),
MachineType: pulumi.String("e2-medium"),
BootDisk: &compute.InstanceBootDiskArgs{
InitializeParams: &compute.InstanceBootDiskInitializeParamsArgs{
Image: pulumi.String("debian-cloud/debian-11"),
},
},
NetworkInterfaces: compute.InstanceNetworkInterfaceArray{
&compute.InstanceNetworkInterfaceArgs{
Network: pulumi.String("default"),
},
},
})
if err != nil {
return err
}
keyRing, err := kms.NewKeyRing(ctx, "key_ring", &kms.KeyRingArgs{
Name: pulumi.String("keyring"),
Location: pulumi.String("us"),
})
if err != nil {
return err
}
cryptoKey, err := kms.NewCryptoKey(ctx, "crypto_key", &kms.CryptoKeyArgs{
Name: pulumi.String("key"),
KeyRing: keyRing.ID().ToIDOutput().ToStringOutput(),
})
if err != nil {
return err
}
_, err = compute.NewMachineImage(ctx, "image", &compute.MachineImageArgs{
Name: pulumi.String("my-image"),
SourceInstance: vm.SelfLink,
MachineImageEncryptionKey: &compute.MachineImageMachineImageEncryptionKeyArgs{
KmsKeyName: cryptoKey.ID().ToIDOutput().ToStringOutput(),
},
})
if err != nil {
return err
}
return nil
})
}
pulumi {
required_providers {
gcp = {
source = "pulumi/gcp"
}
}
}
resource "gcp_compute_instance" "vm" {
name = "my-vm"
machine_type = "e2-medium"
boot_disk = {
initialize_params = {
image = "debian-cloud/debian-11"
}
}
network_interfaces {
network = "default"
}
}
resource "gcp_compute_machineimage" "image" {
name = "my-image"
source_instance = gcp_compute_instance.vm.self_link
machine_image_encryption_key = {
kms_key_name = gcp_kms_cryptokey.crypto_key.id
}
}
resource "gcp_kms_cryptokey" "crypto_key" {
name = "key"
key_ring = gcp_kms_keyring.key_ring.id
}
resource "gcp_kms_keyring" "key_ring" {
name = "keyring"
location = "us"
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Instance;
import com.pulumi.gcp.compute.InstanceArgs;
import com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;
import com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;
import com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;
import com.pulumi.gcp.kms.KeyRing;
import com.pulumi.gcp.kms.KeyRingArgs;
import com.pulumi.gcp.kms.CryptoKey;
import com.pulumi.gcp.kms.CryptoKeyArgs;
import com.pulumi.gcp.compute.MachineImage;
import com.pulumi.gcp.compute.MachineImageArgs;
import com.pulumi.gcp.compute.inputs.MachineImageMachineImageEncryptionKeyArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var vm = new Instance("vm", InstanceArgs.builder()
.name("my-vm")
.machineType("e2-medium")
.bootDisk(InstanceBootDiskArgs.builder()
.initializeParams(InstanceBootDiskInitializeParamsArgs.builder()
.image("debian-cloud/debian-11")
.build())
.build())
.networkInterfaces(InstanceNetworkInterfaceArgs.builder()
.network("default")
.build())
.build());
var keyRing = new KeyRing("keyRing", KeyRingArgs.builder()
.name("keyring")
.location("us")
.build());
var cryptoKey = new CryptoKey("cryptoKey", CryptoKeyArgs.builder()
.name("key")
.keyRing(keyRing.id())
.build());
var image = new MachineImage("image", MachineImageArgs.builder()
.name("my-image")
.sourceInstance(vm.selfLink())
.machineImageEncryptionKey(MachineImageMachineImageEncryptionKeyArgs.builder()
.kmsKeyName(cryptoKey.id())
.build())
.build());
}
}
resources:
vm:
type: gcp:compute:Instance
properties:
name: my-vm
machineType: e2-medium
bootDisk:
initializeParams:
image: debian-cloud/debian-11
networkInterfaces:
- network: default
image:
type: gcp:compute:MachineImage
properties:
name: my-image
sourceInstance: ${vm.selfLink}
machineImageEncryptionKey:
kmsKeyName: ${cryptoKey.id}
cryptoKey:
type: gcp:kms:CryptoKey
name: crypto_key
properties:
name: key
keyRing: ${keyRing.id}
keyRing:
type: gcp:kms:KeyRing
name: key_ring
properties:
name: keyring
location: us
Machine Image Resource Manager Tags
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const project = gcp.organizations.getProject({});
const tagKey1 = new gcp.tags.TagKey("tag_key1", {
parent: project.then(project => `projects/${project.number}`),
shortName: "tagkey",
});
const tagValue1 = new gcp.tags.TagValue("tag_value1", {
parent: tagKey1.id,
shortName: "tagvalue",
});
const vm = new gcp.compute.Instance("vm", {
name: "my-vm",
machineType: "e2-medium",
bootDisk: {
initializeParams: {
image: "debian-cloud/debian-11",
},
},
networkInterfaces: [{
network: "default",
}],
});
const image = new gcp.compute.MachineImage("image", {
name: "my-image",
sourceInstance: vm.selfLink,
params: {
resourceManagerTags: pulumi.all([tagKey1.id, tagValue1.id]).apply(([tagKey1Id, tagValue1Id]) => {
[tagKey1Id]: tagValue1Id,
}),
},
});
import pulumi
import pulumi_gcp as gcp
project = gcp.organizations.get_project()
tag_key1 = gcp.tags.TagKey("tag_key1",
parent=f"projects/{project.number}",
short_name="tagkey")
tag_value1 = gcp.tags.TagValue("tag_value1",
parent=tag_key1.id,
short_name="tagvalue")
vm = gcp.compute.Instance("vm",
name="my-vm",
machine_type="e2-medium",
boot_disk={
"initialize_params": {
"image": "debian-cloud/debian-11",
},
},
network_interfaces=[{
"network": "default",
}])
image = gcp.compute.MachineImage("image",
name="my-image",
source_instance=vm.self_link,
params={
"resource_manager_tags": pulumi.Output.all(
tagKey1Id=tag_key1.id,
tagValue1Id=tag_value1.id
).apply(lambda resolved_outputs: {
str(resolved_outputs['tagKey1Id']): resolved_outputs['tagValue1Id'],
})
,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var project = Gcp.Organizations.GetProject.Invoke();
var tagKey1 = new Gcp.Tags.TagKey("tag_key1", new()
{
Parent = $"projects/{project.Apply(getProjectResult => getProjectResult.Number)}",
ShortName = "tagkey",
});
var tagValue1 = new Gcp.Tags.TagValue("tag_value1", new()
{
Parent = tagKey1.Id,
ShortName = "tagvalue",
});
var vm = new Gcp.Compute.Instance("vm", new()
{
Name = "my-vm",
MachineType = "e2-medium",
BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs
{
InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs
{
Image = "debian-cloud/debian-11",
},
},
NetworkInterfaces = new[]
{
new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs
{
Network = "default",
},
},
});
var image = new Gcp.Compute.MachineImage("image", new()
{
Name = "my-image",
SourceInstance = vm.SelfLink,
Params = new Gcp.Compute.Inputs.MachineImageParamsArgs
{
ResourceManagerTags = Output.Tuple(tagKey1.Id, tagValue1.Id).Apply(values =>
{
var tagKey1Id = values.Item1;
var tagValue1Id = values.Item2;
return
{
{ tagKey1Id, tagValue1Id },
};
}),
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/compute"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/tags"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
project, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
if err != nil {
return err
}
tagKey1, err := tags.NewTagKey(ctx, "tag_key1", &tags.TagKeyArgs{
Parent: pulumi.Sprintf("projects/%v", project.Number),
ShortName: pulumi.String("tagkey"),
})
if err != nil {
return err
}
tagValue1, err := tags.NewTagValue(ctx, "tag_value1", &tags.TagValueArgs{
Parent: tagKey1.ID().ToIDOutput().ToStringOutput(),
ShortName: pulumi.String("tagvalue"),
})
if err != nil {
return err
}
vm, err := compute.NewInstance(ctx, "vm", &compute.InstanceArgs{
Name: pulumi.String("my-vm"),
MachineType: pulumi.String("e2-medium"),
BootDisk: &compute.InstanceBootDiskArgs{
InitializeParams: &compute.InstanceBootDiskInitializeParamsArgs{
Image: pulumi.String("debian-cloud/debian-11"),
},
},
NetworkInterfaces: compute.InstanceNetworkInterfaceArray{
&compute.InstanceNetworkInterfaceArgs{
Network: pulumi.String("default"),
},
},
})
if err != nil {
return err
}
_, err = compute.NewMachineImage(ctx, "image", &compute.MachineImageArgs{
Name: pulumi.String("my-image"),
SourceInstance: vm.SelfLink,
Params: &compute.MachineImageParamsArgs{
ResourceManagerTags: pulumi.StringMap(pulumi.All(tagKey1.ID(), tagValue1.ID()).ApplyT(func(_args []interface{}) (map[string]pulumi.ID, error) {
tagKey1Id := _args[0].(pulumi.ID)
tagValue1Id := _args[1].(pulumi.ID)
return map[string]pulumi.ID(pulumi.String(tagKey1Id).ApplyT(func(__convert string) (map[string]pulumi.ID, error) {
return map[string]pulumi.ID{
__convert: tagValue1Id,
}, nil
}).(pulumi.IDMapOutput)), nil
}).(pulumi.IDMapOutput)),
},
})
if err != nil {
return err
}
return nil
})
}
pulumi {
required_providers {
gcp = {
source = "pulumi/gcp"
}
}
}
data "gcp_organizations_getproject" "project" {
}
resource "gcp_tags_tagkey" "tag_key1" {
parent ="projects/${data.gcp_organizations_getproject.project.number}"
short_name = "tagkey"
}
resource "gcp_tags_tagvalue" "tag_value1" {
parent = gcp_tags_tagkey.tag_key1.id
short_name = "tagvalue"
}
resource "gcp_compute_instance" "vm" {
name = "my-vm"
machine_type = "e2-medium"
boot_disk = {
initialize_params = {
image = "debian-cloud/debian-11"
}
}
network_interfaces {
network = "default"
}
}
resource "gcp_compute_machineimage" "image" {
name = "my-image"
source_instance = gcp_compute_instance.vm.self_link
params = {
resource_manager_tags = {
gcp_tags_tagkey.tag_key1.id = gcp_tags_tagvalue.tag_value1.id
}
}
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.gcp.tags.TagKey;
import com.pulumi.gcp.tags.TagKeyArgs;
import com.pulumi.gcp.tags.TagValue;
import com.pulumi.gcp.tags.TagValueArgs;
import com.pulumi.gcp.compute.Instance;
import com.pulumi.gcp.compute.InstanceArgs;
import com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;
import com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;
import com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;
import com.pulumi.gcp.compute.MachineImage;
import com.pulumi.gcp.compute.MachineImageArgs;
import com.pulumi.gcp.compute.inputs.MachineImageParamsArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var project = OrganizationsFunctions.getProject(GetProjectArgs.builder()
.build());
var tagKey1 = new TagKey("tagKey1", TagKeyArgs.builder()
.parent(String.format("projects/%s", project.number()))
.shortName("tagkey")
.build());
var tagValue1 = new TagValue("tagValue1", TagValueArgs.builder()
.parent(tagKey1.id())
.shortName("tagvalue")
.build());
var vm = new Instance("vm", InstanceArgs.builder()
.name("my-vm")
.machineType("e2-medium")
.bootDisk(InstanceBootDiskArgs.builder()
.initializeParams(InstanceBootDiskInitializeParamsArgs.builder()
.image("debian-cloud/debian-11")
.build())
.build())
.networkInterfaces(InstanceNetworkInterfaceArgs.builder()
.network("default")
.build())
.build());
var image = new MachineImage("image", MachineImageArgs.builder()
.name("my-image")
.sourceInstance(vm.selfLink())
.params(MachineImageParamsArgs.builder()
.resourceManagerTags(Output.tuple(tagKey1.id(), tagValue1.id()).applyValue(values -> {
var tagKey1Id = values.t1;
var tagValue1Id = values.t2;
return tagKey1Id.applyValue(___convert -> Map.of(___convert, tagValue1Id));
}))
.build())
.build());
}
}
resources:
tagKey1:
type: gcp:tags:TagKey
name: tag_key1
properties:
parent: projects/${project.number}
shortName: tagkey
tagValue1:
type: gcp:tags:TagValue
name: tag_value1
properties:
parent: ${tagKey1.id}
shortName: tagvalue
vm:
type: gcp:compute:Instance
properties:
name: my-vm
machineType: e2-medium
bootDisk:
initializeParams:
image: debian-cloud/debian-11
networkInterfaces:
- network: default
image:
type: gcp:compute:MachineImage
properties:
name: my-image
sourceInstance: ${vm.selfLink}
params:
resourceManagerTags:
${tagKey1.id}: ${tagValue1.id}
variables:
project:
fn::invoke:
function: gcp:organizations:getProject
arguments: {}
Import
MachineImage can be imported using any of these accepted formats:
projects/{{project}}/global/machineImages/{{name}}{{project}}/{{name}}{{name}}
When using the pulumi import command, MachineImage can be imported using one of the formats above. For example:
$ pulumi import gcp:compute/machineImage:MachineImage default projects/{{project}}/global/machineImages/{{name}}
$ pulumi import gcp:compute/machineImage:MachineImage default {{project}}/{{name}}
$ pulumi import gcp:compute/machineImage:MachineImage default {{name}}
Constructors
- MachineImage(String name, {MachineImageArgs? args, CustomResourceOptions? options})
-
Creates a new MachineImage.
nameThe Pulumi resource name.argsArguments used to configure this MachineImage. The set of arguments for MachineImage.optionsResource options controlling this resource's behavior. - MachineImage.reference(String urn)
- Creates a typed reference to an existing MachineImage resource.
Properties
-
childResources
→ Set<
Resource> -
finalinherited
-
completionSources
↔ Map<
String, IOutputCompletionSource> -
latefinalinherited
-
deletionPolicy
↔ Output<
String> -
Whether Terraform will be prevented from destroying the resource. Defaults to DELETE.
When a 'terraform destroy' or 'pulumi up' would delete the resource,
the command will fail if this field is set to "PREVENT" in Terraform state.
When set to "ABANDON", the command will remove the resource from Terraform
management without updating or deleting the resource in the API.
When set to "DELETE", deleting the resource is allowed.
latefinal
-
description
↔ Output<
String?> -
A text description of the resource.
latefinal
-
guestFlush
↔ Output<
bool?> -
Specify this to create an application consistent machine image by informing the OS to prepare for the snapshot process.
Currently only supported on Windows instances using the Volume Shadow Copy Service (VSS).
latefinal
- hashCode → int
-
The hash code for this object.
no setterinherited
-
id
↔ Output<
String> -
getter/setter pairinherited
- isCustom → bool
-
Returns whether this resource is provider-managed.
no setterinherited
- isProtected → bool
-
Returns whether this resource is protected from deletion.
no setterinherited
- isRemote → bool
-
Whether this resource is registered as remote.
no setterinherited
- isResourceReference → bool
-
Whether this instance represents a resource value returned over RPC.
finalinherited
-
machineImageEncryptionKey
↔ Output<
MachineImageMachineImageEncryptionKey?> -
Encrypts the machine image using a customer-supplied encryption key.
After you encrypt a machine image with a customer-supplied key, you must
provide the same key if you use the machine image later (e.g. to create a
instance from the image)
Structure is documented below.
latefinal
-
name
↔ Output<
String> -
Name of the resource.
latefinal
-
params
↔ Output<
MachineImageParams?> -
Additional params passed with the request, but not persisted as part of resource payload.
Structure is documented below.
latefinal
-
project
↔ Output<
String> -
The ID of the project in which the resource belongs.
If it is not provided, the provider project is used.
latefinal
-
resourceTransforms
→ List<
ResourceTransform> -
Inherited/explicit async transforms.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
selfLink
↔ Output<
String> -
The URI of the created resource.
latefinal
-
sourceInstance
↔ Output<
String> -
The source instance used to create the machine image. You can provide this as a partial or full URL to the resource.
latefinal
-
storageLocations
↔ Output<
List< String> > -
The regional or multi-regional Cloud Storage bucket location where the machine image is stored.
latefinal
-
transformations
→ List<
ResourceTransformation> -
Inherited/explicit legacy transformations.
no setterinherited
-
urn
↔ Output<
String> -
latefinalinherited
Methods
-
failId(
Object error) → void -
Completes this resource ID with an error when registration fails.
inherited
-
failOutputs(
Object error) → void -
Completes all output properties with
error.inherited -
failUrn(
Object error) → void -
Completes this resource URN with an error when registration fails.
inherited
-
getProvider(
String moduleMember) → ProviderResource? -
Returns provider for
moduleMember's package, if configured.inherited -
getResourceName(
) → String -
Returns this resource's logical name.
inherited
-
getResourceType(
) → String -
Returns this resource's Pulumi type token.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
registerOutput<
T> (String propertyName, {Object? decoder(Object?)?, bool isSecret = false}) → Output< T> -
Registers a dynamic output property for this resource.
inherited
-
resolveId(
String? value, {required bool isKnown}) → void -
Resolves the provider-assigned ID for this resource.
inherited
-
resolveOutputs(
Struct outputs) → void -
Resolves all output properties from a monitor response payload.
inherited
-
resolveUrn(
String value) → void -
Resolves this resource's URN once assigned by the engine.
inherited
-
serializeProperties(
Map< String, dynamic> properties) → Future<Struct> -
Serializes resource properties for RPC transmission.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
get(
String name, Input< String> id, {MachineImageState? state, CustomResourceOptions? options}) → MachineImage -
Gets an existing MachineImage resource's state with the given
nameandid.