REST Resource: rolloutPlans

Resource: RolloutPlan

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.

JSON representation
{
  "kind": string,
  "id": string,
  "creationTimestamp": string,
  "name": string,
  "description": string,
  "selfLink": string,
  "selfLinkWithId": string,
  "waves": [
    {
      "displayName": string,
      "number": string,
      "selectors": [
        {

          // Union field selector_type can be only one of the following:
          "resourceHierarchySelector": {
            "includedOrganizations": [
              string
            ],
            "includedFolders": [
              string
            ],
            "includedProjects": [
              string
            ]
          },
          "locationSelector": {
            "includedLocations": [
              string
            ]
          }
          // End of list of possible types for union field selector_type.
        }
      ],
      "validation": {
        "type": string,

        // Union field metadata can be only one of the following:
        "timeBasedValidationMetadata": {
          "waitDuration": string
        }
        // End of list of possible types for union field metadata.
      },
      "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 (uint64 format)

Output only. The unique identifier for the resource. This identifier is defined by the server.

creationTimestamp

string

Output only. Creation timestamp in RFC3339 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. 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.

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 (int64 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 (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 (int64 format)

Optional. Maximum number of locations to be orchestrated in parallel.

waves[].orchestrationOptions.maxConcurrentResourcesPerLocation

string (int64 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 (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.

Methods

delete

Deletes a RolloutPlan.

get

Gets details of a single project-scoped RolloutPlan.

insert

Creates a new RolloutPlan in a given project and location.

list

Lists RolloutPlans in a given project and location.