google-apis-networkservices_v1 0.48.0 → 0.50.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.
@@ -93,6 +93,131 @@ module Google
93
93
  end
94
94
  end
95
95
 
96
+ # `AuthzExtension` is a resource that allows traffic forwarding to a callout
97
+ # backend service to make an authorization decision.
98
+ class AuthzExtension
99
+ include Google::Apis::Core::Hashable
100
+
101
+ # Required. The `:authority` header in the gRPC request sent from Envoy to the
102
+ # extension service.
103
+ # Corresponds to the JSON property `authority`
104
+ # @return [String]
105
+ attr_accessor :authority
106
+
107
+ # Output only. The timestamp when the resource was created.
108
+ # Corresponds to the JSON property `createTime`
109
+ # @return [String]
110
+ attr_accessor :create_time
111
+
112
+ # Optional. A human-readable description of the resource.
113
+ # Corresponds to the JSON property `description`
114
+ # @return [String]
115
+ attr_accessor :description
116
+
117
+ # Optional. Determines how the proxy behaves if the call to the extension fails
118
+ # or times out. When set to `TRUE`, request or response processing continues
119
+ # without error. Any subsequent extensions in the extension chain are also
120
+ # executed. When set to `FALSE` or the default setting of `FALSE` is used, one
121
+ # of the following happens: * If response headers have not been delivered to the
122
+ # downstream client, a generic 500 error is returned to the client. The error
123
+ # response can be tailored by configuring a custom error response in the load
124
+ # balancer. * If response headers have been delivered, then the HTTP stream to
125
+ # the downstream client is reset.
126
+ # Corresponds to the JSON property `failOpen`
127
+ # @return [Boolean]
128
+ attr_accessor :fail_open
129
+ alias_method :fail_open?, :fail_open
130
+
131
+ # Optional. List of the HTTP headers to forward to the extension (from the
132
+ # client). If omitted, all headers are sent. Each element is a string indicating
133
+ # the header name.
134
+ # Corresponds to the JSON property `forwardHeaders`
135
+ # @return [Array<String>]
136
+ attr_accessor :forward_headers
137
+
138
+ # Optional. Set of labels associated with the `AuthzExtension` resource. The
139
+ # format must comply with [the requirements for labels](/compute/docs/labeling-
140
+ # resources#requirements) for Google Cloud resources.
141
+ # Corresponds to the JSON property `labels`
142
+ # @return [Hash<String,String>]
143
+ attr_accessor :labels
144
+
145
+ # Required. All backend services and forwarding rules referenced by this
146
+ # extension must share the same load balancing scheme. Supported values: `
147
+ # INTERNAL_MANAGED`, `EXTERNAL_MANAGED`. For more information, refer to [Backend
148
+ # services overview](https://cloud.google.com/load-balancing/docs/backend-
149
+ # service).
150
+ # Corresponds to the JSON property `loadBalancingScheme`
151
+ # @return [String]
152
+ attr_accessor :load_balancing_scheme
153
+
154
+ # Optional. The metadata provided here is included as part of the `
155
+ # metadata_context` (of type `google.protobuf.Struct`) in the `ProcessingRequest`
156
+ # message sent to the extension server. The metadata is available under the
157
+ # namespace `com.google.authz_extension.`. The following variables are supported
158
+ # in the metadata Struct: ``forwarding_rule_id`` - substituted with the
159
+ # forwarding rule's fully qualified resource name.
160
+ # Corresponds to the JSON property `metadata`
161
+ # @return [Hash<String,Object>]
162
+ attr_accessor :metadata
163
+
164
+ # Required. Identifier. Name of the `AuthzExtension` resource in the following
165
+ # format: `projects/`project`/locations/`location`/authzExtensions/`
166
+ # authz_extension``.
167
+ # Corresponds to the JSON property `name`
168
+ # @return [String]
169
+ attr_accessor :name
170
+
171
+ # Required. The reference to the service that runs the extension. To configure a
172
+ # callout extension, `service` must be a fully-qualified reference to a [backend
173
+ # service](https://cloud.google.com/compute/docs/reference/rest/v1/
174
+ # backendServices) in the format: `https://www.googleapis.com/compute/v1/
175
+ # projects/`project`/regions/`region`/backendServices/`backendService`` or `
176
+ # https://www.googleapis.com/compute/v1/projects/`project`/global/
177
+ # backendServices/`backendService``.
178
+ # Corresponds to the JSON property `service`
179
+ # @return [String]
180
+ attr_accessor :service
181
+
182
+ # Required. Specifies the timeout for each individual message on the stream. The
183
+ # timeout must be between 10-10000 milliseconds.
184
+ # Corresponds to the JSON property `timeout`
185
+ # @return [String]
186
+ attr_accessor :timeout
187
+
188
+ # Output only. The timestamp when the resource was updated.
189
+ # Corresponds to the JSON property `updateTime`
190
+ # @return [String]
191
+ attr_accessor :update_time
192
+
193
+ # Optional. The format of communication supported by the callout extension. If
194
+ # not specified, the default is `EXT_PROC_GRPC`.
195
+ # Corresponds to the JSON property `wireFormat`
196
+ # @return [String]
197
+ attr_accessor :wire_format
198
+
199
+ def initialize(**args)
200
+ update!(**args)
201
+ end
202
+
203
+ # Update properties of this object
204
+ def update!(**args)
205
+ @authority = args[:authority] if args.key?(:authority)
206
+ @create_time = args[:create_time] if args.key?(:create_time)
207
+ @description = args[:description] if args.key?(:description)
208
+ @fail_open = args[:fail_open] if args.key?(:fail_open)
209
+ @forward_headers = args[:forward_headers] if args.key?(:forward_headers)
210
+ @labels = args[:labels] if args.key?(:labels)
211
+ @load_balancing_scheme = args[:load_balancing_scheme] if args.key?(:load_balancing_scheme)
212
+ @metadata = args[:metadata] if args.key?(:metadata)
213
+ @name = args[:name] if args.key?(:name)
214
+ @service = args[:service] if args.key?(:service)
215
+ @timeout = args[:timeout] if args.key?(:timeout)
216
+ @update_time = args[:update_time] if args.key?(:update_time)
217
+ @wire_format = args[:wire_format] if args.key?(:wire_format)
218
+ end
219
+ end
220
+
96
221
  # Associates `members`, or principals, with a `role`.
