google-apis-clouddeploy_v1 0.49.0 → 0.51.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -130,6 +130,12 @@ module Google
130
130
  class AdvanceRolloutRequest
131
131
  include Google::Apis::Core::Hashable
132
132
 
133
+ # Optional. Deploy policies to override. Format is `projects/`project`/locations/
134
+ # `location`/deployPolicies/`deployPolicy``.
135
+ # Corresponds to the JSON property `overrideDeployPolicy`
136
+ # @return [Array<String>]
137
+ attr_accessor :override_deploy_policy
138
+
133
139
  # Required. The phase ID to advance the `Rollout` to.
134
140
  # Corresponds to the JSON property `phaseId`
135
141
  # @return [String]
@@ -141,6 +147,7 @@ module Google
141
147
 
142
148
  # Update properties of this object
143
149
  def update!(**args)
150
+ @override_deploy_policy = args[:override_deploy_policy] if args.key?(:override_deploy_policy)
144
151
  @phase_id = args[:phase_id] if args.key?(:phase_id)
145
152
  end
146
153
  end
@@ -232,6 +239,12 @@ module Google
232
239
  attr_accessor :approved
233
240
  alias_method :approved?, :approved
234
241
 
242
+ # Optional. Deploy policies to override. Format is `projects/`project`/locations/
243
+ # `location`/deployPolicies/`deployPolicy``.
244
+ # Corresponds to the JSON property `overrideDeployPolicy`
245
+ # @return [Array<String>]
246
+ attr_accessor :override_deploy_policy
247
+
235
248
  def initialize(**args)
236
249
  update!(**args)
237
250
  end
@@ -239,6 +252,7 @@ module Google
239
252
  # Update properties of this object
240
253
  def update!(**args)
241
254
  @approved = args[:approved] if args.key?(:approved)
255
+ @override_deploy_policy = args[:override_deploy_policy] if args.key?(:override_deploy_policy)
242
256
  end
243
257
  end
244
258
 
@@ -637,6 +651,13 @@ module Google
637
651
  # @return [String]
638
652
  attr_accessor :name
639
653
 
654
+ # Returned from an action if one or more policies were violated, and therefore
655
+ # the action was prevented. Contains information about what policies were
656
+ # violated and why.
657
+ # Corresponds to the JSON property `policyViolation`
658
+ # @return [Google::Apis::ClouddeployV1::PolicyViolation]
659
+ attr_accessor :policy_violation
660
+
640
661
  # Contains the information of an automated promote-release operation.
641
662
  # Corresponds to the JSON property `promoteReleaseOperation`
642
663
  # @return [Google::Apis::ClouddeployV1::PromoteReleaseOperation]
@@ -700,6 +721,7 @@ module Google
700
721
  @etag = args[:etag] if args.key?(:etag)
701
722
  @expire_time = args[:expire_time] if args.key?(:expire_time)
702
723
  @name = args[:name] if args.key?(:name)
724
+ @policy_violation = args[:policy_violation] if args.key?(:policy_violation)
703
725
  @promote_release_operation = args[:promote_release_operation] if args.key?(:promote_release_operation)
704
726
  @repair_rollout_operation = args[:repair_rollout_operation] if args.key?(:repair_rollout_operation)
705
727
  @rule_id = args[:rule_id] if args.key?(:rule_id)
@@ -1012,12 +1034,19 @@ module Google
1012
1034
  class CancelRolloutRequest
1013
1035
  include Google::Apis::Core::Hashable
1014
1036
 
1037
+ # Optional. Deploy policies to override. Format is `projects/`project`/locations/
1038
+ # `location`/deployPolicies/`deployPolicy``.
1039
+ # Corresponds to the JSON property `overrideDeployPolicy`
1040
+ # @return [Array<String>]
1041
+ attr_accessor :override_deploy_policy
1042
+
1015
1043
  def initialize(**args)
1016
1044
  update!(**args)
1017
1045
  end
1018
1046
 
1019
1047
  # Update properties of this object
1020
1048
  def update!(**args)
1049
+ @override_deploy_policy = args[:override_deploy_policy] if args.key?(:override_deploy_policy)
1021
1050
  end
1022
1051
  end
1023
1052
 
@@ -1661,6 +1690,33 @@ module Google
1661
1690
  end
1662
1691
  end
1663
1692
 
1693
+ # Contains criteria for selecting DeliveryPipelines.
1694
+ class DeliveryPipelineAttribute
1695
+ include Google::Apis::Core::Hashable
1696
+
1697
+ # ID of the `DeliveryPipeline`. The value of this field could be one of the
1698
+ # following: * The last segment of a pipeline name * "*", all delivery pipelines
1699
+ # in a location
1700
+ # Corresponds to the JSON property `id`
1701
+ # @return [String]
1702
+ attr_accessor :id
1703
+
1704
+ # DeliveryPipeline labels.
1705
+ # Corresponds to the JSON property `labels`
1706
+ # @return [Hash<String,String>]
1707
+ attr_accessor :labels
1708
+
1709
+ def initialize(**args)
1710
+ update!(**args)
1711
+ end
1712
+
1713
+ # Update properties of this object
1714
+ def update!(**args)
1715
+ @id = args[:id] if args.key?(:id)
1716
+ @labels = args[:labels] if args.key?(:labels)
1717
+ end
1718
+ end
1719
+
1664
1720
  # Payload proto for "clouddeploy.googleapis.com/deliverypipeline_notification"
1665
1721
  # Platform Log event that describes the failure to send delivery pipeline status
1666
1722
  # change Pub/Sub notification.
@@ -1846,6 +1902,210 @@ module Google
1846
1902
  end
1847
1903
  end
1848
1904
 
1905
+ # A `DeployPolicy` resource in the Cloud Deploy API. A `DeployPolicy` inhibits
1906
+ # manual or automation-driven actions within a Delivery Pipeline or Target.
1907
+ class DeployPolicy
1908
+ include Google::Apis::Core::Hashable
1909
+
1910
+ # User annotations. These attributes can only be set and used by the user, and
1911
+ # not by Cloud Deploy. Annotations must meet the following constraints: *
1912
+ # Annotations are key/value pairs. * Valid annotation keys have two segments: an
1913
+ # optional prefix and name, separated by a slash (`/`). * The name segment is
1914
+ # required and must be 63 characters or less, beginning and ending with an
1915
+ # alphanumeric character (`[a-z0-9A-Z]`) with dashes (`-`), underscores (`_`),
1916
+ # dots (`.`), and alphanumerics between. * The prefix is optional. If specified,
1917
+ # the prefix must be a DNS subdomain: a series of DNS labels separated by dots(`.
1918
+ # `), not longer than 253 characters in total, followed by a slash (`/`). See
1919
+ # https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#
1920
+ # syntax-and-character-set for more details.
1921
+ # Corresponds to the JSON property `annotations`
1922
+ # @return [Hash<String,String>]
1923
+ attr_accessor :annotations
1924
+
1925
+ # Output only. Time at which the deploy policy was created.
1926
+ # Corresponds to the JSON property `createTime`
1927
+ # @return [String]
1928
+ attr_accessor :create_time
1929
+
1930
+ # Description of the `DeployPolicy`. Max length is 255 characters.
1931
+ # Corresponds to the JSON property `description`
1932
+ # @return [String]
1933
+ attr_accessor :description
1934
+
1935
+ # The weak etag of the `Automation` resource. This checksum is computed by the
1936
+ # server based on the value of other fields, and may be sent on update and
1937
+ # delete requests to ensure the client has an up-to-date value before proceeding.
1938
+ # Corresponds to the JSON property `etag`
1939
+ # @return [String]
1940
+ attr_accessor :etag
1941
+
1942
+ # Labels are attributes that can be set and used by both the user and by Cloud
1943
+ # Deploy. Labels must meet the following constraints: * Keys and values can
1944
+ # contain only lowercase letters, numeric characters, underscores, and dashes. *
1945
+ # All characters must use UTF-8 encoding, and international characters are
1946
+ # allowed. * Keys must start with a lowercase letter or international character.
1947
+ # * Each resource is limited to a maximum of 64 labels. Both keys and values are
1948
+ # additionally constrained to be <= 128 bytes.
1949
+ # Corresponds to the JSON property `labels`
1950
+ # @return [Hash<String,String>]
1951
+ attr_accessor :labels
1952
+
1953
+ # Output only. Name of the `DeployPolicy`. Format is `projects/`project`/
1954
+ # locations/`location`/deployPolicies/`deployPolicy``. The `deployPolicy`
1955
+ # component must match `[a-z]([a-z0-9-]`0,61`[a-z0-9])?`
1956
+ # Corresponds to the JSON property `name`
1957
+ # @return [String]
1958
+ attr_accessor :name
1959
+
1960
+ # Required. Rules to apply. At least one rule must be present.
1961
+ # Corresponds to the JSON property `rules`
1962
+ # @return [Array<Google::Apis::ClouddeployV1::PolicyRule>]
1963
+ attr_accessor :rules
1964
+
1965
+ # Required. Selected resources to which the policy will be applied. At least one
1966
+ # selector is required. If one selector matches the resource the policy applies.
1967
+ # For example, if there are two selectors and the action being attempted matches
1968
+ # one of them, the policy will apply to that action.
1969
+ # Corresponds to the JSON property `selectors`
1970
+ # @return [Array<Google::Apis::ClouddeployV1::DeployPolicyResourceSelector>]
1971
+ attr_accessor :selectors
1972
+
1973
+ # When suspended, the policy will not prevent actions from occurring, even if
1974
+ # the action violates the policy.
1975
+ # Corresponds to the JSON property `suspended`
1976
+ # @return [Boolean]
1977
+ attr_accessor :suspended
1978
+ alias_method :suspended?, :suspended
1979
+
1980
+ # Output only. Unique identifier of the `DeployPolicy`.
1981
+ # Corresponds to the JSON property `uid`
1982
+ # @return [String]
1983
+ attr_accessor :uid
1984
+
1985
+ # Output only. Most recent time at which the deploy policy was updated.
1986
+ # Corresponds to the JSON property `updateTime`
1987
+ # @return [String]
1988
+ attr_accessor :update_time
1989
+
1990
+ def initialize(**args)
1991
+ update!(**args)
1992
+ end
1993
+
1994
+ # Update properties of this object
1995
+ def update!(**args)
1996
+ @annotations = args[:annotations] if args.key?(:annotations)
1997
+ @create_time = args[:create_time] if args.key?(:create_time)
1998
+ @description = args[:description] if args.key?(:description)
1999
+ @etag = args[:etag] if args.key?(:etag)
2000
+ @labels = args[:labels] if args.key?(:labels)
2001
+ @name = args[:name] if args.key?(:name)
2002
+ @rules = args[:rules] if args.key?(:rules)
2003
+ @selectors = args[:selectors] if args.key?(:selectors)
2004
+ @suspended = args[:suspended] if args.key?(:suspended)
2005
+ @uid = args[:uid] if args.key?(:uid)
2006
+ @update_time = args[:update_time] if args.key?(:update_time)
2007
+ end
2008
+ end
2009
+
2010
+ # Payload proto for "clouddeploy.googleapis.com/deploypolicy_evaluation"
2011
+ # Platform Log event that describes the deploy policy evaluation event.
2012
+ class DeployPolicyEvaluationEvent
2013
+ include Google::Apis::Core::Hashable
2014
+
2015
+ # Whether the request is allowed. Allowed is set as true if: (1) the request
2016
+ # complies with the policy; or (2) the request doesn't comply with the policy
2017
+ # but the policy was overridden; or (3) the request doesn't comply with the
2018
+ # policy but the policy was suspended
2019
+ # Corresponds to the JSON property `allowed`
2020
+ # @return [Boolean]
2021
+ attr_accessor :allowed
2022
+ alias_method :allowed?, :allowed
2023
+
2024
+ # The name of the `Delivery Pipeline`.
2025
+ # Corresponds to the JSON property `deliveryPipeline`
2026
+ # @return [String]
2027
+ attr_accessor :delivery_pipeline
2028
+
2029
+ # The name of the `DeployPolicy`.
2030
+ # Corresponds to the JSON property `deployPolicy`
2031
+ # @return [String]
2032
+ attr_accessor :deploy_policy
2033
+
2034
+ # Unique identifier of the `DeployPolicy`.
2035
+ # Corresponds to the JSON property `deployPolicyUid`
2036
+ # @return [String]
2037
+ attr_accessor :deploy_policy_uid
2038
+
2039
+ # What invoked the action (e.g. a user or automation).
2040
+ # Corresponds to the JSON property `invoker`
2041
+ # @return [String]
2042
+ attr_accessor :invoker
2043
+
2044
+ # Debug message for when a deploy policy event occurs.
2045
+ # Corresponds to the JSON property `message`
2046
+ # @return [String]
2047
+ attr_accessor :message
2048
+
2049
+ # Things that could have overridden the policy verdict. Overrides together with
2050
+ # verdict decide whether the request is allowed.
2051
+ # Corresponds to the JSON property `overrides`
2052
+ # @return [Array<String>]
2053
+ attr_accessor :overrides
2054
+
2055
+ # Unique identifier of the `Delivery Pipeline`.
2056
+ # Corresponds to the JSON property `pipelineUid`
2057
+ # @return [String]
2058
+ attr_accessor :pipeline_uid
2059
+
2060
+ # Rule id.
2061
+ # Corresponds to the JSON property `rule`
2062
+ # @return [String]
2063
+ attr_accessor :rule
2064
+
2065
+ # Rule type (e.g. Restrict Rollouts).
2066
+ # Corresponds to the JSON property `ruleType`
2067
+ # @return [String]
2068
+ attr_accessor :rule_type
2069
+
2070
+ # The name of the `Target`. This is an optional field, as a `Target` may not
2071
+ # always be applicable to a policy.
2072
+ # Corresponds to the JSON property `target`
2073
+ # @return [String]
2074
+ attr_accessor :target
2075
+
2076
+ # Unique identifier of the `Target`. This is an optional field, as a `Target`
2077
+ # may not always be applicable to a policy.
2078
+ # Corresponds to the JSON property `targetUid`
2079
+ # @return [String]
2080
+ attr_accessor :target_uid
2081
+
2082
+ # The policy verdict of the request.
2083
+ # Corresponds to the JSON property `verdict`
2084
+ # @return [String]
2085
+ attr_accessor :verdict
2086
+
2087
+ def initialize(**args)
2088
+ update!(**args)
2089
+ end
2090
+
2091
+ # Update properties of this object
2092
+ def update!(**args)
2093
+ @allowed = args[:allowed] if args.key?(:allowed)
2094
+ @delivery_pipeline = args[:delivery_pipeline] if args.key?(:delivery_pipeline)
2095
+ @deploy_policy = args[:deploy_policy] if args.key?(:deploy_policy)
2096
+ @deploy_policy_uid = args[:deploy_policy_uid] if args.key?(:deploy_policy_uid)
2097
+ @invoker = args[:invoker] if args.key?(:invoker)
2098
+ @message = args[:message] if args.key?(:message)
2099
+ @overrides = args[:overrides] if args.key?(:overrides)
2100
+ @pipeline_uid = args[:pipeline_uid] if args.key?(:pipeline_uid)
2101
+ @rule = args[:rule] if args.key?(:rule)
2102
+ @rule_type = args[:rule_type] if args.key?(:rule_type)
2103
+ @target = args[:target] if args.key?(:target)
2104
+ @target_uid = args[:target_uid] if args.key?(:target_uid)
2105
+ @verdict = args[:verdict] if args.key?(:verdict)
2106
+ end
2107
+ end
2108
+
1849
2109
  # Payload proto for "clouddeploy.googleapis.com/deploypolicy_notification".
1850
2110
  # Platform Log event that describes the failure to send a pub/sub notification
1851
2111
  # when there is a DeployPolicy status change.
@@ -1885,6 +2145,36 @@ module Google
1885
2145
  end
1886
2146
  end
1887
2147
 
2148
+ # Contains information on the resources to select for a deploy policy.
2149
+ # Attributes provided must all match the resource in order for policy
2150
+ # restrictions to apply. For example, if delivery pipelines attributes given are
2151
+ # an id "prod" and labels "foo: bar", a delivery pipeline resource must match
2152
+ # both that id and have that label in order to be subject to the policy.
2153
+ class DeployPolicyResourceSelector
2154
+ include Google::Apis::Core::Hashable
2155
+
2156
+ # Contains criteria for selecting DeliveryPipelines.
2157
+ # Corresponds to the JSON property `deliveryPipeline`
2158
+ # @return [Google::Apis::ClouddeployV1::DeliveryPipelineAttribute]
2159
+ attr_accessor :delivery_pipeline
2160
+
2161
+ # Contains criteria for selecting Targets. This could be used to select targets
2162
+ # for a Deploy Policy or for an Automation.
2163
+ # Corresponds to the JSON property `target`
2164
+ # @return [Google::Apis::ClouddeployV1::TargetAttribute]
2165
+ attr_accessor :target
2166
+
2167
+ def initialize(**args)
2168
+ update!(**args)
2169
+ end
2170
+
2171
+ # Update properties of this object
2172
+ def update!(**args)
2173
+ @delivery_pipeline = args[:delivery_pipeline] if args.key?(:delivery_pipeline)
2174
+ @target = args[:target] if args.key?(:target)
2175
+ end
2176
+ end
2177
+
1888
2178
  # Deployment job composition.
1889
2179
  class DeploymentJobs
1890
2180
  include Google::Apis::Core::Hashable
@@ -2168,6 +2458,12 @@ module Google
2168
2458
  # @return [String]
2169
2459
  attr_accessor :job_id
2170
2460
 
2461
+ # Optional. Deploy policies to override. Format is `projects/`project`/locations/
2462
+ # `location`/deployPolicies/`deployPolicy``.
2463
+ # Corresponds to the JSON property `overrideDeployPolicy`
2464
+ # @return [Array<String>]
2465
+ attr_accessor :override_deploy_policy
2466
+
2171
2467
  # Required. The phase ID the Job to ignore belongs to.
2172
2468
  # Corresponds to the JSON property `phaseId`
2173
2469
  # @return [String]
@@ -2180,6 +2476,7 @@ module Google
2180
2476
  # Update properties of this object
2181
2477
  def update!(**args)
2182
2478
  @job_id = args[:job_id] if args.key?(:job_id)
2479
+ @override_deploy_policy = args[:override_deploy_policy] if args.key?(:override_deploy_policy)
2183
2480
  @phase_id = args[:phase_id] if args.key?(:phase_id)
2184
2481
  end
2185
2482
  end
@@ -2603,6 +2900,38 @@ module Google
2603
2900
  end
2604
2901
  end
2605
2902
 
2903
+ # The response object from `ListDeployPolicies`.
2904
+ class ListDeployPoliciesResponse
2905
+ include Google::Apis::Core::Hashable
2906
+
2907
+ # The `DeployPolicy` objects.
2908
+ # Corresponds to the JSON property `deployPolicies`
2909
+ # @return [Array<Google::Apis::ClouddeployV1::DeployPolicy>]
2910
+ attr_accessor :deploy_policies
2911
+
2912
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
2913
+ # field is omitted, there are no subsequent pages.
2914
+ # Corresponds to the JSON property `nextPageToken`
2915
+ # @return [String]
2916
+ attr_accessor :next_page_token
2917
+
2918
+ # Locations that could not be reached.
2919
+ # Corresponds to the JSON property `unreachable`
2920
+ # @return [Array<String>]
2921
+ attr_accessor :unreachable
2922
+
2923
+ def initialize(**args)
2924
+ update!(**args)
2925
+ end
2926
+
2927
+ # Update properties of this object
2928
+ def update!(**args)
2929
+ @deploy_policies = args[:deploy_policies] if args.key?(:deploy_policies)
2930
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2931
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2932
+ end
2933
+ end
2934
+
2606
2935
  # ListJobRunsResponse is the response object returned by `ListJobRuns`.
2607
2936
  class ListJobRunsResponse
2608
2937
  include Google::Apis::Core::Hashable
@@ -2879,6 +3208,62 @@ module Google
2879
3208
  end
2880
3209
  end
2881
3210
 
3211
+ # One-time window within which actions are restricted. For example, blocking
3212
+ # actions over New Year's Eve from December 31st at 5pm to January 1st at 9am.
3213
+ class OneTimeWindow
3214
+ include Google::Apis::Core::Hashable
3215
+
3216
+ # Represents a whole or partial calendar date, such as a birthday. The time of
3217
+ # day and time zone are either specified elsewhere or are insignificant. The
3218
+ # date is relative to the Gregorian Calendar. This can represent one of the
3219
+ # following: * A full date, with non-zero year, month, and day values. * A month
3220
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
3221
+ # with a zero month and a zero day. * A year and month, with a zero day (for
3222
+ # example, a credit card expiration date). Related types: * google.type.
3223
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
3224
+ # Corresponds to the JSON property `endDate`
3225
+ # @return [Google::Apis::ClouddeployV1::Date]
3226
+ attr_accessor :end_date
3227
+
3228
+ # Represents a time of day. The date and time zone are either not significant or
3229
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
3230
+ # types are google.type.Date and `google.protobuf.Timestamp`.
3231
+ # Corresponds to the JSON property `endTime`
3232
+ # @return [Google::Apis::ClouddeployV1::TimeOfDay]
3233
+ attr_accessor :end_time
3234
+
3235
+ # Represents a whole or partial calendar date, such as a birthday. The time of
3236
+ # day and time zone are either specified elsewhere or are insignificant. The
3237
+ # date is relative to the Gregorian Calendar. This can represent one of the
3238
+ # following: * A full date, with non-zero year, month, and day values. * A month
3239
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
3240
+ # with a zero month and a zero day. * A year and month, with a zero day (for
3241
+ # example, a credit card expiration date). Related types: * google.type.
3242
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
3243
+ # Corresponds to the JSON property `startDate`
3244
+ # @return [Google::Apis::ClouddeployV1::Date]
3245
+ attr_accessor :start_date
3246
+
3247
+ # Represents a time of day. The date and time zone are either not significant or
3248
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
3249
+ # types are google.type.Date and `google.protobuf.Timestamp`.
3250
+ # Corresponds to the JSON property `startTime`
3251
+ # @return [Google::Apis::ClouddeployV1::TimeOfDay]
3252
+ attr_accessor :start_time
3253
+
3254
+ def initialize(**args)
3255
+ update!(**args)
3256
+ end
3257
+
3258
+ # Update properties of this object
3259
+ def update!(**args)
3260
+ @end_date = args[:end_date] if args.key?(:end_date)
3261
+ @end_time = args[:end_time] if args.key?(:end_time)
3262
+ @start_date = args[:start_date] if args.key?(:start_date)
3263
+ @start_time = args[:start_time] if args.key?(:start_time)
3264
+ end
3265
+ end
3266
+
2882
3267
  # This resource represents a long-running operation that is the result of a
2883
3268
  # network API call.
2884
3269
  class Operation
@@ -3289,6 +3674,79 @@ module Google
3289
3674
  end
3290
3675
  end
3291
3676
 
3677
+ # Deploy Policy rule.
3678
+ class PolicyRule
3679
+ include Google::Apis::Core::Hashable
3680
+
3681
+ # Rollout restrictions.
3682
+ # Corresponds to the JSON property `rolloutRestriction`
3683
+ # @return [Google::Apis::ClouddeployV1::RolloutRestriction]
3684
+ attr_accessor :rollout_restriction
3685
+
3686
+ def initialize(**args)
3687
+ update!(**args)
3688
+ end
3689
+
3690
+ # Update properties of this object
3691
+ def update!(**args)
3692
+ @rollout_restriction = args[:rollout_restriction] if args.key?(:rollout_restriction)
3693
+ end
3694
+ end
3695
+
3696
+ # Returned from an action if one or more policies were violated, and therefore
3697
+ # the action was prevented. Contains information about what policies were
3698
+ # violated and why.
3699
+ class PolicyViolation
3700
+ include Google::Apis::Core::Hashable
3701
+
3702
+ # Policy violation details.
3703
+ # Corresponds to the JSON property `policyViolationDetails`
3704
+ # @return [Array<Google::Apis::ClouddeployV1::PolicyViolationDetails>]
3705
+ attr_accessor :policy_violation_details
3706
+
3707
+ def initialize(**args)
3708
+ update!(**args)
3709
+ end
3710
+
3711
+ # Update properties of this object
3712
+ def update!(**args)
3713
+ @policy_violation_details = args[:policy_violation_details] if args.key?(:policy_violation_details)
3714
+ end
3715
+ end
3716
+
3717
+ # Policy violation details.
3718
+ class PolicyViolationDetails
3719
+ include Google::Apis::Core::Hashable
3720
+
3721
+ # User readable message about why the request violated a policy. This is not
3722
+ # intended for machine parsing.
3723
+ # Corresponds to the JSON property `failureMessage`
3724
+ # @return [String]
3725
+ attr_accessor :failure_message
3726
+
3727
+ # Name of the policy that was violated. Policy resource will be in the format of
3728
+ # `projects/`project`/locations/`location`/policies/`policy``.
3729
+ # Corresponds to the JSON property `policy`
3730
+ # @return [String]
3731
+ attr_accessor :policy
3732
+
3733
+ # Id of the rule that triggered the policy violation.
3734
+ # Corresponds to the JSON property `ruleId`
3735
+ # @return [String]
3736
+ attr_accessor :rule_id
3737
+
3738
+ def initialize(**args)
3739
+ update!(**args)
3740
+ end
3741
+
3742
+ # Update properties of this object
3743
+ def update!(**args)
3744
+ @failure_message = args[:failure_message] if args.key?(:failure_message)
3745
+ @policy = args[:policy] if args.key?(:policy)
3746
+ @rule_id = args[:rule_id] if args.key?(:rule_id)
3747
+ end
3748
+ end
3749
+
3292
3750
  # Postdeploy contains the postdeploy job configuration information.
3293
3751
  class Postdeploy
3294
3752
  include Google::Apis::Core::Hashable
@@ -3922,10 +4380,40 @@ module Google
3922
4380
  end
3923
4381
  end
3924
4382
 
4383
+ # Configuration of the repair phase.
4384
+ class RepairPhaseConfig
4385
+ include Google::Apis::Core::Hashable
4386
+
4387
+ # Retries the failed job.
4388
+ # Corresponds to the JSON property `retry`
4389
+ # @return [Google::Apis::ClouddeployV1::Retry]
4390
+ attr_accessor :retry
4391
+
4392
+ # Rolls back a `Rollout`.
4393
+ # Corresponds to the JSON property `rollback`
4394
+ # @return [Google::Apis::ClouddeployV1::Rollback]
4395
+ attr_accessor :rollback
4396
+
4397
+ def initialize(**args)
4398
+ update!(**args)
4399
+ end
4400
+
4401
+ # Update properties of this object
4402
+ def update!(**args)
4403
+ @retry = args[:retry] if args.key?(:retry)
4404
+ @rollback = args[:rollback] if args.key?(:rollback)
4405
+ end
4406
+ end
4407
+
3925
4408
  # Contains the information for an automated `repair rollout` operation.
3926
4409
  class RepairRolloutOperation
3927
4410
  include Google::Apis::Core::Hashable
3928
4411
 
4412
+ # Output only. The index of the current repair action in the repair sequence.
4413
+ # Corresponds to the JSON property `currentRepairPhaseIndex`
4414
+ # @return [Fixnum]
4415
+ attr_accessor :current_repair_phase_index
4416
+
3929
4417
  # Output only. The job ID for the Job to repair.
3930
4418
  # Corresponds to the JSON property `jobId`
3931
4419
  # @return [String]
@@ -3953,6 +4441,7 @@ module Google
3953
4441
 
3954
4442
  # Update properties of this object
3955
4443
  def update!(**args)
4444
+ @current_repair_phase_index = args[:current_repair_phase_index] if args.key?(:current_repair_phase_index)
3956
4445
  @job_id = args[:job_id] if args.key?(:job_id)
3957
4446
  @phase_id = args[:phase_id] if args.key?(:phase_id)
3958
4447
  @repair_phases = args[:repair_phases] if args.key?(:repair_phases)
@@ -3986,6 +4475,21 @@ module Google
3986
4475
  # @return [Array<String>]
3987
4476
  attr_accessor :jobs
3988
4477
 
4478
+ # Optional. Phases within which jobs are subject to automatic repair actions on
4479
+ # failure. Proceeds only after phase name matched any one in the list, or for
4480
+ # all phases if unspecified. This value must consist of lower-case letters,
4481
+ # numbers, and hyphens, start with a letter and end with a letter or a number,
4482
+ # and have a max length of 63 characters. In other words, it must match the
4483
+ # following regex: `^[a-z]([a-z0-9-]`0,61`[a-z0-9])?$`.
4484
+ # Corresponds to the JSON property `phases`
4485
+ # @return [Array<String>]
4486
+ attr_accessor :phases
4487
+
4488
+ # Required. Defines the types of automatic repair phases for failed jobs.
4489
+ # Corresponds to the JSON property `repairPhases`
4490
+ # @return [Array<Google::Apis::ClouddeployV1::RepairPhaseConfig>]
4491
+ attr_accessor :repair_phases
4492
+
3989
4493
  def initialize(**args)
3990
4494
  update!(**args)
3991
4495
  end
@@ -3995,6 +4499,42 @@ module Google
3995
4499
  @condition = args[:condition] if args.key?(:condition)
3996
4500
  @id = args[:id] if args.key?(:id)
3997
4501
  @jobs = args[:jobs] if args.key?(:jobs)
4502
+ @phases = args[:phases] if args.key?(:phases)
4503
+ @repair_phases = args[:repair_phases] if args.key?(:repair_phases)
4504
+ end
4505
+ end
4506
+
4507
+ # Retries the failed job.
4508
+ class Retry
4509
+ include Google::Apis::Core::Hashable
4510
+
4511
+ # Required. Total number of retries. Retry is skipped if set to 0; The minimum
4512
+ # value is 1, and the maximum value is 10.
4513
+ # Corresponds to the JSON property `attempts`
4514
+ # @return [Fixnum]
4515
+ attr_accessor :attempts
4516
+
4517
+ # Optional. The pattern of how wait time will be increased. Default is linear.
4518
+ # Backoff mode will be ignored if `wait` is 0.
4519
+ # Corresponds to the JSON property `backoffMode`
4520
+ # @return [String]
4521
+ attr_accessor :backoff_mode
4522
+
4523
+ # Optional. How long to wait for the first retry. Default is 0, and the maximum
4524
+ # value is 14d.
4525
+ # Corresponds to the JSON property `wait`
4526
+ # @return [String]
4527
+ attr_accessor :wait
4528
+
4529
+ def initialize(**args)
4530
+ update!(**args)
4531
+ end
4532
+
4533
+ # Update properties of this object
4534
+ def update!(**args)
4535
+ @attempts = args[:attempts] if args.key?(:attempts)
4536
+ @backoff_mode = args[:backoff_mode] if args.key?(:backoff_mode)
4537
+ @wait = args[:wait] if args.key?(:wait)
3998
4538
  end
3999
4539
  end
4000
4540
 
@@ -4044,6 +4584,12 @@ module Google
4044
4584
  # @return [String]
4045
4585
  attr_accessor :job_id
4046
4586
 
4587
+ # Optional. Deploy policies to override. Format is `projects/`project`/locations/
4588
+ # `location`/deployPolicies/`deployPolicy``.
4589
+ # Corresponds to the JSON property `overrideDeployPolicy`
4590
+ # @return [Array<String>]
4591
+ attr_accessor :override_deploy_policy
4592
+
4047
4593
  # Required. The phase ID the Job to retry belongs to.
4048
4594
  # Corresponds to the JSON property `phaseId`
4049
4595
  # @return [String]
@@ -4056,6 +4602,7 @@ module Google
4056
4602
  # Update properties of this object
4057
4603
  def update!(**args)
4058
4604
  @job_id = args[:job_id] if args.key?(:job_id)
4605
+ @override_deploy_policy = args[:override_deploy_policy] if args.key?(:override_deploy_policy)
4059
4606
  @phase_id = args[:phase_id] if args.key?(:phase_id)
4060
4607
  end
4061
4608
  end
@@ -4106,6 +4653,34 @@ module Google
4106
4653
  end
4107
4654
  end
4108
4655
 
4656
+ # Rolls back a `Rollout`.
4657
+ class Rollback
4658
+ include Google::Apis::Core::Hashable
4659
+
4660
+ # Optional. The starting phase ID for the `Rollout`. If unspecified, the `
4661
+ # Rollout` will start in the stable phase.
4662
+ # Corresponds to the JSON property `destinationPhase`
4663
+ # @return [String]
4664
+ attr_accessor :destination_phase
4665
+
4666
+ # Optional. If pending rollout exists on the target, the rollback operation will
4667
+ # be aborted.
4668
+ # Corresponds to the JSON property `disableRollbackIfRolloutPending`
4669
+ # @return [Boolean]
4670
+ attr_accessor :disable_rollback_if_rollout_pending
4671
+ alias_method :disable_rollback_if_rollout_pending?, :disable_rollback_if_rollout_pending
4672
+
4673
+ def initialize(**args)
4674
+ update!(**args)
4675
+ end
4676
+
4677
+ # Update properties of this object
4678
+ def update!(**args)
4679
+ @destination_phase = args[:destination_phase] if args.key?(:destination_phase)
4680
+ @disable_rollback_if_rollout_pending = args[:disable_rollback_if_rollout_pending] if args.key?(:disable_rollback_if_rollout_pending)
4681
+ end
4682
+ end
4683
+
4109
4684
  # RollbackAttempt represents an action of rolling back a Cloud Deploy 'Target'.
4110
4685
  class RollbackAttempt
4111
4686
  include Google::Apis::Core::Hashable
@@ -4115,6 +4690,12 @@ module Google
4115
4690
  # @return [String]
4116
4691
  attr_accessor :destination_phase
4117
4692
 
4693
+ # Output only. If active rollout exists on the target, abort this rollback.
4694
+ # Corresponds to the JSON property `disableRollbackIfRolloutPending`
4695
+ # @return [Boolean]
4696
+ attr_accessor :disable_rollback_if_rollout_pending
4697
+ alias_method :disable_rollback_if_rollout_pending?, :disable_rollback_if_rollout_pending
4698
+
4118
4699
  # Output only. ID of the rollback `Rollout` to create.
4119
4700
  # Corresponds to the JSON property `rolloutId`
4120
4701
  # @return [String]
@@ -4137,6 +4718,7 @@ module Google
4137
4718
  # Update properties of this object
4138
4719
  def update!(**args)
4139
4720
  @destination_phase = args[:destination_phase] if args.key?(:destination_phase)
4721
+ @disable_rollback_if_rollout_pending = args[:disable_rollback_if_rollout_pending] if args.key?(:disable_rollback_if_rollout_pending)
4140
4722
  @rollout_id = args[:rollout_id] if args.key?(:rollout_id)
4141
4723
  @state = args[:state] if args.key?(:state)
4142
4724
  @state_desc = args[:state_desc] if args.key?(:state_desc)
@@ -4174,6 +4756,12 @@ module Google
4174
4756
  class RollbackTargetRequest
4175
4757
  include Google::Apis::Core::Hashable
4176
4758
 
4759
+ # Optional. Deploy policies to override. Format is `projects/`project`/locations/
4760
+ # `location`/deployPolicies/`deploy_policy``.
4761
+ # Corresponds to the JSON property `overrideDeployPolicy`
4762
+ # @return [Array<String>]
4763
+ attr_accessor :override_deploy_policy
4764
+
4177
4765
  # Optional. ID of the `Release` to roll back to. If this isn't specified, the
4178
4766
  # previous successful `Rollout` to the specified target will be used to
4179
4767
  # determine the `Release`.
@@ -4215,6 +4803,7 @@ module Google
4215
4803
 
4216
4804
  # Update properties of this object
4217
4805
  def update!(**args)
4806
+ @override_deploy_policy = args[:override_deploy_policy] if args.key?(:override_deploy_policy)
4218
4807
  @release_id = args[:release_id] if args.key?(:release_id)
4219
4808
  @rollback_config = args[:rollback_config] if args.key?(:rollback_config)
4220
4809
  @rollout_id = args[:rollout_id] if args.key?(:rollout_id)
@@ -4248,6 +4837,11 @@ module Google
4248
4837
  class Rollout
4249
4838
  include Google::Apis::Core::Hashable
4250
4839
 
4840
+ # Output only. The AutomationRun actively repairing the rollout.
4841
+ # Corresponds to the JSON property `activeRepairAutomationRun`
4842
+ # @return [String]
4843
+ attr_accessor :active_repair_automation_run
4844
+
4251
4845
  # User annotations. These attributes can only be set and used by the user, and
4252
4846
  # not by Cloud Deploy. See https://google.aip.dev/128#annotations for more
4253
4847
  # details such as format and size limitations.
@@ -4382,6 +4976,7 @@ module Google
4382
4976
 
4383
4977
  # Update properties of this object
4384
4978
  def update!(**args)
4979
+ @active_repair_automation_run = args[:active_repair_automation_run] if args.key?(:active_repair_automation_run)
4385
4980
  @annotations = args[:annotations] if args.key?(:annotations)
4386
4981
  @approval_state = args[:approval_state] if args.key?(:approval_state)
4387
4982
  @approve_time = args[:approve_time] if args.key?(:approve_time)
@@ -4470,6 +5065,48 @@ module Google
4470
5065
  end
4471
5066
  end
4472
5067
 
5068
+ # Rollout restrictions.
5069
+ class RolloutRestriction
5070
+ include Google::Apis::Core::Hashable
5071
+
5072
+ # Optional. Rollout actions to be restricted as part of the policy. If left
5073
+ # empty, all actions will be restricted.
5074
+ # Corresponds to the JSON property `actions`
5075
+ # @return [Array<String>]
5076
+ attr_accessor :actions
5077
+
5078
+ # Required. Restriction rule ID. Required and must be unique within a
5079
+ # DeployPolicy. The format is `[a-z]([a-z0-9-]`0,61`[a-z0-9])?`.
5080
+ # Corresponds to the JSON property `id`
5081
+ # @return [String]
5082
+ attr_accessor :id
5083
+
5084
+ # Optional. What invoked the action. If left empty, all invoker types will be
5085
+ # restricted.
5086
+ # Corresponds to the JSON property `invokers`
5087
+ # @return [Array<String>]
5088
+ attr_accessor :invokers
5089
+
5090
+ # Time windows within which actions are restricted. See the [documentation](
5091
+ # https://cloud.google.com/deploy/docs/deploy-policy#dates_times) for more
5092
+ # information on how to configure dates/times.
5093
+ # Corresponds to the JSON property `timeWindows`
5094
+ # @return [Google::Apis::ClouddeployV1::TimeWindows]
5095
+ attr_accessor :time_windows
5096
+
5097
+ def initialize(**args)
5098
+ update!(**args)
5099
+ end
5100
+
5101
+ # Update properties of this object
5102
+ def update!(**args)
5103
+ @actions = args[:actions] if args.key?(:actions)
5104
+ @id = args[:id] if args.key?(:id)
5105
+ @invokers = args[:invokers] if args.key?(:invokers)
5106
+ @time_windows = args[:time_windows] if args.key?(:time_windows)
5107
+ end
5108
+ end
5109
+
4473
5110
  # Payload proto for "clouddeploy.googleapis.com/rollout_update" Platform Log
4474
5111
  # event that describes the rollout update event.
4475
5112
  class RolloutUpdateEvent
@@ -5198,7 +5835,8 @@ module Google
5198
5835
  end
5199
5836
  end
5200
5837
 
5201
- # Contains criteria for selecting Targets.
5838
+ # Contains criteria for selecting Targets. This could be used to select targets
5839
+ # for a Deploy Policy or for an Automation.
5202
5840
  class TargetAttribute
5203
5841
  include Google::Apis::Core::Hashable
5204
5842
 
@@ -5370,12 +6008,19 @@ module Google
5370
6008
  class TerminateJobRunRequest
5371
6009
  include Google::Apis::Core::Hashable
5372
6010
 
6011
+ # Optional. Deploy policies to override. Format is `projects/`project`/locations/
6012
+ # `location`/deployPolicies/`deployPolicy``.
6013
+ # Corresponds to the JSON property `overrideDeployPolicy`
6014
+ # @return [Array<String>]
6015
+ attr_accessor :override_deploy_policy
6016
+
5373
6017
  def initialize(**args)
5374
6018
  update!(**args)
5375
6019
  end
5376
6020
 
5377
6021
  # Update properties of this object
5378
6022
  def update!(**args)
6023
+ @override_deploy_policy = args[:override_deploy_policy] if args.key?(:override_deploy_policy)
5379
6024
  end
5380
6025
  end
5381
6026
 
@@ -5432,6 +6077,81 @@ module Google
5432
6077
  end
5433
6078
  end
5434
6079
 
6080
+ # Represents a time of day. The date and time zone are either not significant or
6081
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
6082
+ # types are google.type.Date and `google.protobuf.Timestamp`.
6083
+ class TimeOfDay
6084
+ include Google::Apis::Core::Hashable
6085
+
6086
+ # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to
6087
+ # allow the value "24:00:00" for scenarios like business closing time.
6088
+ # Corresponds to the JSON property `hours`
6089
+ # @return [Fixnum]
6090
+ attr_accessor :hours
6091
+
6092
+ # Minutes of hour of day. Must be from 0 to 59.
6093
+ # Corresponds to the JSON property `minutes`
6094
+ # @return [Fixnum]
6095
+ attr_accessor :minutes
6096
+
6097
+ # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
6098
+ # Corresponds to the JSON property `nanos`
6099
+ # @return [Fixnum]
6100
+ attr_accessor :nanos
6101
+
6102
+ # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
6103
+ # allow the value 60 if it allows leap-seconds.
6104
+ # Corresponds to the JSON property `seconds`
6105
+ # @return [Fixnum]
6106
+ attr_accessor :seconds
6107
+
6108
+ def initialize(**args)
6109
+ update!(**args)
6110
+ end
6111
+
6112
+ # Update properties of this object
6113
+ def update!(**args)
6114
+ @hours = args[:hours] if args.key?(:hours)
6115
+ @minutes = args[:minutes] if args.key?(:minutes)
6116
+ @nanos = args[:nanos] if args.key?(:nanos)
6117
+ @seconds = args[:seconds] if args.key?(:seconds)
6118
+ end
6119
+ end
6120
+
6121
+ # Time windows within which actions are restricted. See the [documentation](
6122
+ # https://cloud.google.com/deploy/docs/deploy-policy#dates_times) for more
6123
+ # information on how to configure dates/times.
6124
+ class TimeWindows
6125
+ include Google::Apis::Core::Hashable
6126
+
6127
+ # Optional. One-time windows within which actions are restricted.
6128
+ # Corresponds to the JSON property `oneTimeWindows`
6129
+ # @return [Array<Google::Apis::ClouddeployV1::OneTimeWindow>]
6130
+ attr_accessor :one_time_windows
6131
+
6132
+ # Required. The time zone in IANA format [IANA Time Zone Database](https://www.
6133
+ # iana.org/time-zones) (e.g. America/New_York).
6134
+ # Corresponds to the JSON property `timeZone`
6135
+ # @return [String]
6136
+ attr_accessor :time_zone
6137
+
6138
+ # Optional. Recurring weekly windows within which actions are restricted.
6139
+ # Corresponds to the JSON property `weeklyWindows`
6140
+ # @return [Array<Google::Apis::ClouddeployV1::WeeklyWindow>]
6141
+ attr_accessor :weekly_windows
6142
+
6143
+ def initialize(**args)
6144
+ update!(**args)
6145
+ end
6146
+
6147
+ # Update properties of this object
6148
+ def update!(**args)
6149
+ @one_time_windows = args[:one_time_windows] if args.key?(:one_time_windows)
6150
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
6151
+ @weekly_windows = args[:weekly_windows] if args.key?(:weekly_windows)
6152
+ end
6153
+ end
6154
+
5435
6155
  # A verify Job.
5436
6156
  class VerifyJob
5437
6157
  include Google::Apis::Core::Hashable
@@ -5490,6 +6210,42 @@ module Google
5490
6210
  @failure_message = args[:failure_message] if args.key?(:failure_message)
5491
6211
  end
5492
6212
  end
6213
+
6214
+ # Weekly windows. For example, blocking actions every Saturday and Sunday.
6215
+ # Another example would be blocking actions every weekday from 5pm to midnight.
6216
+ class WeeklyWindow
6217
+ include Google::Apis::Core::Hashable
6218
+
6219
+ # Optional. Days of week. If left empty, all days of the week will be included.
6220
+ # Corresponds to the JSON property `daysOfWeek`
6221
+ # @return [Array<String>]
6222
+ attr_accessor :days_of_week
6223
+
6224
+ # Represents a time of day. The date and time zone are either not significant or
6225
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
6226
+ # types are google.type.Date and `google.protobuf.Timestamp`.
6227
+ # Corresponds to the JSON property `endTime`
6228
+ # @return [Google::Apis::ClouddeployV1::TimeOfDay]
6229
+ attr_accessor :end_time
6230
+
6231
+ # Represents a time of day. The date and time zone are either not significant or
6232
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
6233
+ # types are google.type.Date and `google.protobuf.Timestamp`.
6234
+ # Corresponds to the JSON property `startTime`
6235
+ # @return [Google::Apis::ClouddeployV1::TimeOfDay]
6236
+ attr_accessor :start_time
6237
+
6238
+ def initialize(**args)
6239
+ update!(**args)
6240
+ end
6241
+
6242
+ # Update properties of this object
6243
+ def update!(**args)
6244
+ @days_of_week = args[:days_of_week] if args.key?(:days_of_week)
6245
+ @end_time = args[:end_time] if args.key?(:end_time)
6246
+ @start_time = args[:start_time] if args.key?(:start_time)
6247
+ end
6248
+ end
5493
6249
  end
5494
6250
  end
5495
6251
  end