@@ -4150,9 +4150,48 @@ message AutomationRule {
41504150 // rollout.
41514151 RepairRolloutRule repair_rollout_rule = 3
41524152 [(google.api.field_behavior ) = OPTIONAL ];
4153+
4154+ // Optional. The `TimedPromoteReleaseRule` will automatically promote a
4155+ // release from the current target(s) to the specified target(s) on a
4156+ // configured schedule.
4157+ TimedPromoteReleaseRule timed_promote_release_rule = 4
4158+ [(google.api.field_behavior ) = OPTIONAL ];
41534159 }
41544160}
41554161
4162+ // The `TimedPromoteReleaseRule` will automatically promote a release from the
4163+ // current target(s) to the specified target(s) on a configured schedule.
4164+ message TimedPromoteReleaseRule {
4165+ // Required. ID of the rule. This ID must be unique in the `Automation`
4166+ // resource to which this rule belongs. The format is
4167+ // `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`.
4168+ string id = 1 [(google.api.field_behavior ) = REQUIRED ];
4169+
4170+ // Optional. The ID of the stage in the pipeline to which this `Release` is
4171+ // deploying. If unspecified, default it to the next stage in the promotion
4172+ // flow. The value of this field could be one of the following:
4173+ //
4174+ // * The last segment of a target name
4175+ // * "@next", the next target in the promotion sequence
4176+ string destination_target_id = 2 [(google.api.field_behavior ) = OPTIONAL ];
4177+
4178+ // Required. Schedule in crontab format. e.g. "0 9 * * 1" for every Monday at
4179+ // 9am.
4180+ string schedule = 3 [(google.api.field_behavior ) = REQUIRED ];
4181+
4182+ // Required. The time zone in IANA format [IANA Time Zone
4183+ // Database](https://www.iana.org/time-zones) (e.g. America/New_York).
4184+ string time_zone = 4 [(google.api.field_behavior ) = REQUIRED ];
4185+
4186+ // Output only. Information around the state of the Automation rule.
4187+ AutomationRuleCondition condition = 5
4188+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
4189+
4190+ // Optional. The starting phase of the rollout created by this rule. Default
4191+ // to the first phase.
4192+ string destination_phase = 6 [(google.api.field_behavior ) = OPTIONAL ];
4193+ }
4194+
41564195// The `PromoteRelease` rule will automatically promote a release from the
41574196// current target to a specified target.
41584197message PromoteReleaseRule {
@@ -4284,6 +4323,34 @@ message AutomationRuleCondition {
42844323 // Optional. Details around targets enumerated in the rule.
42854324 TargetsPresentCondition targets_present_condition = 1
42864325 [(google.api.field_behavior ) = OPTIONAL ];
4326+
4327+ // Details specific to the automation rule type.
4328+ oneof rule_type_condition {
4329+ // Optional. TimedPromoteReleaseCondition contains rule conditions specific
4330+ // to a an Automation with a timed promote release rule defined.
4331+ TimedPromoteReleaseCondition timed_promote_release_condition = 2
4332+ [(google.api.field_behavior ) = OPTIONAL ];
4333+ }
4334+ }
4335+
4336+ // `TimedPromoteReleaseCondition` contains conditions specific to an Automation
4337+ // with a Timed Promote Release rule defined.
4338+ message TimedPromoteReleaseCondition {
4339+ // The targets involved in a single timed promotion.
4340+ message Targets {
4341+ // Optional. The source target ID.
4342+ string source_target_id = 1 [(google.api.field_behavior ) = OPTIONAL ];
4343+
4344+ // Optional. The destination target ID.
4345+ string destination_target_id = 2 [(google.api.field_behavior ) = OPTIONAL ];
4346+ }
4347+
4348+ // Output only. When the next scheduled promotion(s) will occur.
4349+ google.protobuf.Timestamp next_promotion_time = 1
4350+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
4351+
4352+ // Output only. A list of targets involved in the upcoming timed promotion(s).
4353+ repeated Targets targets_list = 2 [(google.api.field_behavior ) = OUTPUT_ONLY ];
42874354}
42884355
42894356// The request object for `CreateAutomation`.
@@ -4521,9 +4588,9 @@ message AutomationRun {
45214588 Automation automation_snapshot = 6
45224589 [(google.api.field_behavior ) = OUTPUT_ONLY ];
45234590
4524- // Output only. The ID of the target that represents the promotion stage that
4525- // initiates the `AutomationRun`. The value of this field is the last segment
4526- // of a target name.
4591+ // Output only. The ID of the source target that initiates the
4592+ // `AutomationRun`. The value of this field is the last segment of a target
4593+ // name.
45274594 string target_id = 7 [(google.api.field_behavior ) = OUTPUT_ONLY ];
45284595
45294596 // Output only. Current state of the `AutomationRun`.
@@ -4562,6 +4629,11 @@ message AutomationRun {
45624629 // Output only. Repairs a failed 'Rollout'.
45634630 RepairRolloutOperation repair_rollout_operation = 17
45644631 [(google.api.field_behavior ) = OUTPUT_ONLY ];
4632+
4633+ // Output only. Promotes a release to a specified 'Target' as defined in a
4634+ // Timed Promote Release rule.
4635+ TimedPromoteReleaseOperation timed_promote_release_operation = 19
4636+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
45654637 }
45664638
45674639 // Output only. Earliest time the `AutomationRun` will attempt to resume.
@@ -4624,6 +4696,20 @@ message RepairRolloutOperation {
46244696 string job_id = 5 [(google.api.field_behavior ) = OUTPUT_ONLY ];
46254697}
46264698
4699+ // Contains the information of an automated timed promote-release operation.
4700+ message TimedPromoteReleaseOperation {
4701+ // Output only. The ID of the target that represents the promotion stage to
4702+ // which the release will be promoted. The value of this field is the last
4703+ // segment of a target name.
4704+ string target_id = 1 [(google.api.field_behavior ) = OUTPUT_ONLY ];
4705+
4706+ // Output only. The name of the release to be promoted.
4707+ string release = 2 [(google.api.field_behavior ) = OUTPUT_ONLY ];
4708+
4709+ // Output only. The starting phase of the rollout created by this operation.
4710+ string phase = 3 [(google.api.field_behavior ) = OUTPUT_ONLY ];
4711+ }
4712+
46274713// RepairPhase tracks the repair attempts that have been made for
46284714// each `RepairPhaseConfig` specified in the `Automation` resource.
46294715message RepairPhase {
0 commit comments