1. Packages
  2. Packages
  3. Google Cloud (GCP) Classic
  4. API Docs
  5. compute
  6. GlobalVmExtensionPolicy
Viewing docs for Google Cloud v9.32.1
published on Wednesday, Jul 29, 2026 by Pulumi
gcp logo
Viewing docs for Google Cloud v9.32.1
published on Wednesday, Jul 29, 2026 by Pulumi

    A Global VM Extension Policy.

    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.

    Example Usage

    Compute Global Vm Extension Policy Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const opsAgentPolicy = new gcp.compute.GlobalVmExtensionPolicy("ops_agent_policy", {
        name: "global-ops-agent-vme-policy-_88722",
        description: "A basic global VM extension policy",
        priority: 10,
        extensionPolicies: [{
            extensionName: "ops-agent",
            pinnedVersion: "2.66.0",
        }],
        instanceSelectors: [{
            labelSelector: {
                inclusionLabels: {
                    env: "test",
                },
            },
        }],
        rolloutOperation: {
            rolloutInput: {
                predefinedRolloutPlan: "FAST_ROLLOUT",
            },
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    ops_agent_policy = gcp.compute.GlobalVmExtensionPolicy("ops_agent_policy",
        name="global-ops-agent-vme-policy-_88722",
        description="A basic global VM extension policy",
        priority=10,
        extension_policies=[{
            "extension_name": "ops-agent",
            "pinned_version": "2.66.0",
        }],
        instance_selectors=[{
            "label_selector": {
                "inclusion_labels": {
                    "env": "test",
                },
            },
        }],
        rollout_operation={
            "rollout_input": {
                "predefined_rollout_plan": "FAST_ROLLOUT",
            },
        })
    
    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 {
    		_, err := compute.NewGlobalVmExtensionPolicy(ctx, "ops_agent_policy", &compute.GlobalVmExtensionPolicyArgs{
    			Name:        pulumi.String("global-ops-agent-vme-policy-_88722"),
    			Description: pulumi.String("A basic global VM extension policy"),
    			Priority:    pulumi.Int(10),
    			ExtensionPolicies: compute.GlobalVmExtensionPolicyExtensionPolicyArray{
    				&compute.GlobalVmExtensionPolicyExtensionPolicyArgs{
    					ExtensionName: pulumi.String("ops-agent"),
    					PinnedVersion: pulumi.String("2.66.0"),
    				},
    			},
    			InstanceSelectors: compute.GlobalVmExtensionPolicyInstanceSelectorArray{
    				&compute.GlobalVmExtensionPolicyInstanceSelectorArgs{
    					LabelSelector: &compute.GlobalVmExtensionPolicyInstanceSelectorLabelSelectorArgs{
    						InclusionLabels: pulumi.StringMap{
    							"env": pulumi.String("test"),
    						},
    					},
    				},
    			},
    			RolloutOperation: &compute.GlobalVmExtensionPolicyRolloutOperationArgs{
    				RolloutInput: &compute.GlobalVmExtensionPolicyRolloutOperationRolloutInputArgs{
    					PredefinedRolloutPlan: pulumi.String("FAST_ROLLOUT"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var opsAgentPolicy = new Gcp.Compute.GlobalVmExtensionPolicy("ops_agent_policy", new()
        {
            Name = "global-ops-agent-vme-policy-_88722",
            Description = "A basic global VM extension policy",
            Priority = 10,
            ExtensionPolicies = new[]
            {
                new Gcp.Compute.Inputs.GlobalVmExtensionPolicyExtensionPolicyArgs
                {
                    ExtensionName = "ops-agent",
                    PinnedVersion = "2.66.0",
                },
            },
            InstanceSelectors = new[]
            {
                new Gcp.Compute.Inputs.GlobalVmExtensionPolicyInstanceSelectorArgs
                {
                    LabelSelector = new Gcp.Compute.Inputs.GlobalVmExtensionPolicyInstanceSelectorLabelSelectorArgs
                    {
                        InclusionLabels = 
                        {
                            { "env", "test" },
                        },
                    },
                },
            },
            RolloutOperation = new Gcp.Compute.Inputs.GlobalVmExtensionPolicyRolloutOperationArgs
            {
                RolloutInput = new Gcp.Compute.Inputs.GlobalVmExtensionPolicyRolloutOperationRolloutInputArgs
                {
                    PredefinedRolloutPlan = "FAST_ROLLOUT",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.compute.GlobalVmExtensionPolicy;
    import com.pulumi.gcp.compute.GlobalVmExtensionPolicyArgs;
    import com.pulumi.gcp.compute.inputs.GlobalVmExtensionPolicyExtensionPolicyArgs;
    import com.pulumi.gcp.compute.inputs.GlobalVmExtensionPolicyInstanceSelectorArgs;
    import com.pulumi.gcp.compute.inputs.GlobalVmExtensionPolicyInstanceSelectorLabelSelectorArgs;
    import com.pulumi.gcp.compute.inputs.GlobalVmExtensionPolicyRolloutOperationArgs;
    import com.pulumi.gcp.compute.inputs.GlobalVmExtensionPolicyRolloutOperationRolloutInputArgs;
    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 opsAgentPolicy = new GlobalVmExtensionPolicy("opsAgentPolicy", GlobalVmExtensionPolicyArgs.builder()
                .name("global-ops-agent-vme-policy-_88722")
                .description("A basic global VM extension policy")
                .priority(10)
                .extensionPolicies(GlobalVmExtensionPolicyExtensionPolicyArgs.builder()
                    .extensionName("ops-agent")
                    .pinnedVersion("2.66.0")
                    .build())
                .instanceSelectors(GlobalVmExtensionPolicyInstanceSelectorArgs.builder()
                    .labelSelector(GlobalVmExtensionPolicyInstanceSelectorLabelSelectorArgs.builder()
                        .inclusionLabels(Map.of("env", "test"))
                        .build())
                    .build())
                .rolloutOperation(GlobalVmExtensionPolicyRolloutOperationArgs.builder()
                    .rolloutInput(GlobalVmExtensionPolicyRolloutOperationRolloutInputArgs.builder()
                        .predefinedRolloutPlan("FAST_ROLLOUT")
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      opsAgentPolicy:
        type: gcp:compute:GlobalVmExtensionPolicy
        name: ops_agent_policy
        properties:
          name: global-ops-agent-vme-policy-_88722
          description: A basic global VM extension policy
          priority: 10
          extensionPolicies:
            - extensionName: ops-agent
              pinnedVersion: 2.66.0
          instanceSelectors:
            - labelSelector:
                inclusionLabels:
                  env: test
          rolloutOperation:
            rolloutInput:
              predefinedRolloutPlan: FAST_ROLLOUT
    
    pulumi {
      required_providers {
        gcp = {
          source = "pulumi/gcp"
        }
      }
    }
    
    resource "gcp_compute_globalvmextensionpolicy" "ops_agent_policy" {
      name        = "global-ops-agent-vme-policy-_88722"
      description = "A basic global VM extension policy"
      priority    = 10
      extension_policies {
        extension_name = "ops-agent"
        pinned_version = "2.66.0"
      }
      instance_selectors {
        label_selector = {
          inclusion_labels = {
            "env" = "test"
          }
        }
      }
      rollout_operation = {
        rollout_input = {
          predefined_rollout_plan = "FAST_ROLLOUT"
        }
      }
    }
    

    Compute Global Vm Extension Policy Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const opsAgentPolicy = new gcp.compute.GlobalVmExtensionPolicy("ops_agent_policy", {
        name: "global-ops-agent-vme-policy-_39249",
        description: "A basic global VM extension policy",
        priority: 10,
        extensionPolicies: [{
            extensionName: "ops-agent",
            pinnedVersion: "2.66.0",
        }],
        instanceSelectors: [{
            labelSelector: {
                inclusionLabels: {
                    env: "test",
                },
            },
        }],
        rolloutOperation: {
            rolloutInput: {
                predefinedRolloutPlan: "FAST_ROLLOUT",
            },
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    ops_agent_policy = gcp.compute.GlobalVmExtensionPolicy("ops_agent_policy",
        name="global-ops-agent-vme-policy-_39249",
        description="A basic global VM extension policy",
        priority=10,
        extension_policies=[{
            "extension_name": "ops-agent",
            "pinned_version": "2.66.0",
        }],
        instance_selectors=[{
            "label_selector": {
                "inclusion_labels": {
                    "env": "test",
                },
            },
        }],
        rollout_operation={
            "rollout_input": {
                "predefined_rollout_plan": "FAST_ROLLOUT",
            },
        })
    
    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 {
    		_, err := compute.NewGlobalVmExtensionPolicy(ctx, "ops_agent_policy", &compute.GlobalVmExtensionPolicyArgs{
    			Name:        pulumi.String("global-ops-agent-vme-policy-_39249"),
    			Description: pulumi.String("A basic global VM extension policy"),
    			Priority:    pulumi.Int(10),
    			ExtensionPolicies: compute.GlobalVmExtensionPolicyExtensionPolicyArray{
    				&compute.GlobalVmExtensionPolicyExtensionPolicyArgs{
    					ExtensionName: pulumi.String("ops-agent"),
    					PinnedVersion: pulumi.String("2.66.0"),
    				},
    			},
    			InstanceSelectors: compute.GlobalVmExtensionPolicyInstanceSelectorArray{
    				&compute.GlobalVmExtensionPolicyInstanceSelectorArgs{
    					LabelSelector: &compute.GlobalVmExtensionPolicyInstanceSelectorLabelSelectorArgs{
    						InclusionLabels: pulumi.StringMap{
    							"env": pulumi.String("test"),
    						},
    					},
    				},
    			},
    			RolloutOperation: &compute.GlobalVmExtensionPolicyRolloutOperationArgs{
    				RolloutInput: &compute.GlobalVmExtensionPolicyRolloutOperationRolloutInputArgs{
    					PredefinedRolloutPlan: pulumi.String("FAST_ROLLOUT"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var opsAgentPolicy = new Gcp.Compute.GlobalVmExtensionPolicy("ops_agent_policy", new()
        {
            Name = "global-ops-agent-vme-policy-_39249",
            Description = "A basic global VM extension policy",
            Priority = 10,
            ExtensionPolicies = new[]
            {
                new Gcp.Compute.Inputs.GlobalVmExtensionPolicyExtensionPolicyArgs
                {
                    ExtensionName = "ops-agent",
                    PinnedVersion = "2.66.0",
                },
            },
            InstanceSelectors = new[]
            {
                new Gcp.Compute.Inputs.GlobalVmExtensionPolicyInstanceSelectorArgs
                {
                    LabelSelector = new Gcp.Compute.Inputs.GlobalVmExtensionPolicyInstanceSelectorLabelSelectorArgs
                    {
                        InclusionLabels = 
                        {
                            { "env", "test" },
                        },
                    },
                },
            },
            RolloutOperation = new Gcp.Compute.Inputs.GlobalVmExtensionPolicyRolloutOperationArgs
            {
                RolloutInput = new Gcp.Compute.Inputs.GlobalVmExtensionPolicyRolloutOperationRolloutInputArgs
                {
                    PredefinedRolloutPlan = "FAST_ROLLOUT",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.compute.GlobalVmExtensionPolicy;
    import com.pulumi.gcp.compute.GlobalVmExtensionPolicyArgs;
    import com.pulumi.gcp.compute.inputs.GlobalVmExtensionPolicyExtensionPolicyArgs;
    import com.pulumi.gcp.compute.inputs.GlobalVmExtensionPolicyInstanceSelectorArgs;
    import com.pulumi.gcp.compute.inputs.GlobalVmExtensionPolicyInstanceSelectorLabelSelectorArgs;
    import com.pulumi.gcp.compute.inputs.GlobalVmExtensionPolicyRolloutOperationArgs;
    import com.pulumi.gcp.compute.inputs.GlobalVmExtensionPolicyRolloutOperationRolloutInputArgs;
    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 opsAgentPolicy = new GlobalVmExtensionPolicy("opsAgentPolicy", GlobalVmExtensionPolicyArgs.builder()
                .name("global-ops-agent-vme-policy-_39249")
                .description("A basic global VM extension policy")
                .priority(10)
                .extensionPolicies(GlobalVmExtensionPolicyExtensionPolicyArgs.builder()
                    .extensionName("ops-agent")
                    .pinnedVersion("2.66.0")
                    .build())
                .instanceSelectors(GlobalVmExtensionPolicyInstanceSelectorArgs.builder()
                    .labelSelector(GlobalVmExtensionPolicyInstanceSelectorLabelSelectorArgs.builder()
                        .inclusionLabels(Map.of("env", "test"))
                        .build())
                    .build())
                .rolloutOperation(GlobalVmExtensionPolicyRolloutOperationArgs.builder()
                    .rolloutInput(GlobalVmExtensionPolicyRolloutOperationRolloutInputArgs.builder()
                        .predefinedRolloutPlan("FAST_ROLLOUT")
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      opsAgentPolicy:
        type: gcp:compute:GlobalVmExtensionPolicy
        name: ops_agent_policy
        properties:
          name: global-ops-agent-vme-policy-_39249
          description: A basic global VM extension policy
          priority: 10
          extensionPolicies:
            - extensionName: ops-agent
              pinnedVersion: 2.66.0
          instanceSelectors:
            - labelSelector:
                inclusionLabels:
                  env: test
          rolloutOperation:
            rolloutInput:
              predefinedRolloutPlan: FAST_ROLLOUT
    
    pulumi {
      required_providers {
        gcp = {
          source = "pulumi/gcp"
        }
      }
    }
    
    resource "gcp_compute_globalvmextensionpolicy" "ops_agent_policy" {
      name        = "global-ops-agent-vme-policy-_39249"
      description = "A basic global VM extension policy"
      priority    = 10
      extension_policies {
        extension_name = "ops-agent"
        pinned_version = "2.66.0"
      }
      instance_selectors {
        label_selector = {
          inclusion_labels = {
            "env" = "test"
          }
        }
      }
      rollout_operation = {
        rollout_input = {
          predefined_rollout_plan = "FAST_ROLLOUT"
        }
      }
    }
    

    Compute Global Vm Extension Policy Custom Rollout

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const project = gcp.organizations.getProject({});
    const customRollout = new gcp.compute.RolloutPlan("custom_rollout", {
        name: "custom-rollout-plan-_16511",
        locationScope: "ZONAL",
        waves: [{
            displayName: "wave-1",
            selectors: [{
                locationSelector: {
                    includedLocations: [
                        "us-central1-a",
                        "us-west1-a",
                    ],
                },
            }],
            validation: {
                type: "time",
                timeBasedValidationMetadata: {
                    waitDuration: "0s",
                },
            },
            orchestrationOptions: {
                maxConcurrentResourcesPerLocation: 10,
                maxConcurrentLocations: 10,
            },
        }],
    });
    const opsAgentPolicy = new gcp.compute.GlobalVmExtensionPolicy("ops_agent_policy", {
        name: "global-ops-agent-vme-policy-_74391",
        description: "A global VM extension policy with a custom rollout plan",
        priority: 10,
        extensionPolicies: [{
            extensionName: "ops-agent",
            pinnedVersion: "2.66.0",
        }],
        instanceSelectors: [{
            labelSelector: {
                inclusionLabels: {
                    env: "test",
                },
            },
        }],
        rolloutOperation: {
            rolloutInput: {
                name: pulumi.all([project, customRollout.name]).apply(([project, name]) => `projects/${project.number}/locations/global/rolloutPlans/${name}`),
            },
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    project = gcp.organizations.get_project()
    custom_rollout = gcp.compute.RolloutPlan("custom_rollout",
        name="custom-rollout-plan-_16511",
        location_scope="ZONAL",
        waves=[{
            "display_name": "wave-1",
            "selectors": [{
                "location_selector": {
                    "included_locations": [
                        "us-central1-a",
                        "us-west1-a",
                    ],
                },
            }],
            "validation": {
                "type": "time",
                "time_based_validation_metadata": {
                    "wait_duration": "0s",
                },
            },
            "orchestration_options": {
                "max_concurrent_resources_per_location": 10,
                "max_concurrent_locations": 10,
            },
        }])
    ops_agent_policy = gcp.compute.GlobalVmExtensionPolicy("ops_agent_policy",
        name="global-ops-agent-vme-policy-_74391",
        description="A global VM extension policy with a custom rollout plan",
        priority=10,
        extension_policies=[{
            "extension_name": "ops-agent",
            "pinned_version": "2.66.0",
        }],
        instance_selectors=[{
            "label_selector": {
                "inclusion_labels": {
                    "env": "test",
                },
            },
        }],
        rollout_operation={
            "rollout_input": {
                "name": custom_rollout.name.apply(lambda name: f"projects/{project.number}/locations/global/rolloutPlans/{name}"),
            },
        })
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/compute"
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/organizations"
    	"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
    		}
    		customRollout, err := compute.NewRolloutPlan(ctx, "custom_rollout", &compute.RolloutPlanArgs{
    			Name:          pulumi.String("custom-rollout-plan-_16511"),
    			LocationScope: pulumi.String("ZONAL"),
    			Waves: compute.RolloutPlanWaveArray{
    				&compute.RolloutPlanWaveArgs{
    					DisplayName: pulumi.String("wave-1"),
    					Selectors: compute.RolloutPlanWaveSelectorArray{
    						&compute.RolloutPlanWaveSelectorArgs{
    							LocationSelector: &compute.RolloutPlanWaveSelectorLocationSelectorArgs{
    								IncludedLocations: pulumi.StringArray{
    									pulumi.String("us-central1-a"),
    									pulumi.String("us-west1-a"),
    								},
    							},
    						},
    					},
    					Validation: &compute.RolloutPlanWaveValidationArgs{
    						Type: pulumi.String("time"),
    						TimeBasedValidationMetadata: &compute.RolloutPlanWaveValidationTimeBasedValidationMetadataArgs{
    							WaitDuration: pulumi.String("0s"),
    						},
    					},
    					OrchestrationOptions: &compute.RolloutPlanWaveOrchestrationOptionsArgs{
    						MaxConcurrentResourcesPerLocation: pulumi.Int(10),
    						MaxConcurrentLocations:            pulumi.Int(10),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = compute.NewGlobalVmExtensionPolicy(ctx, "ops_agent_policy", &compute.GlobalVmExtensionPolicyArgs{
    			Name:        pulumi.String("global-ops-agent-vme-policy-_74391"),
    			Description: pulumi.String("A global VM extension policy with a custom rollout plan"),
    			Priority:    pulumi.Int(10),
    			ExtensionPolicies: compute.GlobalVmExtensionPolicyExtensionPolicyArray{
    				&compute.GlobalVmExtensionPolicyExtensionPolicyArgs{
    					ExtensionName: pulumi.String("ops-agent"),
    					PinnedVersion: pulumi.String("2.66.0"),
    				},
    			},
    			InstanceSelectors: compute.GlobalVmExtensionPolicyInstanceSelectorArray{
    				&compute.GlobalVmExtensionPolicyInstanceSelectorArgs{
    					LabelSelector: &compute.GlobalVmExtensionPolicyInstanceSelectorLabelSelectorArgs{
    						InclusionLabels: pulumi.StringMap{
    							"env": pulumi.String("test"),
    						},
    					},
    				},
    			},
    			RolloutOperation: &compute.GlobalVmExtensionPolicyRolloutOperationArgs{
    				RolloutInput: &compute.GlobalVmExtensionPolicyRolloutOperationRolloutInputArgs{
    					Name: customRollout.Name.ApplyT(func(name string) (string, error) {
    						return fmt.Sprintf("projects/%v/locations/global/rolloutPlans/%v", project.Number, name), nil
    					}).(pulumi.StringOutput),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var project = Gcp.Organizations.GetProject.Invoke();
    
        var customRollout = new Gcp.Compute.RolloutPlan("custom_rollout", new()
        {
            Name = "custom-rollout-plan-_16511",
            LocationScope = "ZONAL",
            Waves = new[]
            {
                new Gcp.Compute.Inputs.RolloutPlanWaveArgs
                {
                    DisplayName = "wave-1",
                    Selectors = new[]
                    {
                        new Gcp.Compute.Inputs.RolloutPlanWaveSelectorArgs
                        {
                            LocationSelector = new Gcp.Compute.Inputs.RolloutPlanWaveSelectorLocationSelectorArgs
                            {
                                IncludedLocations = new[]
                                {
                                    "us-central1-a",
                                    "us-west1-a",
                                },
                            },
                        },
                    },
                    Validation = new Gcp.Compute.Inputs.RolloutPlanWaveValidationArgs
                    {
                        Type = "time",
                        TimeBasedValidationMetadata = new Gcp.Compute.Inputs.RolloutPlanWaveValidationTimeBasedValidationMetadataArgs
                        {
                            WaitDuration = "0s",
                        },
                    },
                    OrchestrationOptions = new Gcp.Compute.Inputs.RolloutPlanWaveOrchestrationOptionsArgs
                    {
                        MaxConcurrentResourcesPerLocation = 10,
                        MaxConcurrentLocations = 10,
                    },
                },
            },
        });
    
        var opsAgentPolicy = new Gcp.Compute.GlobalVmExtensionPolicy("ops_agent_policy", new()
        {
            Name = "global-ops-agent-vme-policy-_74391",
            Description = "A global VM extension policy with a custom rollout plan",
            Priority = 10,
            ExtensionPolicies = new[]
            {
                new Gcp.Compute.Inputs.GlobalVmExtensionPolicyExtensionPolicyArgs
                {
                    ExtensionName = "ops-agent",
                    PinnedVersion = "2.66.0",
                },
            },
            InstanceSelectors = new[]
            {
                new Gcp.Compute.Inputs.GlobalVmExtensionPolicyInstanceSelectorArgs
                {
                    LabelSelector = new Gcp.Compute.Inputs.GlobalVmExtensionPolicyInstanceSelectorLabelSelectorArgs
                    {
                        InclusionLabels = 
                        {
                            { "env", "test" },
                        },
                    },
                },
            },
            RolloutOperation = new Gcp.Compute.Inputs.GlobalVmExtensionPolicyRolloutOperationArgs
            {
                RolloutInput = new Gcp.Compute.Inputs.GlobalVmExtensionPolicyRolloutOperationRolloutInputArgs
                {
                    Name = Output.Tuple(project, customRollout.Name).Apply(values =>
                    {
                        var project = values.Item1;
                        var name = values.Item2;
                        return $"projects/{project.Apply(getProjectResult => getProjectResult.Number)}/locations/global/rolloutPlans/{name}";
                    }),
                },
            },
        });
    
    });
    
    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.compute.RolloutPlan;
    import com.pulumi.gcp.compute.RolloutPlanArgs;
    import com.pulumi.gcp.compute.inputs.RolloutPlanWaveArgs;
    import com.pulumi.gcp.compute.inputs.RolloutPlanWaveSelectorArgs;
    import com.pulumi.gcp.compute.inputs.RolloutPlanWaveSelectorLocationSelectorArgs;
    import com.pulumi.gcp.compute.inputs.RolloutPlanWaveValidationArgs;
    import com.pulumi.gcp.compute.inputs.RolloutPlanWaveValidationTimeBasedValidationMetadataArgs;
    import com.pulumi.gcp.compute.inputs.RolloutPlanWaveOrchestrationOptionsArgs;
    import com.pulumi.gcp.compute.GlobalVmExtensionPolicy;
    import com.pulumi.gcp.compute.GlobalVmExtensionPolicyArgs;
    import com.pulumi.gcp.compute.inputs.GlobalVmExtensionPolicyExtensionPolicyArgs;
    import com.pulumi.gcp.compute.inputs.GlobalVmExtensionPolicyInstanceSelectorArgs;
    import com.pulumi.gcp.compute.inputs.GlobalVmExtensionPolicyInstanceSelectorLabelSelectorArgs;
    import com.pulumi.gcp.compute.inputs.GlobalVmExtensionPolicyRolloutOperationArgs;
    import com.pulumi.gcp.compute.inputs.GlobalVmExtensionPolicyRolloutOperationRolloutInputArgs;
    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 customRollout = new RolloutPlan("customRollout", RolloutPlanArgs.builder()
                .name("custom-rollout-plan-_16511")
                .locationScope("ZONAL")
                .waves(RolloutPlanWaveArgs.builder()
                    .displayName("wave-1")
                    .selectors(RolloutPlanWaveSelectorArgs.builder()
                        .locationSelector(RolloutPlanWaveSelectorLocationSelectorArgs.builder()
                            .includedLocations(                        
                                "us-central1-a",
                                "us-west1-a")
                            .build())
                        .build())
                    .validation(RolloutPlanWaveValidationArgs.builder()
                        .type("time")
                        .timeBasedValidationMetadata(RolloutPlanWaveValidationTimeBasedValidationMetadataArgs.builder()
                            .waitDuration("0s")
                            .build())
                        .build())
                    .orchestrationOptions(RolloutPlanWaveOrchestrationOptionsArgs.builder()
                        .maxConcurrentResourcesPerLocation(10)
                        .maxConcurrentLocations(10)
                        .build())
                    .build())
                .build());
    
            var opsAgentPolicy = new GlobalVmExtensionPolicy("opsAgentPolicy", GlobalVmExtensionPolicyArgs.builder()
                .name("global-ops-agent-vme-policy-_74391")
                .description("A global VM extension policy with a custom rollout plan")
                .priority(10)
                .extensionPolicies(GlobalVmExtensionPolicyExtensionPolicyArgs.builder()
                    .extensionName("ops-agent")
                    .pinnedVersion("2.66.0")
                    .build())
                .instanceSelectors(GlobalVmExtensionPolicyInstanceSelectorArgs.builder()
                    .labelSelector(GlobalVmExtensionPolicyInstanceSelectorLabelSelectorArgs.builder()
                        .inclusionLabels(Map.of("env", "test"))
                        .build())
                    .build())
                .rolloutOperation(GlobalVmExtensionPolicyRolloutOperationArgs.builder()
                    .rolloutInput(GlobalVmExtensionPolicyRolloutOperationRolloutInputArgs.builder()
                        .name(customRollout.name().applyValue(_name -> String.format("projects/%s/locations/global/rolloutPlans/%s", project.number(),_name)))
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      opsAgentPolicy:
        type: gcp:compute:GlobalVmExtensionPolicy
        name: ops_agent_policy
        properties:
          name: global-ops-agent-vme-policy-_74391
          description: A global VM extension policy with a custom rollout plan
          priority: 10
          extensionPolicies:
            - extensionName: ops-agent
              pinnedVersion: 2.66.0
          instanceSelectors:
            - labelSelector:
                inclusionLabels:
                  env: test
          rolloutOperation:
            rolloutInput:
              name: projects/${project.number}/locations/global/rolloutPlans/${customRollout.name}
      customRollout:
        type: gcp:compute:RolloutPlan
        name: custom_rollout
        properties:
          name: custom-rollout-plan-_16511
          locationScope: ZONAL
          waves:
            - displayName: wave-1
              selectors:
                - locationSelector:
                    includedLocations:
                      - us-central1-a
                      - us-west1-a
              validation:
                type: time
                timeBasedValidationMetadata:
                  waitDuration: 0s
              orchestrationOptions:
                maxConcurrentResourcesPerLocation: 10
                maxConcurrentLocations: 10
    variables:
      project:
        fn::invoke:
          function: gcp:organizations:getProject
          arguments: {}
    
    pulumi {
      required_providers {
        gcp = {
          source = "pulumi/gcp"
        }
      }
    }
    
    data "gcp_organizations_getproject" "project" {
    }
    
    resource "gcp_compute_globalvmextensionpolicy" "ops_agent_policy" {
      name        = "global-ops-agent-vme-policy-_74391"
      description = "A global VM extension policy with a custom rollout plan"
      priority    = 10
      extension_policies {
        extension_name = "ops-agent"
        pinned_version = "2.66.0"
      }
      instance_selectors {
        label_selector = {
          inclusion_labels = {
            "env" = "test"
          }
        }
      }
      rollout_operation = {
        rollout_input = {
          name ="projects/${data.gcp_organizations_getproject.project.number}/locations/global/rolloutPlans/${gcp_compute_rolloutplan.custom_rollout.name}"
        }
      }
    }
    resource "gcp_compute_rolloutplan" "custom_rollout" {
      name           = "custom-rollout-plan-_16511"
      location_scope = "ZONAL"
      waves {
        display_name = "wave-1"
        selectors {
          location_selector = {
            included_locations = ["us-central1-a", "us-west1-a"]
          }
        }
        validation = {
          type = "time"
          time_based_validation_metadata = {
            wait_duration = "0s"
          }
        }
        orchestration_options = {
          max_concurrent_resources_per_location = 10
          max_concurrent_locations              = 10
        }
      }
    }
    

    Create GlobalVmExtensionPolicy Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new GlobalVmExtensionPolicy(name: string, args: GlobalVmExtensionPolicyArgs, opts?: CustomResourceOptions);
    @overload
    def GlobalVmExtensionPolicy(resource_name: str,
                                args: GlobalVmExtensionPolicyArgs,
                                opts: Optional[ResourceOptions] = None)
    
    @overload
    def GlobalVmExtensionPolicy(resource_name: str,
                                opts: Optional[ResourceOptions] = None,
                                extension_policies: Optional[Sequence[GlobalVmExtensionPolicyExtensionPolicyArgs]] = None,
                                rollout_operation: Optional[GlobalVmExtensionPolicyRolloutOperationArgs] = None,
                                deletion_policy: Optional[str] = None,
                                description: Optional[str] = None,
                                instance_selectors: Optional[Sequence[GlobalVmExtensionPolicyInstanceSelectorArgs]] = None,
                                name: Optional[str] = None,
                                priority: Optional[int] = None,
                                project: Optional[str] = None)
    func NewGlobalVmExtensionPolicy(ctx *Context, name string, args GlobalVmExtensionPolicyArgs, opts ...ResourceOption) (*GlobalVmExtensionPolicy, error)
    public GlobalVmExtensionPolicy(string name, GlobalVmExtensionPolicyArgs args, CustomResourceOptions? opts = null)
    public GlobalVmExtensionPolicy(String name, GlobalVmExtensionPolicyArgs args)
    public GlobalVmExtensionPolicy(String name, GlobalVmExtensionPolicyArgs args, CustomResourceOptions options)
    
    type: gcp:compute:GlobalVmExtensionPolicy
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "gcp_compute_global_vm_extension_policy" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args GlobalVmExtensionPolicyArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args GlobalVmExtensionPolicyArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args GlobalVmExtensionPolicyArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args GlobalVmExtensionPolicyArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args GlobalVmExtensionPolicyArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var globalVmExtensionPolicyResource = new Gcp.Compute.GlobalVmExtensionPolicy("globalVmExtensionPolicyResource", new()
    {
        ExtensionPolicies = new[]
        {
            new Gcp.Compute.Inputs.GlobalVmExtensionPolicyExtensionPolicyArgs
            {
                ExtensionName = "string",
                PinnedVersion = "string",
                StringConfig = "string",
            },
        },
        RolloutOperation = new Gcp.Compute.Inputs.GlobalVmExtensionPolicyRolloutOperationArgs
        {
            RolloutInput = new Gcp.Compute.Inputs.GlobalVmExtensionPolicyRolloutOperationRolloutInputArgs
            {
                ConflictBehavior = "string",
                Name = "string",
                PredefinedRolloutPlan = "string",
                RetryUuid = "string",
            },
            RolloutStatuses = new[]
            {
                new Gcp.Compute.Inputs.GlobalVmExtensionPolicyRolloutOperationRolloutStatusArgs
                {
                    CurrentRollouts = new[]
                    {
                        new Gcp.Compute.Inputs.GlobalVmExtensionPolicyRolloutOperationRolloutStatusCurrentRolloutArgs
                        {
                            LocationRolloutStatuses = new[]
                            {
                                new Gcp.Compute.Inputs.GlobalVmExtensionPolicyRolloutOperationRolloutStatusCurrentRolloutLocationRolloutStatusArgs
                                {
                                    LocationName = "string",
                                    State = "string",
                                },
                            },
                            Rollout = "string",
                            RolloutPlan = "string",
                            State = "string",
                        },
                    },
                    PreviousRollouts = new[]
                    {
                        new Gcp.Compute.Inputs.GlobalVmExtensionPolicyRolloutOperationRolloutStatusPreviousRolloutArgs
                        {
                            LocationRolloutStatuses = new[]
                            {
                                new Gcp.Compute.Inputs.GlobalVmExtensionPolicyRolloutOperationRolloutStatusPreviousRolloutLocationRolloutStatusArgs
                                {
                                    LocationName = "string",
                                    State = "string",
                                },
                            },
                            Rollout = "string",
                            RolloutPlan = "string",
                            State = "string",
                        },
                    },
                },
            },
        },
        DeletionPolicy = "string",
        Description = "string",
        InstanceSelectors = new[]
        {
            new Gcp.Compute.Inputs.GlobalVmExtensionPolicyInstanceSelectorArgs
            {
                LabelSelector = new Gcp.Compute.Inputs.GlobalVmExtensionPolicyInstanceSelectorLabelSelectorArgs
                {
                    InclusionLabels = 
                    {
                        { "string", "string" },
                    },
                },
            },
        },
        Name = "string",
        Priority = 0,
        Project = "string",
    });
    
    example, err := compute.NewGlobalVmExtensionPolicy(ctx, "globalVmExtensionPolicyResource", &compute.GlobalVmExtensionPolicyArgs{
    	ExtensionPolicies: compute.GlobalVmExtensionPolicyExtensionPolicyArray{
    		&compute.GlobalVmExtensionPolicyExtensionPolicyArgs{
    			ExtensionName: pulumi.String("string"),
    			PinnedVersion: pulumi.String("string"),
    			StringConfig:  pulumi.String("string"),
    		},
    	},
    	RolloutOperation: &compute.GlobalVmExtensionPolicyRolloutOperationArgs{
    		RolloutInput: &compute.GlobalVmExtensionPolicyRolloutOperationRolloutInputArgs{
    			ConflictBehavior:      pulumi.String("string"),
    			Name:                  pulumi.String("string"),
    			PredefinedRolloutPlan: pulumi.String("string"),
    			RetryUuid:             pulumi.String("string"),
    		},
    		RolloutStatuses: compute.GlobalVmExtensionPolicyRolloutOperationRolloutStatusArray{
    			&compute.GlobalVmExtensionPolicyRolloutOperationRolloutStatusArgs{
    				CurrentRollouts: compute.GlobalVmExtensionPolicyRolloutOperationRolloutStatusCurrentRolloutArray{
    					&compute.GlobalVmExtensionPolicyRolloutOperationRolloutStatusCurrentRolloutArgs{
    						LocationRolloutStatuses: compute.GlobalVmExtensionPolicyRolloutOperationRolloutStatusCurrentRolloutLocationRolloutStatusArray{
    							&compute.GlobalVmExtensionPolicyRolloutOperationRolloutStatusCurrentRolloutLocationRolloutStatusArgs{
    								LocationName: pulumi.String("string"),
    								State:        pulumi.String("string"),
    							},
    						},
    						Rollout:     pulumi.String("string"),
    						RolloutPlan: pulumi.String("string"),
    						State:       pulumi.String("string"),
    					},
    				},
    				PreviousRollouts: compute.GlobalVmExtensionPolicyRolloutOperationRolloutStatusPreviousRolloutArray{
    					&compute.GlobalVmExtensionPolicyRolloutOperationRolloutStatusPreviousRolloutArgs{
    						LocationRolloutStatuses: compute.GlobalVmExtensionPolicyRolloutOperationRolloutStatusPreviousRolloutLocationRolloutStatusArray{
    							&compute.GlobalVmExtensionPolicyRolloutOperationRolloutStatusPreviousRolloutLocationRolloutStatusArgs{
    								LocationName: pulumi.String("string"),
    								State:        pulumi.String("string"),
    							},
    						},
    						Rollout:     pulumi.String("string"),
    						RolloutPlan: pulumi.String("string"),
    						State:       pulumi.String("string"),
    					},
    				},
    			},
    		},
    	},
    	DeletionPolicy: pulumi.String("string"),
    	Description:    pulumi.String("string"),
    	InstanceSelectors: compute.GlobalVmExtensionPolicyInstanceSelectorArray{
    		&compute.GlobalVmExtensionPolicyInstanceSelectorArgs{
    			LabelSelector: &compute.GlobalVmExtensionPolicyInstanceSelectorLabelSelectorArgs{
    				InclusionLabels: pulumi.StringMap{
    					"string": pulumi.String("string"),
    				},
    			},
    		},
    	},
    	Name:     pulumi.String("string"),
    	Priority: pulumi.Int(0),
    	Project:  pulumi.String("string"),
    })
    
    resource "gcp_compute_global_vm_extension_policy" "globalVmExtensionPolicyResource" {
      lifecycle {
        create_before_destroy = true
      }
      extension_policies {
        extension_name = "string"
        pinned_version = "string"
        string_config  = "string"
      }
      rollout_operation = {
        rollout_input = {
          conflict_behavior       = "string"
          name                    = "string"
          predefined_rollout_plan = "string"
          retry_uuid              = "string"
        }
        rollout_statuses = [{
          current_rollouts = [{
            location_rollout_statuses = [{
              location_name = "string"
              state         = "string"
            }]
            rollout      = "string"
            rollout_plan = "string"
            state        = "string"
          }]
          previous_rollouts = [{
            location_rollout_statuses = [{
              location_name = "string"
              state         = "string"
            }]
            rollout      = "string"
            rollout_plan = "string"
            state        = "string"
          }]
        }]
      }
      deletion_policy = "string"
      description     = "string"
      instance_selectors {
        label_selector = {
          inclusion_labels = {
            "string" = "string"
          }
        }
      }
      name     = "string"
      priority = 0
      project  = "string"
    }
    
    var globalVmExtensionPolicyResource = new GlobalVmExtensionPolicy("globalVmExtensionPolicyResource", GlobalVmExtensionPolicyArgs.builder()
        .extensionPolicies(GlobalVmExtensionPolicyExtensionPolicyArgs.builder()
            .extensionName("string")
            .pinnedVersion("string")
            .stringConfig("string")
            .build())
        .rolloutOperation(GlobalVmExtensionPolicyRolloutOperationArgs.builder()
            .rolloutInput(GlobalVmExtensionPolicyRolloutOperationRolloutInputArgs.builder()
                .conflictBehavior("string")
                .name("string")
                .predefinedRolloutPlan("string")
                .retryUuid("string")
                .build())
            .rolloutStatuses(GlobalVmExtensionPolicyRolloutOperationRolloutStatusArgs.builder()
                .currentRollouts(GlobalVmExtensionPolicyRolloutOperationRolloutStatusCurrentRolloutArgs.builder()
                    .locationRolloutStatuses(GlobalVmExtensionPolicyRolloutOperationRolloutStatusCurrentRolloutLocationRolloutStatusArgs.builder()
                        .locationName("string")
                        .state("string")
                        .build())
                    .rollout("string")
                    .rolloutPlan("string")
                    .state("string")
                    .build())
                .previousRollouts(GlobalVmExtensionPolicyRolloutOperationRolloutStatusPreviousRolloutArgs.builder()
                    .locationRolloutStatuses(GlobalVmExtensionPolicyRolloutOperationRolloutStatusPreviousRolloutLocationRolloutStatusArgs.builder()
                        .locationName("string")
                        .state("string")
                        .build())
                    .rollout("string")
                    .rolloutPlan("string")
                    .state("string")
                    .build())
                .build())
            .build())
        .deletionPolicy("string")
        .description("string")
        .instanceSelectors(GlobalVmExtensionPolicyInstanceSelectorArgs.builder()
            .labelSelector(GlobalVmExtensionPolicyInstanceSelectorLabelSelectorArgs.builder()
                .inclusionLabels(Map.of("string", "string"))
                .build())
            .build())
        .name("string")
        .priority(0)
        .project("string")
        .build());
    
    global_vm_extension_policy_resource = gcp.compute.GlobalVmExtensionPolicy("globalVmExtensionPolicyResource",
        extension_policies=[{
            "extension_name": "string",
            "pinned_version": "string",
            "string_config": "string",
        }],
        rollout_operation={
            "rollout_input": {
                "conflict_behavior": "string",
                "name": "string",
                "predefined_rollout_plan": "string",
                "retry_uuid": "string",
            },
            "rollout_statuses": [{
                "current_rollouts": [{
                    "location_rollout_statuses": [{
                        "location_name": "string",
                        "state": "string",
                    }],
                    "rollout": "string",
                    "rollout_plan": "string",
                    "state": "string",
                }],
                "previous_rollouts": [{
                    "location_rollout_statuses": [{
                        "location_name": "string",
                        "state": "string",
                    }],
                    "rollout": "string",
                    "rollout_plan": "string",
                    "state": "string",
                }],
            }],
        },
        deletion_policy="string",
        description="string",
        instance_selectors=[{
            "label_selector": {
                "inclusion_labels": {
                    "string": "string",
                },
            },
        }],
        name="string",
        priority=0,
        project="string")
    
    const globalVmExtensionPolicyResource = new gcp.compute.GlobalVmExtensionPolicy("globalVmExtensionPolicyResource", {
        extensionPolicies: [{
            extensionName: "string",
            pinnedVersion: "string",
            stringConfig: "string",
        }],
        rolloutOperation: {
            rolloutInput: {
                conflictBehavior: "string",
                name: "string",
                predefinedRolloutPlan: "string",
                retryUuid: "string",
            },
            rolloutStatuses: [{
                currentRollouts: [{
                    locationRolloutStatuses: [{
                        locationName: "string",
                        state: "string",
                    }],
                    rollout: "string",
                    rolloutPlan: "string",
                    state: "string",
                }],
                previousRollouts: [{
                    locationRolloutStatuses: [{
                        locationName: "string",
                        state: "string",
                    }],
                    rollout: "string",
                    rolloutPlan: "string",
                    state: "string",
                }],
            }],
        },
        deletionPolicy: "string",
        description: "string",
        instanceSelectors: [{
            labelSelector: {
                inclusionLabels: {
                    string: "string",
                },
            },
        }],
        name: "string",
        priority: 0,
        project: "string",
    });
    
    type: gcp:compute:GlobalVmExtensionPolicy
    properties:
        deletionPolicy: string
        description: string
        extensionPolicies:
            - extensionName: string
              pinnedVersion: string
              stringConfig: string
        instanceSelectors:
            - labelSelector:
                inclusionLabels:
                    string: string
        name: string
        priority: 0
        project: string
        rolloutOperation:
            rolloutInput:
                conflictBehavior: string
                name: string
                predefinedRolloutPlan: string
                retryUuid: string
            rolloutStatuses:
                - currentRollouts:
                    - locationRolloutStatuses:
                        - locationName: string
                          state: string
                      rollout: string
                      rolloutPlan: string
                      state: string
                  previousRollouts:
                    - locationRolloutStatuses:
                        - locationName: string
                          state: string
                      rollout: string
                      rolloutPlan: string
                      state: string
    

    GlobalVmExtensionPolicy Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The GlobalVmExtensionPolicy resource accepts the following input properties:

    ExtensionPolicies List<GlobalVmExtensionPolicyExtensionPolicy>
    Map from extension (eg: "cloudops") to its policy configuration. Structure is documented below.
    RolloutOperation GlobalVmExtensionPolicyRolloutOperation
    Represents the rollout operation. Structure is documented below.
    DeletionPolicy 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.
    Description string
    An optional description of this resource.
    InstanceSelectors List<GlobalVmExtensionPolicyInstanceSelector>
    Selector to target VMs for a policy. Structure is documented below.
    Name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long and match the regular expression '^a-z?$' to comply with RFC1035.
    Priority int
    Used to resolve conflicts when multiple policies are active. Defaults to 0.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    ExtensionPolicies []GlobalVmExtensionPolicyExtensionPolicyArgs
    Map from extension (eg: "cloudops") to its policy configuration. Structure is documented below.
    RolloutOperation GlobalVmExtensionPolicyRolloutOperationArgs
    Represents the rollout operation. Structure is documented below.
    DeletionPolicy 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.
    Description string
    An optional description of this resource.
    InstanceSelectors []GlobalVmExtensionPolicyInstanceSelectorArgs
    Selector to target VMs for a policy. Structure is documented below.
    Name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long and match the regular expression '^a-z?$' to comply with RFC1035.
    Priority int
    Used to resolve conflicts when multiple policies are active. Defaults to 0.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    extension_policies list(object)
    Map from extension (eg: "cloudops") to its policy configuration. Structure is documented below.
    rollout_operation object
    Represents the rollout operation. Structure is documented below.
    deletion_policy 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.
    description string
    An optional description of this resource.
    instance_selectors list(object)
    Selector to target VMs for a policy. Structure is documented below.
    name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long and match the regular expression '^a-z?$' to comply with RFC1035.
    priority number
    Used to resolve conflicts when multiple policies are active. Defaults to 0.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    extensionPolicies List<GlobalVmExtensionPolicyExtensionPolicy>
    Map from extension (eg: "cloudops") to its policy configuration. Structure is documented below.
    rolloutOperation GlobalVmExtensionPolicyRolloutOperation
    Represents the rollout operation. Structure is documented below.
    deletionPolicy 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.
    description String
    An optional description of this resource.
    instanceSelectors List<GlobalVmExtensionPolicyInstanceSelector>
    Selector to target VMs for a policy. Structure is documented below.
    name String
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long and match the regular expression '^a-z?$' to comply with RFC1035.
    priority Integer
    Used to resolve conflicts when multiple policies are active. Defaults to 0.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    extensionPolicies GlobalVmExtensionPolicyExtensionPolicy[]
    Map from extension (eg: "cloudops") to its policy configuration. Structure is documented below.
    rolloutOperation GlobalVmExtensionPolicyRolloutOperation
    Represents the rollout operation. Structure is documented below.
    deletionPolicy 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.
    description string
    An optional description of this resource.
    instanceSelectors GlobalVmExtensionPolicyInstanceSelector[]
    Selector to target VMs for a policy. Structure is documented below.
    name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long and match the regular expression '^a-z?$' to comply with RFC1035.
    priority number
    Used to resolve conflicts when multiple policies are active. Defaults to 0.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    extension_policies Sequence[GlobalVmExtensionPolicyExtensionPolicyArgs]
    Map from extension (eg: "cloudops") to its policy configuration. Structure is documented below.
    rollout_operation GlobalVmExtensionPolicyRolloutOperationArgs
    Represents the rollout operation. Structure is documented below.
    deletion_policy str
    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.
    description str
    An optional description of this resource.
    instance_selectors Sequence[GlobalVmExtensionPolicyInstanceSelectorArgs]
    Selector to target VMs for a policy. Structure is documented below.
    name str
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long and match the regular expression '^a-z?$' to comply with RFC1035.
    priority int
    Used to resolve conflicts when multiple policies are active. Defaults to 0.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    extensionPolicies List<Property Map>
    Map from extension (eg: "cloudops") to its policy configuration. Structure is documented below.
    rolloutOperation Property Map
    Represents the rollout operation. Structure is documented below.
    deletionPolicy 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.
    description String
    An optional description of this resource.
    instanceSelectors List<Property Map>
    Selector to target VMs for a policy. Structure is documented below.
    name String
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long and match the regular expression '^a-z?$' to comply with RFC1035.
    priority Number
    Used to resolve conflicts when multiple policies are active. Defaults to 0.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the GlobalVmExtensionPolicy resource produces the following output properties:

    CreationTimestamp string
    Creation timestamp in RFC3339 text format.
    Id string
    The provider-assigned unique ID for this managed resource.
    Kind string
    Type of the resource.
    ScopedResourceStatus string
    The scoped resource status.
    SelfLink string
    Server-defined fully-qualified URL for this resource.
    UpdateTimestamp string
    Update timestamp in RFC3339 text format.
    CreationTimestamp string
    Creation timestamp in RFC3339 text format.
    Id string
    The provider-assigned unique ID for this managed resource.
    Kind string
    Type of the resource.
    ScopedResourceStatus string
    The scoped resource status.
    SelfLink string
    Server-defined fully-qualified URL for this resource.
    UpdateTimestamp string
    Update timestamp in RFC3339 text format.
    creation_timestamp string
    Creation timestamp in RFC3339 text format.
    id string
    The provider-assigned unique ID for this managed resource.
    kind string
    Type of the resource.
    scoped_resource_status string
    The scoped resource status.
    self_link string
    Server-defined fully-qualified URL for this resource.
    update_timestamp string
    Update timestamp in RFC3339 text format.
    creationTimestamp String
    Creation timestamp in RFC3339 text format.
    id String
    The provider-assigned unique ID for this managed resource.
    kind String
    Type of the resource.
    scopedResourceStatus String
    The scoped resource status.
    selfLink String
    Server-defined fully-qualified URL for this resource.
    updateTimestamp String
    Update timestamp in RFC3339 text format.
    creationTimestamp string
    Creation timestamp in RFC3339 text format.
    id string
    The provider-assigned unique ID for this managed resource.
    kind string
    Type of the resource.
    scopedResourceStatus string
    The scoped resource status.
    selfLink string
    Server-defined fully-qualified URL for this resource.
    updateTimestamp string
    Update timestamp in RFC3339 text format.
    creation_timestamp str
    Creation timestamp in RFC3339 text format.
    id str
    The provider-assigned unique ID for this managed resource.
    kind str
    Type of the resource.
    scoped_resource_status str
    The scoped resource status.
    self_link str
    Server-defined fully-qualified URL for this resource.
    update_timestamp str
    Update timestamp in RFC3339 text format.
    creationTimestamp String
    Creation timestamp in RFC3339 text format.
    id String
    The provider-assigned unique ID for this managed resource.
    kind String
    Type of the resource.
    scopedResourceStatus String
    The scoped resource status.
    selfLink String
    Server-defined fully-qualified URL for this resource.
    updateTimestamp String
    Update timestamp in RFC3339 text format.

    Look up Existing GlobalVmExtensionPolicy Resource

    Get an existing GlobalVmExtensionPolicy resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: GlobalVmExtensionPolicyState, opts?: CustomResourceOptions): GlobalVmExtensionPolicy
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            creation_timestamp: Optional[str] = None,
            deletion_policy: Optional[str] = None,
            description: Optional[str] = None,
            extension_policies: Optional[Sequence[GlobalVmExtensionPolicyExtensionPolicyArgs]] = None,
            instance_selectors: Optional[Sequence[GlobalVmExtensionPolicyInstanceSelectorArgs]] = None,
            kind: Optional[str] = None,
            name: Optional[str] = None,
            priority: Optional[int] = None,
            project: Optional[str] = None,
            rollout_operation: Optional[GlobalVmExtensionPolicyRolloutOperationArgs] = None,
            scoped_resource_status: Optional[str] = None,
            self_link: Optional[str] = None,
            update_timestamp: Optional[str] = None) -> GlobalVmExtensionPolicy
    func GetGlobalVmExtensionPolicy(ctx *Context, name string, id IDInput, state *GlobalVmExtensionPolicyState, opts ...ResourceOption) (*GlobalVmExtensionPolicy, error)
    public static GlobalVmExtensionPolicy Get(string name, Input<string> id, GlobalVmExtensionPolicyState? state, CustomResourceOptions? opts = null)
    public static GlobalVmExtensionPolicy get(String name, Output<String> id, GlobalVmExtensionPolicyState state, CustomResourceOptions options)
    resources:  _:    type: gcp:compute:GlobalVmExtensionPolicy    get:      id: ${id}
    import {
      to = gcp_compute_global_vm_extension_policy.example
      id = "${id}"
    }
    
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    CreationTimestamp string
    Creation timestamp in RFC3339 text format.
    DeletionPolicy 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.
    Description string
    An optional description of this resource.
    ExtensionPolicies List<GlobalVmExtensionPolicyExtensionPolicy>
    Map from extension (eg: "cloudops") to its policy configuration. Structure is documented below.
    InstanceSelectors List<GlobalVmExtensionPolicyInstanceSelector>
    Selector to target VMs for a policy. Structure is documented below.
    Kind string
    Type of the resource.
    Name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long and match the regular expression '^a-z?$' to comply with RFC1035.
    Priority int
    Used to resolve conflicts when multiple policies are active. Defaults to 0.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    RolloutOperation GlobalVmExtensionPolicyRolloutOperation
    Represents the rollout operation. Structure is documented below.
    ScopedResourceStatus string
    The scoped resource status.
    SelfLink string
    Server-defined fully-qualified URL for this resource.
    UpdateTimestamp string
    Update timestamp in RFC3339 text format.
    CreationTimestamp string
    Creation timestamp in RFC3339 text format.
    DeletionPolicy 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.
    Description string
    An optional description of this resource.
    ExtensionPolicies []GlobalVmExtensionPolicyExtensionPolicyArgs
    Map from extension (eg: "cloudops") to its policy configuration. Structure is documented below.
    InstanceSelectors []GlobalVmExtensionPolicyInstanceSelectorArgs
    Selector to target VMs for a policy. Structure is documented below.
    Kind string
    Type of the resource.
    Name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long and match the regular expression '^a-z?$' to comply with RFC1035.
    Priority int
    Used to resolve conflicts when multiple policies are active. Defaults to 0.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    RolloutOperation GlobalVmExtensionPolicyRolloutOperationArgs
    Represents the rollout operation. Structure is documented below.
    ScopedResourceStatus string
    The scoped resource status.
    SelfLink string
    Server-defined fully-qualified URL for this resource.
    UpdateTimestamp string
    Update timestamp in RFC3339 text format.
    creation_timestamp string
    Creation timestamp in RFC3339 text format.
    deletion_policy 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.
    description string
    An optional description of this resource.
    extension_policies list(object)
    Map from extension (eg: "cloudops") to its policy configuration. Structure is documented below.
    instance_selectors list(object)
    Selector to target VMs for a policy. Structure is documented below.
    kind string
    Type of the resource.
    name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long and match the regular expression '^a-z?$' to comply with RFC1035.
    priority number
    Used to resolve conflicts when multiple policies are active. Defaults to 0.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    rollout_operation object
    Represents the rollout operation. Structure is documented below.
    scoped_resource_status string
    The scoped resource status.
    self_link string
    Server-defined fully-qualified URL for this resource.
    update_timestamp string
    Update timestamp in RFC3339 text format.
    creationTimestamp String
    Creation timestamp in RFC3339 text format.
    deletionPolicy 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.
    description String
    An optional description of this resource.
    extensionPolicies List<GlobalVmExtensionPolicyExtensionPolicy>
    Map from extension (eg: "cloudops") to its policy configuration. Structure is documented below.
    instanceSelectors List<GlobalVmExtensionPolicyInstanceSelector>
    Selector to target VMs for a policy. Structure is documented below.
    kind String
    Type of the resource.
    name String
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long and match the regular expression '^a-z?$' to comply with RFC1035.
    priority Integer
    Used to resolve conflicts when multiple policies are active. Defaults to 0.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    rolloutOperation GlobalVmExtensionPolicyRolloutOperation
    Represents the rollout operation. Structure is documented below.
    scopedResourceStatus String
    The scoped resource status.
    selfLink String
    Server-defined fully-qualified URL for this resource.
    updateTimestamp String
    Update timestamp in RFC3339 text format.
    creationTimestamp string
    Creation timestamp in RFC3339 text format.
    deletionPolicy 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.
    description string
    An optional description of this resource.
    extensionPolicies GlobalVmExtensionPolicyExtensionPolicy[]
    Map from extension (eg: "cloudops") to its policy configuration. Structure is documented below.
    instanceSelectors GlobalVmExtensionPolicyInstanceSelector[]
    Selector to target VMs for a policy. Structure is documented below.
    kind string
    Type of the resource.
    name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long and match the regular expression '^a-z?$' to comply with RFC1035.
    priority number
    Used to resolve conflicts when multiple policies are active. Defaults to 0.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    rolloutOperation GlobalVmExtensionPolicyRolloutOperation
    Represents the rollout operation. Structure is documented below.
    scopedResourceStatus string
    The scoped resource status.
    selfLink string
    Server-defined fully-qualified URL for this resource.
    updateTimestamp string
    Update timestamp in RFC3339 text format.
    creation_timestamp str
    Creation timestamp in RFC3339 text format.
    deletion_policy str
    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.
    description str
    An optional description of this resource.
    extension_policies Sequence[GlobalVmExtensionPolicyExtensionPolicyArgs]
    Map from extension (eg: "cloudops") to its policy configuration. Structure is documented below.
    instance_selectors Sequence[GlobalVmExtensionPolicyInstanceSelectorArgs]
    Selector to target VMs for a policy. Structure is documented below.
    kind str
    Type of the resource.
    name str
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long and match the regular expression '^a-z?$' to comply with RFC1035.
    priority int
    Used to resolve conflicts when multiple policies are active. Defaults to 0.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    rollout_operation GlobalVmExtensionPolicyRolloutOperationArgs
    Represents the rollout operation. Structure is documented below.
    scoped_resource_status str
    The scoped resource status.
    self_link str
    Server-defined fully-qualified URL for this resource.
    update_timestamp str
    Update timestamp in RFC3339 text format.
    creationTimestamp String
    Creation timestamp in RFC3339 text format.
    deletionPolicy 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.
    description String
    An optional description of this resource.
    extensionPolicies List<Property Map>
    Map from extension (eg: "cloudops") to its policy configuration. Structure is documented below.
    instanceSelectors List<Property Map>
    Selector to target VMs for a policy. Structure is documented below.
    kind String
    Type of the resource.
    name String
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long and match the regular expression '^a-z?$' to comply with RFC1035.
    priority Number
    Used to resolve conflicts when multiple policies are active. Defaults to 0.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    rolloutOperation Property Map
    Represents the rollout operation. Structure is documented below.
    scopedResourceStatus String
    The scoped resource status.
    selfLink String
    Server-defined fully-qualified URL for this resource.
    updateTimestamp String
    Update timestamp in RFC3339 text format.

    Supporting Types

    GlobalVmExtensionPolicyExtensionPolicy, GlobalVmExtensionPolicyExtensionPolicyArgs

    ExtensionName string
    The identifier for this object. Format specified above.
    PinnedVersion string
    The version pinning for the extension.
    StringConfig string
    String configuration payload.
    ExtensionName string
    The identifier for this object. Format specified above.
    PinnedVersion string
    The version pinning for the extension.
    StringConfig string
    String configuration payload.
    extension_name string
    The identifier for this object. Format specified above.
    pinned_version string
    The version pinning for the extension.
    string_config string
    String configuration payload.
    extensionName String
    The identifier for this object. Format specified above.
    pinnedVersion String
    The version pinning for the extension.
    stringConfig String
    String configuration payload.
    extensionName string
    The identifier for this object. Format specified above.
    pinnedVersion string
    The version pinning for the extension.
    stringConfig string
    String configuration payload.
    extension_name str
    The identifier for this object. Format specified above.
    pinned_version str
    The version pinning for the extension.
    string_config str
    String configuration payload.
    extensionName String
    The identifier for this object. Format specified above.
    pinnedVersion String
    The version pinning for the extension.
    stringConfig String
    String configuration payload.

    GlobalVmExtensionPolicyInstanceSelector, GlobalVmExtensionPolicyInstanceSelectorArgs

    LabelSelector GlobalVmExtensionPolicyInstanceSelectorLabelSelector
    LabelSelector matches VM labels. Structure is documented below.
    LabelSelector GlobalVmExtensionPolicyInstanceSelectorLabelSelector
    LabelSelector matches VM labels. Structure is documented below.
    label_selector object
    LabelSelector matches VM labels. Structure is documented below.
    labelSelector GlobalVmExtensionPolicyInstanceSelectorLabelSelector
    LabelSelector matches VM labels. Structure is documented below.
    labelSelector GlobalVmExtensionPolicyInstanceSelectorLabelSelector
    LabelSelector matches VM labels. Structure is documented below.
    label_selector GlobalVmExtensionPolicyInstanceSelectorLabelSelector
    LabelSelector matches VM labels. Structure is documented below.
    labelSelector Property Map
    LabelSelector matches VM labels. Structure is documented below.

    GlobalVmExtensionPolicyInstanceSelectorLabelSelector, GlobalVmExtensionPolicyInstanceSelectorLabelSelectorArgs

    InclusionLabels Dictionary<string, string>
    Labels as key value pairs.
    InclusionLabels map[string]string
    Labels as key value pairs.
    inclusion_labels map(string)
    Labels as key value pairs.
    inclusionLabels Map<String,String>
    Labels as key value pairs.
    inclusionLabels {[key: string]: string}
    Labels as key value pairs.
    inclusion_labels Mapping[str, str]
    Labels as key value pairs.
    inclusionLabels Map<String>
    Labels as key value pairs.

    GlobalVmExtensionPolicyRolloutOperation, GlobalVmExtensionPolicyRolloutOperationArgs

    RolloutInput GlobalVmExtensionPolicyRolloutOperationRolloutInput
    Rollout input settings. Structure is documented below.
    RolloutStatuses List<GlobalVmExtensionPolicyRolloutOperationRolloutStatus>
    (Output) Rollout status. Structure is documented below.
    RolloutInput GlobalVmExtensionPolicyRolloutOperationRolloutInput
    Rollout input settings. Structure is documented below.
    RolloutStatuses []GlobalVmExtensionPolicyRolloutOperationRolloutStatus
    (Output) Rollout status. Structure is documented below.
    rollout_input object
    Rollout input settings. Structure is documented below.
    rollout_statuses list(object)
    (Output) Rollout status. Structure is documented below.
    rolloutInput GlobalVmExtensionPolicyRolloutOperationRolloutInput
    Rollout input settings. Structure is documented below.
    rolloutStatuses List<GlobalVmExtensionPolicyRolloutOperationRolloutStatus>
    (Output) Rollout status. Structure is documented below.
    rolloutInput GlobalVmExtensionPolicyRolloutOperationRolloutInput
    Rollout input settings. Structure is documented below.
    rolloutStatuses GlobalVmExtensionPolicyRolloutOperationRolloutStatus[]
    (Output) Rollout status. Structure is documented below.
    rollout_input GlobalVmExtensionPolicyRolloutOperationRolloutInput
    Rollout input settings. Structure is documented below.
    rollout_statuses Sequence[GlobalVmExtensionPolicyRolloutOperationRolloutStatus]
    (Output) Rollout status. Structure is documented below.
    rolloutInput Property Map
    Rollout input settings. Structure is documented below.
    rolloutStatuses List<Property Map>
    (Output) Rollout status. Structure is documented below.

    GlobalVmExtensionPolicyRolloutOperationRolloutInput, GlobalVmExtensionPolicyRolloutOperationRolloutInputArgs

    ConflictBehavior string
    Specifies the behavior of the rollout if a conflict is detected.
    Name string
    The name of the rollout plan.
    PredefinedRolloutPlan string
    Specifies the predefined rollout plan for the policy.
    RetryUuid string

    The UUID that identifies a policy rollout retry attempt. It should only be set when retrying an existing rollout. Updating this field along with other policy fields (description, extension_policies, instance_selectors, priority) in the same plan will return an error.

    The rolloutStatus block contains:

    ConflictBehavior string
    Specifies the behavior of the rollout if a conflict is detected.
    Name string
    The name of the rollout plan.
    PredefinedRolloutPlan string
    Specifies the predefined rollout plan for the policy.
    RetryUuid string

    The UUID that identifies a policy rollout retry attempt. It should only be set when retrying an existing rollout. Updating this field along with other policy fields (description, extension_policies, instance_selectors, priority) in the same plan will return an error.

    The rolloutStatus block contains:

    conflict_behavior string
    Specifies the behavior of the rollout if a conflict is detected.
    name string
    The name of the rollout plan.
    predefined_rollout_plan string
    Specifies the predefined rollout plan for the policy.
    retry_uuid string

    The UUID that identifies a policy rollout retry attempt. It should only be set when retrying an existing rollout. Updating this field along with other policy fields (description, extension_policies, instance_selectors, priority) in the same plan will return an error.

    The rolloutStatus block contains:

    conflictBehavior String
    Specifies the behavior of the rollout if a conflict is detected.
    name String
    The name of the rollout plan.
    predefinedRolloutPlan String
    Specifies the predefined rollout plan for the policy.
    retryUuid String

    The UUID that identifies a policy rollout retry attempt. It should only be set when retrying an existing rollout. Updating this field along with other policy fields (description, extension_policies, instance_selectors, priority) in the same plan will return an error.

    The rolloutStatus block contains:

    conflictBehavior string
    Specifies the behavior of the rollout if a conflict is detected.
    name string
    The name of the rollout plan.
    predefinedRolloutPlan string
    Specifies the predefined rollout plan for the policy.
    retryUuid string

    The UUID that identifies a policy rollout retry attempt. It should only be set when retrying an existing rollout. Updating this field along with other policy fields (description, extension_policies, instance_selectors, priority) in the same plan will return an error.

    The rolloutStatus block contains:

    conflict_behavior str
    Specifies the behavior of the rollout if a conflict is detected.
    name str
    The name of the rollout plan.
    predefined_rollout_plan str
    Specifies the predefined rollout plan for the policy.
    retry_uuid str

    The UUID that identifies a policy rollout retry attempt. It should only be set when retrying an existing rollout. Updating this field along with other policy fields (description, extension_policies, instance_selectors, priority) in the same plan will return an error.

    The rolloutStatus block contains:

    conflictBehavior String
    Specifies the behavior of the rollout if a conflict is detected.
    name String
    The name of the rollout plan.
    predefinedRolloutPlan String
    Specifies the predefined rollout plan for the policy.
    retryUuid String

    The UUID that identifies a policy rollout retry attempt. It should only be set when retrying an existing rollout. Updating this field along with other policy fields (description, extension_policies, instance_selectors, priority) in the same plan will return an error.

    The rolloutStatus block contains:

    GlobalVmExtensionPolicyRolloutOperationRolloutStatus, GlobalVmExtensionPolicyRolloutOperationRolloutStatusArgs

    current_rollouts list(object)
    The current rollouts for the latest version of the resource.
    previous_rollouts list(object)
    Rollout status of the previous rollout.
    currentRollouts List<Property Map>
    The current rollouts for the latest version of the resource.
    previousRollouts List<Property Map>
    Rollout status of the previous rollout.

    GlobalVmExtensionPolicyRolloutOperationRolloutStatusCurrentRollout, GlobalVmExtensionPolicyRolloutOperationRolloutStatusCurrentRolloutArgs

    LocationRolloutStatuses List<GlobalVmExtensionPolicyRolloutOperationRolloutStatusCurrentRolloutLocationRolloutStatus>
    The rollout status for each location.
    Rollout string
    The name of the rollout.
    RolloutPlan string
    The name of the rollout plan.
    State string
    The overall state of the rollout.
    LocationRolloutStatuses []GlobalVmExtensionPolicyRolloutOperationRolloutStatusCurrentRolloutLocationRolloutStatus
    The rollout status for each location.
    Rollout string
    The name of the rollout.
    RolloutPlan string
    The name of the rollout plan.
    State string
    The overall state of the rollout.
    location_rollout_statuses list(object)
    The rollout status for each location.
    rollout string
    The name of the rollout.
    rollout_plan string
    The name of the rollout plan.
    state string
    The overall state of the rollout.
    locationRolloutStatuses List<GlobalVmExtensionPolicyRolloutOperationRolloutStatusCurrentRolloutLocationRolloutStatus>
    The rollout status for each location.
    rollout String
    The name of the rollout.
    rolloutPlan String
    The name of the rollout plan.
    state String
    The overall state of the rollout.
    locationRolloutStatuses GlobalVmExtensionPolicyRolloutOperationRolloutStatusCurrentRolloutLocationRolloutStatus[]
    The rollout status for each location.
    rollout string
    The name of the rollout.
    rolloutPlan string
    The name of the rollout plan.
    state string
    The overall state of the rollout.
    location_rollout_statuses Sequence[GlobalVmExtensionPolicyRolloutOperationRolloutStatusCurrentRolloutLocationRolloutStatus]
    The rollout status for each location.
    rollout str
    The name of the rollout.
    rollout_plan str
    The name of the rollout plan.
    state str
    The overall state of the rollout.
    locationRolloutStatuses List<Property Map>
    The rollout status for each location.
    rollout String
    The name of the rollout.
    rolloutPlan String
    The name of the rollout plan.
    state String
    The overall state of the rollout.

    GlobalVmExtensionPolicyRolloutOperationRolloutStatusCurrentRolloutLocationRolloutStatus, GlobalVmExtensionPolicyRolloutOperationRolloutStatusCurrentRolloutLocationRolloutStatusArgs

    LocationName string
    The identifier for this object. Format specified above.
    State string
    The state of the location rollout.
    LocationName string
    The identifier for this object. Format specified above.
    State string
    The state of the location rollout.
    location_name string
    The identifier for this object. Format specified above.
    state string
    The state of the location rollout.
    locationName String
    The identifier for this object. Format specified above.
    state String
    The state of the location rollout.
    locationName string
    The identifier for this object. Format specified above.
    state string
    The state of the location rollout.
    location_name str
    The identifier for this object. Format specified above.
    state str
    The state of the location rollout.
    locationName String
    The identifier for this object. Format specified above.
    state String
    The state of the location rollout.

    GlobalVmExtensionPolicyRolloutOperationRolloutStatusPreviousRollout, GlobalVmExtensionPolicyRolloutOperationRolloutStatusPreviousRolloutArgs

    LocationRolloutStatuses List<GlobalVmExtensionPolicyRolloutOperationRolloutStatusPreviousRolloutLocationRolloutStatus>
    The rollout status for each location.
    Rollout string
    The name of the rollout.
    RolloutPlan string
    The name of the rollout plan.
    State string
    The overall state of the rollout.
    LocationRolloutStatuses []GlobalVmExtensionPolicyRolloutOperationRolloutStatusPreviousRolloutLocationRolloutStatus
    The rollout status for each location.
    Rollout string
    The name of the rollout.
    RolloutPlan string
    The name of the rollout plan.
    State string
    The overall state of the rollout.
    location_rollout_statuses list(object)
    The rollout status for each location.
    rollout string
    The name of the rollout.
    rollout_plan string
    The name of the rollout plan.
    state string
    The overall state of the rollout.
    locationRolloutStatuses List<GlobalVmExtensionPolicyRolloutOperationRolloutStatusPreviousRolloutLocationRolloutStatus>
    The rollout status for each location.
    rollout String
    The name of the rollout.
    rolloutPlan String
    The name of the rollout plan.
    state String
    The overall state of the rollout.
    locationRolloutStatuses GlobalVmExtensionPolicyRolloutOperationRolloutStatusPreviousRolloutLocationRolloutStatus[]
    The rollout status for each location.
    rollout string
    The name of the rollout.
    rolloutPlan string
    The name of the rollout plan.
    state string
    The overall state of the rollout.
    location_rollout_statuses Sequence[GlobalVmExtensionPolicyRolloutOperationRolloutStatusPreviousRolloutLocationRolloutStatus]
    The rollout status for each location.
    rollout str
    The name of the rollout.
    rollout_plan str
    The name of the rollout plan.
    state str
    The overall state of the rollout.
    locationRolloutStatuses List<Property Map>
    The rollout status for each location.
    rollout String
    The name of the rollout.
    rolloutPlan String
    The name of the rollout plan.
    state String
    The overall state of the rollout.

    GlobalVmExtensionPolicyRolloutOperationRolloutStatusPreviousRolloutLocationRolloutStatus, GlobalVmExtensionPolicyRolloutOperationRolloutStatusPreviousRolloutLocationRolloutStatusArgs

    LocationName string
    The identifier for this object. Format specified above.
    State string
    The state of the location rollout.
    LocationName string
    The identifier for this object. Format specified above.
    State string
    The state of the location rollout.
    location_name string
    The identifier for this object. Format specified above.
    state string
    The state of the location rollout.
    locationName String
    The identifier for this object. Format specified above.
    state String
    The state of the location rollout.
    locationName string
    The identifier for this object. Format specified above.
    state string
    The state of the location rollout.
    location_name str
    The identifier for this object. Format specified above.
    state str
    The state of the location rollout.
    locationName String
    The identifier for this object. Format specified above.
    state String
    The state of the location rollout.

    Import

    GlobalVmExtensionPolicy can be imported using any of these accepted formats:

    • projects/{{project}}/global/vmExtensionPolicies/{{name}}
    • {{project}}/{{name}}
    • {{name}}

    When using the pulumi import command, GlobalVmExtensionPolicy can be imported using one of the formats above. For example:

    $ pulumi import gcp:compute/globalVmExtensionPolicy:GlobalVmExtensionPolicy default projects/{{project}}/global/vmExtensionPolicies/{{name}}
    $ pulumi import gcp:compute/globalVmExtensionPolicy:GlobalVmExtensionPolicy default {{project}}/{{name}}
    $ pulumi import gcp:compute/globalVmExtensionPolicy:GlobalVmExtensionPolicy default {{name}}
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Google Cloud (GCP) Classic pulumi/pulumi-gcp
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the google-beta Terraform Provider.
    gcp logo
    Viewing docs for Google Cloud v9.32.1
    published on Wednesday, Jul 29, 2026 by Pulumi

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial