@@ -269,6 +269,31 @@ def update!(**args)
269269 end
270270 end
271271
272+ # Information about entities associated with a `Target`.
273+ class AssociatedEntities
274+ include Google ::Apis ::Core ::Hashable
275+
276+ # Optional. Information specifying Anthos clusters as associated entities.
277+ # Corresponds to the JSON property `anthosClusters`
278+ # @return [Array<Google::Apis::ClouddeployV1::AnthosCluster>]
279+ attr_accessor :anthos_clusters
280+
281+ # Optional. Information specifying GKE clusters as associated entities.
282+ # Corresponds to the JSON property `gkeClusters`
283+ # @return [Array<Google::Apis::ClouddeployV1::GkeCluster>]
284+ attr_accessor :gke_clusters
285+
286+ def initialize ( **args )
287+ update! ( **args )
288+ end
289+
290+ # Update properties of this object
291+ def update! ( **args )
292+ @anthos_clusters = args [ :anthos_clusters ] if args . key? ( :anthos_clusters )
293+ @gke_clusters = args [ :gke_clusters ] if args . key? ( :gke_clusters )
294+ end
295+ end
296+
272297 # Specifies the audit configuration for a service. The configuration determines
273298 # which permission types are logged, and what identities, if any, are exempted
274299 # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
@@ -2374,6 +2399,11 @@ class GatewayServiceMesh
23742399 # @return [String]
23752400 attr_accessor :pod_selector_label
23762401
2402+ # Information about route destinations for the Gateway API service mesh.
2403+ # Corresponds to the JSON property `routeDestinations`
2404+ # @return [Google::Apis::ClouddeployV1::RouteDestinations]
2405+ attr_accessor :route_destinations
2406+
23772407 # Optional. The time to wait for route updates to propagate. The maximum
23782408 # configurable time is 3 hours, in seconds format. If unspecified, there is no
23792409 # wait time.
@@ -2402,6 +2432,7 @@ def update!(**args)
24022432 @deployment = args [ :deployment ] if args . key? ( :deployment )
24032433 @http_route = args [ :http_route ] if args . key? ( :http_route )
24042434 @pod_selector_label = args [ :pod_selector_label ] if args . key? ( :pod_selector_label )
2435+ @route_destinations = args [ :route_destinations ] if args . key? ( :route_destinations )
24052436 @route_update_wait_time = args [ :route_update_wait_time ] if args . key? ( :route_update_wait_time )
24062437 @service = args [ :service ] if args . key? ( :service )
24072438 @stable_cutback_duration = args [ :stable_cutback_duration ] if args . key? ( :stable_cutback_duration )
@@ -5171,6 +5202,38 @@ def update!(**args)
51715202 end
51725203 end
51735204
5205+ # Information about route destinations for the Gateway API service mesh.
5206+ class RouteDestinations
5207+ include Google ::Apis ::Core ::Hashable
5208+
5209+ # Required. The clusters where the Gateway API HTTPRoute resource will be
5210+ # deployed to. Valid entries include the associated entities IDs configured in
5211+ # the Target resource and "@self" to include the Target cluster.
5212+ # Corresponds to the JSON property `destinationIds`
5213+ # @return [Array<String>]
5214+ attr_accessor :destination_ids
5215+
5216+ # Optional. Whether to propagate the Kubernetes Service to the route destination
5217+ # clusters. The Service will always be deployed to the Target cluster even if
5218+ # the HTTPRoute is not. This option may be used to facilitiate successful DNS
5219+ # lookup in the route destination clusters. Can only be set to true if
5220+ # destinations are specified.
5221+ # Corresponds to the JSON property `propagateService`
5222+ # @return [Boolean]
5223+ attr_accessor :propagate_service
5224+ alias_method :propagate_service? , :propagate_service
5225+
5226+ def initialize ( **args )
5227+ update! ( **args )
5228+ end
5229+
5230+ # Update properties of this object
5231+ def update! ( **args )
5232+ @destination_ids = args [ :destination_ids ] if args . key? ( :destination_ids )
5233+ @propagate_service = args [ :propagate_service ] if args . key? ( :propagate_service )
5234+ end
5235+ end
5236+
51745237 # RuntimeConfig contains the runtime specific configurations for a deployment
51755238 # strategy.
51765239 class RuntimeConfig
@@ -5678,6 +5741,18 @@ class Target
56785741 # @return [Google::Apis::ClouddeployV1::AnthosCluster]
56795742 attr_accessor :anthos_cluster
56805743
5744+ # Optional. Map of entity IDs to their associated entities. Associated entities
5745+ # allows specifying places other than the deployment target for specific
5746+ # features. For example, the Gateway API canary can be configured to deploy the
5747+ # HTTPRoute to a different cluster(s) than the deployment cluster using
5748+ # associated entities. An entity ID must consist of lower-case letters, numbers,
5749+ # and hyphens, start with a letter and end with a letter or a number, and have a
5750+ # max length of 63 characters. In other words, it must match the following regex:
5751+ # `^[a-z]([a-z0-9-]`0,61`[a-z0-9])?$`.
5752+ # Corresponds to the JSON property `associatedEntities`
5753+ # @return [Hash<String,Google::Apis::ClouddeployV1::AssociatedEntities>]
5754+ attr_accessor :associated_entities
5755+
56815756 # Output only. Time at which the `Target` was created.
56825757 # Corresponds to the JSON property `createTime`
56835758 # @return [String]
@@ -5777,6 +5852,7 @@ def initialize(**args)
57775852 def update! ( **args )
57785853 @annotations = args [ :annotations ] if args . key? ( :annotations )
57795854 @anthos_cluster = args [ :anthos_cluster ] if args . key? ( :anthos_cluster )
5855+ @associated_entities = args [ :associated_entities ] if args . key? ( :associated_entities )
57805856 @create_time = args [ :create_time ] if args . key? ( :create_time )
57815857 @custom_target = args [ :custom_target ] if args . key? ( :custom_target )
57825858 @deploy_parameters = args [ :deploy_parameters ] if args . key? ( :deploy_parameters )
0 commit comments