- [HTTP request](https://docs.cloud.google.com/compute/docs/reference/rest/beta/rolloutPlans/get#body.HTTP_TEMPLATE)
- [Path parameters](https://docs.cloud.google.com/compute/docs/reference/rest/beta/rolloutPlans/get#body.PATH_PARAMETERS)
- [Request body](https://docs.cloud.google.com/compute/docs/reference/rest/beta/rolloutPlans/get#body.request_body)
- [Response body](https://docs.cloud.google.com/compute/docs/reference/rest/beta/rolloutPlans/get#body.response_body)
  - [JSON representation](https://docs.cloud.google.com/compute/docs/reference/rest/beta/rolloutPlans/get#body.RolloutPlan.SCHEMA_REPRESENTATION)
    - [JSON representation](https://docs.cloud.google.com/compute/docs/reference/rest/beta/rolloutPlans/get#body.RolloutPlan.SCHEMA_REPRESENTATION.waves.SCHEMA_REPRESENTATION)
    - [JSON representation](https://docs.cloud.google.com/compute/docs/reference/rest/beta/rolloutPlans/get#body.RolloutPlan.SCHEMA_REPRESENTATION.waves.SCHEMA_REPRESENTATION_1)
    - [JSON representation](https://docs.cloud.google.com/compute/docs/reference/rest/beta/rolloutPlans/get#body.RolloutPlan.SCHEMA_REPRESENTATION.waves.SCHEMA_REPRESENTATION_2)
- [Authorization scopes](https://docs.cloud.google.com/compute/docs/reference/rest/beta/rolloutPlans/get#body.aspect)
- [Try it!](https://docs.cloud.google.com/compute/docs/reference/rest/beta/rolloutPlans/get#try-it)

Gets details of a single project-scoped RolloutPlan.

### HTTP request

Choose an endpoint:
global africa-south1 asia-east1 asia-east2 asia-northeast1 asia-northeast2 asia-northeast3 asia-south1 asia-south2 asia-southeast1 asia-southeast2 asia-southeast3 australia-southeast1 australia-southeast2 europe-central2 europe-north1 europe-north2 europe-southwest1 europe-west1 europe-west10 europe-west12 europe-west2 europe-west3 europe-west4 europe-west6 europe-west8 europe-west9 me-central1 me-central2 me-west1 northamerica-northeast1 northamerica-northeast2 northamerica-south1 southamerica-east1 southamerica-west1 us-central1 us-east1 us-east4 us-east5 us-south1 us-west1 us-west2 us-west3 us-west4   
`GET https://compute.googleapis.com/compute/beta/projects/{project}/global/rolloutPlans/{rolloutPlan}`

<br />

The URLs use [gRPC Transcoding](https://google.aip.dev/127) syntax.

### Path parameters

| Parameters ||
|---|---|
| `project` | `string` Project ID for this request. |
| `rolloutPlan` | `string` Name of the persistent rollout plan to return. |

### Request body

The request body must be empty.

### Response body

RolloutPlan resource.

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.

If successful, the response body contains data with the following structure:

| JSON representation |
|---|
| ``` { "kind": string, "id": string, "creationTimestamp": string, "name": string, "description": string, "selfLink": string, "selfLinkWithId": string, "waves": [ { "displayName": string, "number": string, "selectors": [ { // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "resourceHierarchySelector": { "includedOrganizations": [ string ], "includedFolders": [ string ], "includedProjects": [ string ] }, "locationSelector": { "includedLocations": [ string ] } // End of mutually exclusive fields. } ], "validation": { "type": string, // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "timeBasedValidationMetadata": { "waitDuration": string } // End of mutually exclusive fields. }, "orchestrationOptions": { "maxConcurrentLocations": string, "maxConcurrentResourcesPerLocation": string, "delays": [ { "duration": string, "delimiter": enum, "type": enum } ] } } ], "locationScope": enum } ``` |

| Fields ||
|---|---|
| `kind` | `string` Output only. Type of the resource. Always `compute#rolloutPlan` for rolloutPlans. |
| `id` | `string (https://developers.google.com/discovery/v1/type-format format)` Output only. The unique identifier for the resource. This identifier is defined by the server. |
| `creationTimestamp` | `string` Output only. Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. |
| `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](https://www.ietf.org/rfc/rfc1035.txt). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. |
| `description` | `string` An optional description of this resource. Provide this property when you create the resource. |
| `selfLink` | `string` Output only. Server-defined fully-qualified URL for this resource. |
| `selfLinkWithId` | `string` Output only. Server-defined URL for this resource's resource id. |
| `waves[]` | `object` Required. The waves included in this rollout plan. |
| `waves[].displayName` | `string` Optional. The display name of this wave of the rollout plan. |
| `waves[].number` | `string (https://developers.google.com/discovery/v1/type-format format)` Output only. The wave number. |
| `waves[].selectors[]` | `object` Required. 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. |
| `waves[].selectors[].resourceHierarchySelector` | `object` Optional. Roll out to resources by Cloud Resource Manager resource hierarchy. |
| `waves[].selectors[].resourceHierarchySelector.includedOrganizations[]` | `string` Optional. Format: "organizations/{organizationId}" |
| `waves[].selectors[].resourceHierarchySelector.includedFolders[]` | `string` Optional. Format: "folders/{folderId}" |
| `waves[].selectors[].resourceHierarchySelector.includedProjects[]` | `string` Optional. Format: "projects/{projectId}" |
| `waves[].selectors[].locationSelector` | `object` Optional. Roll out to resources by Cloud locations. |
| `waves[].selectors[].locationSelector.includedLocations[]` | `string` Optional. Example: "us-central1-a" |
| `waves[].validation` | `object` Required. The validation to be performed at the end of this wave. |
| `waves[].validation.timeBasedValidationMetadata` | `object` Optional. Metadata required if type = "time". |
| `waves[].validation.timeBasedValidationMetadata.waitDuration` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#duration` format)`` Optional. The duration that the system waits in between waves. This wait starts after all changes in the wave are rolled out. A duration in seconds with up to nine fractional digits, ending with '`s`'. Example: `"3.5s"`. |
| `waves[].validation.type` | `string` Required. The type of the validation. If a type of validation is associated with a metadata object, the appropriate metadata field mapping to the validation type must be provided in the validation message. Possible values are in quotes below alongside an explanation: "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. TimeBasedValidation must be provided. |
| `waves[].orchestrationOptions` | `object` Optional. The orchestration options for this wave. |
| `waves[].orchestrationOptions.maxConcurrentLocations` | `string (https://developers.google.com/discovery/v1/type-format format)` Optional. Maximum number of locations to be orchestrated in parallel. |
| `waves[].orchestrationOptions.maxConcurrentResourcesPerLocation` | `string (https://developers.google.com/discovery/v1/type-format format)` Optional. Maximum number of resources to be orchestrated per location in parallel. |
| `waves[].orchestrationOptions.delays[]` | `object` Optional. Delays, if any, to be added between batches of projects. We allow multiple Delays to be specified, letting users set separate delays between batches of projects corresponding to different locations and batches of projects corresponding to the same location. |
| `waves[].orchestrationOptions.delays[].duration` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#duration` format)`` Optional. The duration of the delay, if any, to be added between batches of projects. A zero duration corresponds to no delay. A duration in seconds with up to nine fractional digits, ending with '`s`'. Example: `"3.5s"`. |
| `waves[].orchestrationOptions.delays[].delimiter` | `enum` Optional. 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. Must be set to DELIMITER_UNSPECIFIED if no delay is to be added. |
| `waves[].orchestrationOptions.delays[].type` | `enum` Optional. 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. Must be set to TYPE_UNSPECIFIED if no delay is to be added. |
| `locationScope` | `enum` The location scope of the rollout plan. If not specified, the location scope is considered as ZONAL. |

### Authorization scopes

Requires one of the following OAuth scopes:

- `https://www.googleapis.com/auth/compute.readonly`
- `
  https://www.googleapis.com/auth/compute`
- `
  https://www.googleapis.com/auth/cloud-platform`

For more information, see the [Authentication Overview](https://docs.cloud.google.com/docs/authentication#authorization-gcp).