google-apis-networkservices_v1beta1 0.44.0 → 0.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,165 +22,108 @@ module Google
22
22
  module Apis
23
23
  module NetworkservicesV1beta1
24
24
 
25
- # Specifies the audit configuration for a service. The configuration determines
26
- # which permission types are logged, and what identities, if any, are exempted
27
- # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
28
- # are AuditConfigs for both `allServices` and a specific service, the union of
29
- # the two AuditConfigs is used for that service: the log_types specified in each
30
- # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
31
- # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
32
- # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
33
- # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
34
- # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
35
- # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
36
- # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
37
- # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
38
- # exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com`
39
- # from DATA_WRITE logging.
40
- class AuditConfig
41
- include Google::Apis::Core::Hashable
42
-
43
- # The configuration for logging of each type of permission.
44
- # Corresponds to the JSON property `auditLogConfigs`
45
- # @return [Array<Google::Apis::NetworkservicesV1beta1::AuditLogConfig>]
46
- attr_accessor :audit_log_configs
47
-
48
- # Specifies a service that will be enabled for audit logging. For example, `
49
- # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
50
- # value that covers all services.
51
- # Corresponds to the JSON property `service`
25
+ # `AuthzExtension` is a resource that allows traffic forwarding to a callout
26
+ # backend service to make an authorization decision.
27
+ class AuthzExtension
28
+ include Google::Apis::Core::Hashable
29
+
30
+ # Required. The `:authority` header in the gRPC request sent from Envoy to the
31
+ # extension service.
32
+ # Corresponds to the JSON property `authority`
52
33
  # @return [String]
53
- attr_accessor :service
34
+ attr_accessor :authority
54
35
 
55
- def initialize(**args)
56
- update!(**args)
57
- end
36
+ # Output only. The timestamp when the resource was created.
37
+ # Corresponds to the JSON property `createTime`
38
+ # @return [String]
39
+ attr_accessor :create_time
58
40
 
59
- # Update properties of this object
60
- def update!(**args)
61
- @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
62
- @service = args[:service] if args.key?(:service)
63
- end
64
- end
41
+ # Optional. A human-readable description of the resource.
42
+ # Corresponds to the JSON property `description`
43
+ # @return [String]
44
+ attr_accessor :description
65
45
 
66
- # Provides the configuration for logging a type of permissions. Example: ` "
67
- # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
68
- # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
69
- # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
70
- # DATA_READ logging.
71
- class AuditLogConfig
72
- include Google::Apis::Core::Hashable
46
+ # Optional. Determines how the proxy behaves if the call to the extension fails
47
+ # or times out. When set to `TRUE`, request or response processing continues
48
+ # without error. Any subsequent extensions in the extension chain are also
49
+ # executed. When set to `FALSE` or the default setting of `FALSE` is used, one
50
+ # of the following happens: * If response headers have not been delivered to the
51
+ # downstream client, a generic 500 error is returned to the client. The error
52
+ # response can be tailored by configuring a custom error response in the load
53
+ # balancer. * If response headers have been delivered, then the HTTP stream to
54
+ # the downstream client is reset.
55
+ # Corresponds to the JSON property `failOpen`
56
+ # @return [Boolean]
57
+ attr_accessor :fail_open
58
+ alias_method :fail_open?, :fail_open
73
59
 
74
- # Specifies the identities that do not cause logging for this type of permission.
75
- # Follows the same format of Binding.members.
76
- # Corresponds to the JSON property `exemptedMembers`
77
- # @return [Array<String>]
78
- attr_accessor :exempted_members
79
-
80
- # The log type that this config enables.
81
- # Corresponds to the JSON property `logType`
82
- # @return [String]
83
- attr_accessor :log_type
84
-
85
- def initialize(**args)
86
- update!(**args)
87
- end
88
-
89
- # Update properties of this object
90
- def update!(**args)
91
- @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
92
- @log_type = args[:log_type] if args.key?(:log_type)
93
- end
94
- end
95
-
96
- # Associates `members`, or principals, with a `role`.
97
- class Binding
98
- include Google::Apis::Core::Hashable
99
-
100
- # Represents a textual expression in the Common Expression Language (CEL) syntax.
101
- # CEL is a C-like expression language. The syntax and semantics of CEL are
102
- # documented at https://github.com/google/cel-spec. Example (Comparison): title:
103
- # "Summary size limit" description: "Determines if a summary is less than 100
104
- # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
105
- # Requestor is owner" description: "Determines if requestor is the document
106
- # owner" expression: "document.owner == request.auth.claims.email" Example (
107
- # Logic): title: "Public documents" description: "Determine whether the document
108
- # should be publicly visible" expression: "document.type != 'private' &&
109
- # document.type != 'internal'" Example (Data Manipulation): title: "Notification
110
- # string" description: "Create a notification string with a timestamp."
111
- # expression: "'New message received at ' + string(document.create_time)" The
112
- # exact variables and functions that may be referenced within an expression are
113
- # determined by the service that evaluates it. See the service documentation for
114
- # additional information.
115
- # Corresponds to the JSON property `condition`
116
- # @return [Google::Apis::NetworkservicesV1beta1::Expr]
117
- attr_accessor :condition
118
-
119
- # Specifies the principals requesting access for a Google Cloud resource. `
120
- # members` can have the following values: * `allUsers`: A special identifier
121
- # that represents anyone who is on the internet; with or without a Google
122
- # account. * `allAuthenticatedUsers`: A special identifier that represents
123
- # anyone who is authenticated with a Google account or a service account. Does
124
- # not include identities that come from external identity providers (IdPs)
125
- # through identity federation. * `user:`emailid``: An email address that
126
- # represents a specific Google account. For example, `alice@example.com` . * `
127
- # serviceAccount:`emailid``: An email address that represents a Google service
128
- # account. For example, `my-other-app@appspot.gserviceaccount.com`. * `
129
- # serviceAccount:`projectid`.svc.id.goog[`namespace`/`kubernetes-sa`]`: An
130
- # identifier for a [Kubernetes service account](https://cloud.google.com/
131
- # kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-
132
- # project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:`emailid``: An
133
- # email address that represents a Google group. For example, `admins@example.com`
134
- # . * `domain:`domain``: The G Suite domain (primary) that represents all the
135
- # users of that domain. For example, `google.com` or `example.com`. * `principal:
136
- # //iam.googleapis.com/locations/global/workforcePools/`pool_id`/subject/`
137
- # subject_attribute_value``: A single identity in a workforce identity pool. * `
138
- # principalSet://iam.googleapis.com/locations/global/workforcePools/`pool_id`/
139
- # group/`group_id``: All workforce identities in a group. * `principalSet://iam.
140
- # googleapis.com/locations/global/workforcePools/`pool_id`/attribute.`
141
- # attribute_name`/`attribute_value``: All workforce identities with a specific
142
- # attribute value. * `principalSet://iam.googleapis.com/locations/global/
143
- # workforcePools/`pool_id`/*`: All identities in a workforce identity pool. * `
144
- # principal://iam.googleapis.com/projects/`project_number`/locations/global/
145
- # workloadIdentityPools/`pool_id`/subject/`subject_attribute_value``: A single
146
- # identity in a workload identity pool. * `principalSet://iam.googleapis.com/
147
- # projects/`project_number`/locations/global/workloadIdentityPools/`pool_id`/
148
- # group/`group_id``: A workload identity pool group. * `principalSet://iam.
149
- # googleapis.com/projects/`project_number`/locations/global/
150
- # workloadIdentityPools/`pool_id`/attribute.`attribute_name`/`attribute_value``:
151
- # All identities in a workload identity pool with a certain attribute. * `
152
- # principalSet://iam.googleapis.com/projects/`project_number`/locations/global/
153
- # workloadIdentityPools/`pool_id`/*`: All identities in a workload identity pool.
154
- # * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
155
- # identifier) representing a user that has been recently deleted. For example, `
156
- # alice@example.com?uid=123456789012345678901`. If the user is recovered, this
157
- # value reverts to `user:`emailid`` and the recovered user retains the role in
158
- # the binding. * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email
159
- # address (plus unique identifier) representing a service account that has been
160
- # recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=
161
- # 123456789012345678901`. If the service account is undeleted, this value
162
- # reverts to `serviceAccount:`emailid`` and the undeleted service account
163
- # retains the role in the binding. * `deleted:group:`emailid`?uid=`uniqueid``:
164
- # An email address (plus unique identifier) representing a Google group that has
165
- # been recently deleted. For example, `admins@example.com?uid=
166
- # 123456789012345678901`. If the group is recovered, this value reverts to `
167
- # group:`emailid`` and the recovered group retains the role in the binding. * `
168
- # deleted:principal://iam.googleapis.com/locations/global/workforcePools/`
169
- # pool_id`/subject/`subject_attribute_value``: Deleted single identity in a
170
- # workforce identity pool. For example, `deleted:principal://iam.googleapis.com/
171
- # locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.
172
- # Corresponds to the JSON property `members`
60
+ # Optional. List of the HTTP headers to forward to the extension (from the
61
+ # client). If omitted, all headers are sent. Each element is a string indicating
62
+ # the header name.
63
+ # Corresponds to the JSON property `forwardHeaders`
173
64
  # @return [Array<String>]