97
222
  class Binding
98
223
  include Google::Apis::Core::Hashable
@@ -503,7 +628,8 @@ module Google
503
628
  include Google::Apis::Core::Hashable
504
629
 
505
630
  # Optional. The `:authority` header in the gRPC request sent from Envoy to the
506
- # extension service. Required for Callout extensions.
631
+ # extension service. Required for Callout extensions. This field is not
632
+ # supported for plugin extensions. Setting it results in a validation error.
507
633
  # Corresponds to the JSON property `authority`
508
634
  # @return [String]
509
635
  attr_accessor :authority
@@ -529,6 +655,18 @@ module Google
529
655
  # @return [Array<String>]
530
656
  attr_accessor :forward_headers
531
657
 
658
+ # Optional. The metadata provided here is included as part of the `
659
+ # metadata_context` (of type `google.protobuf.Struct`) in the `ProcessingRequest`
660
+ # message sent to the extension server. The metadata is available under the
661
+ # namespace `com.google....`. For example: `com.google.lb_traffic_extension.
662
+ # lbtrafficextension1.chain1.ext1`. The following variables are supported in the
663
+ # metadata: ``forwarding_rule_id`` - substituted with the forwarding rule's
664
+ # fully qualified resource name. This field is not supported for plugin
665
+ # extensions. Setting it results in a validation error.
666
+ # Corresponds to the JSON property `metadata`
667
+ # @return [Hash<String,Object>]
668
+ attr_accessor :metadata
669
+
532
670
  # Required. The name for this extension. The name is logged as part of the HTTP
533
671
  # request logs. The name must conform with RFC-1034, is restricted to lower-
534
672
  # cased letters, numbers and hyphens, and can have a maximum length of 63
@@ -538,26 +676,35 @@ module Google
538
676
  # @return [String]
539
677
  attr_accessor :name
540
678
 
541
- # Required. The reference to the service that runs the extension. Currently only
542
- # callout extensions are supported here. To configure a callout extension, `
543
- # service` must be a fully-qualified reference to a [backend service](https://
544
- # cloud.google.com/compute/docs/reference/rest/v1/backendServices) in the format:
545
- # `https://www.googleapis.com/compute/v1/projects/`project`/regions/`region`/
546
- # backendServices/`backendService`` or `https://www.googleapis.com/compute/v1/
547
- # projects/`project`/global/backendServices/`backendService``.
679
+ # Required. The reference to the service that runs the extension. To configure a
680
+ # callout extension, `service` must be a fully-qualified reference to a [backend
681
+ # service](https://cloud.google.com/compute/docs/reference/rest/v1/
682
+ # backendServices) in the format: `https://www.googleapis.com/compute/v1/
683
+ # projects/`project`/regions/`region`/backendServices/`backendService`` or `
684
+ # https://www.googleapis.com/compute/v1/projects/`project`/global/
685
+ # backendServices/`backendService``. To configure a plugin extension, `service`
686
+ # must be a reference to a [`WasmPlugin` resource](https://cloud.google.com/
687
+ # service-extensions/docs/reference/rest/v1beta1/projects.locations.wasmPlugins)
688
+ # in the format: `projects/`project`/locations/`location`/wasmPlugins/`plugin``
689
+ # or `//networkservices.googleapis.com/projects/`project`/locations/`location`/
690
+ # wasmPlugins/`wasmPlugin``. Plugin extensions are currently supported for the `
691
+ # LbTrafficExtension` and the `LbRouteExtension` resources.
548
692
  # Corresponds to the JSON property `service`
549
693
  # @return [String]
550
694
  attr_accessor :service
551
695
 
552
696
  # Optional. A set of events during request or response processing for which this
553
697
  # extension is called. This field is required for the `LbTrafficExtension`
554
- # resource. It must not be set for the `LbRouteExtension` resource.
698
+ # resource. It must not be set for the `LbRouteExtension` resource, otherwise a
699
+ # validation error is returned.
555
700
  # Corresponds to the JSON property `supportedEvents`
556
701
  # @return [Array<String>]
557
702
  attr_accessor :supported_events
558
703
 
559
704
  # Optional. Specifies the timeout for each individual message on the stream. The
