1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. clouddeploy
  5. Automation
Google Cloud v8.26.0 published on Thursday, Apr 10, 2025 by Pulumi

gcp.clouddeploy.Automation

Explore with Pulumi AI

An Automation enables the automation of manually driven actions for a Delivery Pipeline, which includes Release promotion amongst Targets, Rollout repair and Rollout deployment strategy advancement.

To get more information about Automation, see:

Example Usage

Clouddeploy Automation Basic

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const pipeline = new gcp.clouddeploy.DeliveryPipeline("pipeline", {
    name: "cd-pipeline",
    location: "us-central1",
    serialPipeline: {
        stages: [{
            targetId: "test",
            profiles: [],
        }],
    },
});
const b_automation = new gcp.clouddeploy.Automation("b-automation", {
    name: "cd-automation",
    project: pipeline.project,
    location: pipeline.location,
    deliveryPipeline: pipeline.name,
    serviceAccount: "my@service-account.com",
    selector: {
        targets: [{
            id: "*",
        }],
    },
    suspended: false,
    rules: [{
        promoteReleaseRule: {
            id: "promote-release",
        },
    }],
});
Copy
import pulumi
import pulumi_gcp as gcp

pipeline = gcp.clouddeploy.DeliveryPipeline("pipeline",
    name="cd-pipeline",
    location="us-central1",
    serial_pipeline={
        "stages": [{
            "target_id": "test",
            "profiles": [],
        }],
    })