174
- attr_accessor :members
65
+ attr_accessor :forward_headers
66
+
67
+ # Optional. Set of labels associated with the `AuthzExtension` resource. The
68
+ # format must comply with [the requirements for labels](/compute/docs/labeling-
69
+ # resources#requirements) for Google Cloud resources.
70
+ # Corresponds to the JSON property `labels`
71
+ # @return [Hash<String,String>]
72
+ attr_accessor :labels
73
+
74
+ # Required. All backend services and forwarding rules referenced by this
75
+ # extension must share the same load balancing scheme. Supported values: `
76
+ # INTERNAL_MANAGED`, `EXTERNAL_MANAGED`. For more information, refer to [Backend
77
+ # services overview](https://cloud.google.com/load-balancing/docs/backend-
78
+ # service).
79
+ # Corresponds to the JSON property `loadBalancingScheme`
80
+ # @return [String]
81
+ attr_accessor :load_balancing_scheme
82
+
83
+ # Optional. The metadata provided here is included as part of the `
84
+ # metadata_context` (of type `google.protobuf.Struct`) in the `ProcessingRequest`
85
+ # message sent to the extension server. The metadata is available under the
86
+ # namespace `com.google.authz_extension.`. The following variables are supported
87
+ # in the metadata Struct: ``forwarding_rule_id`` - substituted with the
88
+ # forwarding rule's fully qualified resource name.
89
+ # Corresponds to the JSON property `metadata`
90
+ # @return [Hash<String,Object>]
91
+ attr_accessor :metadata
92
+
93
+ # Required. Identifier. Name of the `AuthzExtension` resource in the following
94
+ # format: `projects/`project`/locations/`location`/authzExtensions/`
95
+ # authz_extension``.
96
+ # Corresponds to the JSON property `name`
97
+ # @return [String]
98
+ attr_accessor :name
175
99
 
176
- # Role that is assigned to the list of `members`, or principals. For example, `
177
- # roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM
178
- # roles and permissions, see the [IAM documentation](https://cloud.google.com/
179
- # iam/docs/roles-overview). For a list of the available pre-defined roles, see [
180
- # here](https://cloud.google.com/iam/docs/understanding-roles).
181
- # Corresponds to the JSON property `role`
100
+ # Required. The reference to the service that runs the extension. To configure a
101
+ # callout extension, `service` must be a fully-qualified reference to a [backend
102
+ # service](https://cloud.google.com/compute/docs/reference/rest/v1/
103
+ # backendServices) in the format: `https://www.googleapis.com/compute/v1/
104
+ # projects/`project`/regions/`region`/backendServices/`backendService`` or `
105
+ # https://www.googleapis.com/compute/v1/projects/`project`/global/
106
+ # backendServices/`backendService``.
107
+ # Corresponds to the JSON property `service`
108
+ # @return [String]
109
+ attr_accessor :service
110
+
111
+ # Required. Specifies the timeout for each individual message on the stream. The
112
+ # timeout must be between 10-10000 milliseconds.
113
+ # Corresponds to the JSON property `timeout`
114
+ # @return [String]
115
+ attr_accessor :timeout
116
+
117
+ # Output only. The timestamp when the resource was updated.
118
+ # Corresponds to the JSON property `updateTime`
119
+ # @return [String]
120
+ attr_accessor :update_time
121
+
122
+ # Optional. The format of communication supported by the callout extension. If
123
+ # not specified, the default is `EXT_PROC_GRPC`.
124
+ # Corresponds to the JSON property `wireFormat`
182
125
  # @return [String]
183
- attr_accessor :role
126
+ attr_accessor :wire_format
184
127
 
185
128
  def initialize(**args)
186
129
  update!(**args)
@@ -188,9 +131,19 @@ module Google
188
131
 
189
132
  # Update properties of this object
190
133
  def update!(**args)
191
- @condition = args[:condition] if args.key?(:condition)
192
- @members = args[:members] if args.key?(:members)
193
- @role = args[:role] if args.key?(:role)
134
+ @authority = args[:authority] if args.key?(:authority)
135
+ @create_time = args[:create_time] if args.key?(:create_time)
136
+ @description = args[:description] if args.key?(:description)
137
+ @fail_open = args[:fail_open] if args.key?(:fail_open)
138
+ @forward_headers = args[:forward_headers] if args.key?(:forward_headers)
139
+ @labels = args[:labels] if args.key?(:labels)
140
+ @load_balancing_scheme = args[:load_balancing_scheme] if args.key?(:load_balancing_scheme)
141
+ @metadata = args[:metadata] if args.key?(:metadata)
142
+ @name = args[:name] if args.key?(:name)
143
+ @service = args[:service] if args.key?(:service)
144
+ @timeout = args[:timeout] if args.key?(:timeout)
145
+ @update_time = args[:update_time] if args.key?(:update_time)
146
+ @wire_format = args[:wire_format] if args.key?(:wire_format)
194
147
  end
195
148
  end
196
149
 
@@ -290,7 +243,7 @@ module Google
290
243
  # @return [Hash<String,String>]
291
244
  attr_accessor :labels
292
245
 
293
- # Required. Name of the EndpointPolicy resource. It matches pattern `projects/`
246
+ # Identifier. Name of the EndpointPolicy resource. It matches pattern `projects/`
294
247
  # project`/locations/global/endpointPolicies/`endpoint_policy``.
295
248
  # Corresponds to the JSON property `name`
296
249
  # @return [String]
@@ -340,60 +293,6 @@ module Google
340
293
  end
341
294
  end
342
295
 
343
- # Represents a textual expression in the Common Expression Language (CEL) syntax.
344
- # CEL is a C-like expression language. The syntax and semantics of CEL are
345
- # documented at https://github.com/google/cel-spec. Example (Comparison): title:
346
- # "Summary size limit" description: "Determines if a summary is less than 100
347
- # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
348
- # Requestor is owner" description: "Determines if requestor is the document
349
- # owner" expression: "document.owner == request.auth.claims.email" Example (
350
- # Logic): title: "Public documents" description: "Determine whether the document
351
- # should be publicly visible" expression: "document.type != 'private' &&
352
- # document.type != 'internal'" Example (Data Manipulation): title: "Notification
353
- # string" description: "Create a notification string with a timestamp."
354
- # expression: "'New message received at ' + string(document.create_time)" The
355
- # exact variables and functions that may be referenced within an expression are
356
- # determined by the service that evaluates it. See the service documentation for
357
- # additional information.
358
- class Expr
359
- include Google::Apis::Core::Hashable
360
-
361
- # Optional. Description of the expression. This is a longer text which describes
362
- # the expression, e.g. when hovered over it in a UI.
363
- # Corresponds to the JSON property `description`
364
- # @return [String]
365
- attr_accessor :description
366
-
367
- # Textual representation of an expression in Common Expression Language syntax.
368
- # Corresponds to the JSON property `expression`
369
- # @return [String]
370
- attr_accessor :expression
371
-
372
- # Optional. String indicating the location of the expression for error reporting,
373
- # e.g. a file name and a position in the file.
374
- # Corresponds to the JSON property `location`
375
- # @return [String]
376
- attr_accessor :location
377
-
378
- # Optional. Title for the expression, i.e. a short string describing its purpose.
379
- # This can be used e.g. in UIs which allow to enter the expression.
380
- # Corresponds to the JSON property `title`
381
- # @return [String]
382
- attr_accessor :title
383
-
384
- def initialize(**args)
385
- update!(**args)
386
- end
387
-
388
- # Update properties of this object
389
- def update!(**args)
390
- @description = args[:description] if args.key?(:description)
391
- @expression = args[:expression] if args.key?(:expression)
392
- @location = args[:location] if args.key?(:location)
393
- @title = args[:title] if args.key?(:title)
394
- end
395
- end
396
-
397
296
  # A single extension chain wrapper that contains the match conditions and
398
297
  # extensions to execute.
399
298
  class ExtensionChain
@@ -438,7 +337,8 @@ module Google
438
337
  include Google::Apis::Core::Hashable
439
338
 
440
339
  # Optional. The `:authority` header in the gRPC request sent from Envoy to the
441
- # extension service. Required for Callout extensions.
340
+ # extension service. Required for Callout extensions. This field is not
341
+ # supported for plugin extensions. Setting it results in a validation error.
442
342
  # Corresponds to the JSON property `authority`
443
343
  # @return [String]
444
344
  attr_accessor :authority
@@ -464,6 +364,18 @@ module Google
464
364
  # @return [Array<String>]
465
365
  attr_accessor :forward_headers
466
366
 
367
+ # Optional. The metadata provided here is included as part of the `
368
+ # metadata_context` (of type `google.protobuf.Struct`) in the `ProcessingRequest`
369
+ # message sent to the extension server. The metadata is available under the
370
+ # namespace `com.google....`. For example: `com.google.lb_traffic_extension.
371
+ # lbtrafficextension1.chain1.ext1`. The following variables are supported in the
372
+ # metadata: ``forwarding_rule_id`` - substituted with the forwarding rule's
373
+ # fully qualified resource name. This field is not supported for plugin
374
+ # extensions. Setting it results in a validation error.
375
+ # Corresponds to the JSON property `metadata`
376
+ # @return [Hash<String,Object>]
377
+ attr_accessor :metadata
378
+
467
379
  # Required. The name for this extension. The name is logged as part of the HTTP
468
380
  # request logs. The name must conform with RFC-1034, is restricted to lower-
469
381
  # cased letters, numbers and hyphens, and can have a maximum length of 63
@@ -473,26 +385,35 @@ module Google
473
385
  # @return [String]
474
386
  attr_accessor :name
475
387
 
476
- # Required. The reference to the service that runs the extension. Currently only
477
- # callout extensions are supported here. To configure a callout extension, `
478
- # service` must be a fully-qualified reference to a [backend service](https://
479
- # cloud.google.com/compute/docs/reference/rest/v1/backendServices) in the format:
480
- # `https://www.googleapis.com/compute/v1/projects/`project`/regions/`region`/
481
- # backendServices/`backendService`` or `https://www.googleapis.com/compute/v1/
482
- # projects/`project`/global/backendServices/`backendService``.
388
+ # Required. The reference to the service that runs the extension. To configure a
389
+ # callout extension, `service` must be a fully-qualified reference to a [backend
390
+ # service](https://cloud.google.com/compute/docs/reference/rest/v1/
391
+ # backendServices) in the format: `https://www.googleapis.com/compute/v1/
392
+ # projects/`project`/regions/`region`/backendServices/`backendService`` or `
393
+ # https://www.googleapis.com/compute/v1/projects/`project`/global/
394
+ # backendServices/`backendService``. To configure a plugin extension, `service`
395
+ # must be a reference to a [`WasmPlugin` resource](https://cloud.google.com/
396
+ # service-extensions/docs/reference/rest/v1beta1/projects.locations.wasmPlugins)
397
+ # in the format: `projects/`project`/locations/`location`/wasmPlugins/`plugin``
398
+ # or `//networkservices.googleapis.com/projects/`project`/locations/`location`/
399
+ # wasmPlugins/`wasmPlugin``. Plugin extensions are currently supported for the `
400
+ # LbTrafficExtension` and the `LbRouteExtension` resources.
483
401
  # Corresponds to the JSON property `service`
484
402
  # @return [String]
485
403
  attr_accessor :service
486
404
 
487
405
  # Optional. A set of events during request or response processing for which this
488
406
  # extension is called. This field is required for the `LbTrafficExtension`
489
- # resource. It must not be set for the `LbRouteExtension` resource.
407
+ # resource. It must not be set for the `LbRouteExtension` resource, otherwise a
408
+ # validation error is returned.
490
409
  # Corresponds to the JSON property `supportedEvents`
491
410
  # @return [Array<String>]
492
411
  attr_accessor :supported_events
493
412
 
494
413
  # Optional. Specifies the timeout for each individual message on the stream. The
495
- # timeout must be between 10-1000 milliseconds. Required for Callout extensions.
414
+ # timeout must be between `10`-`1000` milliseconds. Required for callout
415
+ # extensions. This field is not supported for plugin extensions. Setting it
416
+ # results in a validation error.
496
417
  # Corresponds to the JSON property `timeout`
497
418
  # @return [String]
498
419
  attr_accessor :timeout
@@ -506,6 +427,7 @@ module Google
506
427
  @authority = args[:authority] if args.key?(:authority)
507
428
  @fail_open = args[:fail_open] if args.key?(:fail_open)
508
429
  @forward_headers = args[:forward_headers] if args.key?(:forward_headers)
430
+ @metadata = args[:metadata] if args.key?(:metadata)
509
431
  @name = args[:name] if args.key?(:name)
510
432
  @service = args[:service] if args.key?(:service)
511
433
  @supported_events = args[:supported_events] if args.key?(:supported_events)
@@ -593,7 +515,7 @@ module Google
593
515
  # @return [Hash<String,String>]
594
516
  attr_accessor :labels
595
517
 
596
- # Required. Name of the Gateway resource. It matches pattern `projects/*/
518
+ # Identifier. Name of the Gateway resource. It matches pattern `projects/*/
597
519
  # locations/*/gateways/`.
598
520
  # Corresponds to the JSON property `name`
599
521
  # @return [String]
@@ -614,6 +536,13 @@ module Google
614
536
  # @return [Array<Fixnum>]
615
537
  attr_accessor :ports
616
538
 
539
+ # Optional. The routing mode of the Gateway. This field is configurable only for
540
+ # gateways of type SECURE_WEB_GATEWAY. This field is required for gateways of
541
+ # type SECURE_WEB_GATEWAY.
542
+ # Corresponds to the JSON property `routingMode`
543
+ # @return [String]
544
+ attr_accessor :routing_mode
545
+
617
546
  # Optional. Scope determines how configuration across multiple Gateway instances
618
547
  # are merged. The configuration for multiple Gateway instances with the same
619
548
  # scope will be merged as presented as a single coniguration to the proxy/load
@@ -670,6 +599,7 @@ module Google
670
599
  @name = args[:name] if args.key?(:name)
671
600
  @network = args[:network] if args.key?(:network)
672
601
  @ports = args[:ports] if args.key?(:ports)
602
+ @routing_mode = args[:routing_mode] if args.key?(:routing_mode)
673
603
  @scope = args[:scope] if args.key?(:scope)
674
604
  @self_link = args[:self_link] if args.key?(:self_link)
675
605
  @server_tls_policy = args[:server_tls_policy] if args.key?(:server_tls_policy)
@@ -679,6 +609,51 @@ module Google
679
609
  end
680
610
  end
681
611
 
612
+ # GatewayRouteView defines view-only resource for Routes to a Gateway
613
+ class GatewayRouteView
614
+ include Google::Apis::Core::Hashable
615
+
616
+ # Output only. Identifier. Full path name of the GatewayRouteView resource.
617
+ # Format: projects/`project_number`/locations/`location`/gateways/`gateway_name`/
618
+ # routeViews/`route_view_name`
619
+ # Corresponds to the JSON property `name`
620
+ # @return [String]
621
+ attr_accessor :name
622
+
623
+ # Output only. The resource id for the route.
624
+ # Corresponds to the JSON property `routeId`
625
+ # @return [String]
626
+ attr_accessor :route_id
627
+
628
+ # Output only. Location where the route exists.
629
+ # Corresponds to the JSON property `routeLocation`
630
+ # @return [String]
631
+ attr_accessor :route_location
632
+
633
+ # Output only. Project number where the route exists.
634
+ # Corresponds to the JSON property `routeProjectNumber`
635
+ # @return [Fixnum]
636
+ attr_accessor :route_project_number
637
+
638
+ # Output only. Type of the route: HttpRoute,GrpcRoute,TcpRoute, or TlsRoute
639
+ # Corresponds to the JSON property `routeType`
640
+ # @return [String]
641
+ attr_accessor :route_type
642
+
643
+ def initialize(**args)
644
+ update!(**args)
645
+ end
646
+
647
+ # Update properties of this object
648
+ def update!(**args)
649
+ @name = args[:name] if args.key?(:name)
650
+ @route_id = args[:route_id] if args.key?(:route_id)
651
+ @route_location = args[:route_location] if args.key?(:route_location)
652
+ @route_project_number = args[:route_project_number] if args.key?(:route_project_number)
653
+ @route_type = args[:route_type] if args.key?(:route_type)
654
+ end
655
+ end
656
+
682
657
  # GrpcRoute is the resource defining how gRPC traffic routed by a Mesh or
683
658
  # Gateway resource is routed.
684
659
  class GrpcRoute
@@ -737,7 +712,7 @@ module Google
737
712
  # @return [Array<String>]
738
713
  attr_accessor :meshes
739
714
 
740
- # Required. Name of the GrpcRoute resource. It matches pattern `projects/*/
715
+ # Identifier. Name of the GrpcRoute resource. It matches pattern `projects/*/
741
716
  # locations/global/grpcRoutes/`
742
717
  # Corresponds to the JSON property `name`
743
718
  # @return [String]
@@ -974,7 +949,8 @@ module Google
974
949
  end
975
950
  end
976
951
 
977
- # The specifications for retries.
952
+ # The specifications for retries. Specifies one or more conditions for which
953
+ # this retry rule applies. Valid values are:
978
954
  class GrpcRouteRetryPolicy
979
955
  include Google::Apis::Core::Hashable
980
956
 
@@ -1038,7 +1014,8 @@ module Google
1038
1014
  # @return [String]
1039
1015
  attr_accessor :idle_timeout
1040
1016
 
1041
- # The specifications for retries.
1017
+ # The specifications for retries. Specifies one or more conditions for which
1018
+ # this retry rule applies. Valid values are:
1042
1019
  # Corresponds to the JSON property `retryPolicy`
1043
1020
  # @return [Google::Apis::NetworkservicesV1beta1::GrpcRouteRetryPolicy]
1044
1021
  attr_accessor :retry_policy
@@ -1214,7 +1191,7 @@ module Google
1214
1191
  # @return [Array<String>]
1215
1192
  attr_accessor :meshes
1216
1193
 
1217
- # Required. Name of the HttpRoute resource. It matches pattern `projects/*/
1194
+ # Identifier. Name of the HttpRoute resource. It matches pattern `projects/*/
1218
1195
  # locations/global/httpRoutes/http_route_name>`.
1219
1196
  # Corresponds to the JSON property `name`
1220
1197
  # @return [String]
@@ -2084,8 +2061,8 @@ module Google
2084
2061
  attr_accessor :extension_chains
2085
2062
 
2086
2063
  # Required. A list of references to the forwarding rules to which this service
2087
- # extension is attached to. At least one forwarding rule is required. There can
2088
- # be only one `LbRouteExtension` resource per forwarding rule.
2064
+ # extension is attached. At least one forwarding rule is required. There can be
2065
+ # only one `LbRouteExtension` resource per forwarding rule.
2089
2066
  # Corresponds to the JSON property `forwardingRules`
2090
2067
  # @return [Array<String>]
2091
2068
  attr_accessor :forwarding_rules
@@ -2099,8 +2076,8 @@ module Google
2099
2076
 
2100
2077
  # Required. All backend services and forwarding rules referenced by this
2101
2078
  # extension must share the same load balancing scheme. Supported values: `
2102
- # INTERNAL_MANAGED`, `EXTERNAL_MANAGED`. For more information, refer to [
2103
- # Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-
2079
+ # INTERNAL_MANAGED`, `EXTERNAL_MANAGED`. For more information, refer to [Backend
2080
+ # services overview](https://cloud.google.com/load-balancing/docs/backend-
2104
2081
  # service).
2105
2082
  # Corresponds to the JSON property `loadBalancingScheme`
2106
2083
  # @return [String]
@@ -2111,7 +2088,8 @@ module Google
2111
2088
  # message sent to the extension server. The metadata is available under the
2112
2089
  # namespace `com.google.lb_route_extension.`. The following variables are
2113
2090
  # supported in the metadata Struct: ``forwarding_rule_id`` - substituted with
2114
- # the forwarding rule's fully qualified resource name.
2091
+ # the forwarding rule's fully qualified resource name. This field is not
2092
+ # supported for plugin extensions. Setting it results in a validation error.
2115
2093
  # Corresponds to the JSON property `metadata`
2116
2094
  # @return [Hash<String,Object>]
2117
2095
  attr_accessor :metadata
@@ -2172,9 +2150,9 @@ module Google
2172
2150
  # @return [Array<Google::Apis::NetworkservicesV1beta1::ExtensionChain>]
2173
2151
  attr_accessor :extension_chains
2174
2152
 
2175
- # Required. A list of references to the forwarding rules to which this service
2176
- # extension is attached to. At least one forwarding rule is required. There can
2177
- # be only one `LBTrafficExtension` resource per forwarding rule.
2153
+ # Optional. A list of references to the forwarding rules to which this service
2154
+ # extension is attached. At least one forwarding rule is required. There can be
2155
+ # only one `LBTrafficExtension` resource per forwarding rule.
2178
2156
  # Corresponds to the JSON property `forwardingRules`
2179
2157
  # @return [Array<String>]
2180
2158
  attr_accessor :forwarding_rules
@@ -2188,8 +2166,8 @@ module Google
2188
2166
 
2189
2167
  # Required. All backend services and forwarding rules referenced by this
2190
2168
  # extension must share the same load balancing scheme. Supported values: `
2191
- # INTERNAL_MANAGED`, `EXTERNAL_MANAGED`. For more information, refer to [
2192
- # Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-
2169
+ # INTERNAL_MANAGED`, `EXTERNAL_MANAGED`. For more information, refer to [Backend
2170
+ # services overview](https://cloud.google.com/load-balancing/docs/backend-
2193
2171
  # service).
2194
2172
  # Corresponds to the JSON property `loadBalancingScheme`
2195
2173
  # @return [String]
@@ -2199,7 +2177,8 @@ module Google
2199
2177
  # metadata_context.filter_metadata` map field. The metadata is available under
2200
2178
  # the key `com.google.lb_traffic_extension.`. The following variables are
2201
2179
  # supported in the metadata: ``forwarding_rule_id`` - substituted with the
2202
- # forwarding rule's fully qualified resource name.
2180
+ # forwarding rule's fully qualified resource name. This field is not supported
2181
+ # for plugin extensions. Setting it results in a validation error.
2203
2182
  # Corresponds to the JSON property `metadata`
2204
2183
  # @return [Hash<String,Object>]
2205
2184
  attr_accessor :metadata
@@ -2234,6 +2213,37 @@ module Google
2234
2213
  end
2235
2214
  end
2236
2215
 
2216
+ # Message for response to listing `AuthzExtension` resources.
2217
+ class ListAuthzExtensionsResponse
2218
+ include Google::Apis::Core::Hashable
2219
+
2220
+ # The list of `AuthzExtension` resources.
2221
+ # Corresponds to the JSON property `authzExtensions`
2222
+ # @return [Array<Google::Apis::NetworkservicesV1beta1::AuthzExtension>]
2223
+ attr_accessor :authz_extensions
2224
+
2225
+ # A token identifying a page of results that the server returns.
2226
+ # Corresponds to the JSON property `nextPageToken`
2227
+ # @return [String]
2228
+ attr_accessor :next_page_token
2229
+
2230
+ # Locations that could not be reached.
2231
+ # Corresponds to the JSON property `unreachable`
2232
+ # @return [Array<String>]
2233
+ attr_accessor :unreachable
2234
+
2235
+ def initialize(**args)
2236
+ update!(**args)
2237
+ end
2238
+
2239
+ # Update properties of this object
2240
+ def update!(**args)
2241
+ @authz_extensions = args[:authz_extensions] if args.key?(:authz_extensions)
2242
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2243
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2244
+ end
2245
+ end
2246
+
2237
2247
  # Response returned by the ListEndpointPolicies method.
2238
2248
  class ListEndpointPoliciesResponse
2239
2249
  include Google::Apis::Core::Hashable
@@ -2261,6 +2271,32 @@ module Google
2261
2271
  end
2262
2272
  end
2263
2273
 
2274
+ # Response returned by the ListGatewayRouteViews method.
2275
+ class ListGatewayRouteViewsResponse
2276
+ include Google::Apis::Core::Hashable
2277
+
2278
+ # List of GatewayRouteView resources.
2279
+ # Corresponds to the JSON property `gatewayRouteViews`
2280
+ # @return [Array<Google::Apis::NetworkservicesV1beta1::GatewayRouteView>]
2281
+ attr_accessor :gateway_route_views
2282
+
2283
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
2284
+ # field is omitted, there are no subsequent pages.
2285
+ # Corresponds to the JSON property `nextPageToken`
2286
+ # @return [String]
2287
+ attr_accessor :next_page_token
2288
+
2289
+ def initialize(**args)
2290
+ update!(**args)
2291
+ end
2292
+
2293
+ # Update properties of this object
2294
+ def update!(**args)
2295
+ @gateway_route_views = args[:gateway_route_views] if args.key?(:gateway_route_views)
2296
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2297
+ end
2298
+ end
2299
+
2264
2300
  # Response returned by the ListGateways method.
2265
2301
  class ListGatewaysResponse
2266
2302
  include Google::Apis::Core::Hashable
@@ -2435,6 +2471,32 @@ module Google
2435
2471
  end
2436
2472
  end
2437
2473
 
2474
+ # Response returned by the ListMeshRouteViews method.
2475
+ class ListMeshRouteViewsResponse
2476
+ include Google::Apis::Core::Hashable
2477
+
2478
+ # List of MeshRouteView resources.
2479
+ # Corresponds to the JSON property `meshRouteViews`
2480
+ # @return [Array<Google::Apis::NetworkservicesV1beta1::MeshRouteView>]
2481
+ attr_accessor :mesh_route_views
2482
+
2483
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
2484
+ # field is omitted, there are no subsequent pages.
2485
+ # Corresponds to the JSON property `nextPageToken`
2486
+ # @return [String]
2487
+ attr_accessor :next_page_token
2488
+
2489
+ def initialize(**args)
2490
+ update!(**args)
2491
+ end
2492
+
2493
+ # Update properties of this object
2494
+ def update!(**args)
2495
+ @mesh_route_views = args[:mesh_route_views] if args.key?(:mesh_route_views)
2496
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2497
+ end
2498
+ end
2499
+
2438
2500
  # Response returned by the ListMeshes method.
2439
2501
  class ListMeshesResponse
2440
2502
  include Google::Apis::Core::Hashable
@@ -2595,6 +2657,60 @@ module Google
2595
2657
  end
2596
2658
  end
2597
2659
 
2660
+ # Response returned by the `ListWasmPluginVersions` method.
2661
+ class ListWasmPluginVersionsResponse
2662
+ include Google::Apis::Core::Hashable
2663
+
2664
+ # If there might be more results than those appearing in this response, then `
2665
+ # next_page_token` is included. To get the next set of results, call this method
2666
+ # again using the value of `next_page_token` as `page_token`.
2667
+ # Corresponds to the JSON property `nextPageToken`
2668
+ # @return [String]
2669
+ attr_accessor :next_page_token
2670
+
2671
+ # List of `WasmPluginVersion` resources.
2672
+ # Corresponds to the JSON property `wasmPluginVersions`
2673
+ # @return [Array<Google::Apis::NetworkservicesV1beta1::WasmPluginVersion>]
2674
+ attr_accessor :wasm_plugin_versions
2675
+
2676
+ def initialize(**args)
2677
+ update!(**args)
2678
+ end
2679
+
2680
+ # Update properties of this object
2681
+ def update!(**args)
2682
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2683
+ @wasm_plugin_versions = args[:wasm_plugin_versions] if args.key?(:wasm_plugin_versions)
2684
+ end
2685
+ end
2686
+
2687
+ # Response returned by the `ListWasmPlugins` method.
2688
+ class ListWasmPluginsResponse
2689
+ include Google::Apis::Core::Hashable
2690
+
2691
+ # If there might be more results than those appearing in this response, then `
2692
+ # next_page_token` is included. To get the next set of results, call this method
2693
+ # again using the value of `next_page_token` as `page_token`.
2694
+ # Corresponds to the JSON property `nextPageToken`
2695
+ # @return [String]
2696
+ attr_accessor :next_page_token
2697
+
2698
+ # List of `WasmPlugin` resources.
2699
+ # Corresponds to the JSON property `wasmPlugins`
2700
+ # @return [Array<Google::Apis::NetworkservicesV1beta1::WasmPlugin>]
2701
+ attr_accessor :wasm_plugins
2702
+
2703
+ def initialize(**args)
2704
+ update!(**args)
2705
+ end
2706
+
2707
+ # Update properties of this object
2708
+ def update!(**args)
2709
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2710
+ @wasm_plugins = args[:wasm_plugins] if args.key?(:wasm_plugins)
2711
+ end
2712
+ end
2713
+
2598
2714
  # A resource that represents a Google Cloud location.
2599
2715
  class Location
2600
2716
  include Google::Apis::Core::Hashable
@@ -2642,6 +2758,28 @@ module Google
2642
2758
  end
2643
2759
  end
2644
2760
 
2761
+ # The configuration for Platform Telemetry logging for Eventarc Avdvanced
2762
+ # resources.
2763
+ class LoggingConfig
2764
+ include Google::Apis::Core::Hashable
2765
+
2766
+ # Optional. The minimum severity of logs that will be sent to Stackdriver/
2767
+ # Platform Telemetry. Logs at severitiy ≥ this value will be sent, unless it is
2768
+ # NONE.
2769
+ # Corresponds to the JSON property `logSeverity`
2770
+ # @return [String]
2771
+ attr_accessor :log_severity
2772
+
2773
+ def initialize(**args)
2774
+ update!(**args)
2775
+ end
2776
+
2777
+ # Update properties of this object
2778
+ def update!(**args)
2779
+ @log_severity = args[:log_severity] if args.key?(:log_severity)
2780
+ end
2781
+ end
2782
+
2645
2783
  # Mesh represents a logical configuration grouping for workload to workload
2646
2784
  # communication within a service mesh. Routes that point to mesh dictate how
2647
2785
  # requests are routed within this logical mesh boundary.
@@ -2679,8 +2817,8 @@ module Google
2679
2817
  # @return [Hash<String,String>]
2680
2818
  attr_accessor :labels
2681
2819
 
2682
- # Required. Name of the Mesh resource. It matches pattern `projects/*/locations/
2683
- # global/meshes/`.
2820
+ # Identifier. Name of the Mesh resource. It matches pattern `projects/*/
2821
+ # locations/global/meshes/`.
2684
2822
  # Corresponds to the JSON property `name`
2685
2823
  # @return [String]
2686
2824
  attr_accessor :name
@@ -2712,6 +2850,51 @@ module Google
2712
2850
  end
2713
2851
  end
2714
2852
 
2853
+ # MeshRouteView defines view-only resource for Routes to a Mesh
2854
+ class MeshRouteView
2855
+ include Google::Apis::Core::Hashable
2856
+
2857
+ # Output only. Identifier. Full path name of the MeshRouteView resource. Format:
2858
+ # projects/`project_number`/locations/`location`/meshes/`mesh_name`/routeViews/`
2859
+ # route_view_name`
2860
+ # Corresponds to the JSON property `name`
2861
+ # @return [String]
2862
+ attr_accessor :name
2863
+
2864
+ # Output only. The resource id for the route.
2865
+ # Corresponds to the JSON property `routeId`
2866
+ # @return [String]
2867
+ attr_accessor :route_id
2868
+
2869
+ # Output only. Location where the route exists.
2870
+ # Corresponds to the JSON property `routeLocation`
2871
+ # @return [String]
2872
+ attr_accessor :route_location
2873
+
2874
+ # Output only. Project number where the route exists.
2875
+ # Corresponds to the JSON property `routeProjectNumber`
2876
+ # @return [Fixnum]
2877
+ attr_accessor :route_project_number
2878
+
2879
+ # Output only. Type of the route: HttpRoute,GrpcRoute,TcpRoute, or TlsRoute
2880
+ # Corresponds to the JSON property `routeType`
2881
+ # @return [String]
2882
+ attr_accessor :route_type
2883
+
2884
+ def initialize(**args)
2885
+ update!(**args)
2886
+ end
2887
+
2888
+ # Update properties of this object
2889
+ def update!(**args)
2890
+ @name = args[:name] if args.key?(:name)
2891
+ @route_id = args[:route_id] if args.key?(:route_id)
2892
+ @route_location = args[:route_location] if args.key?(:route_location)
2893
+ @route_project_number = args[:route_project_number] if args.key?(:route_project_number)
2894
+ @route_type = args[:route_type] if args.key?(:route_type)
2895
+ end
2896
+ end
2897
+
2715
2898
  # The matcher that is based on node metadata presented by xDS clients.
2716
2899
  class MetadataLabelMatcher
2717
2900
  include Google::Apis::Core::Hashable
@@ -2898,87 +3081,14 @@ module Google
2898
3081
  end
2899
3082
  end
2900
3083
 