560
- # timeout must be between 10-1000 milliseconds. Required for Callout extensions.
705
+ # timeout must be between `10`-`1000` milliseconds. Required for callout
706
+ # extensions. This field is not supported for plugin extensions. Setting it
707
+ # results in a validation error.
561
708
  # Corresponds to the JSON property `timeout`
562
709
  # @return [String]
563
710
  attr_accessor :timeout
@@ -571,6 +718,7 @@ module Google
571
718
  @authority = args[:authority] if args.key?(:authority)
572
719
  @fail_open = args[:fail_open] if args.key?(:fail_open)
573
720
  @forward_headers = args[:forward_headers] if args.key?(:forward_headers)
721
+ @metadata = args[:metadata] if args.key?(:metadata)
574
722
  @name = args[:name] if args.key?(:name)
575
723
  @service = args[:service] if args.key?(:service)
576
724
  @supported_events = args[:supported_events] if args.key?(:supported_events)
@@ -752,6 +900,51 @@ module Google
752
900
  end
753
901
  end
754
902
 
903
+ # GatewayRouteView defines view-only resource for Routes to a Gateway
904
+ class GatewayRouteView
905
+ include Google::Apis::Core::Hashable
906
+
907
+ # Output only. Identifier. Full path name of the GatewayRouteView resource.
908
+ # Format: projects/`project_number`/locations/`location`/gateways/`gateway_name`/
909
+ # routeViews/`route_view_name`
910
+ # Corresponds to the JSON property `name`
911
+ # @return [String]
912
+ attr_accessor :name
913
+
914
+ # Output only. The resource id for the route.
915
+ # Corresponds to the JSON property `routeId`
916
+ # @return [String]
917
+ attr_accessor :route_id
918
+
919
+ # Output only. Location where the route exists.
920
+ # Corresponds to the JSON property `routeLocation`
921
+ # @return [String]
922
+ attr_accessor :route_location
923
+
924
+ # Output only. Project number where the route exists.
925
+ # Corresponds to the JSON property `routeProjectNumber`
926
+ # @return [Fixnum]
927
+ attr_accessor :route_project_number
928
+
929
+ # Output only. Type of the route: HttpRoute,GrpcRoute,TcpRoute, or TlsRoute
930
+ # Corresponds to the JSON property `routeType`
931
+ # @return [String]
932
+ attr_accessor :route_type
933
+
934
+ def initialize(**args)
935
+ update!(**args)
936
+ end
937
+
938
+ # Update properties of this object
939
+ def update!(**args)
940
+ @name = args[:name] if args.key?(:name)
941
+ @route_id = args[:route_id] if args.key?(:route_id)
942
+ @route_location = args[:route_location] if args.key?(:route_location)
943
+ @route_project_number = args[:route_project_number] if args.key?(:route_project_number)
944
+ @route_type = args[:route_type] if args.key?(:route_type)
945
+ end
946
+ end
947
+
755
948
  # GrpcRoute is the resource defining how gRPC traffic routed by a Mesh or
756
949
  # Gateway resource is routed.
757
950
  class GrpcRoute
@@ -2159,8 +2352,8 @@ module Google
2159
2352
  attr_accessor :extension_chains
2160
2353
 
2161
2354
  # Required. A list of references to the forwarding rules to which this service
2162
- # extension is attached to. At least one forwarding rule is required. There can
2163
- # be only one `LbRouteExtension` resource per forwarding rule.
2355
+ # extension is attached. At least one forwarding rule is required. There can be
2356
+ # only one `LbRouteExtension` resource per forwarding rule.
2164
2357
  # Corresponds to the JSON property `forwardingRules`
2165
2358
  # @return [Array<String>]
2166
2359
  attr_accessor :forwarding_rules
@@ -2186,7 +2379,8 @@ module Google
2186
2379
  # message sent to the extension server. The metadata is available under the
2187
2380
  # namespace `com.google.lb_route_extension.`. The following variables are
2188
2381
  # supported in the metadata Struct: ``forwarding_rule_id`` - substituted with
2189
- # the forwarding rule's fully qualified resource name.
2382
+ # the forwarding rule's fully qualified resource name. This field is not
2383
+ # supported for plugin extensions. Setting it results in a validation error.
2190
2384
  # Corresponds to the JSON property `metadata`
2191
2385
  # @return [Hash<String,Object>]
2192
2386
  attr_accessor :metadata
@@ -2247,9 +2441,9 @@ module Google
2247
2441
  # @return [Array<Google::Apis::NetworkservicesV1::ExtensionChain>]
2248
2442
  attr_accessor :extension_chains
2249
2443
 
2250
- # Required. A list of references to the forwarding rules to which this service
2251
- # extension is attached to. At least one forwarding rule is required. There can
2252
- # be only one `LBTrafficExtension` resource per forwarding rule.
2444
+ # Optional. A list of references to the forwarding rules to which this service
2445
+ # extension is attached. At least one forwarding rule is required. There can be
2446
+ # only one `LBTrafficExtension` resource per forwarding rule.
2253
2447
  # Corresponds to the JSON property `forwardingRules`
2254
2448
  # @return [Array<String>]
2255
2449
  attr_accessor :forwarding_rules
@@ -2274,7 +2468,8 @@ module Google
2274
2468
  # metadata_context.filter_metadata` map field. The metadata is available under
2275
2469
  # the key `com.google.lb_traffic_extension.`. The following variables are
2276
2470
  # supported in the metadata: ``forwarding_rule_id`` - substituted with the