b_automation = gcp.clouddeploy.Automation("b-automation",
    name="cd-automation",
    project=pipeline.project,
    location=pipeline.location,
    delivery_pipeline=pipeline.name,
    service_account="my@service-account.com",
    selector={
        "targets": [{
            "id": "*",
        }],
    },
    suspended=False,
    rules=[{
        "promote_release_rule": {
            "id": "promote-release",
        },
    }])
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/clouddeploy"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		pipeline, err := clouddeploy.NewDeliveryPipeline(ctx, "pipeline", &clouddeploy.DeliveryPipelineArgs{
			Name:     pulumi.String("cd-pipeline"),
			Location: pulumi.String("us-central1"),
			SerialPipeline: &clouddeploy.DeliveryPipelineSerialPipelineArgs{
				Stages: clouddeploy.DeliveryPipelineSerialPipelineStageArray{
					&clouddeploy.DeliveryPipelineSerialPipelineStageArgs{
						TargetId: pulumi.String("test"),
						Profiles: pulumi.StringArray{},
					},
				},
			},
		})
		if err != nil {
			return err
		}
		_, err = clouddeploy.NewAutomation(ctx, "b-automation", &clouddeploy.AutomationArgs{
			Name:             pulumi.String("cd-automation"),
			Project:          pipeline.Project,
			Location:         pipeline.Location,
			DeliveryPipeline: pipeline.Name,
			ServiceAccount:   pulumi.String("my@service-account.com"),
			Selector: &clouddeploy.AutomationSelectorArgs{
				Targets: clouddeploy.AutomationSelectorTargetArray{
					&clouddeploy.AutomationSelectorTargetArgs{
						Id: pulumi.String("*"),
					},
				},
			},
			Suspended: pulumi.Bool(false),
			Rules: clouddeploy.AutomationRuleArray{
				&clouddeploy.AutomationRuleArgs{
					PromoteReleaseRule: &clouddeploy.AutomationRulePromoteReleaseRuleArgs{
						Id: pulumi.String("promote-release"),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var pipeline = new Gcp.CloudDeploy.DeliveryPipeline("pipeline", new()
    {
        Name = "cd-pipeline",
        Location = "us-central1",
        SerialPipeline = new Gcp.CloudDeploy.Inputs.DeliveryPipelineSerialPipelineArgs
        {
            Stages = new[]
            {
                new Gcp.CloudDeploy.Inputs.DeliveryPipelineSerialPipelineStageArgs
                {
                    TargetId = "test",
                    Profiles = new() { },
                },
            },
        },
    });

    var b_automation = new Gcp.CloudDeploy.Automation("b-automation", new()
    {
        Name = "cd-automation",
        Project = pipeline.Project,
        Location = pipeline.Location,
        DeliveryPipeline = pipeline.Name,
        ServiceAccount = "my@service-account.com",
        Selector = new Gcp.CloudDeploy.Inputs.AutomationSelectorArgs
        {
            Targets = new[]
            {
                new Gcp.CloudDeploy.Inputs.AutomationSelectorTargetArgs
                {
                    Id = "*",
                },
            },
        },
        Suspended = false,
        Rules = new[]
        {
            new Gcp.CloudDeploy.Inputs.AutomationRuleArgs
            {
                PromoteReleaseRule = new Gcp.CloudDeploy.Inputs.AutomationRulePromoteReleaseRuleArgs
                {
                    Id = "promote-release",
                },
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.clouddeploy.DeliveryPipeline;
import com.pulumi.gcp.clouddeploy.DeliveryPipelineArgs;
import com.pulumi.gcp.clouddeploy.inputs.DeliveryPipelineSerialPipelineArgs;
import com.pulumi.gcp.clouddeploy.Automation;
import com.pulumi.gcp.clouddeploy.AutomationArgs;
import com.pulumi.gcp.clouddeploy.inputs.AutomationSelectorArgs;
import com.pulumi.gcp.clouddeploy.inputs.AutomationRuleArgs;
import com.pulumi.gcp.clouddeploy.inputs.AutomationRulePromoteReleaseRuleArgs;
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 pipeline = new DeliveryPipeline("pipeline", DeliveryPipelineArgs.builder()
            .name("cd-pipeline")
            .location("us-central1")
            .serialPipeline(DeliveryPipelineSerialPipelineArgs.builder()
                .stages(DeliveryPipelineSerialPipelineStageArgs.builder()
                    .targetId("test")
                    .profiles()
                    .build())
                .build())
            .build());

        var b_automation = new Automation("b-automation", AutomationArgs.builder()
            .name("cd-automation")
            .project(pipeline.project())
            .location(pipeline.location())
            .deliveryPipeline(pipeline.name())
            .serviceAccount("my@service-account.com")
            .selector(AutomationSelectorArgs.builder()
                .targets(AutomationSelectorTargetArgs.builder()
                    .id("*")
                    .build())
                .build())
            .suspended(false)
            .rules(AutomationRuleArgs.builder()
                .promoteReleaseRule(AutomationRulePromoteReleaseRuleArgs.builder()
                    .id("promote-release")
                    .build())
                .build())
            .build());

    }
}
Copy
resources:
  b-automation:
    type: gcp:clouddeploy:Automation
    properties:
      name: cd-automation
      project: ${pipeline.project}
      location: ${pipeline.location}
      deliveryPipeline: ${pipeline.name}
      serviceAccount: my@service-account.com
      selector:
        targets:
          - id: '*'
      suspended: false
      rules:
        - promoteReleaseRule:
            id: promote-release
  pipeline:
    type: gcp:clouddeploy:DeliveryPipeline
    properties:
      name: cd-pipeline
      location: us-central1
      serialPipeline:
        stages:
          - targetId: test
            profiles: []
Copy

Clouddeploy Automation Full

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const pipeline = new gcp.clouddeploy.DeliveryPipeline("pipeline", {
    name: "cd-pipeline",
    location: "us-central1",
    serialPipeline: {
        stages: [{
            targetId: "test",
            profiles: ["test-profile"],
        }],
    },
});
const f_automation = new gcp.clouddeploy.Automation("f-automation", {
    name: "cd-automation",
    location: "us-central1",
    deliveryPipeline: pipeline.name,
    serviceAccount: "my@service-account.com",
    annotations: {
        my_first_annotation: "example-annotation-1",
        my_second_annotation: "example-annotation-2",
    },
    labels: {
        my_first_label: "example-label-1",
        my_second_label: "example-label-2",
    },
    description: "automation resource",
    selector: {
        targets: [{
            id: "test",
            labels: {
                foo: "bar",
            },
        }],
    },
    suspended: true,
    rules: [
        {
            promoteReleaseRule: {
                id: "promote-release",
                wait: "200s",
                destinationTargetId: "@next",
                destinationPhase: "stable",
            },
        },
        {
            advanceRolloutRule: {
                id: "advance-rollout",
                sourcePhases: ["canary"],
                wait: "200s",
            },
        },
        {
            repairRolloutRule: {
                id: "repair-rollout",
                phases: ["stable"],
                jobs: ["deploy"],
                repairPhases: [
                    {
                        retry: {
                            attempts: "1",
                            wait: "200s",
                            backoffMode: "BACKOFF_MODE_LINEAR",
                        },
                    },
                    {
                        rollback: {
                            destinationPhase: "stable",
                            disableRollbackIfRolloutPending: true,
                        },
                    },
                ],
            },
        },
        {
            timedPromoteReleaseRule: {
                id: "timed-promote-release",
                destinationTargetId: "@next",
                schedule: "0 9 * * 1",
                timeZone: "America/New_York",
                destinationPhase: "stable",
            },
        },
    ],
});
Copy
import pulumi
import pulumi_gcp as gcp

pipeline = gcp.clouddeploy.DeliveryPipeline("pipeline",
    name="cd-pipeline",
    location="us-central1",
    serial_pipeline={
        "stages": [{
            "target_id": "test",
            "profiles": ["test-profile"],
        }],
    })
f_automation = gcp.clouddeploy.Automation("f-automation",
    name="cd-automation",
    location="us-central1",
    delivery_pipeline=pipeline.name,
    service_account="my@service-account.com",
    annotations={
        "my_first_annotation": "example-annotation-1",
        "my_second_annotation": "example-annotation-2",
    },
    labels={
        "my_first_label": "example-label-1",
        "my_second_label": "example-label-2",
    },
    description="automation resource",
    selector={
        "targets": [{
            "id": "test",
            "labels": {
                "foo": "bar",
            },
        }],
    },
    suspended=True,
    rules=[
        {
            "promote_release_rule": {
                "id": "promote-release",
                "wait": "200s",
                "destination_target_id": "@next",
                "destination_phase": "stable",
            },
        },
        {
            "advance_rollout_rule": {
                "id": "advance-rollout",
                "source_phases": ["canary"],
                "wait": "200s",
            },
        },
        {
            "repair_rollout_rule": {
                "id": "repair-rollout",
                "phases": ["stable"],
                "jobs": ["deploy"],
                "repair_phases": [
                    {
                        "retry": {
                            "attempts": "1",
                            "wait": "200s",
                            "backoff_mode": "BACKOFF_MODE_LINEAR",
                        },
                    },
                    {
                        "rollback": {
                            "destination_phase": "stable",
                            "disable_rollback_if_rollout_pending": True,
                        },
                    },
                ],
            },
        },
        {
            "timed_promote_release_rule": {
                "id": "timed-promote-release",
                "destination_target_id": "@next",
                "schedule": "0 9 * * 1",
                "time_zone": "America/New_York",
                "destination_phase": "stable",
            },
        },
    ])
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/clouddeploy"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		pipeline, err := clouddeploy.NewDeliveryPipeline(ctx, "pipeline", &clouddeploy.DeliveryPipelineArgs{
			Name:     pulumi.String("cd-pipeline"),
			Location: pulumi.String("us-central1"),
			SerialPipeline: &clouddeploy.DeliveryPipelineSerialPipelineArgs{
				Stages: clouddeploy.DeliveryPipelineSerialPipelineStageArray{
					&clouddeploy.DeliveryPipelineSerialPipelineStageArgs{
						TargetId: pulumi.String("test"),
						Profiles: pulumi.StringArray{
							pulumi.String("test-profile"),
						},
					},
				},
			},
		})
		if err != nil {
			return err
		}
		_, err = clouddeploy.NewAutomation(ctx, "f-automation", &clouddeploy.AutomationArgs{
			Name:             pulumi.String("cd-automation"),
			Location:         pulumi.String("us-central1"),
			DeliveryPipeline: pipeline.Name,
			ServiceAccount:   pulumi.String("my@service-account.com"),
			Annotations: pulumi.StringMap{
				"my_first_annotation":  pulumi.String("example-annotation-1"),
				"my_second_annotation": pulumi.String("example-annotation-2"),
			},
			Labels: pulumi.StringMap{
				"my_first_label":  pulumi.String("example-label-1"),
				"my_second_label": pulumi.String("example-label-2"),
			},
			Description: pulumi.String("automation resource"),
			Selector: &clouddeploy.AutomationSelectorArgs{
				Targets: clouddeploy.AutomationSelectorTargetArray{
					&clouddeploy.AutomationSelectorTargetArgs{
						Id: pulumi.String("test"),
						Labels: pulumi.StringMap{
							"foo": pulumi.String("bar"),
						},
					},
				},
			},
			Suspended: pulumi.Bool(true),
			Rules: clouddeploy.AutomationRuleArray{
				&clouddeploy.AutomationRuleArgs{
					PromoteReleaseRule: &clouddeploy.AutomationRulePromoteReleaseRuleArgs{
						Id:                  pulumi.String("promote-release"),
						Wait:                pulumi.String("200s"),
						DestinationTargetId: pulumi.String("@next"),
						DestinationPhase:    pulumi.String("stable"),
					},
				},
				&clouddeploy.AutomationRuleArgs{
					AdvanceRolloutRule: &clouddeploy.AutomationRuleAdvanceRolloutRuleArgs{
						Id: pulumi.String("advance-rollout"),
						SourcePhases: pulumi.StringArray{
							pulumi.String("canary"),
						},
						Wait: pulumi.String("200s"),
					},
				},
				&clouddeploy.AutomationRuleArgs{
					RepairRolloutRule: &clouddeploy.AutomationRuleRepairRolloutRuleArgs{
						Id: pulumi.String("repair-rollout"),
						Phases: pulumi.StringArray{
							pulumi.String("stable"),
						},
						Jobs: pulumi.StringArray{
							pulumi.String("deploy"),
						},
						RepairPhases: clouddeploy.AutomationRuleRepairRolloutRuleRepairPhaseArray{
							&clouddeploy.AutomationRuleRepairRolloutRuleRepairPhaseArgs{
								Retry: &clouddeploy.AutomationRuleRepairRolloutRuleRepairPhaseRetryArgs{
									Attempts:    pulumi.String("1"),
									Wait:        pulumi.String("200s"),
									BackoffMode: pulumi.String("BACKOFF_MODE_LINEAR"),
								},
							},
							&clouddeploy.AutomationRuleRepairRolloutRuleRepairPhaseArgs{
								Rollback: &clouddeploy.AutomationRuleRepairRolloutRuleRepairPhaseRollbackArgs{
									DestinationPhase:                pulumi.String("stable"),
									DisableRollbackIfRolloutPending: pulumi.Bool(true),
								},
							},
						},
					},
				},
				&clouddeploy.AutomationRuleArgs{
					TimedPromoteReleaseRule: &clouddeploy.AutomationRuleTimedPromoteReleaseRuleArgs{
						Id:                  pulumi.String("timed-promote-release"),
						DestinationTargetId: pulumi.String("@next"),
						Schedule:            pulumi.String("0 9 * * 1"),
						TimeZone:            pulumi.String("America/New_York"),
						DestinationPhase:    pulumi.String("stable"),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var pipeline = new Gcp.CloudDeploy.DeliveryPipeline("pipeline", new()
    {
        Name = "cd-pipeline",
        Location = "us-central1",
        SerialPipeline = new Gcp.CloudDeploy.Inputs.DeliveryPipelineSerialPipelineArgs
        {
            Stages = new[]
            {
                new Gcp.CloudDeploy.Inputs.DeliveryPipelineSerialPipelineStageArgs
                {
                    TargetId = "test",
                    Profiles = new[]
                    {
                        "test-profile",
                    },
                },
            },
        },
    });

    var f_automation = new Gcp.CloudDeploy.Automation("f-automation", new()
    {
        Name = "cd-automation",
        Location = "us-central1",
        DeliveryPipeline = pipeline.Name,
        ServiceAccount = "my@service-account.com",
        Annotations = 
        {
            { "my_first_annotation", "example-annotation-1" },
            { "my_second_annotation", "example-annotation-2" },
        },
        Labels = 
        {
            { "my_first_label", "example-label-1" },
            { "my_second_label", "example-label-2" },
        },
        Description = "automation resource",
        Selector = new Gcp.CloudDeploy.Inputs.AutomationSelectorArgs
        {
            Targets = new[]
            {
                new Gcp.CloudDeploy.Inputs.AutomationSelectorTargetArgs
                {
                    Id = "test",
                    Labels = 
                    {
                        { "foo", "bar" },
                    },
                },
            },
        },
        Suspended = true,
        Rules = new[]
        {
            new Gcp.CloudDeploy.Inputs.AutomationRuleArgs
            {
                PromoteReleaseRule = new Gcp.CloudDeploy.Inputs.AutomationRulePromoteReleaseRuleArgs
                {
                    Id = "promote-release",
                    Wait = "200s",
                    DestinationTargetId = "@next",
                    DestinationPhase = "stable",
                },
            },
            new Gcp.CloudDeploy.Inputs.AutomationRuleArgs
            {
                AdvanceRolloutRule = new Gcp.CloudDeploy.Inputs.AutomationRuleAdvanceRolloutRuleArgs
                {
                    Id = "advance-rollout",
                    SourcePhases = new[]
                    {
                        "canary",
                    },
                    Wait = "200s",
                },
            },
            new Gcp.CloudDeploy.Inputs.AutomationRuleArgs
            {
                RepairRolloutRule = new Gcp.CloudDeploy.Inputs.AutomationRuleRepairRolloutRuleArgs
                {
                    Id = "repair-rollout",
                    Phases = new[]
                    {
                        "stable",
                    },
                    Jobs = new[]
                    {
                        "deploy",
                    },
                    RepairPhases = new[]
                    {
                        new Gcp.CloudDeploy.Inputs.AutomationRuleRepairRolloutRuleRepairPhaseArgs
                        {
                            Retry = new Gcp.CloudDeploy.Inputs.AutomationRuleRepairRolloutRuleRepairPhaseRetryArgs
                            {
                                Attempts = "1",
                                Wait = "200s",
                                BackoffMode = "BACKOFF_MODE_LINEAR",
                            },
                        },
                        new Gcp.CloudDeploy.Inputs.AutomationRuleRepairRolloutRuleRepairPhaseArgs
                        {
                            Rollback = new Gcp.CloudDeploy.Inputs.AutomationRuleRepairRolloutRuleRepairPhaseRollbackArgs
                            {
                                DestinationPhase = "stable",
                                DisableRollbackIfRolloutPending = true,
                            },
                        },
                    },
                },
            },
            new Gcp.CloudDeploy.Inputs.AutomationRuleArgs
            {
                TimedPromoteReleaseRule = new Gcp.CloudDeploy.Inputs.AutomationRuleTimedPromoteReleaseRuleArgs
                {
                    Id = "timed-promote-release",
                    DestinationTargetId = "@next",
                    Schedule = "0 9 * * 1",
                    TimeZone = "America/New_York",
                    DestinationPhase = "stable",
                },
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.clouddeploy.DeliveryPipeline;
import com.pulumi.gcp.clouddeploy.DeliveryPipelineArgs;
import com.pulumi.gcp.clouddeploy.inputs.DeliveryPipelineSerialPipelineArgs;
import com.pulumi.gcp.clouddeploy.Automation;
import com.pulumi.gcp.clouddeploy.AutomationArgs;
import com.pulumi.gcp.clouddeploy.inputs.AutomationSelectorArgs;
import com.pulumi.gcp.clouddeploy.inputs.AutomationRuleArgs;
import com.pulumi.gcp.clouddeploy.inputs.AutomationRulePromoteReleaseRuleArgs;
import com.pulumi.gcp.clouddeploy.inputs.AutomationRuleAdvanceRolloutRuleArgs;
import com.pulumi.gcp.clouddeploy.inputs.AutomationRuleRepairRolloutRuleArgs;
import com.pulumi.gcp.clouddeploy.inputs.AutomationRuleTimedPromoteReleaseRuleArgs;
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 pipeline = new DeliveryPipeline("pipeline", DeliveryPipelineArgs.builder()
            .name("cd-pipeline")
            .location("us-central1")
            .serialPipeline(DeliveryPipelineSerialPipelineArgs.builder()
                .stages(DeliveryPipelineSerialPipelineStageArgs.builder()
                    .targetId("test")
                    .profiles("test-profile")
                    .build())
                .build())
            .build());

        var f_automation = new Automation("f-automation", AutomationArgs.builder()
            .name("cd-automation")
            .location("us-central1")
            .deliveryPipeline(pipeline.name())
            .serviceAccount("my@service-account.com")
            .annotations(Map.ofEntries(
                Map.entry("my_first_annotation", "example-annotation-1"),
                Map.entry("my_second_annotation", "example-annotation-2")
            ))
            .labels(Map.ofEntries(
                Map.entry("my_first_label", "example-label-1"),
                Map.entry("my_second_label", "example-label-2")
            ))
            .description("automation resource")
            .selector(AutomationSelectorArgs.builder()
                .targets(AutomationSelectorTargetArgs.builder()
                    .id("test")
                    .labels(Map.of("foo", "bar"))
                    .build())
                .build())
            .suspended(true)
            .rules(            
                AutomationRuleArgs.builder()
                    .promoteReleaseRule(AutomationRulePromoteReleaseRuleArgs.builder()
                        .id("promote-release")
                        .wait("200s")
                        .destinationTargetId("@next")
                        .destinationPhase("stable")
                        .build())
                    .build(),
                AutomationRuleArgs.builder()
                    .advanceRolloutRule(AutomationRuleAdvanceRolloutRuleArgs.builder()
                        .id("advance-rollout")
                        .sourcePhases("canary")
                        .wait("200s")
                        .build())
                    .build(),
                AutomationRuleArgs.builder()
                    .repairRolloutRule(AutomationRuleRepairRolloutRuleArgs.builder()
                        .id("repair-rollout")
                        .phases("stable")
                        .jobs("deploy")
                        .repairPhases(                        
                            AutomationRuleRepairRolloutRuleRepairPhaseArgs.builder()
                                .retry(AutomationRuleRepairRolloutRuleRepairPhaseRetryArgs.builder()
                                    .attempts("1")
                                    .wait("200s")
                                    .backoffMode("BACKOFF_MODE_LINEAR")
                                    .build())
                                .build(),
                            AutomationRuleRepairRolloutRuleRepairPhaseArgs.builder()
                                .rollback(AutomationRuleRepairRolloutRuleRepairPhaseRollbackArgs.builder()
                                    .destinationPhase("stable")
                                    .disableRollbackIfRolloutPending(true)
                                    .build())
                                .build())
                        .build())
                    .build(),
                AutomationRuleArgs.builder()
                    .timedPromoteReleaseRule(AutomationRuleTimedPromoteReleaseRuleArgs.builder()
                        .id("timed-promote-release")
                        .destinationTargetId("@next")
                        .schedule("0 9 * * 1")
                        .timeZone("America/New_York")
                        .destinationPhase("stable")
                        .build())
                    .build())
            .build());

    }
}
Copy
resources:
  f-automation:
    type: gcp:clouddeploy:Automation
    properties:
      name: cd-automation
      location: us-central1
      deliveryPipeline: ${pipeline.name}
      serviceAccount: my@service-account.com
      annotations:
        my_first_annotation: example-annotation-1
        my_second_annotation: example-annotation-2
      labels:
        my_first_label: example-label-1
        my_second_label: example-label-2
      description: automation resource
      selector:
        targets:
          - id: test
            labels:
              foo: bar
      suspended: true
      rules:
        - promoteReleaseRule:
            id: promote-release
            wait: 200s
            destinationTargetId: '@next'
            destinationPhase: stable
        - advanceRolloutRule:
            id: advance-rollout
            sourcePhases:
              - canary
            wait: 200s
        - repairRolloutRule:
            id: repair-rollout
            phases:
              - stable
            jobs:
              - deploy
            repairPhases:
              - retry:
                  attempts: '1'
                  wait: 200s
                  backoffMode: BACKOFF_MODE_LINEAR
              - rollback:
                  destinationPhase: stable
                  disableRollbackIfRolloutPending: true
        - timedPromoteReleaseRule:
            id: timed-promote-release
            destinationTargetId: '@next'
            schedule: 0 9 * * 1
            timeZone: America/New_York
            destinationPhase: stable
  pipeline:
    type: gcp:clouddeploy:DeliveryPipeline
    properties:
      name: cd-pipeline
      location: us-central1
      serialPipeline:
        stages:
          - targetId: test
            profiles:
              - test-profile
Copy

Create Automation Resource

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

Constructor syntax

new Automation(name: string, args: AutomationArgs, opts?: CustomResourceOptions);
@overload
def Automation(resource_name: str,
               args: AutomationArgs,
               opts: Optional[ResourceOptions] = None)

@overload
def Automation(resource_name: str,
               opts: Optional[ResourceOptions] = None,
               delivery_pipeline: Optional[str] = None,
               location: Optional[str] = None,
               rules: Optional[Sequence[AutomationRuleArgs]] = None,
               selector: Optional[AutomationSelectorArgs] = None,
               service_account: Optional[str] = None,
               annotations: Optional[Mapping[str, str]] = None,
               description: Optional[str] = None,
               labels: Optional[Mapping[str, str]] = None,
               name: Optional[str] = None,
               project: Optional[str] = None,
               suspended: Optional[bool] = None)
func NewAutomation(ctx *Context, name string, args AutomationArgs, opts ...ResourceOption) (*Automation, error)
public Automation(string name, AutomationArgs args, CustomResourceOptions? opts = null)
public Automation(String name, AutomationArgs args)
public Automation(String name, AutomationArgs args, CustomResourceOptions options)
type: gcp:clouddeploy:Automation
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

Parameters

name This property is required. string
The unique name of the resource.
args This property is required. AutomationArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name This property is required. str
The unique name of the resource.
args This property is required. AutomationArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name This property is required. string
The unique name of the resource.
args This property is required. AutomationArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name This property is required. string
The unique name of the resource.
args This property is required. AutomationArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name This property is required. String
The unique name of the resource.
args This property is required. AutomationArgs
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 automationResource = new Gcp.CloudDeploy.Automation("automationResource", new()
{
    DeliveryPipeline = "string",
    Location = "string",
    Rules = new[]
    {
        new Gcp.CloudDeploy.Inputs.AutomationRuleArgs
        {
            AdvanceRolloutRule = new Gcp.CloudDeploy.Inputs.AutomationRuleAdvanceRolloutRuleArgs
            {
                Id = "string",
                SourcePhases = new[]
                {
                    "string",
                },
                Wait = "string",
            },
            PromoteReleaseRule = new Gcp.CloudDeploy.Inputs.AutomationRulePromoteReleaseRuleArgs
            {
                Id = "string",
                DestinationPhase = "string",
                DestinationTargetId = "string",
                Wait = "string",
            },
            RepairRolloutRule = new Gcp.CloudDeploy.Inputs.AutomationRuleRepairRolloutRuleArgs
            {
                Id = "string",
                Jobs = new[]
                {
                    "string",
                },
                Phases = new[]
                {
                    "string",
                },
                RepairPhases = new[]
                {
                    new Gcp.CloudDeploy.Inputs.AutomationRuleRepairRolloutRuleRepairPhaseArgs
                    {
                        Retry = new Gcp.CloudDeploy.Inputs.AutomationRuleRepairRolloutRuleRepairPhaseRetryArgs
                        {
                            Attempts = "string",
                            BackoffMode = "string",
                            Wait = "string",
                        },
                        Rollback = new Gcp.CloudDeploy.Inputs.AutomationRuleRepairRolloutRuleRepairPhaseRollbackArgs
                        {
                            DestinationPhase = "string",
                            DisableRollbackIfRolloutPending = false,
                        },
                    },
                },
            },
            TimedPromoteReleaseRule = new Gcp.CloudDeploy.Inputs.AutomationRuleTimedPromoteReleaseRuleArgs
            {
                Id = "string",
                Schedule = "string",
                TimeZone = "string",
                DestinationPhase = "string",
                DestinationTargetId = "string",
            },
        },
    },
    Selector = new Gcp.CloudDeploy.Inputs.AutomationSelectorArgs
    {
        Targets = new[]
        {
            new Gcp.CloudDeploy.Inputs.AutomationSelectorTargetArgs
            {
                Id = "string",
                Labels = 
                {
                    { "string", "string" },
                },
            },
        },
    },
    ServiceAccount = "string",
    Annotations = 
    {
        { "string", "string" },
    },
    Description = "string",
    Labels = 
    {
        { "string", "string" },
    },
    Name = "string",
    Project = "string",
    Suspended = false,
});
Copy
example, err := clouddeploy.NewAutomation(ctx, "automationResource", &clouddeploy.AutomationArgs{
	DeliveryPipeline: pulumi.String("string"),
	Location:         pulumi.String("string"),
	Rules: clouddeploy.AutomationRuleArray{
		&clouddeploy.AutomationRuleArgs{
			AdvanceRolloutRule: &clouddeploy.AutomationRuleAdvanceRolloutRuleArgs{
				Id: pulumi.String("string"),
				SourcePhases: pulumi.StringArray{
					pulumi.String("string"),
				},
				Wait: pulumi.String("string"),
			},
			PromoteReleaseRule: &clouddeploy.AutomationRulePromoteReleaseRuleArgs{
				Id:                  pulumi.String("string"),
				DestinationPhase:    pulumi.String("string"),
				DestinationTargetId: pulumi.String("string"),
				Wait:                pulumi.String("string"),
			},
			RepairRolloutRule: &clouddeploy.AutomationRuleRepairRolloutRuleArgs{
				Id: pulumi.String("string"),
				Jobs: pulumi.StringArray{
					pulumi.String("string"),
				},
				Phases: pulumi.StringArray{
					pulumi.String("string"),
				},
				RepairPhases: clouddeploy.AutomationRuleRepairRolloutRuleRepairPhaseArray{
					&clouddeploy.AutomationRuleRepairRolloutRuleRepairPhaseArgs{
						Retry: &clouddeploy.AutomationRuleRepairRolloutRuleRepairPhaseRetryArgs{
							Attempts:    pulumi.String("string"),
							BackoffMode: pulumi.String("string"),
							Wait:        pulumi.String("string"),
						},
						Rollback: &clouddeploy.AutomationRuleRepairRolloutRuleRepairPhaseRollbackArgs{
							DestinationPhase:                pulumi.String("string"),
							DisableRollbackIfRolloutPending: pulumi.Bool(false),
						},
					},
				},
			},
			TimedPromoteReleaseRule: &clouddeploy.AutomationRuleTimedPromoteReleaseRuleArgs{
				Id:                  pulumi.String("string"),
				Schedule:            pulumi.String("string"),
				TimeZone:            pulumi.String("string"),
				DestinationPhase:    pulumi.String("string"),
				DestinationTargetId: pulumi.String("string"),
			},
		},
	},
	Selector: &clouddeploy.AutomationSelectorArgs{
		Targets: clouddeploy.AutomationSelectorTargetArray{
			&clouddeploy.AutomationSelectorTargetArgs{
				Id: pulumi.String("string"),
				Labels: pulumi.StringMap{
					"string": pulumi.String("string"),
				},
			},
		},
	},
	ServiceAccount: pulumi.String("string"),
	Annotations: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	Description: pulumi.String("string"),
	Labels: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	Name:      pulumi.String("string"),
	Project:   pulumi.String("string"),
	Suspended: pulumi.Bool(false),
})
Copy
var automationResource = new Automation("automationResource", AutomationArgs.builder()
    .deliveryPipeline("string")
    .location("string")
    .rules(AutomationRuleArgs.builder()
        .advanceRolloutRule(AutomationRuleAdvanceRolloutRuleArgs.builder()
            .id("string")
            .sourcePhases("string")
            .wait("string")
            .build())
        .promoteReleaseRule(AutomationRulePromoteReleaseRuleArgs.builder()
            .id("string")
            .destinationPhase("string")
            .destinationTargetId("string")
            .wait("string")
            .build())
        .repairRolloutRule(AutomationRuleRepairRolloutRuleArgs.builder()
            .id("string")
            .jobs("string")
            .phases("string")
            .repairPhases(AutomationRuleRepairRolloutRuleRepairPhaseArgs.builder()
                .retry(AutomationRuleRepairRolloutRuleRepairPhaseRetryArgs.builder()
                    .attempts("string")
                    .backoffMode("string")
                    .wait("string")
                    .build())
                .rollback(AutomationRuleRepairRolloutRuleRepairPhaseRollbackArgs.builder()
                    .destinationPhase("string")
                    .disableRollbackIfRolloutPending(false)
                    .build())
                .build())
            .build())
        .timedPromoteReleaseRule(AutomationRuleTimedPromoteReleaseRuleArgs.builder()
            .id("string")
            .schedule("string")
            .timeZone("string")
            .destinationPhase("string")
            .destinationTargetId("string")
            .build())
        .build())
    .selector(AutomationSelectorArgs.builder()
        .targets(AutomationSelectorTargetArgs.builder()
            .id("string")
            .labels(Map.of("string", "string"))
            .build())
        .build())
    .serviceAccount("string")
    .annotations(Map.of("string", "string"))
    .description("string")
    .labels(Map.of("string", "string"))
    .name("string")
    .project("string")
    .suspended(false)
    .build());
Copy
automation_resource = gcp.clouddeploy.Automation("automationResource",
    delivery_pipeline="string",
    location="string",
    rules=[{
        "advance_rollout_rule": {
            "id": "string",
            "source_phases": ["string"],
            "wait": "string",
        },
        "promote_release_rule": {
            "id": "string",
            "destination_phase": "string",
            "destination_target_id": "string",
            "wait": "string",
        },
        "repair_rollout_rule": {
            "id": "string",
            "jobs": ["string"],
            "phases": ["string"],
            "repair_phases": [{
                "retry": {
                    "attempts": "string",
                    "backoff_mode": "string",
                    "wait": "string",
                },
                "rollback": {
                    "destination_phase": "string",
                    "disable_rollback_if_rollout_pending": False,
                },
            }],
        },
        "timed_promote_release_rule": {
            "id": "string",
            "schedule": "string",
            "time_zone": "string",
            "destination_phase": "string",
            "destination_target_id": "string",
        },
    }],
    selector={
        "targets": [{
            "id": "string",
            "labels": {
                "string": "string",
            },
        }],
    },
    service_account="string",
    annotations={
        "string": "string",
    },
    description="string",
    labels={
        "string": "string",
    },
    name="string",
    project="string",
    suspended=False)
Copy
const automationResource = new gcp.clouddeploy.Automation("automationResource", {
    deliveryPipeline: "string",
    location: "string",
    rules: [{
        advanceRolloutRule: {
            id: "string",
            sourcePhases: ["string"],
            wait: "string",
        },
        promoteReleaseRule: {
            id: "string",
            destinationPhase: "string",
            destinationTargetId: "string",
            wait: "string",
        },
        repairRolloutRule: {
            id: "string",
            jobs: ["string"],
            phases: ["string"],
            repairPhases: [{
                retry: {
                    attempts: "string",
                    backoffMode: "string",
                    wait: "string",
                },
                rollback: {
                    destinationPhase: "string",
                    disableRollbackIfRolloutPending: false,
                },
            }],
        },
        timedPromoteReleaseRule: {
            id: "string",
            schedule: "string",
            timeZone: "string",
            destinationPhase: "string",
            destinationTargetId: "string",
        },
    }],
    selector: {
        targets: [{
            id: "string",
            labels: {
                string: "string",
            },
        }],
    },
    serviceAccount: "string",
    annotations: {
        string: "string",
    },
    description: "string",
    labels: {
        string: "string",
    },
    name: "string",
    project: "string",
    suspended: false,
});
Copy
type: gcp:clouddeploy:Automation
properties:
    annotations:
        string: string
    deliveryPipeline: string
    description: string
    labels:
        string: string
    location: string
    name: string
    project: string
    rules:
        - advanceRolloutRule:
            id: string
            sourcePhases:
                - string
            wait: string
          promoteReleaseRule:
            destinationPhase: string
            destinationTargetId: string
            id: string
            wait: string
          repairRolloutRule:
            id: string
            jobs:
                - string
            phases:
                - string
            repairPhases:
                - retry:
                    attempts: string
                    backoffMode: string
                    wait: string
                  rollback:
                    destinationPhase: string
                    disableRollbackIfRolloutPending: false
          timedPromoteReleaseRule:
            destinationPhase: string
            destinationTargetId: string
            id: string
            schedule: string
            timeZone: string
    selector:
        targets:
            - id: string
              labels:
                string: string
    serviceAccount: string
    suspended: false
Copy

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

DeliveryPipeline
This property is required.
Changes to this property will trigger replacement.
string
The delivery_pipeline for the resource
Location
This property is required.
Changes to this property will trigger replacement.
string
The location for the resource
Rules This property is required. List<AutomationRule>
Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution. Structure is documented below.
Selector This property is required. AutomationSelector
Required. Selected resources to which the automation will be applied. Structure is documented below.
ServiceAccount This property is required. string
Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.
Annotations Dictionary<string, string>
Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash ('/'). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ('[a-z0-9A-Z]') with dashes ('-'), underscores ('_'), dots ('.'), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots('.'), not longer than 253 characters in total, followed by a slash ('/'). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
Description string
Optional. Description of the 'Automation'. Max length is 255 characters.
Labels Dictionary<string, string>
Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 63 characters. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
Name Changes to this property will trigger replacement. string
Name of the Automation.
Project Changes to this property will trigger replacement. string
Suspended bool
Optional. When Suspended, automation is deactivated from execution.
DeliveryPipeline
This property is required.
Changes to this property will trigger replacement.
string
The delivery_pipeline for the resource
Location
This property is required.
Changes to this property will trigger replacement.
string
The location for the resource
Rules This property is required. []AutomationRuleArgs
Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution. Structure is documented below.
Selector This property is required. AutomationSelectorArgs
Required. Selected resources to which the automation will be applied. Structure is documented below.
ServiceAccount This property is required. string
Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.
Annotations map[string]string
Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash ('/'). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ('[a-z0-9A-Z]') with dashes ('-'), underscores ('_'), dots ('.'), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots('.'), not longer than 253 characters in total, followed by a slash ('/'). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
Description string
Optional. Description of the 'Automation'. Max length is 255 characters.
Labels map[string]string
Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 63 characters. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
Name Changes to this property will trigger replacement. string
Name of the Automation.
Project Changes to this property will trigger replacement. string
Suspended bool
Optional. When Suspended, automation is deactivated from execution.
deliveryPipeline
This property is required.
Changes to this property will trigger replacement.
String
The delivery_pipeline for the resource
location
This property is required.
Changes to this property will trigger replacement.
String
The location for the resource
rules This property is required. List<AutomationRule>
Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution. Structure is documented below.
selector This property is required. AutomationSelector
Required. Selected resources to which the automation will be applied. Structure is documented below.
serviceAccount This property is required. String
Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.
annotations Map<String,String>
Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash ('/'). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ('[a-z0-9A-Z]') with dashes ('-'), underscores ('_'), dots ('.'), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots('.'), not longer than 253 characters in total, followed by a slash ('/'). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
description String
Optional. Description of the 'Automation'. Max length is 255 characters.
labels Map<String,String>
Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 63 characters. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
name Changes to this property will trigger replacement. String
Name of the Automation.
project Changes to this property will trigger replacement. String
suspended Boolean
Optional. When Suspended, automation is deactivated from execution.
deliveryPipeline
This property is required.
Changes to this property will trigger replacement.
string
The delivery_pipeline for the resource
location
This property is required.
Changes to this property will trigger replacement.
string
The location for the resource
rules This property is required. AutomationRule[]
Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution. Structure is documented below.
selector This property is required. AutomationSelector
Required. Selected resources to which the automation will be applied. Structure is documented below.
serviceAccount This property is required. string
Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.
annotations {[key: string]: string}
Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash ('/'). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ('[a-z0-9A-Z]') with dashes ('-'), underscores ('_'), dots ('.'), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots('.'), not longer than 253 characters in total, followed by a slash ('/'). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
description string
Optional. Description of the 'Automation'. Max length is 255 characters.
labels {[key: string]: string}
Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 63 characters. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
name Changes to this property will trigger replacement. string
Name of the Automation.
project Changes to this property will trigger replacement. string
suspended boolean
Optional. When Suspended, automation is deactivated from execution.
delivery_pipeline
This property is required.
Changes to this property will trigger replacement.
str
The delivery_pipeline for the resource
location
This property is required.
Changes to this property will trigger replacement.
str
The location for the resource
rules This property is required. Sequence[AutomationRuleArgs]
Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution. Structure is documented below.
selector This property is required. AutomationSelectorArgs
Required. Selected resources to which the automation will be applied. Structure is documented below.
service_account This property is required. str
Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.
annotations Mapping[str, str]
Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash ('/'). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ('[a-z0-9A-Z]') with dashes ('-'), underscores ('_'), dots ('.'), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots('.'), not longer than 253 characters in total, followed by a slash ('/'). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
description str
Optional. Description of the 'Automation'. Max length is 255 characters.
labels Mapping[str, str]
Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 63 characters. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
name Changes to this property will trigger replacement. str
Name of the Automation.
project Changes to this property will trigger replacement. str
suspended bool
Optional. When Suspended, automation is deactivated from execution.
deliveryPipeline
This property is required.
Changes to this property will trigger replacement.
String
The delivery_pipeline for the resource
location
This property is required.
Changes to this property will trigger replacement.
String
The location for the resource
rules This property is required. List<Property Map>
Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution. Structure is documented below.
selector This property is required. Property Map
Required. Selected resources to which the automation will be applied. Structure is documented below.
serviceAccount This property is required. String
Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.
annotations Map<String>
Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash ('/'). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ('[a-z0-9A-Z]') with dashes ('-'), underscores ('_'), dots ('.'), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots('.'), not longer than 253 characters in total, followed by a slash ('/'). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
description String
Optional. Description of the 'Automation'. Max length is 255 characters.
labels Map<String>
Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 63 characters. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
name Changes to this property will trigger replacement. String
Name of the Automation.
project Changes to this property will trigger replacement. String
suspended Boolean
Optional. When Suspended, automation is deactivated from execution.

Outputs

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

CreateTime string
Output only. Time at which the automation was created.
EffectiveAnnotations Dictionary<string, string>
EffectiveLabels Dictionary<string, string>
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
Etag string
Optional. The weak etag of the Automation resource. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
Id string
The provider-assigned unique ID for this managed resource.
PulumiLabels Dictionary<string, string>
The combination of labels configured directly on the resource and default labels configured on the provider.
Uid string
Output only. Unique identifier of the Automation.
UpdateTime string
Output only. Time at which the automation was updated.
CreateTime string
Output only. Time at which the automation was created.
EffectiveAnnotations map[string]string
EffectiveLabels map[string]string
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
Etag string
Optional. The weak etag of the Automation resource. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
Id string
The provider-assigned unique ID for this managed resource.
PulumiLabels map[string]string
The combination of labels configured directly on the resource and default labels configured on the provider.
Uid string
Output only. Unique identifier of the Automation.
UpdateTime string
Output only. Time at which the automation was updated.
createTime String
Output only. Time at which the automation was created.
effectiveAnnotations Map<String,String>
effectiveLabels Map<String,String>
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
etag String
Optional. The weak etag of the Automation resource. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
id String
The provider-assigned unique ID for this managed resource.
pulumiLabels Map<String,String>
The combination of labels configured directly on the resource and default labels configured on the provider.
uid String
Output only. Unique identifier of the Automation.
updateTime String
Output only. Time at which the automation was updated.
createTime string
Output only. Time at which the automation was created.
effectiveAnnotations {[key: string]: string}
effectiveLabels {[key: string]: string}
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
etag string
Optional. The weak etag of the Automation resource. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
id string
The provider-assigned unique ID for this managed resource.
pulumiLabels {[key: string]: string}
The combination of labels configured directly on the resource and default labels configured on the provider.
uid string
Output only. Unique identifier of the Automation.
updateTime string
Output only. Time at which the automation was updated.
create_time str
Output only. Time at which the automation was created.
effective_annotations Mapping[str, str]
effective_labels Mapping[str, str]
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
etag str
Optional. The weak etag of the Automation resource. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
id str
The provider-assigned unique ID for this managed resource.
pulumi_labels Mapping[str, str]
The combination of labels configured directly on the resource and default labels configured on the provider.
uid str
Output only. Unique identifier of the Automation.
update_time str
Output only. Time at which the automation was updated.
createTime String
Output only. Time at which the automation was created.
effectiveAnnotations Map<String>
effectiveLabels Map<String>
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
etag String
Optional. The weak etag of the Automation resource. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
id String
The provider-assigned unique ID for this managed resource.
pulumiLabels Map<String>
The combination of labels configured directly on the resource and default labels configured on the provider.
uid String
Output only. Unique identifier of the Automation.
updateTime String
Output only. Time at which the automation was updated.

Look up Existing Automation Resource

Get an existing Automation 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?: AutomationState, opts?: CustomResourceOptions): Automation
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        annotations: Optional[Mapping[str, str]] = None,
        create_time: Optional[str] = None,
        delivery_pipeline: Optional[str] = None,
        description: Optional[str] = None,
        effective_annotations: Optional[Mapping[str, str]] = None,
        effective_labels: Optional[Mapping[str, str]] = None,
        etag: Optional[str] = None,
        labels: Optional[Mapping[str, str]] = None,
        location: Optional[str] = None,
        name: Optional[str] = None,
        project: Optional[str] = None,
        pulumi_labels: Optional[Mapping[str, str]] = None,
        rules: Optional[Sequence[AutomationRuleArgs]] = None,
        selector: Optional[AutomationSelectorArgs] = None,
        service_account: Optional[str] = None,
        suspended: Optional[bool] = None,
        uid: Optional[str] = None,
        update_time: Optional[str] = None) -> Automation
func GetAutomation(ctx *Context, name string, id IDInput, state *AutomationState, opts ...ResourceOption) (*Automation, error)
public static Automation Get(string name, Input<string> id, AutomationState? state, CustomResourceOptions? opts = null)
public static Automation get(String name, Output<String> id, AutomationState state, CustomResourceOptions options)
resources:  _:    type: gcp:clouddeploy:Automation    get:      id: ${id}
name This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
name This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
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:
Annotations Dictionary<string, string>
Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash ('/'). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ('[a-z0-9A-Z]') with dashes ('-'), underscores ('_'), dots ('.'), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots('.'), not longer than 253 characters in total, followed by a slash ('/'). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
CreateTime string
Output only. Time at which the automation was created.
DeliveryPipeline Changes to this property will trigger replacement. string
The delivery_pipeline for the resource
Description string
Optional. Description of the 'Automation'. Max length is 255 characters.
EffectiveAnnotations Dictionary<string, string>
EffectiveLabels Dictionary<string, string>
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
Etag string
Optional. The weak etag of the Automation resource. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
Labels Dictionary<string, string>
Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 63 characters. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
Location Changes to this property will trigger replacement. string
The location for the resource
Name Changes to this property will trigger replacement. string
Name of the Automation.
Project Changes to this property will trigger replacement. string
PulumiLabels Dictionary<string, string>
The combination of labels configured directly on the resource and default labels configured on the provider.
Rules List<AutomationRule>
Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution. Structure is documented below.
Selector AutomationSelector
Required. Selected resources to which the automation will be applied. Structure is documented below.
ServiceAccount string
Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.
Suspended bool
Optional. When Suspended, automation is deactivated from execution.
Uid string
Output only. Unique identifier of the Automation.
UpdateTime string
Output only. Time at which the automation was updated.
Annotations map[string]string
Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash ('/'). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ('[a-z0-9A-Z]') with dashes ('-'), underscores ('_'), dots ('.'), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots('.'), not longer than 253 characters in total, followed by a slash ('/'). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
CreateTime string
Output only. Time at which the automation was created.
DeliveryPipeline Changes to this property will trigger replacement. string
The delivery_pipeline for the resource
Description string
Optional. Description of the 'Automation'. Max length is 255 characters.
EffectiveAnnotations map[string]string
EffectiveLabels map[string]string
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
Etag string
Optional. The weak etag of the Automation resource. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
Labels map[string]string
Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 63 characters. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
Location Changes to this property will trigger replacement. string
The location for the resource
Name Changes to this property will trigger replacement. string
Name of the Automation.
Project Changes to this property will trigger replacement. string
PulumiLabels map[string]string
The combination of labels configured directly on the resource and default labels configured on the provider.
Rules []AutomationRuleArgs
Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution. Structure is documented below.
Selector AutomationSelectorArgs
Required. Selected resources to which the automation will be applied. Structure is documented below.
ServiceAccount string
Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.
Suspended bool
Optional. When Suspended, automation is deactivated from execution.
Uid string
Output only. Unique identifier of the Automation.
UpdateTime string
Output only. Time at which the automation was updated.
annotations Map<String,String>
Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash ('/'). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ('[a-z0-9A-Z]') with dashes ('-'), underscores ('_'), dots ('.'), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots('.'), not longer than 253 characters in total, followed by a slash ('/'). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
createTime String
Output only. Time at which the automation was created.
deliveryPipeline Changes to this property will trigger replacement. String
The delivery_pipeline for the resource
description String
Optional. Description of the 'Automation'. Max length is 255 characters.
effectiveAnnotations Map<String,String>
effectiveLabels Map<String,String>
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
etag String
Optional. The weak etag of the Automation resource. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
labels Map<String,String>
Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 63 characters. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
location Changes to this property will trigger replacement. String
The location for the resource
name Changes to this property will trigger replacement. String
Name of the Automation.
project Changes to this property will trigger replacement. String
pulumiLabels Map<String,String>
The combination of labels configured directly on the resource and default labels configured on the provider.
rules List<AutomationRule>
Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution. Structure is documented below.
selector AutomationSelector
Required. Selected resources to which the automation will be applied. Structure is documented below.
serviceAccount String
Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.
suspended Boolean
Optional. When Suspended, automation is deactivated from execution.
uid String
Output only. Unique identifier of the Automation.
updateTime String
Output only. Time at which the automation was updated.
annotations {[key: string]: string}
Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash ('/'). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ('[a-z0-9A-Z]') with dashes ('-'), underscores ('_'), dots ('.'), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots('.'), not longer than 253 characters in total, followed by a slash ('/'). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
createTime string
Output only. Time at which the automation was created.
deliveryPipeline Changes to this property will trigger replacement. string
The delivery_pipeline for the resource
description string
Optional. Description of the 'Automation'. Max length is 255 characters.
effectiveAnnotations {[key: string]: string}
effectiveLabels {[key: string]: string}
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
etag string
Optional. The weak etag of the Automation resource. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
labels {[key: string]: string}
Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 63 characters. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
location Changes to this property will trigger replacement. string
The location for the resource
name Changes to this property will trigger replacement. string
Name of the Automation.
project Changes to this property will trigger replacement. string
pulumiLabels {[key: string]: string}
The combination of labels configured directly on the resource and default labels configured on the provider.
rules AutomationRule[]
Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution. Structure is documented below.
selector AutomationSelector
Required. Selected resources to which the automation will be applied. Structure is documented below.
serviceAccount string
Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.
suspended boolean
Optional. When Suspended, automation is deactivated from execution.
uid string
Output only. Unique identifier of the Automation.
updateTime string
Output only. Time at which the automation was updated.
annotations Mapping[str, str]
Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash ('/'). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ('[a-z0-9A-Z]') with dashes ('-'), underscores ('_'), dots ('.'), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots('.'), not longer than 253 characters in total, followed by a slash ('/'). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
create_time str
Output only. Time at which the automation was created.
delivery_pipeline Changes to this property will trigger replacement. str
The delivery_pipeline for the resource
description str
Optional. Description of the 'Automation'. Max length is 255 characters.
effective_annotations Mapping[str, str]
effective_labels Mapping[str, str]
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
etag str
Optional. The weak etag of the Automation resource. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
labels Mapping[str, str]
Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 63 characters. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
location Changes to this property will trigger replacement. str
The location for the resource
name Changes to this property will trigger replacement. str
Name of the Automation.
project Changes to this property will trigger replacement. str
pulumi_labels Mapping[str, str]
The combination of labels configured directly on the resource and default labels configured on the provider.
rules Sequence[AutomationRuleArgs]
Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution. Structure is documented below.
selector AutomationSelectorArgs
Required. Selected resources to which the automation will be applied. Structure is documented below.
service_account str
Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.
suspended bool
Optional. When Suspended, automation is deactivated from execution.
uid str
Output only. Unique identifier of the Automation.
update_time str
Output only. Time at which the automation was updated.
annotations Map<String>
Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash ('/'). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ('[a-z0-9A-Z]') with dashes ('-'), underscores ('_'), dots ('.'), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots('.'), not longer than 253 characters in total, followed by a slash ('/'). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details. Note: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
createTime String
Output only. Time at which the automation was created.
deliveryPipeline Changes to this property will trigger replacement. String
The delivery_pipeline for the resource
description String
Optional. Description of the 'Automation'. Max length is 255 characters.
effectiveAnnotations Map<String>
effectiveLabels Map<String>
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
etag String
Optional. The weak etag of the Automation resource. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
labels Map<String>
Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 63 characters. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
location Changes to this property will trigger replacement. String
The location for the resource
name Changes to this property will trigger replacement. String
Name of the Automation.
project Changes to this property will trigger replacement. String
pulumiLabels Map<String>
The combination of labels configured directly on the resource and default labels configured on the provider.
rules List<Property Map>
Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution. Structure is documented below.
selector Property Map
Required. Selected resources to which the automation will be applied. Structure is documented below.
serviceAccount String
Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.
suspended Boolean
Optional. When Suspended, automation is deactivated from execution.
uid String
Output only. Unique identifier of the Automation.
updateTime String
Output only. Time at which the automation was updated.

Supporting Types

AutomationRule
, AutomationRuleArgs

AdvanceRolloutRule AutomationRuleAdvanceRolloutRule
Optional. The AdvanceRolloutRule will automatically advance a successful Rollout. Structure is documented below.
PromoteReleaseRule AutomationRulePromoteReleaseRule
Optional. PromoteReleaseRule will automatically promote a release from the current target to a specified target. Structure is documented below.
RepairRolloutRule AutomationRuleRepairRolloutRule
Optional. The RepairRolloutRule will automatically repair a failed rollout. Structure is documented below.
TimedPromoteReleaseRule AutomationRuleTimedPromoteReleaseRule
Optional. The TimedPromoteReleaseRule will automatically promote a release from the current target(s) to the specified target(s) on a configured schedule. Structure is documented below.
AdvanceRolloutRule AutomationRuleAdvanceRolloutRule
Optional. The AdvanceRolloutRule will automatically advance a successful Rollout. Structure is documented below.
PromoteReleaseRule AutomationRulePromoteReleaseRule
Optional. PromoteReleaseRule will automatically promote a release from the current target to a specified target. Structure is documented below.
RepairRolloutRule AutomationRuleRepairRolloutRule
Optional. The RepairRolloutRule will automatically repair a failed rollout. Structure is documented below.
TimedPromoteReleaseRule AutomationRuleTimedPromoteReleaseRule
Optional. The TimedPromoteReleaseRule will automatically promote a release from the current target(s) to the specified target(s) on a configured schedule. Structure is documented below.
advanceRolloutRule AutomationRuleAdvanceRolloutRule
Optional. The AdvanceRolloutRule will automatically advance a successful Rollout. Structure is documented below.
promoteReleaseRule AutomationRulePromoteReleaseRule
Optional. PromoteReleaseRule will automatically promote a release from the current target to a specified target. Structure is documented below.
repairRolloutRule AutomationRuleRepairRolloutRule
Optional. The RepairRolloutRule will automatically repair a failed rollout. Structure is documented below.
timedPromoteReleaseRule AutomationRuleTimedPromoteReleaseRule
Optional. The TimedPromoteReleaseRule will automatically promote a release from the current target(s) to the specified target(s) on a configured schedule. Structure is documented below.
advanceRolloutRule AutomationRuleAdvanceRolloutRule
Optional. The AdvanceRolloutRule will automatically advance a successful Rollout. Structure is documented below.
promoteReleaseRule AutomationRulePromoteReleaseRule
Optional. PromoteReleaseRule will automatically promote a release from the current target to a specified target. Structure is documented below.
repairRolloutRule AutomationRuleRepairRolloutRule
Optional. The RepairRolloutRule will automatically repair a failed rollout. Structure is documented below.
timedPromoteReleaseRule AutomationRuleTimedPromoteReleaseRule
Optional. The TimedPromoteReleaseRule will automatically promote a release from the current target(s) to the specified target(s) on a configured schedule. Structure is documented below.
advance_rollout_rule AutomationRuleAdvanceRolloutRule
Optional. The AdvanceRolloutRule will automatically advance a successful Rollout. Structure is documented below.
promote_release_rule AutomationRulePromoteReleaseRule
Optional. PromoteReleaseRule will automatically promote a release from the current target to a specified target. Structure is documented below.
repair_rollout_rule AutomationRuleRepairRolloutRule
Optional. The RepairRolloutRule will automatically repair a failed rollout. Structure is documented below.
timed_promote_release_rule AutomationRuleTimedPromoteReleaseRule
Optional. The TimedPromoteReleaseRule will automatically promote a release from the current target(s) to the specified target(s) on a configured schedule. Structure is documented below.
advanceRolloutRule Property Map
Optional. The AdvanceRolloutRule will automatically advance a successful Rollout. Structure is documented below.
promoteReleaseRule Property Map
Optional. PromoteReleaseRule will automatically promote a release from the current target to a specified target. Structure is documented below.
repairRolloutRule Property Map
Optional. The RepairRolloutRule will automatically repair a failed rollout. Structure is documented below.
timedPromoteReleaseRule Property Map
Optional. The TimedPromoteReleaseRule will automatically promote a release from the current target(s) to the specified target(s) on a configured schedule. Structure is documented below.

AutomationRuleAdvanceRolloutRule
, AutomationRuleAdvanceRolloutRuleArgs

Id This property is required. string
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
SourcePhases List<string>
Optional. Proceeds only after phase name matched any one in the list. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.
Wait string
Optional. How long to wait after a rollout is finished.
Id This property is required. string
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
SourcePhases []string
Optional. Proceeds only after phase name matched any one in the list. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.
Wait string
Optional. How long to wait after a rollout is finished.
id This property is required. String
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
sourcePhases List<String>
Optional. Proceeds only after phase name matched any one in the list. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.
wait_ String
Optional. How long to wait after a rollout is finished.
id This property is required. string
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
sourcePhases string[]
Optional. Proceeds only after phase name matched any one in the list. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.
wait string
Optional. How long to wait after a rollout is finished.
id This property is required. str
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
source_phases Sequence[str]
Optional. Proceeds only after phase name matched any one in the list. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.
wait str
Optional. How long to wait after a rollout is finished.
id This property is required. String
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
sourcePhases List<String>
Optional. Proceeds only after phase name matched any one in the list. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.
wait String
Optional. How long to wait after a rollout is finished.

AutomationRulePromoteReleaseRule
, AutomationRulePromoteReleaseRuleArgs

Id This property is required. string
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
DestinationPhase string
Optional. The starting phase of the rollout created by this operation. Default to the first phase.
DestinationTargetId string
Optional. The ID of the stage in the pipeline to which this Release is deploying. If unspecified, default it to the next stage in the promotion flow. The value of this field could be one of the following: * The last segment of a target name. It only needs the ID to determine if the target is one of the stages in the promotion sequence defined in the pipeline. * "@next", the next target in the promotion sequence.
Wait string
Optional. How long the release need to be paused until being promoted to the next target.
Id This property is required. string
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
DestinationPhase string
Optional. The starting phase of the rollout created by this operation. Default to the first phase.
DestinationTargetId string
Optional. The ID of the stage in the pipeline to which this Release is deploying. If unspecified, default it to the next stage in the promotion flow. The value of this field could be one of the following: * The last segment of a target name. It only needs the ID to determine if the target is one of the stages in the promotion sequence defined in the pipeline. * "@next", the next target in the promotion sequence.
Wait string
Optional. How long the release need to be paused until being promoted to the next target.
id This property is required. String
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
destinationPhase String
Optional. The starting phase of the rollout created by this operation. Default to the first phase.
destinationTargetId String
Optional. The ID of the stage in the pipeline to which this Release is deploying. If unspecified, default it to the next stage in the promotion flow. The value of this field could be one of the following: * The last segment of a target name. It only needs the ID to determine if the target is one of the stages in the promotion sequence defined in the pipeline. * "@next", the next target in the promotion sequence.
wait_ String
Optional. How long the release need to be paused until being promoted to the next target.
id This property is required. string
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
destinationPhase string
Optional. The starting phase of the rollout created by this operation. Default to the first phase.
destinationTargetId string
Optional. The ID of the stage in the pipeline to which this Release is deploying. If unspecified, default it to the next stage in the promotion flow. The value of this field could be one of the following: * The last segment of a target name. It only needs the ID to determine if the target is one of the stages in the promotion sequence defined in the pipeline. * "@next", the next target in the promotion sequence.
wait string
Optional. How long the release need to be paused until being promoted to the next target.
id This property is required. str
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
destination_phase str
Optional. The starting phase of the rollout created by this operation. Default to the first phase.
destination_target_id str
Optional. The ID of the stage in the pipeline to which this Release is deploying. If unspecified, default it to the next stage in the promotion flow. The value of this field could be one of the following: * The last segment of a target name. It only needs the ID to determine if the target is one of the stages in the promotion sequence defined in the pipeline. * "@next", the next target in the promotion sequence.
wait str
Optional. How long the release need to be paused until being promoted to the next target.
id This property is required. String
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
destinationPhase String
Optional. The starting phase of the rollout created by this operation. Default to the first phase.
destinationTargetId String
Optional. The ID of the stage in the pipeline to which this Release is deploying. If unspecified, default it to the next stage in the promotion flow. The value of this field could be one of the following: * The last segment of a target name. It only needs the ID to determine if the target is one of the stages in the promotion sequence defined in the pipeline. * "@next", the next target in the promotion sequence.
wait String
Optional. How long the release need to be paused until being promoted to the next target.

AutomationRuleRepairRolloutRule
, AutomationRuleRepairRolloutRuleArgs

Id This property is required. string
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
Jobs List<string>
Optional. Jobs to repair. Proceeds only after job name matched any one in the list, or for all jobs if unspecified or empty. The phase that includes the job must match the phase ID specified in sourcePhase. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.
Phases List<string>
Optional. Phases within which jobs are subject to automatic repair actions on failure. Proceeds only after phase name matched any one in the list, or for all phases if unspecified. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.
RepairPhases List<AutomationRuleRepairRolloutRuleRepairPhase>
Optional. Proceeds only after phase name matched any one in the list. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$. Structure is documented below.
Id This property is required. string
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
Jobs []string
Optional. Jobs to repair. Proceeds only after job name matched any one in the list, or for all jobs if unspecified or empty. The phase that includes the job must match the phase ID specified in sourcePhase. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.
Phases []string
Optional. Phases within which jobs are subject to automatic repair actions on failure. Proceeds only after phase name matched any one in the list, or for all phases if unspecified. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.
RepairPhases []AutomationRuleRepairRolloutRuleRepairPhase
Optional. Proceeds only after phase name matched any one in the list. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$. Structure is documented below.
id This property is required. String
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
jobs List<String>
Optional. Jobs to repair. Proceeds only after job name matched any one in the list, or for all jobs if unspecified or empty. The phase that includes the job must match the phase ID specified in sourcePhase. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.
phases List<String>
Optional. Phases within which jobs are subject to automatic repair actions on failure. Proceeds only after phase name matched any one in the list, or for all phases if unspecified. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.
repairPhases List<AutomationRuleRepairRolloutRuleRepairPhase>
Optional. Proceeds only after phase name matched any one in the list. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$. Structure is documented below.
id This property is required. string
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
jobs string[]
Optional. Jobs to repair. Proceeds only after job name matched any one in the list, or for all jobs if unspecified or empty. The phase that includes the job must match the phase ID specified in sourcePhase. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.
phases string[]
Optional. Phases within which jobs are subject to automatic repair actions on failure. Proceeds only after phase name matched any one in the list, or for all phases if unspecified. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.
repairPhases AutomationRuleRepairRolloutRuleRepairPhase[]
Optional. Proceeds only after phase name matched any one in the list. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$. Structure is documented below.
id This property is required. str
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
jobs Sequence[str]
Optional. Jobs to repair. Proceeds only after job name matched any one in the list, or for all jobs if unspecified or empty. The phase that includes the job must match the phase ID specified in sourcePhase. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.
phases Sequence[str]
Optional. Phases within which jobs are subject to automatic repair actions on failure. Proceeds only after phase name matched any one in the list, or for all phases if unspecified. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.
repair_phases Sequence[AutomationRuleRepairRolloutRuleRepairPhase]
Optional. Proceeds only after phase name matched any one in the list. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$. Structure is documented below.
id This property is required. String
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
jobs List<String>
Optional. Jobs to repair. Proceeds only after job name matched any one in the list, or for all jobs if unspecified or empty. The phase that includes the job must match the phase ID specified in sourcePhase. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.
phases List<String>
Optional. Phases within which jobs are subject to automatic repair actions on failure. Proceeds only after phase name matched any one in the list, or for all phases if unspecified. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.
repairPhases List<Property Map>
Optional. Proceeds only after phase name matched any one in the list. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$. Structure is documented below.

AutomationRuleRepairRolloutRuleRepairPhase
, AutomationRuleRepairRolloutRuleRepairPhaseArgs

Retry AutomationRuleRepairRolloutRuleRepairPhaseRetry
Optional. Retries a failed job. Structure is documented below.
Rollback AutomationRuleRepairRolloutRuleRepairPhaseRollback
Optional. Rolls back a Rollout. Structure is documented below.
Retry AutomationRuleRepairRolloutRuleRepairPhaseRetry
Optional. Retries a failed job. Structure is documented below.
Rollback AutomationRuleRepairRolloutRuleRepairPhaseRollback
Optional. Rolls back a Rollout. Structure is documented below.
retry AutomationRuleRepairRolloutRuleRepairPhaseRetry
Optional. Retries a failed job. Structure is documented below.
rollback AutomationRuleRepairRolloutRuleRepairPhaseRollback
Optional. Rolls back a Rollout. Structure is documented below.
retry AutomationRuleRepairRolloutRuleRepairPhaseRetry
Optional. Retries a failed job. Structure is documented below.
rollback AutomationRuleRepairRolloutRuleRepairPhaseRollback
Optional. Rolls back a Rollout. Structure is documented below.
retry AutomationRuleRepairRolloutRuleRepairPhaseRetry
Optional. Retries a failed job. Structure is documented below.
rollback AutomationRuleRepairRolloutRuleRepairPhaseRollback
Optional. Rolls back a Rollout. Structure is documented below.
retry Property Map
Optional. Retries a failed job. Structure is documented below.
rollback Property Map
Optional. Rolls back a Rollout. Structure is documented below.

AutomationRuleRepairRolloutRuleRepairPhaseRetry
, AutomationRuleRepairRolloutRuleRepairPhaseRetryArgs

Attempts This property is required. string
Required. Total number of retries. Retry is skipped if set to 0; The minimum value is 1, and the maximum value is 10.
BackoffMode string
Optional. The pattern of how wait time will be increased. Default is linear. Backoff mode will be ignored if wait is 0. Possible values are: BACKOFF_MODE_UNSPECIFIED, BACKOFF_MODE_LINEAR, BACKOFF_MODE_EXPONENTIAL.
Wait string
Optional. How long to wait for the first retry. Default is 0, and the maximum value is 14d. A duration in seconds with up to nine fractional digits, ending with 's'. Example: 3.5s.
Attempts This property is required. string
Required. Total number of retries. Retry is skipped if set to 0; The minimum value is 1, and the maximum value is 10.
BackoffMode string
Optional. The pattern of how wait time will be increased. Default is linear. Backoff mode will be ignored if wait is 0. Possible values are: BACKOFF_MODE_UNSPECIFIED, BACKOFF_MODE_LINEAR, BACKOFF_MODE_EXPONENTIAL.
Wait string
Optional. How long to wait for the first retry. Default is 0, and the maximum value is 14d. A duration in seconds with up to nine fractional digits, ending with 's'. Example: 3.5s.
attempts This property is required. String
Required. Total number of retries. Retry is skipped if set to 0; The minimum value is 1, and the maximum value is 10.
backoffMode String
Optional. The pattern of how wait time will be increased. Default is linear. Backoff mode will be ignored if wait is 0. Possible values are: BACKOFF_MODE_UNSPECIFIED, BACKOFF_MODE_LINEAR, BACKOFF_MODE_EXPONENTIAL.
wait_ String
Optional. How long to wait for the first retry. Default is 0, and the maximum value is 14d. A duration in seconds with up to nine fractional digits, ending with 's'. Example: 3.5s.
attempts This property is required. string
Required. Total number of retries. Retry is skipped if set to 0; The minimum value is 1, and the maximum value is 10.
backoffMode string
Optional. The pattern of how wait time will be increased. Default is linear. Backoff mode will be ignored if wait is 0. Possible values are: BACKOFF_MODE_UNSPECIFIED, BACKOFF_MODE_LINEAR, BACKOFF_MODE_EXPONENTIAL.
wait string
Optional. How long to wait for the first retry. Default is 0, and the maximum value is 14d. A duration in seconds with up to nine fractional digits, ending with 's'. Example: 3.5s.
attempts This property is required. str
Required. Total number of retries. Retry is skipped if set to 0; The minimum value is 1, and the maximum value is 10.
backoff_mode str
Optional. The pattern of how wait time will be increased. Default is linear. Backoff mode will be ignored if wait is 0. Possible values are: BACKOFF_MODE_UNSPECIFIED, BACKOFF_MODE_LINEAR, BACKOFF_MODE_EXPONENTIAL.
wait str
Optional. How long to wait for the first retry. Default is 0, and the maximum value is 14d. A duration in seconds with up to nine fractional digits, ending with 's'. Example: 3.5s.
attempts This property is required. String
Required. Total number of retries. Retry is skipped if set to 0; The minimum value is 1, and the maximum value is 10.
backoffMode String
Optional. The pattern of how wait time will be increased. Default is linear. Backoff mode will be ignored if wait is 0. Possible values are: BACKOFF_MODE_UNSPECIFIED, BACKOFF_MODE_LINEAR, BACKOFF_MODE_EXPONENTIAL.
wait String
Optional. How long to wait for the first retry. Default is 0, and the maximum value is 14d. A duration in seconds with up to nine fractional digits, ending with 's'. Example: 3.5s.

AutomationRuleRepairRolloutRuleRepairPhaseRollback
, AutomationRuleRepairRolloutRuleRepairPhaseRollbackArgs

DestinationPhase string
Optional. The starting phase ID for the Rollout. If unspecified, the Rollout will start in the stable phase.
DisableRollbackIfRolloutPending bool
Optional. If pending rollout exists on the target, the rollback operation will be aborted.
DestinationPhase string
Optional. The starting phase ID for the Rollout. If unspecified, the Rollout will start in the stable phase.
DisableRollbackIfRolloutPending bool
Optional. If pending rollout exists on the target, the rollback operation will be aborted.
destinationPhase String
Optional. The starting phase ID for the Rollout. If unspecified, the Rollout will start in the stable phase.
disableRollbackIfRolloutPending Boolean
Optional. If pending rollout exists on the target, the rollback operation will be aborted.
destinationPhase string
Optional. The starting phase ID for the Rollout. If unspecified, the Rollout will start in the stable phase.
disableRollbackIfRolloutPending boolean
Optional. If pending rollout exists on the target, the rollback operation will be aborted.
destination_phase str
Optional. The starting phase ID for the Rollout. If unspecified, the Rollout will start in the stable phase.
disable_rollback_if_rollout_pending bool
Optional. If pending rollout exists on the target, the rollback operation will be aborted.
destinationPhase String
Optional. The starting phase ID for the Rollout. If unspecified, the Rollout will start in the stable phase.
disableRollbackIfRolloutPending Boolean
Optional. If pending rollout exists on the target, the rollback operation will be aborted.

AutomationRuleTimedPromoteReleaseRule
, AutomationRuleTimedPromoteReleaseRuleArgs

Id This property is required. string
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
Schedule This property is required. string
Required. Schedule in crontab format. e.g. 0 9 * * 1 for every Monday at 9am.
TimeZone This property is required. string
Required. The time zone in IANA format IANA Time Zone Database (e.g. America/New_York).
DestinationPhase string
Optional. The starting phase of the rollout created by this rule. Default to the first phase.


DestinationTargetId string
Optional. The ID of the stage in the pipeline to which this Release is deploying. If unspecified, default it to the next stage in the promotion flow. The value of this field could be one of the following:

  • The last segment of a target name
  • "@next", the next target in the promotion sequence"
Id This property is required. string
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
Schedule This property is required. string
Required. Schedule in crontab format. e.g. 0 9 * * 1 for every Monday at 9am.
TimeZone This property is required. string
Required. The time zone in IANA format IANA Time Zone Database (e.g. America/New_York).
DestinationPhase string
Optional. The starting phase of the rollout created by this rule. Default to the first phase.


DestinationTargetId string
Optional. The ID of the stage in the pipeline to which this Release is deploying. If unspecified, default it to the next stage in the promotion flow. The value of this field could be one of the following:

  • The last segment of a target name
  • "@next", the next target in the promotion sequence"
id This property is required. String
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
schedule This property is required. String
Required. Schedule in crontab format. e.g. 0 9 * * 1 for every Monday at 9am.
timeZone This property is required. String
Required. The time zone in IANA format IANA Time Zone Database (e.g. America/New_York).
destinationPhase String
Optional. The starting phase of the rollout created by this rule. Default to the first phase.


destinationTargetId String
Optional. The ID of the stage in the pipeline to which this Release is deploying. If unspecified, default it to the next stage in the promotion flow. The value of this field could be one of the following:

  • The last segment of a target name
  • "@next", the next target in the promotion sequence"
id This property is required. string
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
schedule This property is required. string
Required. Schedule in crontab format. e.g. 0 9 * * 1 for every Monday at 9am.
timeZone This property is required. string
Required. The time zone in IANA format IANA Time Zone Database (e.g. America/New_York).
destinationPhase string
Optional. The starting phase of the rollout created by this rule. Default to the first phase.


destinationTargetId string
Optional. The ID of the stage in the pipeline to which this Release is deploying. If unspecified, default it to the next stage in the promotion flow. The value of this field could be one of the following:

  • The last segment of a target name
  • "@next", the next target in the promotion sequence"
id This property is required. str
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
schedule This property is required. str
Required. Schedule in crontab format. e.g. 0 9 * * 1 for every Monday at 9am.
time_zone This property is required. str
Required. The time zone in IANA format IANA Time Zone Database (e.g. America/New_York).
destination_phase str
Optional. The starting phase of the rollout created by this rule. Default to the first phase.


destination_target_id str
Optional. The ID of the stage in the pipeline to which this Release is deploying. If unspecified, default it to the next stage in the promotion flow. The value of this field could be one of the following:

  • The last segment of a target name
  • "@next", the next target in the promotion sequence"
id This property is required. String
Required. ID of the rule. This id must be unique in the Automation resource to which this rule belongs. The format is a-z{0,62}.
schedule This property is required. String
Required. Schedule in crontab format. e.g. 0 9 * * 1 for every Monday at 9am.
timeZone This property is required. String
Required. The time zone in IANA format IANA Time Zone Database (e.g. America/New_York).
destinationPhase String
Optional. The starting phase of the rollout created by this rule. Default to the first phase.


destinationTargetId String
Optional. The ID of the stage in the pipeline to which this Release is deploying. If unspecified, default it to the next stage in the promotion flow. The value of this field could be one of the following:

  • The last segment of a target name
  • "@next", the next target in the promotion sequence"

AutomationSelector
, AutomationSelectorArgs

Targets This property is required. List<AutomationSelectorTarget>
Contains attributes about a target. Structure is documented below.
Targets This property is required. []AutomationSelectorTarget
Contains attributes about a target. Structure is documented below.
targets This property is required. List<AutomationSelectorTarget>
Contains attributes about a target. Structure is documented below.
targets This property is required. AutomationSelectorTarget[]
Contains attributes about a target. Structure is documented below.
targets This property is required. Sequence[AutomationSelectorTarget]
Contains attributes about a target. Structure is documented below.
targets This property is required. List<Property Map>
Contains attributes about a target. Structure is documented below.

AutomationSelectorTarget
, AutomationSelectorTargetArgs

Id string
ID of the Target. The value of this field could be one of the following: * The last segment of a target name. It only needs the ID to determine which target is being referred to * "*", all targets in a location.
Labels Dictionary<string, string>
Target labels.
Id string
ID of the Target. The value of this field could be one of the following: * The last segment of a target name. It only needs the ID to determine which target is being referred to * "*", all targets in a location.
Labels map[string]string
Target labels.
id String
ID of the Target. The value of this field could be one of the following: * The last segment of a target name. It only needs the ID to determine which target is being referred to * "*", all targets in a location.
labels Map<String,String>
Target labels.
id string
ID of the Target. The value of this field could be one of the following: * The last segment of a target name. It only needs the ID to determine which target is being referred to * "*", all targets in a location.
labels {[key: string]: string}
Target labels.
id str
ID of the Target. The value of this field could be one of the following: * The last segment of a target name. It only needs the ID to determine which target is being referred to * "*", all targets in a location.
labels Mapping[str, str]
Target labels.
id String
ID of the Target. The value of this field could be one of the following: * The last segment of a target name. It only needs the ID to determine which target is being referred to * "*", all targets in a location.
labels Map<String>
Target labels.

Import

Automation can be imported using any of these accepted formats:

  • projects/{{project}}/locations/{{location}}/deliveryPipelines/{{delivery_pipeline}}/automations/{{name}}

  • {{project}}/{{location}}/{{delivery_pipeline}}/{{name}}

  • {{location}}/{{delivery_pipeline}}/{{name}}

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

$ pulumi import gcp:clouddeploy/automation:Automation default projects/{{project}}/locations/{{location}}/deliveryPipelines/{{delivery_pipeline}}/automations/{{name}}
Copy
$ pulumi import gcp:clouddeploy/automation:Automation default {{project}}/{{location}}/{{delivery_pipeline}}/{{name}}
Copy
$ pulumi import gcp:clouddeploy/automation:Automation default {{location}}/{{delivery_pipeline}}/{{name}}
Copy

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.