2901
- # An Identity and Access Management (IAM) policy, which specifies access
2902
- # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2903
- # A `binding` binds one or more `members`, or principals, to a single `role`.
2904
- # Principals can be user accounts, service accounts, Google groups, and domains (
2905
- # such as G Suite). A `role` is a named list of permissions; each `role` can be
2906
- # an IAM predefined role or a user-created custom role. For some types of Google
2907
- # Cloud resources, a `binding` can also specify a `condition`, which is a
2908
- # logical expression that allows access to a resource only if the expression
2909
- # evaluates to `true`. A condition can add constraints based on attributes of
2910
- # the request, the resource, or both. To learn which resources support
2911
- # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2912
- # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
2913
- # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
2914
- # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
2915
- # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
2916
- # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
2917
- # ], "condition": ` "title": "expirable access", "description": "Does not grant
2918
- # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
2919
- # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
2920
- # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
2921
- # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
2922
- # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
2923
- # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
2924
- # title: expirable access description: Does not grant access after Sep 2020
2925
- # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
2926
- # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
2927
- # [IAM documentation](https://cloud.google.com/iam/docs/).
2928
- class Policy
2929
- include Google::Apis::Core::Hashable
2930
-
2931
- # Specifies cloud audit logging configuration for this policy.
2932
- # Corresponds to the JSON property `auditConfigs`
2933
- # @return [Array<Google::Apis::NetworkservicesV1beta1::AuditConfig>]
2934
- attr_accessor :audit_configs
2935
-
2936
- # Associates a list of `members`, or principals, with a `role`. Optionally, may
2937
- # specify a `condition` that determines how and when the `bindings` are applied.
2938
- # Each of the `bindings` must contain at least one principal. The `bindings` in
2939
- # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
2940
- # can be Google groups. Each occurrence of a principal counts towards these
2941
- # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
2942
- # example.com`, and not to any other principal, then you can add another 1,450
2943
- # principals to the `bindings` in the `Policy`.
2944
- # Corresponds to the JSON property `bindings`
2945
- # @return [Array<Google::Apis::NetworkservicesV1beta1::Binding>]
2946
- attr_accessor :bindings
2947
-
2948
- # `etag` is used for optimistic concurrency control as a way to help prevent
2949
- # simultaneous updates of a policy from overwriting each other. It is strongly
2950
- # suggested that systems make use of the `etag` in the read-modify-write cycle
2951
- # to perform policy updates in order to avoid race conditions: An `etag` is
2952
- # returned in the response to `getIamPolicy`, and systems are expected to put
2953
- # that etag in the request to `setIamPolicy` to ensure that their change will be
2954
- # applied to the same version of the policy. **Important:** If you use IAM
2955
- # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
2956
- # If you omit this field, then IAM allows you to overwrite a version `3` policy
2957
- # with a version `1` policy, and all of the conditions in the version `3` policy
2958
- # are lost.
2959
- # Corresponds to the JSON property `etag`
2960
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
3084
+ #
3085
+ class RetryFilterPerRouteConfig
3086
+ include Google::Apis::Core::Hashable
3087
+
3088
+ # The name of the crypto key to use for encrypting event data.
3089
+ # Corresponds to the JSON property `cryptoKeyName`
2961
3090
  # @return [String]
2962
- attr_accessor :etag
2963
-
2964
- # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
2965
- # Requests that specify an invalid value are rejected. Any operation that
2966
- # affects conditional role bindings must specify version `3`. This requirement
2967
- # applies to the following operations: * Getting a policy that includes a
2968
- # conditional role binding * Adding a conditional role binding to a policy *
2969
- # Changing a conditional role binding in a policy * Removing any role binding,
2970
- # with or without a condition, from a policy that includes conditions **
2971
- # Important:** If you use IAM Conditions, you must include the `etag` field
2972
- # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
2973
- # to overwrite a version `3` policy with a version `1` policy, and all of the
2974
- # conditions in the version `3` policy are lost. If a policy does not include
2975
- # any conditions, operations on that policy may specify any valid version or
2976
- # leave the field unset. To learn which resources support conditions in their
2977
- # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
2978
- # conditions/resource-policies).
2979
- # Corresponds to the JSON property `version`
2980
- # @return [Fixnum]
2981
- attr_accessor :version
3091
+ attr_accessor :crypto_key_name
2982
3092
 
2983
3093
  def initialize(**args)
2984
3094
  update!(**args)
@@ -2986,10 +3096,7 @@ module Google
2986
3096
 
2987
3097
  # Update properties of this object
2988
3098
  def update!(**args)
2989
- @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
2990
- @bindings = args[:bindings] if args.key?(:bindings)
2991
- @etag = args[:etag] if args.key?(:etag)
2992
- @version = args[:version] if args.key?(:version)
3099
+ @crypto_key_name = args[:crypto_key_name] if args.key?(:crypto_key_name)
2993
3100
  end
2994
3101
  end
2995
3102
 
@@ -3013,8 +3120,8 @@ module Google
3013
3120
  # @return [Hash<String,String>]
3014
3121
  attr_accessor :labels
3015
3122
 
3016
- # Required. Name of the ServiceBinding resource. It matches pattern `projects/*/
3017
- # locations/global/serviceBindings/service_binding_name`.
3123
+ # Identifier. Name of the ServiceBinding resource. It matches pattern `projects/*
3124
+ # /locations/global/serviceBindings/service_binding_name`.
3018
3125
  # Corresponds to the JSON property `name`
3019
3126
  # @return [String]
3020
3127
  attr_accessor :name
@@ -3092,8 +3199,8 @@ module Google
3092
3199
  # @return [String]
3093
3200
  attr_accessor :load_balancing_algorithm
3094
3201
 
3095
- # Required. Name of the ServiceLbPolicy resource. It matches pattern `projects/`
3096
- # project`/locations/`location`/serviceLbPolicies/`service_lb_policy_name``.
3202
+ # Identifier. Name of the ServiceLbPolicy resource. It matches pattern `projects/
3203
+ # `project`/locations/`location`/serviceLbPolicies/`service_lb_policy_name``.
3097
3204
  # Corresponds to the JSON property `name`
3098
3205
  # @return [String]
3099
3206
  attr_accessor :name
@@ -3169,59 +3276,6 @@ module Google
3169
3276
  end
3170
3277
  end
3171
3278
 
3172
- # Request message for `SetIamPolicy` method.
3173
- class SetIamPolicyRequest
3174
- include Google::Apis::Core::Hashable
3175
-
3176
- # An Identity and Access Management (IAM) policy, which specifies access
3177
- # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
3178
- # A `binding` binds one or more `members`, or principals, to a single `role`.
3179
- # Principals can be user accounts, service accounts, Google groups, and domains (
3180
- # such as G Suite). A `role` is a named list of permissions; each `role` can be
3181
- # an IAM predefined role or a user-created custom role. For some types of Google
3182
- # Cloud resources, a `binding` can also specify a `condition`, which is a
3183
- # logical expression that allows access to a resource only if the expression
3184
- # evaluates to `true`. A condition can add constraints based on attributes of
3185
- # the request, the resource, or both. To learn which resources support
3186
- # conditions in their IAM policies, see the [IAM documentation](https://cloud.
3187
- # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
3188
- # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
3189
- # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
3190
- # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
3191
- # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
3192
- # ], "condition": ` "title": "expirable access", "description": "Does not grant
3193
- # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
3194
- # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
3195
- # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
3196
- # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
3197
- # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
3198
- # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
3199
- # title: expirable access description: Does not grant access after Sep 2020
3200
- # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
3201
- # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
3202
- # [IAM documentation](https://cloud.google.com/iam/docs/).
3203
- # Corresponds to the JSON property `policy`
3204
- # @return [Google::Apis::NetworkservicesV1beta1::Policy]
3205
- attr_accessor :policy
3206
-
3207
- # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
3208
- # the fields in the mask will be modified. If no mask is provided, the following
3209
- # default mask is used: `paths: "bindings, etag"`
3210
- # Corresponds to the JSON property `updateMask`
3211
- # @return [String]
3212
- attr_accessor :update_mask
3213
-
3214
- def initialize(**args)
3215
- update!(**args)
3216
- end
3217
-
3218
- # Update properties of this object
3219
- def update!(**args)
3220
- @policy = args[:policy] if args.key?(:policy)
3221
- @update_mask = args[:update_mask] if args.key?(:update_mask)
3222
- end
3223
- end
3224
-
3225
3279
  # The `Status` type defines a logical error model that is suitable for different
3226
3280
  # programming environments, including REST APIs and RPC APIs. It is used by [
3227
3281
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
@@ -3297,7 +3351,7 @@ module Google
3297
3351
  # @return [Array<String>]
3298
3352
  attr_accessor :meshes
3299
3353
 
3300
- # Required. Name of the TcpRoute resource. It matches pattern `projects/*/
3354
+ # Identifier. Name of the TcpRoute resource. It matches pattern `projects/*/
3301
3355
  # locations/global/tcpRoutes/tcp_route_name>`.
3302
3356
  # Corresponds to the JSON property `name`
3303
3357
  # @return [String]
@@ -3470,46 +3524,6 @@ module Google
3470
3524
  end
3471
3525
  end
3472
3526
 