2277
- # forwarding rule's fully qualified resource name.
2471
+ # forwarding rule's fully qualified resource name. This field is not supported
2472
+ # for plugin extensions. Setting it results in a validation error.
2278
2473
  # Corresponds to the JSON property `metadata`
2279
2474
  # @return [Hash<String,Object>]
2280
2475
  attr_accessor :metadata
@@ -2309,6 +2504,37 @@ module Google
2309
2504
  end
2310
2505
  end
2311
2506
 
2507
+ # Message for response to listing `AuthzExtension` resources.
2508
+ class ListAuthzExtensionsResponse
2509
+ include Google::Apis::Core::Hashable
2510
+
2511
+ # The list of `AuthzExtension` resources.
2512
+ # Corresponds to the JSON property `authzExtensions`
2513
+ # @return [Array<Google::Apis::NetworkservicesV1::AuthzExtension>]
2514
+ attr_accessor :authz_extensions
2515
+
2516
+ # A token identifying a page of results that the server returns.
2517
+ # Corresponds to the JSON property `nextPageToken`
2518
+ # @return [String]
2519
+ attr_accessor :next_page_token
2520
+
2521
+ # Locations that could not be reached.
2522
+ # Corresponds to the JSON property `unreachable`
2523
+ # @return [Array<String>]
2524
+ attr_accessor :unreachable
2525
+
2526
+ def initialize(**args)
2527
+ update!(**args)
2528
+ end
2529
+
2530
+ # Update properties of this object
2531
+ def update!(**args)
2532
+ @authz_extensions = args[:authz_extensions] if args.key?(:authz_extensions)
2533
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2534
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2535
+ end
2536
+ end
2537
+
2312
2538
  # Response returned by the ListEndpointPolicies method.
2313
2539
  class ListEndpointPoliciesResponse
2314
2540
  include Google::Apis::Core::Hashable
@@ -2336,6 +2562,32 @@ module Google
2336
2562
  end
2337
2563
  end
2338
2564
 
2565
+ # Response returned by the ListGatewayRouteViews method.
2566
+ class ListGatewayRouteViewsResponse
2567
+ include Google::Apis::Core::Hashable
2568
+
2569
+ # List of GatewayRouteView resources.
2570
+ # Corresponds to the JSON property `gatewayRouteViews`
2571
+ # @return [Array<Google::Apis::NetworkservicesV1::GatewayRouteView>]
2572
+ attr_accessor :gateway_route_views
2573
+
2574
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
2575
+ # field is omitted, there are no subsequent pages.
2576
+ # Corresponds to the JSON property `nextPageToken`
2577
+ # @return [String]
2578
+ attr_accessor :next_page_token
2579
+
2580
+ def initialize(**args)
2581
+ update!(**args)
2582
+ end
2583
+
2584
+ # Update properties of this object
2585
+ def update!(**args)
2586
+ @gateway_route_views = args[:gateway_route_views] if args.key?(:gateway_route_views)
2587
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2588
+ end
2589
+ end
2590
+
2339
2591
  # Response returned by the ListGateways method.
2340
2592
  class ListGatewaysResponse
2341
2593
  include Google::Apis::Core::Hashable
@@ -2510,6 +2762,32 @@ module Google
2510
2762
  end
2511
2763
  end
2512
2764
 
2765
+ # Response returned by the ListMeshRouteViews method.
2766
+ class ListMeshRouteViewsResponse
2767
+ include Google::Apis::Core::Hashable
2768
+
2769
+ # List of MeshRouteView resources.
2770
+ # Corresponds to the JSON property `meshRouteViews`
2771
+ # @return [Array<Google::Apis::NetworkservicesV1::MeshRouteView>]
2772
+ attr_accessor :mesh_route_views
2773
+
2774
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
2775
+ # field is omitted, there are no subsequent pages.
2776
+ # Corresponds to the JSON property `nextPageToken`
2777
+ # @return [String]
2778
+ attr_accessor :next_page_token
2779
+
2780
+ def initialize(**args)
2781
+ update!(**args)
2782
+ end
2783
+
2784
+ # Update properties of this object
2785
+ def update!(**args)
2786
+ @mesh_route_views = args[:mesh_route_views] if args.key?(:mesh_route_views)
2787
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2788
+ end
2789
+ end
2790
+
2513
2791
  # Response returned by the ListMeshes method.
2514
2792
  class ListMeshesResponse
2515
2793
  include Google::Apis::Core::Hashable
@@ -2670,6 +2948,60 @@ module Google
2670
2948
  end
2671
2949
  end
2672
2950
 
