google-apis-networkservices_v1beta1 0.44.0 → 0.45.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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