1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. compute
  5. RolloutPlan
Viewing docs for Google Cloud v9.15.0
published on Thursday, Mar 12, 2026 by Pulumi
gcp logo
Viewing docs for Google Cloud v9.15.0
published on Thursday, Mar 12, 2026 by Pulumi

    A RolloutPlan is the customer-defined strategy to divide a large-scale change into smaller increments, referred to as “waves”. Each wave targets a specific portion of the overall affected area and defines criteria that must be met before progressing to the subsequent wave.

    Warning: This resource is in beta, and should be used with the terraform-provider-google-beta provider. See Provider Versions for more details on beta resources.

    To get more information about RolloutPlan, see:

    Example Usage

    Rollout Plan Basic

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const _default = new gcp.compute.RolloutPlan("default", {
        name: "tf-test-rollout-plan-_85840",
        description: "A test rollout plan",
        locationScope: "ZONAL",
        waves: [{
            displayName: "wave-1",
            selectors: [{
                locationSelector: {
                    includedLocations: ["us-central1-a"],
                },
            }],
            validation: {
                type: "manual",
            },
        }],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    default = gcp.compute.RolloutPlan("default",
        name="tf-test-rollout-plan-_85840",
        description="A test rollout plan",
        location_scope="ZONAL",
        waves=[{
            "display_name": "wave-1",
            "selectors": [{
                "location_selector": {
                    "included_locations": ["us-central1-a"],
                },
            }],
            "validation": {
                "type": "manual",
            },
        }])
    
    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.NewRolloutPlan(ctx, "default", &compute.RolloutPlanArgs{
    			Name:          pulumi.String("tf-test-rollout-plan-_85840"),
    			Description:   pulumi.String("A test rollout plan"),
    			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"),
    								},
    							},
    						},
    					},
    					Validation: &compute.RolloutPlanWaveValidationArgs{
    						Type: pulumi.String("manual"),
    					},
    				},
    			},
    		})
    		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 @default = new Gcp.Compute.RolloutPlan("default", new()
        {
            Name = "tf-test-rollout-plan-_85840",
            Description = "A test rollout plan",
            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",
                                },
                            },
                        },
                    },
                    Validation = new Gcp.Compute.Inputs.RolloutPlanWaveValidationArgs
                    {
                        Type = "manual",
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    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.RolloutPlanWaveValidationArgs;
    import java.util.List;
    import java.util.ArrayList;
    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 default_ = new RolloutPlan("default", RolloutPlanArgs.builder()
                .name("tf-test-rollout-plan-_85840")
                .description("A test rollout plan")
                .locationScope("ZONAL")
                .waves(RolloutPlanWaveArgs.builder()
                    .displayName("wave-1")
                    .selectors(RolloutPlanWaveSelectorArgs.builder()
                        .locationSelector(RolloutPlanWaveSelectorLocationSelectorArgs.builder()
                            .includedLocations("us-central1-a")
                            .build())
                        .build())
                    .validation(RolloutPlanWaveValidationArgs.builder()
                        .type("manual")
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      default:
        type: gcp:compute:RolloutPlan
        properties:
          name: tf-test-rollout-plan-_85840
          description: A test rollout plan
          locationScope: ZONAL
          waves:
            - displayName: wave-1
              selectors:
                - locationSelector:
                    includedLocations:
                      - us-central1-a
              validation:
                type: manual
    

    Create RolloutPlan Resource

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

    Constructor syntax

    new RolloutPlan(name: string, args: RolloutPlanArgs, opts?: CustomResourceOptions);
    @overload
    def RolloutPlan(resource_name: str,
                    args: RolloutPlanArgs,
                    opts: Optional[ResourceOptions] = None)
    
    @overload
    def RolloutPlan(resource_name: str,
                    opts: Optional[ResourceOptions] = None,
                    waves: Optional[Sequence[RolloutPlanWaveArgs]] = None,
                    description: Optional[str] = None,
                    location_scope: Optional[str] = None,
                    name: Optional[str] = None,
                    project: Optional[str] = None)
    func NewRolloutPlan(ctx *Context, name string, args RolloutPlanArgs, opts ...ResourceOption) (*RolloutPlan, error)
    public RolloutPlan(string name, RolloutPlanArgs args, CustomResourceOptions? opts = null)
    public RolloutPlan(String name, RolloutPlanArgs args)
    public RolloutPlan(String name, RolloutPlanArgs args, CustomResourceOptions options)
    
    type: gcp:compute:RolloutPlan
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args RolloutPlanArgs
    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 RolloutPlanArgs
    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 RolloutPlanArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args RolloutPlanArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args RolloutPlanArgs
    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 rolloutPlanResource = new Gcp.Compute.RolloutPlan("rolloutPlanResource", new()
    {
        Waves = new[]
        {
            new Gcp.Compute.Inputs.RolloutPlanWaveArgs
            {
                Selectors = new[]
                {
                    new Gcp.Compute.Inputs.RolloutPlanWaveSelectorArgs
                    {
                        LocationSelector = new Gcp.Compute.Inputs.RolloutPlanWaveSelectorLocationSelectorArgs
                        {
                            IncludedLocations = new[]
                            {
                                "string",
                            },
                        },
                        ResourceHierarchySelector = new Gcp.Compute.Inputs.RolloutPlanWaveSelectorResourceHierarchySelectorArgs
                        {
                            IncludedFolders = new[]
                            {
                                "string",
                            },
                            IncludedOrganizations = new[]
                            {
                                "string",
                            },
                            IncludedProjects = new[]
                            {
                                "string",
                            },
                        },
                    },
                },
                Validation = new Gcp.Compute.Inputs.RolloutPlanWaveValidationArgs
                {
                    Type = "string",
                    TimeBasedValidationMetadata = new Gcp.Compute.Inputs.RolloutPlanWaveValidationTimeBasedValidationMetadataArgs
                    {
                        WaitDuration = "string",
                    },
                },
                DisplayName = "string",
                Number = 0,
                OrchestrationOptions = new Gcp.Compute.Inputs.RolloutPlanWaveOrchestrationOptionsArgs
                {
                    Delays = new[]
                    {
                        new Gcp.Compute.Inputs.RolloutPlanWaveOrchestrationOptionsDelayArgs
                        {
                            Delimiter = "string",
                            Duration = "string",
                            Type = "string",
                        },
                    },
                    MaxConcurrentLocations = 0,
                    MaxConcurrentResourcesPerLocation = 0,
                },
            },
        },
        Description = "string",
        LocationScope = "string",
        Name = "string",
        Project = "string",
    });
    
    example, err := compute.NewRolloutPlan(ctx, "rolloutPlanResource", &compute.RolloutPlanArgs{
    	Waves: compute.RolloutPlanWaveArray{
    		&compute.RolloutPlanWaveArgs{
    			Selectors: compute.RolloutPlanWaveSelectorArray{
    				&compute.RolloutPlanWaveSelectorArgs{
    					LocationSelector: &compute.RolloutPlanWaveSelectorLocationSelectorArgs{
    						IncludedLocations: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    					},
    					ResourceHierarchySelector: &compute.RolloutPlanWaveSelectorResourceHierarchySelectorArgs{
    						IncludedFolders: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    						IncludedOrganizations: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    						IncludedProjects: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    					},
    				},
    			},
    			Validation: &compute.RolloutPlanWaveValidationArgs{
    				Type: pulumi.String("string"),
    				TimeBasedValidationMetadata: &compute.RolloutPlanWaveValidationTimeBasedValidationMetadataArgs{
    					WaitDuration: pulumi.String("string"),
    				},
    			},
    			DisplayName: pulumi.String("string"),
    			Number:      pulumi.Int(0),
    			OrchestrationOptions: &compute.RolloutPlanWaveOrchestrationOptionsArgs{
    				Delays: compute.RolloutPlanWaveOrchestrationOptionsDelayArray{
    					&compute.RolloutPlanWaveOrchestrationOptionsDelayArgs{
    						Delimiter: pulumi.String("string"),
    						Duration:  pulumi.String("string"),
    						Type:      pulumi.String("string"),
    					},
    				},
    				MaxConcurrentLocations:            pulumi.Int(0),
    				MaxConcurrentResourcesPerLocation: pulumi.Int(0),
    			},
    		},
    	},
    	Description:   pulumi.String("string"),
    	LocationScope: pulumi.String("string"),
    	Name:          pulumi.String("string"),
    	Project:       pulumi.String("string"),
    })
    
    var rolloutPlanResource = new RolloutPlan("rolloutPlanResource", RolloutPlanArgs.builder()
        .waves(RolloutPlanWaveArgs.builder()
            .selectors(RolloutPlanWaveSelectorArgs.builder()
                .locationSelector(RolloutPlanWaveSelectorLocationSelectorArgs.builder()
                    .includedLocations("string")
                    .build())
                .resourceHierarchySelector(RolloutPlanWaveSelectorResourceHierarchySelectorArgs.builder()
                    .includedFolders("string")
                    .includedOrganizations("string")
                    .includedProjects("string")
                    .build())
                .build())
            .validation(RolloutPlanWaveValidationArgs.builder()
                .type("string")
                .timeBasedValidationMetadata(RolloutPlanWaveValidationTimeBasedValidationMetadataArgs.builder()
                    .waitDuration("string")
                    .build())
                .build())
            .displayName("string")
            .number(0)
            .orchestrationOptions(RolloutPlanWaveOrchestrationOptionsArgs.builder()
                .delays(RolloutPlanWaveOrchestrationOptionsDelayArgs.builder()
                    .delimiter("string")
                    .duration("string")
                    .type("string")
                    .build())
                .maxConcurrentLocations(0)
                .maxConcurrentResourcesPerLocation(0)
                .build())
            .build())
        .description("string")
        .locationScope("string")
        .name("string")
        .project("string")
        .build());
    
    rollout_plan_resource = gcp.compute.RolloutPlan("rolloutPlanResource",
        waves=[{
            "selectors": [{
                "location_selector": {
                    "included_locations": ["string"],
                },
                "resource_hierarchy_selector": {
                    "included_folders": ["string"],
                    "included_organizations": ["string"],
                    "included_projects": ["string"],
                },
            }],
            "validation": {
                "type": "string",
                "time_based_validation_metadata": {
                    "wait_duration": "string",
                },
            },
            "display_name": "string",
            "number": 0,
            "orchestration_options": {
                "delays": [{
                    "delimiter": "string",
                    "duration": "string",
                    "type": "string",
                }],
                "max_concurrent_locations": 0,
                "max_concurrent_resources_per_location": 0,
            },
        }],
        description="string",
        location_scope="string",
        name="string",
        project="string")
    
    const rolloutPlanResource = new gcp.compute.RolloutPlan("rolloutPlanResource", {
        waves: [{
            selectors: [{
                locationSelector: {
                    includedLocations: ["string"],
                },
                resourceHierarchySelector: {
                    includedFolders: ["string"],
                    includedOrganizations: ["string"],
                    includedProjects: ["string"],
                },
            }],
            validation: {
                type: "string",
                timeBasedValidationMetadata: {
                    waitDuration: "string",
                },
            },
            displayName: "string",
            number: 0,
            orchestrationOptions: {
                delays: [{
                    delimiter: "string",
                    duration: "string",
                    type: "string",
                }],
                maxConcurrentLocations: 0,
                maxConcurrentResourcesPerLocation: 0,
            },
        }],
        description: "string",
        locationScope: "string",
        name: "string",
        project: "string",
    });
    
    type: gcp:compute:RolloutPlan
    properties:
        description: string
        locationScope: string
        name: string
        project: string
        waves:
            - displayName: string
              number: 0
              orchestrationOptions:
                delays:
                    - delimiter: string
                      duration: string
                      type: string
                maxConcurrentLocations: 0
                maxConcurrentResourcesPerLocation: 0
              selectors:
                - locationSelector:
                    includedLocations:
                        - string
                  resourceHierarchySelector:
                    includedFolders:
                        - string
                    includedOrganizations:
                        - string
                    includedProjects:
                        - string
              validation:
                timeBasedValidationMetadata:
                    waitDuration: string
                type: string
    

    RolloutPlan 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 RolloutPlan resource accepts the following input properties:

    Waves List<RolloutPlanWave>
    The waves included in this rollout plan. Structure is documented below.
    Description string
    An optional description of this resource.
    LocationScope string
    The location scope of the rollout plan. Possible values are: LOCATION_SCOPE_UNSPECIFIED, ZONAL, REGIONAL.
    Name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    Waves []RolloutPlanWaveArgs
    The waves included in this rollout plan. Structure is documented below.
    Description string
    An optional description of this resource.
    LocationScope string
    The location scope of the rollout plan. Possible values are: LOCATION_SCOPE_UNSPECIFIED, ZONAL, REGIONAL.
    Name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    waves List<RolloutPlanWave>
    The waves included in this rollout plan. Structure is documented below.
    description String
    An optional description of this resource.
    locationScope String
    The location scope of the rollout plan. Possible values are: LOCATION_SCOPE_UNSPECIFIED, ZONAL, REGIONAL.
    name String
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    waves RolloutPlanWave[]
    The waves included in this rollout plan. Structure is documented below.
    description string
    An optional description of this resource.
    locationScope string
    The location scope of the rollout plan. Possible values are: LOCATION_SCOPE_UNSPECIFIED, ZONAL, REGIONAL.
    name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    waves Sequence[RolloutPlanWaveArgs]
    The waves included in this rollout plan. Structure is documented below.
    description str
    An optional description of this resource.
    location_scope str
    The location scope of the rollout plan. Possible values are: LOCATION_SCOPE_UNSPECIFIED, ZONAL, REGIONAL.
    name str
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    waves List<Property Map>
    The waves included in this rollout plan. Structure is documented below.
    description String
    An optional description of this resource.
    locationScope String
    The location scope of the rollout plan. Possible values are: LOCATION_SCOPE_UNSPECIFIED, ZONAL, REGIONAL.
    name String
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
    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 RolloutPlan resource produces the following output properties:

    Id string
    The provider-assigned unique ID for this managed resource.
    SelfLink string
    The URI of the created resource.
    Id string
    The provider-assigned unique ID for this managed resource.
    SelfLink string
    The URI of the created resource.
    id String
    The provider-assigned unique ID for this managed resource.
    selfLink String
    The URI of the created resource.
    id string
    The provider-assigned unique ID for this managed resource.
    selfLink string
    The URI of the created resource.
    id str
    The provider-assigned unique ID for this managed resource.
    self_link str
    The URI of the created resource.
    id String
    The provider-assigned unique ID for this managed resource.
    selfLink String
    The URI of the created resource.

    Look up Existing RolloutPlan Resource

    Get an existing RolloutPlan 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?: RolloutPlanState, opts?: CustomResourceOptions): RolloutPlan
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            description: Optional[str] = None,
            location_scope: Optional[str] = None,
            name: Optional[str] = None,
            project: Optional[str] = None,
            self_link: Optional[str] = None,
            waves: Optional[Sequence[RolloutPlanWaveArgs]] = None) -> RolloutPlan
    func GetRolloutPlan(ctx *Context, name string, id IDInput, state *RolloutPlanState, opts ...ResourceOption) (*RolloutPlan, error)
    public static RolloutPlan Get(string name, Input<string> id, RolloutPlanState? state, CustomResourceOptions? opts = null)
    public static RolloutPlan get(String name, Output<String> id, RolloutPlanState state, CustomResourceOptions options)
    resources:  _:    type: gcp:compute:RolloutPlan    get:      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:
    Description string
    An optional description of this resource.
    LocationScope string
    The location scope of the rollout plan. Possible values are: LOCATION_SCOPE_UNSPECIFIED, ZONAL, REGIONAL.
    Name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    SelfLink string
    The URI of the created resource.
    Waves List<RolloutPlanWave>
    The waves included in this rollout plan. Structure is documented below.
    Description string
    An optional description of this resource.
    LocationScope string
    The location scope of the rollout plan. Possible values are: LOCATION_SCOPE_UNSPECIFIED, ZONAL, REGIONAL.
    Name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    SelfLink string
    The URI of the created resource.
    Waves []RolloutPlanWaveArgs
    The waves included in this rollout plan. Structure is documented below.
    description String
    An optional description of this resource.
    locationScope String
    The location scope of the rollout plan. Possible values are: LOCATION_SCOPE_UNSPECIFIED, ZONAL, REGIONAL.
    name String
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    selfLink String
    The URI of the created resource.
    waves List<RolloutPlanWave>
    The waves included in this rollout plan. Structure is documented below.
    description string
    An optional description of this resource.
    locationScope string
    The location scope of the rollout plan. Possible values are: LOCATION_SCOPE_UNSPECIFIED, ZONAL, REGIONAL.
    name string
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    selfLink string
    The URI of the created resource.
    waves RolloutPlanWave[]
    The waves included in this rollout plan. Structure is documented below.
    description str
    An optional description of this resource.
    location_scope str
    The location scope of the rollout plan. Possible values are: LOCATION_SCOPE_UNSPECIFIED, ZONAL, REGIONAL.
    name str
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    self_link str
    The URI of the created resource.
    waves Sequence[RolloutPlanWaveArgs]
    The waves included in this rollout plan. Structure is documented below.
    description String
    An optional description of this resource.
    locationScope String
    The location scope of the rollout plan. Possible values are: LOCATION_SCOPE_UNSPECIFIED, ZONAL, REGIONAL.
    name String
    Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    selfLink String
    The URI of the created resource.
    waves List<Property Map>
    The waves included in this rollout plan. Structure is documented below.

    Supporting Types

    RolloutPlanWave, RolloutPlanWaveArgs

    Selectors List<RolloutPlanWaveSelector>
    The selectors for this wave. There is a logical AND between each selector defined in a wave, so a resource must satisfy the criteria of all the specified selectors to be in scope for the wave. Structure is documented below.
    Validation RolloutPlanWaveValidation
    The validation to be performed before progressing to the next wave. Structure is documented below.
    DisplayName string
    The display name of this wave of the rollout plan.
    Number int
    (Output) The wave number.
    OrchestrationOptions RolloutPlanWaveOrchestrationOptions
    Options to control the pace of orchestration of a wave. Structure is documented below.
    Selectors []RolloutPlanWaveSelector
    The selectors for this wave. There is a logical AND between each selector defined in a wave, so a resource must satisfy the criteria of all the specified selectors to be in scope for the wave. Structure is documented below.
    Validation RolloutPlanWaveValidation
    The validation to be performed before progressing to the next wave. Structure is documented below.
    DisplayName string
    The display name of this wave of the rollout plan.
    Number int
    (Output) The wave number.
    OrchestrationOptions RolloutPlanWaveOrchestrationOptions
    Options to control the pace of orchestration of a wave. Structure is documented below.
    selectors List<RolloutPlanWaveSelector>
    The selectors for this wave. There is a logical AND between each selector defined in a wave, so a resource must satisfy the criteria of all the specified selectors to be in scope for the wave. Structure is documented below.
    validation RolloutPlanWaveValidation
    The validation to be performed before progressing to the next wave. Structure is documented below.
    displayName String
    The display name of this wave of the rollout plan.
    number Integer
    (Output) The wave number.
    orchestrationOptions RolloutPlanWaveOrchestrationOptions
    Options to control the pace of orchestration of a wave. Structure is documented below.
    selectors RolloutPlanWaveSelector[]
    The selectors for this wave. There is a logical AND between each selector defined in a wave, so a resource must satisfy the criteria of all the specified selectors to be in scope for the wave. Structure is documented below.
    validation RolloutPlanWaveValidation
    The validation to be performed before progressing to the next wave. Structure is documented below.
    displayName string
    The display name of this wave of the rollout plan.
    number number
    (Output) The wave number.
    orchestrationOptions RolloutPlanWaveOrchestrationOptions
    Options to control the pace of orchestration of a wave. Structure is documented below.
    selectors Sequence[RolloutPlanWaveSelector]
    The selectors for this wave. There is a logical AND between each selector defined in a wave, so a resource must satisfy the criteria of all the specified selectors to be in scope for the wave. Structure is documented below.
    validation RolloutPlanWaveValidation
    The validation to be performed before progressing to the next wave. Structure is documented below.
    display_name str
    The display name of this wave of the rollout plan.
    number int
    (Output) The wave number.
    orchestration_options RolloutPlanWaveOrchestrationOptions
    Options to control the pace of orchestration of a wave. Structure is documented below.
    selectors List<Property Map>
    The selectors for this wave. There is a logical AND between each selector defined in a wave, so a resource must satisfy the criteria of all the specified selectors to be in scope for the wave. Structure is documented below.
    validation Property Map
    The validation to be performed before progressing to the next wave. Structure is documented below.
    displayName String
    The display name of this wave of the rollout plan.
    number Number
    (Output) The wave number.
    orchestrationOptions Property Map
    Options to control the pace of orchestration of a wave. Structure is documented below.

    RolloutPlanWaveOrchestrationOptions, RolloutPlanWaveOrchestrationOptionsArgs

    Delays List<RolloutPlanWaveOrchestrationOptionsDelay>
    Delays, if any, to be added between batches of projects. Structure is documented below.
    MaxConcurrentLocations int
    Maximum number of locations to be orchestrated in parallel.
    MaxConcurrentResourcesPerLocation int
    Maximum number of resources to be orchestrated per location in parallel.
    Delays []RolloutPlanWaveOrchestrationOptionsDelay
    Delays, if any, to be added between batches of projects. Structure is documented below.
    MaxConcurrentLocations int
    Maximum number of locations to be orchestrated in parallel.
    MaxConcurrentResourcesPerLocation int
    Maximum number of resources to be orchestrated per location in parallel.
    delays List<RolloutPlanWaveOrchestrationOptionsDelay>
    Delays, if any, to be added between batches of projects. Structure is documented below.
    maxConcurrentLocations Integer
    Maximum number of locations to be orchestrated in parallel.
    maxConcurrentResourcesPerLocation Integer
    Maximum number of resources to be orchestrated per location in parallel.
    delays RolloutPlanWaveOrchestrationOptionsDelay[]
    Delays, if any, to be added between batches of projects. Structure is documented below.
    maxConcurrentLocations number
    Maximum number of locations to be orchestrated in parallel.
    maxConcurrentResourcesPerLocation number
    Maximum number of resources to be orchestrated per location in parallel.
    delays Sequence[RolloutPlanWaveOrchestrationOptionsDelay]
    Delays, if any, to be added between batches of projects. Structure is documented below.
    max_concurrent_locations int
    Maximum number of locations to be orchestrated in parallel.
    max_concurrent_resources_per_location int
    Maximum number of resources to be orchestrated per location in parallel.
    delays List<Property Map>
    Delays, if any, to be added between batches of projects. Structure is documented below.
    maxConcurrentLocations Number
    Maximum number of locations to be orchestrated in parallel.
    maxConcurrentResourcesPerLocation Number
    Maximum number of resources to be orchestrated per location in parallel.

    RolloutPlanWaveOrchestrationOptionsDelay, RolloutPlanWaveOrchestrationOptionsDelayArgs

    Delimiter string
    Controls whether the delay should only be added between batches of projects corresponding to different locations, or also between batches of projects corresponding to the same location. Possible values are: DELIMITER_UNSPECIFIED, DELIMITER_LOCATION, DELIMITER_BATCH.
    Duration string
    The duration of the delay, if any, to be added between batches of projects.
    Type string
    Controls whether the specified duration is to be added at the end of each batch, or if the total processing time for each batch will be padded if needed to meet the specified duration. Possible values are: TYPE_UNSPECIFIED, TYPE_OFFSET, TYPE_MINIMUM.
    Delimiter string
    Controls whether the delay should only be added between batches of projects corresponding to different locations, or also between batches of projects corresponding to the same location. Possible values are: DELIMITER_UNSPECIFIED, DELIMITER_LOCATION, DELIMITER_BATCH.
    Duration string
    The duration of the delay, if any, to be added between batches of projects.
    Type string
    Controls whether the specified duration is to be added at the end of each batch, or if the total processing time for each batch will be padded if needed to meet the specified duration. Possible values are: TYPE_UNSPECIFIED, TYPE_OFFSET, TYPE_MINIMUM.
    delimiter String
    Controls whether the delay should only be added between batches of projects corresponding to different locations, or also between batches of projects corresponding to the same location. Possible values are: DELIMITER_UNSPECIFIED, DELIMITER_LOCATION, DELIMITER_BATCH.
    duration String
    The duration of the delay, if any, to be added between batches of projects.
    type String
    Controls whether the specified duration is to be added at the end of each batch, or if the total processing time for each batch will be padded if needed to meet the specified duration. Possible values are: TYPE_UNSPECIFIED, TYPE_OFFSET, TYPE_MINIMUM.
    delimiter string
    Controls whether the delay should only be added between batches of projects corresponding to different locations, or also between batches of projects corresponding to the same location. Possible values are: DELIMITER_UNSPECIFIED, DELIMITER_LOCATION, DELIMITER_BATCH.
    duration string
    The duration of the delay, if any, to be added between batches of projects.
    type string
    Controls whether the specified duration is to be added at the end of each batch, or if the total processing time for each batch will be padded if needed to meet the specified duration. Possible values are: TYPE_UNSPECIFIED, TYPE_OFFSET, TYPE_MINIMUM.
    delimiter str
    Controls whether the delay should only be added between batches of projects corresponding to different locations, or also between batches of projects corresponding to the same location. Possible values are: DELIMITER_UNSPECIFIED, DELIMITER_LOCATION, DELIMITER_BATCH.
    duration str
    The duration of the delay, if any, to be added between batches of projects.
    type str
    Controls whether the specified duration is to be added at the end of each batch, or if the total processing time for each batch will be padded if needed to meet the specified duration. Possible values are: TYPE_UNSPECIFIED, TYPE_OFFSET, TYPE_MINIMUM.
    delimiter String
    Controls whether the delay should only be added between batches of projects corresponding to different locations, or also between batches of projects corresponding to the same location. Possible values are: DELIMITER_UNSPECIFIED, DELIMITER_LOCATION, DELIMITER_BATCH.
    duration String
    The duration of the delay, if any, to be added between batches of projects.
    type String
    Controls whether the specified duration is to be added at the end of each batch, or if the total processing time for each batch will be padded if needed to meet the specified duration. Possible values are: TYPE_UNSPECIFIED, TYPE_OFFSET, TYPE_MINIMUM.

    RolloutPlanWaveSelector, RolloutPlanWaveSelectorArgs

    LocationSelector RolloutPlanWaveSelectorLocationSelector
    Roll out to resources by location. Structure is documented below.
    ResourceHierarchySelector RolloutPlanWaveSelectorResourceHierarchySelector
    Roll out to resources by Cloud Resource Manager resource hierarchy nodes such as projects, folders, orgs. Structure is documented below.
    LocationSelector RolloutPlanWaveSelectorLocationSelector
    Roll out to resources by location. Structure is documented below.
    ResourceHierarchySelector RolloutPlanWaveSelectorResourceHierarchySelector
    Roll out to resources by Cloud Resource Manager resource hierarchy nodes such as projects, folders, orgs. Structure is documented below.
    locationSelector RolloutPlanWaveSelectorLocationSelector
    Roll out to resources by location. Structure is documented below.
    resourceHierarchySelector RolloutPlanWaveSelectorResourceHierarchySelector
    Roll out to resources by Cloud Resource Manager resource hierarchy nodes such as projects, folders, orgs. Structure is documented below.
    locationSelector RolloutPlanWaveSelectorLocationSelector
    Roll out to resources by location. Structure is documented below.
    resourceHierarchySelector RolloutPlanWaveSelectorResourceHierarchySelector
    Roll out to resources by Cloud Resource Manager resource hierarchy nodes such as projects, folders, orgs. Structure is documented below.
    location_selector RolloutPlanWaveSelectorLocationSelector
    Roll out to resources by location. Structure is documented below.
    resource_hierarchy_selector RolloutPlanWaveSelectorResourceHierarchySelector
    Roll out to resources by Cloud Resource Manager resource hierarchy nodes such as projects, folders, orgs. Structure is documented below.
    locationSelector Property Map
    Roll out to resources by location. Structure is documented below.
    resourceHierarchySelector Property Map
    Roll out to resources by Cloud Resource Manager resource hierarchy nodes such as projects, folders, orgs. Structure is documented below.

    RolloutPlanWaveSelectorLocationSelector, RolloutPlanWaveSelectorLocationSelectorArgs

    IncludedLocations List<string>
    Example: "us-central1-a"
    IncludedLocations []string
    Example: "us-central1-a"
    includedLocations List<String>
    Example: "us-central1-a"
    includedLocations string[]
    Example: "us-central1-a"
    included_locations Sequence[str]
    Example: "us-central1-a"
    includedLocations List<String>
    Example: "us-central1-a"

    RolloutPlanWaveSelectorResourceHierarchySelector, RolloutPlanWaveSelectorResourceHierarchySelectorArgs

    IncludedFolders List<string>
    Format: "folders/{folder_id}"
    IncludedOrganizations List<string>
    Format: "organizations/{organization_id}"
    IncludedProjects List<string>
    Format: "projects/{project_id}"
    IncludedFolders []string
    Format: "folders/{folder_id}"
    IncludedOrganizations []string
    Format: "organizations/{organization_id}"
    IncludedProjects []string
    Format: "projects/{project_id}"
    includedFolders List<String>
    Format: "folders/{folder_id}"
    includedOrganizations List<String>
    Format: "organizations/{organization_id}"
    includedProjects List<String>
    Format: "projects/{project_id}"
    includedFolders string[]
    Format: "folders/{folder_id}"
    includedOrganizations string[]
    Format: "organizations/{organization_id}"
    includedProjects string[]
    Format: "projects/{project_id}"
    included_folders Sequence[str]
    Format: "folders/{folder_id}"
    included_organizations Sequence[str]
    Format: "organizations/{organization_id}"
    included_projects Sequence[str]
    Format: "projects/{project_id}"
    includedFolders List<String>
    Format: "folders/{folder_id}"
    includedOrganizations List<String>
    Format: "organizations/{organization_id}"
    includedProjects List<String>
    Format: "projects/{project_id}"

    RolloutPlanWaveValidation, RolloutPlanWaveValidationArgs

    Type string
    The type of the validation. Possible values: "manual": The system waits for an end-user approval API before progressing to the next wave. "time": The system waits for a user specified duration before progressing to the next wave.
    TimeBasedValidationMetadata RolloutPlanWaveValidationTimeBasedValidationMetadata
    Metadata required if type = "time". Structure is documented below.
    Type string
    The type of the validation. Possible values: "manual": The system waits for an end-user approval API before progressing to the next wave. "time": The system waits for a user specified duration before progressing to the next wave.
    TimeBasedValidationMetadata RolloutPlanWaveValidationTimeBasedValidationMetadata
    Metadata required if type = "time". Structure is documented below.
    type String
    The type of the validation. Possible values: "manual": The system waits for an end-user approval API before progressing to the next wave. "time": The system waits for a user specified duration before progressing to the next wave.
    timeBasedValidationMetadata RolloutPlanWaveValidationTimeBasedValidationMetadata
    Metadata required if type = "time". Structure is documented below.
    type string
    The type of the validation. Possible values: "manual": The system waits for an end-user approval API before progressing to the next wave. "time": The system waits for a user specified duration before progressing to the next wave.
    timeBasedValidationMetadata RolloutPlanWaveValidationTimeBasedValidationMetadata
    Metadata required if type = "time". Structure is documented below.
    type str
    The type of the validation. Possible values: "manual": The system waits for an end-user approval API before progressing to the next wave. "time": The system waits for a user specified duration before progressing to the next wave.
    time_based_validation_metadata RolloutPlanWaveValidationTimeBasedValidationMetadata
    Metadata required if type = "time". Structure is documented below.
    type String
    The type of the validation. Possible values: "manual": The system waits for an end-user approval API before progressing to the next wave. "time": The system waits for a user specified duration before progressing to the next wave.
    timeBasedValidationMetadata Property Map
    Metadata required if type = "time". Structure is documented below.

    RolloutPlanWaveValidationTimeBasedValidationMetadata, RolloutPlanWaveValidationTimeBasedValidationMetadataArgs

    WaitDuration string
    The duration that the system waits in between waves. This wait starts after all changes in the wave are rolled out.
    WaitDuration string
    The duration that the system waits in between waves. This wait starts after all changes in the wave are rolled out.
    waitDuration String
    The duration that the system waits in between waves. This wait starts after all changes in the wave are rolled out.
    waitDuration string
    The duration that the system waits in between waves. This wait starts after all changes in the wave are rolled out.
    wait_duration str
    The duration that the system waits in between waves. This wait starts after all changes in the wave are rolled out.
    waitDuration String
    The duration that the system waits in between waves. This wait starts after all changes in the wave are rolled out.

    Import

    RolloutPlan can be imported using any of these accepted formats:

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

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

    $ pulumi import gcp:compute/rolloutPlan:RolloutPlan default projects/{{project}}/global/rolloutPlans/{{name}}
    $ pulumi import gcp:compute/rolloutPlan:RolloutPlan default {{project}}/{{name}}
    $ pulumi import gcp:compute/rolloutPlan:RolloutPlan 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.15.0
    published on Thursday, Mar 12, 2026 by Pulumi
      Try Pulumi Cloud free. Your team will thank you.