2951
+ # Response returned by the `ListWasmPluginVersions` method.
2952
+ class ListWasmPluginVersionsResponse
2953
+ include Google::Apis::Core::Hashable
2954
+
2955
+ # If there might be more results than those appearing in this response, then `
2956
+ # next_page_token` is included. To get the next set of results, call this method
2957
+ # again using the value of `next_page_token` as `page_token`.
2958
+ # Corresponds to the JSON property `nextPageToken`
2959
+ # @return [String]
2960
+ attr_accessor :next_page_token
2961
+
2962
+ # List of `WasmPluginVersion` resources.
2963
+ # Corresponds to the JSON property `wasmPluginVersions`
2964
+ # @return [Array<Google::Apis::NetworkservicesV1::WasmPluginVersion>]
2965
+ attr_accessor :wasm_plugin_versions
2966
+
2967
+ def initialize(**args)
2968
+ update!(**args)
2969
+ end
2970
+
2971
+ # Update properties of this object
2972
+ def update!(**args)
2973
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2974
+ @wasm_plugin_versions = args[:wasm_plugin_versions] if args.key?(:wasm_plugin_versions)
2975
+ end
2976
+ end
2977
+
2978
+ # Response returned by the `ListWasmPlugins` method.
2979
+ class ListWasmPluginsResponse
2980
+ include Google::Apis::Core::Hashable
2981
+
2982
+ # If there might be more results than those appearing in this response, then `
2983
+ # next_page_token` is included. To get the next set of results, call this method
2984
+ # again using the value of `next_page_token` as `page_token`.
2985
+ # Corresponds to the JSON property `nextPageToken`
2986
+ # @return [String]
2987
+ attr_accessor :next_page_token
2988
+
2989
+ # List of `WasmPlugin` resources.
2990
+ # Corresponds to the JSON property `wasmPlugins`
2991
+ # @return [Array<Google::Apis::NetworkservicesV1::WasmPlugin>]
2992
+ attr_accessor :wasm_plugins
2993
+
2994
+ def initialize(**args)
2995
+ update!(**args)
2996
+ end
2997
+
2998
+ # Update properties of this object
2999
+ def update!(**args)
3000
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3001
+ @wasm_plugins = args[:wasm_plugins] if args.key?(:wasm_plugins)
3002
+ end
3003
+ end
3004
+
2673
3005
  # A resource that represents a Google Cloud location.
2674
3006
  class Location
2675
3007
  include Google::Apis::Core::Hashable
@@ -2809,6 +3141,51 @@ module Google
2809
3141
  end
2810
3142
  end
2811
3143
 
3144
+ # MeshRouteView defines view-only resource for Routes to a Mesh
3145
+ class MeshRouteView
3146
+ include Google::Apis::Core::Hashable
3147
+
3148
+ # Output only. Identifier. Full path name of the MeshRouteView resource. Format:
3149
+ # projects/`project_number`/locations/`location`/meshes/`mesh_name`/routeViews/`
3150
+ # route_view_name`
3151
+ # Corresponds to the JSON property `name`
3152
+ # @return [String]
3153
+ attr_accessor :name
3154
+
3155
+ # Output only. The resource id for the route.
3156
+ # Corresponds to the JSON property `routeId`
3157
+ # @return [String]
3158
+ attr_accessor :route_id
3159
+
3160
+ # Output only. Location where the route exists.
3161
+ # Corresponds to the JSON property `routeLocation`
3162
+ # @return [String]
3163
+ attr_accessor :route_location
3164
+
3165
+ # Output only. Project number where the route exists.
3166
+ # Corresponds to the JSON property `routeProjectNumber`
3167
+ # @return [Fixnum]
3168
+ attr_accessor :route_project_number
3169
+
3170
+ # Output only. Type of the route: HttpRoute,GrpcRoute,TcpRoute, or TlsRoute
3171
+ # Corresponds to the JSON property `routeType`
3172
+ # @return [String]
3173
+ attr_accessor :route_type
3174
+
3175
+ def initialize(**args)
3176
+ update!(**args)
3177
+ end
3178
+
3179
+ # Update properties of this object
3180
+ def update!(**args)
3181
+ @name = args[:name] if args.key?(:name)
3182
+ @route_id = args[:route_id] if args.key?(:route_id)
3183
+ @route_location = args[:route_location] if args.key?(:route_location)
3184
+ @route_project_number = args[:route_project_number] if args.key?(:route_project_number)
3185
+ @route_type = args[:route_type] if args.key?(:route_type)
3186
+ end
3187
+ end
3188
+
2812
3189
  # This resource represents a long-running operation that is the result of a
2813
3190
  # network API call.
2814
3191
  class Operation
@@ -3143,8 +3520,8 @@ module Google
3143
3520
  # @return [String]
3144
3521
  attr_accessor :load_balancing_algorithm
3145
3522
 
3146
- # Required. Name of the ServiceLbPolicy resource. It matches pattern `projects/`
3147
- # project`/locations/`location`/serviceLbPolicies/`service_lb_policy_name``.
3523
+ # Identifier. Name of the ServiceLbPolicy resource. It matches pattern `projects/
3524
+ # `project`/locations/`location`/serviceLbPolicies/`service_lb_policy_name``.
3148
3525
  # Corresponds to the JSON property `name`
3149
3526
  # @return [String]
3150
3527
  attr_accessor :name
@@ -3776,6 +4153,333 @@ module Google
3776
4153
  @ports = args[:ports] if args.key?(:ports)
3777
4154
  end
3778
4155
  end