3473
- # Request message for `TestIamPermissions` method.
3474
- class TestIamPermissionsRequest
3475
- include Google::Apis::Core::Hashable
3476
-
3477
- # The set of permissions to check for the `resource`. Permissions with wildcards
3478
- # (such as `*` or `storage.*`) are not allowed. For more information see [IAM
3479
- # Overview](https://cloud.google.com/iam/docs/overview#permissions).
3480
- # Corresponds to the JSON property `permissions`
3481
- # @return [Array<String>]
3482
- attr_accessor :permissions
3483
-
3484
- def initialize(**args)
3485
- update!(**args)
3486
- end
3487
-
3488
- # Update properties of this object
3489
- def update!(**args)
3490
- @permissions = args[:permissions] if args.key?(:permissions)
3491
- end
3492
- end
3493
-
3494
- # Response message for `TestIamPermissions` method.
3495
- class TestIamPermissionsResponse
3496
- include Google::Apis::Core::Hashable
3497
-
3498
- # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
3499
- # Corresponds to the JSON property `permissions`
3500
- # @return [Array<String>]
3501
- attr_accessor :permissions
3502
-
3503
- def initialize(**args)
3504
- update!(**args)
3505
- end
3506
-
3507
- # Update properties of this object
3508
- def update!(**args)
3509
- @permissions = args[:permissions] if args.key?(:permissions)
3510
- end
3511
- end
3512
-
3513
3527
  # TlsRoute defines how traffic should be routed based on SNI and other matching
3514
3528
  # L3 attributes.
3515
3529
  class TlsRoute
@@ -3725,6 +3739,333 @@ module Google
3725
3739
  @ports = args[:ports] if args.key?(:ports)
3726
3740
  end
3727
3741
  end