4156
+
4157
+ # `WasmPlugin` is a resource representing a service executing a customer-
4158
+ # provided Wasm module.
4159
+ class WasmPlugin
4160
+ include Google::Apis::Core::Hashable
4161
+
4162
+ # Output only. The timestamp when the resource was created.
4163
+ # Corresponds to the JSON property `createTime`
4164
+ # @return [String]
4165
+ attr_accessor :create_time
4166
+
4167
+ # Optional. A human-readable description of the resource.
4168
+ # Corresponds to the JSON property `description`
4169
+ # @return [String]
4170
+ attr_accessor :description
4171
+
4172
+ # Optional. Set of labels associated with the `WasmPlugin` resource. The format
4173
+ # must comply with [the following requirements](/compute/docs/labeling-resources#
4174
+ # requirements).
4175
+ # Corresponds to the JSON property `labels`
4176
+ # @return [Hash<String,String>]
4177
+ attr_accessor :labels
4178
+
4179
+ # Specifies the logging options for the activity performed by this plugin. If
4180
+ # logging is enabled, plugin logs are exported to Cloud Logging.
4181
+ # Corresponds to the JSON property `logConfig`
4182
+ # @return [Google::Apis::NetworkservicesV1::WasmPluginLogConfig]
4183
+ attr_accessor :log_config
4184
+
4185
+ # Optional. The ID of the `WasmPluginVersion` resource that is the currently
4186
+ # serving one. The version referred to must be a child of this `WasmPlugin`
4187
+ # resource.
4188
+ # Corresponds to the JSON property `mainVersionId`
4189
+ # @return [String]
4190
+ attr_accessor :main_version_id
4191
+
4192
+ # Identifier. Name of the `WasmPlugin` resource in the following format: `
4193
+ # projects/`project`/locations/`location`/wasmPlugins/`wasm_plugin``.
4194
+ # Corresponds to the JSON property `name`
4195
+ # @return [String]
4196
+ attr_accessor :name
4197
+
4198
+ # Output only. The timestamp when the resource was updated.
4199
+ # Corresponds to the JSON property `updateTime`
4200
+ # @return [String]
4201
+ attr_accessor :update_time
4202
+
4203
+ # Output only. List of all [extensions](https://cloud.google.com/service-
4204
+ # extensions/docs/overview) that use this `WasmPlugin` resource.
4205
+ # Corresponds to the JSON property `usedBy`
4206
+ # @return [Array<Google::Apis::NetworkservicesV1::WasmPluginUsedBy>]
4207
+ attr_accessor :used_by
4208
+
4209
+ # Optional. All versions of this `WasmPlugin` resource in the key-value format.
4210
+ # The key is the resource ID, and the value is the `VersionDetails` object. Lets
4211
+ # you create or update a `WasmPlugin` resource and its versions in a single
4212
+ # request. When the `main_version_id` field is not empty, it must point to one
4213
+ # of the `VersionDetails` objects in the map. If provided in a `PATCH` request,
4214
+ # the new versions replace the previous set. Any version omitted from the `
4215
+ # versions` field is removed. Because the `WasmPluginVersion` resource is
4216
+ # immutable, if a `WasmPluginVersion` resource with the same name already exists
4217
+ # and differs, the request fails. Note: In a `GET` request, this field is
4218
+ # populated only if the field `GetWasmPluginRequest.view` is set to `
4219
+ # WASM_PLUGIN_VIEW_FULL`.
4220
+ # Corresponds to the JSON property `versions`
4221
+ # @return [Hash<String,Google::Apis::NetworkservicesV1::WasmPluginVersionDetails>]
4222
+ attr_accessor :versions
4223
+
4224
+ def initialize(**args)
4225
+ update!(**args)
4226
+ end
4227
+
4228
+ # Update properties of this object
4229
+ def update!(**args)
4230
+ @create_time = args[:create_time] if args.key?(:create_time)
4231
+ @description = args[:description] if args.key?(:description)
4232
+ @labels = args[:labels] if args.key?(:labels)
4233
+ @log_config = args[:log_config] if args.key?(:log_config)
4234
+ @main_version_id = args[:main_version_id] if args.key?(:main_version_id)
4235
+ @name = args[:name] if args.key?(:name)
4236
+ @update_time = args[:update_time] if args.key?(:update_time)
4237
+ @used_by = args[:used_by] if args.key?(:used_by)
4238
+ @versions = args[:versions] if args.key?(:versions)
4239
+ end
4240
+ end
4241
+
4242
+ # Specifies the logging options for the activity performed by this plugin. If
4243
+ # logging is enabled, plugin logs are exported to Cloud Logging.
4244
+ class WasmPluginLogConfig
4245
+ include Google::Apis::Core::Hashable
4246
+
4247
+ # Optional. Specifies whether to enable logging for activity by this plugin.
4248
+ # Defaults to `false`.
4249
+ # Corresponds to the JSON property `enable`
4250
+ # @return [Boolean]
4251
+ attr_accessor :enable
4252
+ alias_method :enable?, :enable
4253
+
4254
+ # Non-empty default. Specificies the lowest level of the plugin logs that are
4255
+ # exported to Cloud Logging. This setting relates to the logs generated by using
4256
+ # logging statements in your Wasm code. This field is can be set only if logging
4257
+ # is enabled for the plugin. If the field is not provided when logging is
4258
+ # enabled, it is set to `INFO` by default.
4259
+ # Corresponds to the JSON property `minLogLevel`
4260
+ # @return [String]
4261
+ attr_accessor :min_log_level
4262
+
4263
+ # Non-empty default. Configures the sampling rate of activity logs, where `1.0`
4264
+ # means all logged activity is reported and `0.0` means no activity is reported.
4265
+ # A floating point value between `0.0` and `1.0` indicates that a percentage of
4266
+ # log messages is stored. The default value when logging is enabled is `1.0`.
4267
+ # The value of the field must be between `0` and `1` (inclusive). This field can
4268
+ # be specified only if logging is enabled for this plugin.
4269
+ # Corresponds to the JSON property `sampleRate`
4270
+ # @return [Float]
4271
+ attr_accessor :sample_rate
4272
+
4273
+ def initialize(**args)
4274
+ update!(**args)
4275
+ end
4276
+
4277
+ # Update properties of this object
4278
+ def update!(**args)
4279
+ @enable = args[:enable] if args.key?(:enable)
4280
+ @min_log_level = args[:min_log_level] if args.key?(:min_log_level)
4281
+ @sample_rate = args[:sample_rate] if args.key?(:sample_rate)
4282
+ end
4283
+ end
4284
+
4285
+ # Defines a resource that uses the `WasmPlugin` resource.
4286
+ class WasmPluginUsedBy
4287
+ include Google::Apis::Core::Hashable
4288
+
4289
+ # Output only. Full name of the resource https://google.aip.dev/122#full-
4290
+ # resource-names, for example `//networkservices.googleapis.com/projects/`
4291
+ # project`/locations/`location`/lbRouteExtensions/`extension``
4292
+ # Corresponds to the JSON property `name`
4293
+ # @return [String]
4294
+ attr_accessor :name
4295
+
4296
+ def initialize(**args)
4297
+ update!(**args)
4298
+ end
4299
+
4300
+ # Update properties of this object
4301
+ def update!(**args)
4302
+ @name = args[:name] if args.key?(:name)
4303
+ end
4304
+ end
4305
+
4306
+ # A single immutable version of a `WasmPlugin` resource. Defines the Wasm module
4307
+ # used and optionally its runtime config.
4308
+ class WasmPluginVersion
4309
+ include Google::Apis::Core::Hashable
4310
+
4311
+ # Output only. The timestamp when the resource was created.
4312
+ # Corresponds to the JSON property `createTime`
4313
+ # @return [String]
4314
+ attr_accessor :create_time
4315
+
4316
+ # Optional. A human-readable description of the resource.
4317
+ # Corresponds to the JSON property `description`
4318
+ # @return [String]
4319
+ attr_accessor :description
4320
+
4321
+ # Output only. The resolved digest for the image specified in the `image` field.
4322
+ # The digest is resolved during the creation of `WasmPluginVersion` resource.
4323
+ # This field holds the digest value, regardless of whether a tag or digest was
4324
+ # originally specified in the `image` field.
4325
+ # Corresponds to the JSON property `imageDigest`
4326
+ # @return [String]
4327
+ attr_accessor :image_digest
4328
+
4329
+ # Optional. URI of the container image containing the plugin, stored in the
4330
+ # Artifact Registry. When a new `WasmPluginVersion` resource is created, the
4331
+ # digest of the container image is saved in the `image_digest` field. When
4332
+ # downloading an image, the digest value is used instead of an image tag.
4333
+ # Corresponds to the JSON property `imageUri`
4334
+ # @return [String]
4335
+ attr_accessor :image_uri
4336
+
4337
+ # Optional. Set of labels associated with the `WasmPluginVersion` resource.
4338
+ # Corresponds to the JSON property `labels`
4339
+ # @return [Hash<String,String>]
4340
+ attr_accessor :labels
4341
+
4342
+ # Identifier. Name of the `WasmPluginVersion` resource in the following format: `
4343
+ # projects/`project`/locations/`location`/wasmPlugins/`wasm_plugin`/ versions/`
4344
+ # wasm_plugin_version``.
4345
+ # Corresponds to the JSON property `name`
4346
+ # @return [String]
4347
+ attr_accessor :name
4348
+
4349
+ # Configuration for the plugin. The configuration is provided to the plugin at
4350
+ # runtime through the `ON_CONFIGURE` callback. When a new `WasmPluginVersion`
4351
+ # resource is created, the digest of the contents is saved in the `
4352
+ # plugin_config_digest` field.
4353
+ # Corresponds to the JSON property `pluginConfigData`
4354
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
4355
+ # @return [String]
4356
+ attr_accessor :plugin_config_data
4357
+
4358
+ # Output only. This field holds the digest (usually checksum) value for the
4359
+ # plugin configuration. The value is calculated based on the contents of `
4360
+ # plugin_config_data` or the container image defined by the `plugin_config_uri`
4361
+ # field.
4362
+ # Corresponds to the JSON property `pluginConfigDigest`
4363
+ # @return [String]
4364
+ attr_accessor :plugin_config_digest
4365
+
4366
+ # URI of the plugin configuration stored in the Artifact Registry. The
4367
+ # configuration is provided to the plugin at runtime through the `ON_CONFIGURE`
4368
+ # callback. The container image must contain only a single file with the name `
4369
+ # plugin.config`. When a new `WasmPluginVersion` resource is created, the digest
4370
+ # of the container image is saved in the `plugin_config_digest` field.
4371
+ # Corresponds to the JSON property `pluginConfigUri`
4372
+ # @return [String]
4373
+ attr_accessor :plugin_config_uri
4374
+
4375
+ # Output only. The timestamp when the resource was updated.
4376
+ # Corresponds to the JSON property `updateTime`
4377
+ # @return [String]
4378
+ attr_accessor :update_time
4379
+
4380
+ def initialize(**args)
4381
+ update!(**args)
4382
+ end
4383
+
4384
+ # Update properties of this object
4385
+ def update!(**args)
4386
+ @create_time = args[:create_time] if args.key?(:create_time)
4387
+ @description = args[:description] if args.key?(:description)
4388
+ @image_digest = args[:image_digest] if args.key?(:image_digest)
4389
+ @image_uri = args[:image_uri] if args.key?(:image_uri)
4390
+ @labels = args[:labels] if args.key?(:labels)
4391
+ @name = args[:name] if args.key?(:name)
4392
+ @plugin_config_data = args[:plugin_config_data] if args.key?(:plugin_config_data)
4393
+ @plugin_config_digest = args[:plugin_config_digest] if args.key?(:plugin_config_digest)
4394
+ @plugin_config_uri = args[:plugin_config_uri] if args.key?(:plugin_config_uri)
4395
+ @update_time = args[:update_time] if args.key?(:update_time)
4396
+ end
4397
+ end
4398
+
4399
+ # Details of a `WasmPluginVersion` resource to be inlined in the `WasmPlugin`
4400
+ # resource.
4401
+ class WasmPluginVersionDetails
4402
+ include Google::Apis::Core::Hashable
4403
+
4404
+ # Output only. The timestamp when the resource was created.
4405
+ # Corresponds to the JSON property `createTime`
4406
+ # @return [String]
4407
+ attr_accessor :create_time
4408
+
4409
+ # Optional. A human-readable description of the resource.
4410
+ # Corresponds to the JSON property `description`
4411
+ # @return [String]
4412
+ attr_accessor :description
4413
+
4414
+ # Output only. The resolved digest for the image specified in `image`. The
4415
+ # digest is resolved during the creation of a `WasmPluginVersion` resource. This
4416
+ # field holds the digest value regardless of whether a tag or digest was
4417
+ # originally specified in the `image` field.
4418
+ # Corresponds to the JSON property `imageDigest`
4419
+ # @return [String]
4420
+ attr_accessor :image_digest
4421
+
4422
+ # Optional. URI of the container image containing the Wasm module, stored in the
4423
+ # Artifact Registry. The container image must contain only a single file with
4424
+ # the name `plugin.wasm`. When a new `WasmPluginVersion` resource is created,
4425
+ # the URI gets resolved to an image digest and saved in the `image_digest` field.
4426
+ # Corresponds to the JSON property `imageUri`
4427
+ # @return [String]
4428
+ attr_accessor :image_uri
4429
+
4430
+ # Optional. Set of labels associated with the `WasmPluginVersion` resource.
4431
+ # Corresponds to the JSON property `labels`
4432
+ # @return [Hash<String,String>]
4433
+ attr_accessor :labels
4434
+
4435
+ # Configuration for the plugin. The configuration is provided to the plugin at
4436
+ # runtime through the `ON_CONFIGURE` callback. When a new `WasmPluginVersion`
4437
+ # version is created, the digest of the contents is saved in the `
4438
+ # plugin_config_digest` field.
4439
+ # Corresponds to the JSON property `pluginConfigData`
4440
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
4441
+ # @return [String]
4442
+ attr_accessor :plugin_config_data
4443
+
4444
+ # Output only. This field holds the digest (usually checksum) value for the
4445
+ # plugin configuration. The value is calculated based on the contents of the `
4446
+ # plugin_config_data` field or the container image defined by the `
4447
+ # plugin_config_uri` field.
4448
+ # Corresponds to the JSON property `pluginConfigDigest`
4449
+ # @return [String]
4450
+ attr_accessor :plugin_config_digest
4451
+
4452
+ # URI of the plugin configuration stored in the Artifact Registry. The
4453
+ # configuration is provided to the plugin at runtime through the `ON_CONFIGURE`
4454
+ # callback. The container image must contain only a single file with the name `
4455
+ # plugin.config`. When a new `WasmPluginVersion` resource is created, the digest
4456
+ # of the container image is saved in the `plugin_config_digest` field.
4457
+ # Corresponds to the JSON property `pluginConfigUri`
4458
+ # @return [String]
4459
+ attr_accessor :plugin_config_uri
4460
+
4461
+ # Output only. The timestamp when the resource was updated.
4462
+ # Corresponds to the JSON property `updateTime`
4463
+ # @return [String]
4464
+ attr_accessor :update_time
4465
+
4466
+ def initialize(**args)
4467
+ update!(**args)
4468
+ end
4469
+
4470
+ # Update properties of this object
4471
+ def update!(**args)
4472
+ @create_time = args[:create_time] if args.key?(:create_time)
4473
+ @description = args[:description] if args.key?(:description)
4474
+ @image_digest = args[:image_digest] if args.key?(:image_digest)
4475
+ @image_uri = args[:image_uri] if args.key?(:image_uri)
4476
+ @labels = args[:labels] if args.key?(:labels)
4477
+ @plugin_config_data = args[:plugin_config_data] if args.key?(:plugin_config_data)
4478
+ @plugin_config_digest = args[:plugin_config_digest] if args.key?(:plugin_config_digest)
4479
+ @plugin_config_uri = args[:plugin_config_uri] if args.key?(:plugin_config_uri)
4480
+ @update_time = args[:update_time] if args.key?(:update_time)
4481
+ end
4482
+ end
3779
4483
  end
3780
4484
  end
3781
4485
  end