3742
+
3743
+ # `WasmPlugin` is a resource representing a service executing a customer-
3744
+ # provided Wasm module.
3745
+ class WasmPlugin
3746
+ include Google::Apis::Core::Hashable
3747
+
3748
+ # Output only. The timestamp when the resource was created.
3749
+ # Corresponds to the JSON property `createTime`
3750
+ # @return [String]
3751
+ attr_accessor :create_time
3752
+
3753
+ # Optional. A human-readable description of the resource.
3754
+ # Corresponds to the JSON property `description`
3755
+ # @return [String]
3756
+ attr_accessor :description
3757
+
3758
+ # Optional. Set of labels associated with the `WasmPlugin` resource. The format
3759
+ # must comply with [the following requirements](/compute/docs/labeling-resources#
3760
+ # requirements).
3761
+ # Corresponds to the JSON property `labels`
3762
+ # @return [Hash<String,String>]
3763
+ attr_accessor :labels
3764
+
3765
+ # Specifies the logging options for the activity performed by this plugin. If
3766
+ # logging is enabled, plugin logs are exported to Cloud Logging.
3767
+ # Corresponds to the JSON property `logConfig`
3768
+ # @return [Google::Apis::NetworkservicesV1beta1::WasmPluginLogConfig]
3769
+ attr_accessor :log_config
3770
+
3771
+ # Optional. The ID of the `WasmPluginVersion` resource that is the currently
3772
+ # serving one. The version referred to must be a child of this `WasmPlugin`
3773
+ # resource.
3774
+ # Corresponds to the JSON property `mainVersionId`
3775
+ # @return [String]
3776
+ attr_accessor :main_version_id
3777
+
3778
+ # Identifier. Name of the `WasmPlugin` resource in the following format: `
3779
+ # projects/`project`/locations/`location`/wasmPlugins/`wasm_plugin``.
3780
+ # Corresponds to the JSON property `name`
3781
+ # @return [String]
3782
+ attr_accessor :name
3783
+
3784
+ # Output only. The timestamp when the resource was updated.
3785
+ # Corresponds to the JSON property `updateTime`
3786
+ # @return [String]
3787
+ attr_accessor :update_time
3788
+
3789
+ # Output only. List of all [extensions](https://cloud.google.com/service-
3790
+ # extensions/docs/overview) that use this `WasmPlugin` resource.
3791
+ # Corresponds to the JSON property `usedBy`
3792
+ # @return [Array<Google::Apis::NetworkservicesV1beta1::WasmPluginUsedBy>]
3793
+ attr_accessor :used_by
3794
+
3795
+ # Optional. All versions of this `WasmPlugin` resource in the key-value format.
3796
+ # The key is the resource ID, and the value is the `VersionDetails` object. Lets
3797
+ # you create or update a `WasmPlugin` resource and its versions in a single
3798
+ # request. When the `main_version_id` field is not empty, it must point to one
3799
+ # of the `VersionDetails` objects in the map. If provided in a `PATCH` request,
3800
+ # the new versions replace the previous set. Any version omitted from the `
3801
+ # versions` field is removed. Because the `WasmPluginVersion` resource is
3802
+ # immutable, if a `WasmPluginVersion` resource with the same name already exists
3803
+ # and differs, the request fails. Note: In a `GET` request, this field is
3804
+ # populated only if the field `GetWasmPluginRequest.view` is set to `
3805
+ # WASM_PLUGIN_VIEW_FULL`.
3806
+ # Corresponds to the JSON property `versions`
3807
+ # @return [Hash<String,Google::Apis::NetworkservicesV1beta1::WasmPluginVersionDetails>]
3808
+ attr_accessor :versions
3809
+
3810
+ def initialize(**args)
3811
+ update!(**args)
3812
+ end
3813
+
3814
+ # Update properties of this object
3815
+ def update!(**args)
3816
+ @create_time = args[:create_time] if args.key?(:create_time)
3817
+ @description = args[:description] if args.key?(:description)
3818
+ @labels = args[:labels] if args.key?(:labels)
3819
+ @log_config = args[:log_config] if args.key?(:log_config)
3820
+ @main_version_id = args[:main_version_id] if args.key?(:main_version_id)
3821
+ @name = args[:name] if args.key?(:name)
3822
+ @update_time = args[:update_time] if args.key?(:update_time)
3823
+ @used_by = args[:used_by] if args.key?(:used_by)
3824
+ @versions = args[:versions] if args.key?(:versions)
3825
+ end
3826
+ end
3827
+
3828
+ # Specifies the logging options for the activity performed by this plugin. If
3829
+ # logging is enabled, plugin logs are exported to Cloud Logging.
3830
+ class WasmPluginLogConfig
3831
+ include Google::Apis::Core::Hashable
3832
+
3833
+ # Optional. Specifies whether to enable logging for activity by this plugin.
3834
+ # Defaults to `false`.
3835
+ # Corresponds to the JSON property `enable`
3836
+ # @return [Boolean]
3837
+ attr_accessor :enable
3838
+ alias_method :enable?, :enable
3839
+
3840
+ # Non-empty default. Specificies the lowest level of the plugin logs that are
3841
+ # exported to Cloud Logging. This setting relates to the logs generated by using
3842
+ # logging statements in your Wasm code. This field is can be set only if logging
3843
+ # is enabled for the plugin. If the field is not provided when logging is
3844
+ # enabled, it is set to `INFO` by default.
3845
+ # Corresponds to the JSON property `minLogLevel`
3846
+ # @return [String]
3847
+ attr_accessor :min_log_level
3848
+
3849
+ # Non-empty default. Configures the sampling rate of activity logs, where `1.0`
3850
+ # means all logged activity is reported and `0.0` means no activity is reported.
3851
+ # A floating point value between `0.0` and `1.0` indicates that a percentage of
3852
+ # log messages is stored. The default value when logging is enabled is `1.0`.
3853
+ # The value of the field must be between `0` and `1` (inclusive). This field can
3854
+ # be specified only if logging is enabled for this plugin.
3855
+ # Corresponds to the JSON property `sampleRate`
3856
+ # @return [Float]
3857
+ attr_accessor :sample_rate
3858
+
3859
+ def initialize(**args)
3860
+ update!(**args)
3861
+ end
3862
+
3863
+ # Update properties of this object
3864
+ def update!(**args)
3865
+ @enable = args[:enable] if args.key?(:enable)
3866
+ @min_log_level = args[:min_log_level] if args.key?(:min_log_level)
3867
+ @sample_rate = args[:sample_rate] if args.key?(:sample_rate)
3868
+ end
3869
+ end
3870
+
3871
+ # Defines a resource that uses the `WasmPlugin` resource.
3872
+ class WasmPluginUsedBy
3873
+ include Google::Apis::Core::Hashable
3874
+
3875
+ # Output only. Full name of the resource https://google.aip.dev/122#full-
3876
+ # resource-names, for example `//networkservices.googleapis.com/projects/`
3877
+ # project`/locations/`location`/lbRouteExtensions/`extension``
3878
+ # Corresponds to the JSON property `name`
3879
+ # @return [String]
3880
+ attr_accessor :name
3881
+
3882
+ def initialize(**args)
3883
+ update!(**args)
3884
+ end
3885
+
3886
+ # Update properties of this object
3887
+ def update!(**args)
3888
+ @name = args[:name] if args.key?(:name)
3889
+ end
3890
+ end
3891
+
3892
+ # A single immutable version of a `WasmPlugin` resource. Defines the Wasm module
3893
+ # used and optionally its runtime config.
3894
+ class WasmPluginVersion
3895
+ include Google::Apis::Core::Hashable
3896
+
3897
+ # Output only. The timestamp when the resource was created.
3898
+ # Corresponds to the JSON property `createTime`
3899
+ # @return [String]
3900
+ attr_accessor :create_time
3901
+
3902
+ # Optional. A human-readable description of the resource.
3903
+ # Corresponds to the JSON property `description`
3904
+ # @return [String]
3905
+ attr_accessor :description
3906
+
3907
+ # Output only. The resolved digest for the image specified in the `image` field.
3908
+ # The digest is resolved during the creation of `WasmPluginVersion` resource.
3909
+ # This field holds the digest value, regardless of whether a tag or digest was
3910
+ # originally specified in the `image` field.
3911
+ # Corresponds to the JSON property `imageDigest`
3912
+ # @return [String]
3913
+ attr_accessor :image_digest
3914
+
3915
+ # Optional. URI of the container image containing the plugin, stored in the
3916
+ # Artifact Registry. When a new `WasmPluginVersion` resource is created, the
3917
+ # digest of the container image is saved in the `image_digest` field. When
3918
+ # downloading an image, the digest value is used instead of an image tag.
3919
+ # Corresponds to the JSON property `imageUri`
3920
+ # @return [String]
3921
+ attr_accessor :image_uri
3922
+
3923
+ # Optional. Set of labels associated with the `WasmPluginVersion` resource.
3924
+ # Corresponds to the JSON property `labels`
3925
+ # @return [Hash<String,String>]
3926
+ attr_accessor :labels
3927
+
3928
+ # Identifier. Name of the `WasmPluginVersion` resource in the following format: `
3929
+ # projects/`project`/locations/`location`/wasmPlugins/`wasm_plugin`/ versions/`
3930
+ # wasm_plugin_version``.
3931
+ # Corresponds to the JSON property `name`
3932
+ # @return [String]
3933
+ attr_accessor :name
3934
+
3935
+ # Configuration for the plugin. The configuration is provided to the plugin at
3936
+ # runtime through the `ON_CONFIGURE` callback. When a new `WasmPluginVersion`
3937
+ # resource is created, the digest of the contents is saved in the `
3938
+ # plugin_config_digest` field.
3939
+ # Corresponds to the JSON property `pluginConfigData`
3940
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
3941
+ # @return [String]
3942
+ attr_accessor :plugin_config_data
3943
+
3944
+ # Output only. This field holds the digest (usually checksum) value for the
3945
+ # plugin configuration. The value is calculated based on the contents of `
3946
+ # plugin_config_data` or the container image defined by the `plugin_config_uri`
3947
+ # field.
3948
+ # Corresponds to the JSON property `pluginConfigDigest`
3949
+ # @return [String]
3950
+ attr_accessor :plugin_config_digest
3951
+
3952
+ # URI of the plugin configuration stored in the Artifact Registry. The
3953
+ # configuration is provided to the plugin at runtime through the `ON_CONFIGURE`
3954
+ # callback. The container image must contain only a single file with the name `
3955
+ # plugin.config`. When a new `WasmPluginVersion` resource is created, the digest
3956
+ # of the container image is saved in the `plugin_config_digest` field.
3957
+ # Corresponds to the JSON property `pluginConfigUri`
3958
+ # @return [String]
3959
+ attr_accessor :plugin_config_uri
3960
+
3961
+ # Output only. The timestamp when the resource was updated.
3962
+ # Corresponds to the JSON property `updateTime`
3963
+ # @return [String]
3964
+ attr_accessor :update_time
3965
+
3966
+ def initialize(**args)
3967
+ update!(**args)
3968
+ end
3969
+
3970
+ # Update properties of this object
3971
+ def update!(**args)
3972
+ @create_time = args[:create_time] if args.key?(:create_time)
3973
+ @description = args[:description] if args.key?(:description)
3974
+ @image_digest = args[:image_digest] if args.key?(:image_digest)
3975
+ @image_uri = args[:image_uri] if args.key?(:image_uri)
3976
+ @labels = args[:labels] if args.key?(:labels)
3977
+ @name = args[:name] if args.key?(:name)
3978
+ @plugin_config_data = args[:plugin_config_data] if args.key?(:plugin_config_data)
3979
+ @plugin_config_digest = args[:plugin_config_digest] if args.key?(:plugin_config_digest)
3980
+ @plugin_config_uri = args[:plugin_config_uri] if args.key?(:plugin_config_uri)
3981
+ @update_time = args[:update_time] if args.key?(:update_time)
3982
+ end
3983
+ end
3984
+
3985
+ # Details of a `WasmPluginVersion` resource to be inlined in the `WasmPlugin`
3986
+ # resource.
3987
+ class WasmPluginVersionDetails
3988
+ include Google::Apis::Core::Hashable
3989
+
3990
+ # Output only. The timestamp when the resource was created.
3991
+ # Corresponds to the JSON property `createTime`
3992
+ # @return [String]
3993
+ attr_accessor :create_time
3994
+
3995
+ # Optional. A human-readable description of the resource.
3996
+ # Corresponds to the JSON property `description`
3997
+ # @return [String]
3998
+ attr_accessor :description
3999
+
4000
+ # Output only. The resolved digest for the image specified in `image`. The
4001
+ # digest is resolved during the creation of a `WasmPluginVersion` resource. This
4002
+ # field holds the digest value regardless of whether a tag or digest was
4003
+ # originally specified in the `image` field.
4004
+ # Corresponds to the JSON property `imageDigest`
4005
+ # @return [String]
4006
+ attr_accessor :image_digest
4007
+
4008
+ # Optional. URI of the container image containing the Wasm module, stored in the
4009
+ # Artifact Registry. The container image must contain only a single file with
4010
+ # the name `plugin.wasm`. When a new `WasmPluginVersion` resource is created,
4011
+ # the URI gets resolved to an image digest and saved in the `image_digest` field.
4012
+ # Corresponds to the JSON property `imageUri`
4013
+ # @return [String]
4014
+ attr_accessor :image_uri
4015
+
4016
+ # Optional. Set of labels associated with the `WasmPluginVersion` resource.
4017
+ # Corresponds to the JSON property `labels`
4018
+ # @return [Hash<String,String>]
4019
+ attr_accessor :labels
4020
+
4021
+ # Configuration for the plugin. The configuration is provided to the plugin at
4022
+ # runtime through the `ON_CONFIGURE` callback. When a new `WasmPluginVersion`
4023
+ # version is created, the digest of the contents is saved in the `
4024
+ # plugin_config_digest` field.
4025
+ # Corresponds to the JSON property `pluginConfigData`
4026
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
4027
+ # @return [String]
4028
+ attr_accessor :plugin_config_data
4029
+
4030
+ # Output only. This field holds the digest (usually checksum) value for the
4031
+ # plugin configuration. The value is calculated based on the contents of the `
4032
+ # plugin_config_data` field or the container image defined by the `
4033
+ # plugin_config_uri` field.
4034
+ # Corresponds to the JSON property `pluginConfigDigest`
4035
+ # @return [String]
4036
+ attr_accessor :plugin_config_digest
4037
+
4038
+ # URI of the plugin configuration stored in the Artifact Registry. The
4039
+ # configuration is provided to the plugin at runtime through the `ON_CONFIGURE`
4040
+ # callback. The container image must contain only a single file with the name `
4041
+ # plugin.config`. When a new `WasmPluginVersion` resource is created, the digest
4042
+ # of the container image is saved in the `plugin_config_digest` field.
4043
+ # Corresponds to the JSON property `pluginConfigUri`
4044
+ # @return [String]
4045
+ attr_accessor :plugin_config_uri
4046
+
4047
+ # Output only. The timestamp when the resource was updated.
4048
+ # Corresponds to the JSON property `updateTime`
4049
+ # @return [String]
4050
+ attr_accessor :update_time
4051
+
4052
+ def initialize(**args)
4053
+ update!(**args)
4054
+ end
4055
+
4056
+ # Update properties of this object
4057
+ def update!(**args)
4058
+ @create_time = args[:create_time] if args.key?(:create_time)
4059
+ @description = args[:description] if args.key?(:description)
4060
+ @image_digest = args[:image_digest] if args.key?(:image_digest)
4061
+ @image_uri = args[:image_uri] if args.key?(:image_uri)
4062
+ @labels = args[:labels] if args.key?(:labels)
4063
+ @plugin_config_data = args[:plugin_config_data] if args.key?(:plugin_config_data)
4064
+ @plugin_config_digest = args[:plugin_config_digest] if args.key?(:plugin_config_digest)
4065
+ @plugin_config_uri = args[:plugin_config_uri] if args.key?(:plugin_config_uri)
4066
+ @update_time = args[:update_time] if args.key?(:update_time)
4067
+ end
4068
+ end
3728
4069
  end
3729
4070
  end
3730
4071
  end