google-apis-trafficdirector_v3 0.1.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.
- checksums.yaml +7 -0
- data/.yardopts +13 -0
- data/CHANGELOG.md +7 -0
- data/LICENSE.md +202 -0
- data/OVERVIEW.md +96 -0
- data/lib/google/apis/trafficdirector_v3/classes.rb +1703 -0
- data/lib/google/apis/trafficdirector_v3/gem_version.rb +28 -0
- data/lib/google/apis/trafficdirector_v3/representations.rb +740 -0
- data/lib/google/apis/trafficdirector_v3/service.rb +91 -0
- data/lib/google/apis/trafficdirector_v3.rb +36 -0
- data/lib/google-apis-trafficdirector_v3.rb +15 -0
- metadata +82 -0
@@ -0,0 +1,1703 @@
|
|
1
|
+
# Copyright 2020 Google LLC
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
require 'date'
|
16
|
+
require 'google/apis/core/base_service'
|
17
|
+
require 'google/apis/core/json_representation'
|
18
|
+
require 'google/apis/core/hashable'
|
19
|
+
require 'google/apis/errors'
|
20
|
+
|
21
|
+
module Google
|
22
|
+
module Apis
|
23
|
+
module TrafficdirectorV3
|
24
|
+
|
25
|
+
# Addresses specify either a logical or physical address and port, which are
|
26
|
+
# used to tell Envoy where to bind/listen, connect to upstream and find
|
27
|
+
# management servers.
|
28
|
+
class Address
|
29
|
+
include Google::Apis::Core::Hashable
|
30
|
+
|
31
|
+
# The address represents an envoy internal listener. [#comment:
|
32
|
+
# Corresponds to the JSON property `envoyInternalAddress`
|
33
|
+
# @return [Google::Apis::TrafficdirectorV3::EnvoyInternalAddress]
|
34
|
+
attr_accessor :envoy_internal_address
|
35
|
+
|
36
|
+
#
|
37
|
+
# Corresponds to the JSON property `pipe`
|
38
|
+
# @return [Google::Apis::TrafficdirectorV3::Pipe]
|
39
|
+
attr_accessor :pipe
|
40
|
+
|
41
|
+
# [#next-free-field: 7]
|
42
|
+
# Corresponds to the JSON property `socketAddress`
|
43
|
+
# @return [Google::Apis::TrafficdirectorV3::SocketAddress]
|
44
|
+
attr_accessor :socket_address
|
45
|
+
|
46
|
+
def initialize(**args)
|
47
|
+
update!(**args)
|
48
|
+
end
|
49
|
+
|
50
|
+
# Update properties of this object
|
51
|
+
def update!(**args)
|
52
|
+
@envoy_internal_address = args[:envoy_internal_address] if args.key?(:envoy_internal_address)
|
53
|
+
@pipe = args[:pipe] if args.key?(:pipe)
|
54
|
+
@socket_address = args[:socket_address] if args.key?(:socket_address)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
# BuildVersion combines SemVer version of extension with free-form build
|
59
|
+
# information (i.e. 'alpha', 'private-build') as a set of strings.
|
60
|
+
class BuildVersion
|
61
|
+
include Google::Apis::Core::Hashable
|
62
|
+
|
63
|
+
# Free-form build information. Envoy defines several well known keys in the
|
64
|
+
# source/common/version/version.h file
|
65
|
+
# Corresponds to the JSON property `metadata`
|
66
|
+
# @return [Hash<String,Object>]
|
67
|
+
attr_accessor :metadata
|
68
|
+
|
69
|
+
# Envoy uses SemVer (https://semver.org/). Major/minor versions indicate
|
70
|
+
# expected behaviors and APIs, the patch version field is used only for security
|
71
|
+
# fixes and can be generally ignored.
|
72
|
+
# Corresponds to the JSON property `version`
|
73
|
+
# @return [Google::Apis::TrafficdirectorV3::SemanticVersion]
|
74
|
+
attr_accessor :version
|
75
|
+
|
76
|
+
def initialize(**args)
|
77
|
+
update!(**args)
|
78
|
+
end
|
79
|
+
|
80
|
+
# Update properties of this object
|
81
|
+
def update!(**args)
|
82
|
+
@metadata = args[:metadata] if args.key?(:metadata)
|
83
|
+
@version = args[:version] if args.key?(:version)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
# All xds configs for a particular client.
|
88
|
+
class ClientConfig
|
89
|
+
include Google::Apis::Core::Hashable
|
90
|
+
|
91
|
+
# Represents generic xDS config and the exact config structure depends on the
|
92
|
+
# type URL (like Cluster if it is CDS)
|
93
|
+
# Corresponds to the JSON property `genericXdsConfigs`
|
94
|
+
# @return [Array<Google::Apis::TrafficdirectorV3::GenericXdsConfig>]
|
95
|
+
attr_accessor :generic_xds_configs
|
96
|
+
|
97
|
+
# Identifies a specific Envoy instance. The node identifier is presented to the
|
98
|
+
# management server, which may use this identifier to distinguish per Envoy
|
99
|
+
# configuration for serving. [#next-free-field: 13]
|
100
|
+
# Corresponds to the JSON property `node`
|
101
|
+
# @return [Google::Apis::TrafficdirectorV3::Node]
|
102
|
+
attr_accessor :node
|
103
|
+
|
104
|
+
# This field is deprecated in favor of generic_xds_configs which is much simpler
|
105
|
+
# and uniform in structure.
|
106
|
+
# Corresponds to the JSON property `xdsConfig`
|
107
|
+
# @return [Array<Google::Apis::TrafficdirectorV3::PerXdsConfig>]
|
108
|
+
attr_accessor :xds_config
|
109
|
+
|
110
|
+
def initialize(**args)
|
111
|
+
update!(**args)
|
112
|
+
end
|
113
|
+
|
114
|
+
# Update properties of this object
|
115
|
+
def update!(**args)
|
116
|
+
@generic_xds_configs = args[:generic_xds_configs] if args.key?(:generic_xds_configs)
|
117
|
+
@node = args[:node] if args.key?(:node)
|
118
|
+
@xds_config = args[:xds_config] if args.key?(:xds_config)
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
# Request for client status of clients identified by a list of NodeMatchers.
|
123
|
+
class ClientStatusRequest
|
124
|
+
include Google::Apis::Core::Hashable
|
125
|
+
|
126
|
+
# If true, the server will not include the resource contents in the response (i.
|
127
|
+
# e., the generic_xds_configs.xds_config field will not be populated). [#not-
|
128
|
+
# implemented-hide:]
|
129
|
+
# Corresponds to the JSON property `excludeResourceContents`
|
130
|
+
# @return [Boolean]
|
131
|
+
attr_accessor :exclude_resource_contents
|
132
|
+
alias_method :exclude_resource_contents?, :exclude_resource_contents
|
133
|
+
|
134
|
+
# Identifies a specific Envoy instance. The node identifier is presented to the
|
135
|
+
# management server, which may use this identifier to distinguish per Envoy
|
136
|
+
# configuration for serving. [#next-free-field: 13]
|
137
|
+
# Corresponds to the JSON property `node`
|
138
|
+
# @return [Google::Apis::TrafficdirectorV3::Node]
|
139
|
+
attr_accessor :node
|
140
|
+
|
141
|
+
# Management server can use these match criteria to identify clients. The match
|
142
|
+
# follows OR semantics.
|
143
|
+
# Corresponds to the JSON property `nodeMatchers`
|
144
|
+
# @return [Array<Google::Apis::TrafficdirectorV3::NodeMatcher>]
|
145
|
+
attr_accessor :node_matchers
|
146
|
+
|
147
|
+
def initialize(**args)
|
148
|
+
update!(**args)
|
149
|
+
end
|
150
|
+
|
151
|
+
# Update properties of this object
|
152
|
+
def update!(**args)
|
153
|
+
@exclude_resource_contents = args[:exclude_resource_contents] if args.key?(:exclude_resource_contents)
|
154
|
+
@node = args[:node] if args.key?(:node)
|
155
|
+
@node_matchers = args[:node_matchers] if args.key?(:node_matchers)
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
#
|
160
|
+
class ClientStatusResponse
|
161
|
+
include Google::Apis::Core::Hashable
|
162
|
+
|
163
|
+
# Client configs for the clients specified in the ClientStatusRequest.
|
164
|
+
# Corresponds to the JSON property `config`
|
165
|
+
# @return [Array<Google::Apis::TrafficdirectorV3::ClientConfig>]
|
166
|
+
attr_accessor :config
|
167
|
+
|
168
|
+
def initialize(**args)
|
169
|
+
update!(**args)
|
170
|
+
end
|
171
|
+
|
172
|
+
# Update properties of this object
|
173
|
+
def update!(**args)
|
174
|
+
@config = args[:config] if args.key?(:config)
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
178
|
+
# Envoy's cluster manager fills this message with all currently known clusters.
|
179
|
+
# Cluster configuration information can be used to recreate an Envoy
|
180
|
+
# configuration by populating all clusters as static clusters or by returning
|
181
|
+
# them in a CDS response.
|
182
|
+
class ClustersConfigDump
|
183
|
+
include Google::Apis::Core::Hashable
|
184
|
+
|
185
|
+
# The dynamically loaded active clusters. These are clusters that are available
|
186
|
+
# to service data plane traffic.
|
187
|
+
# Corresponds to the JSON property `dynamicActiveClusters`
|
188
|
+
# @return [Array<Google::Apis::TrafficdirectorV3::DynamicCluster>]
|
189
|
+
attr_accessor :dynamic_active_clusters
|
190
|
+
|
191
|
+
# The dynamically loaded warming clusters. These are clusters that are currently
|
192
|
+
# undergoing warming in preparation to service data plane traffic. Note that if
|
193
|
+
# attempting to recreate an Envoy configuration from a configuration dump, the
|
194
|
+
# warming clusters should generally be discarded.
|
195
|
+
# Corresponds to the JSON property `dynamicWarmingClusters`
|
196
|
+
# @return [Array<Google::Apis::TrafficdirectorV3::DynamicCluster>]
|
197
|
+
attr_accessor :dynamic_warming_clusters
|
198
|
+
|
199
|
+
# The statically loaded cluster configs.
|
200
|
+
# Corresponds to the JSON property `staticClusters`
|
201
|
+
# @return [Array<Google::Apis::TrafficdirectorV3::StaticCluster>]
|
202
|
+
attr_accessor :static_clusters
|
203
|
+
|
204
|
+
# This is the :ref:`version_info ` in the last processed CDS discovery response.
|
205
|
+
# If there are only static bootstrap clusters, this field will be "".
|
206
|
+
# Corresponds to the JSON property `versionInfo`
|
207
|
+
# @return [String]
|
208
|
+
attr_accessor :version_info
|
209
|
+
|
210
|
+
def initialize(**args)
|
211
|
+
update!(**args)
|
212
|
+
end
|
213
|
+
|
214
|
+
# Update properties of this object
|
215
|
+
def update!(**args)
|
216
|
+
@dynamic_active_clusters = args[:dynamic_active_clusters] if args.key?(:dynamic_active_clusters)
|
217
|
+
@dynamic_warming_clusters = args[:dynamic_warming_clusters] if args.key?(:dynamic_warming_clusters)
|
218
|
+
@static_clusters = args[:static_clusters] if args.key?(:static_clusters)
|
219
|
+
@version_info = args[:version_info] if args.key?(:version_info)
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
223
|
+
# Additional parameters that can be used to select resource variants. These
|
224
|
+
# include any global context parameters, per-resource type client feature
|
225
|
+
# capabilities and per-resource type functional attributes. All per-resource
|
226
|
+
# type attributes will be `xds.resource.` prefixed and some of these are
|
227
|
+
# documented below: `xds.resource.listening_address`: The value is "IP:port" (e.
|
228
|
+
# g. "10.1.1.3:8080") which is the listening address of a Listener. Used in a
|
229
|
+
# Listener resource query.
|
230
|
+
class ContextParams
|
231
|
+
include Google::Apis::Core::Hashable
|
232
|
+
|
233
|
+
#
|
234
|
+
# Corresponds to the JSON property `params`
|
235
|
+
# @return [Hash<String,String>]
|
236
|
+
attr_accessor :params
|
237
|
+
|
238
|
+
def initialize(**args)
|
239
|
+
update!(**args)
|
240
|
+
end
|
241
|
+
|
242
|
+
# Update properties of this object
|
243
|
+
def update!(**args)
|
244
|
+
@params = args[:params] if args.key?(:params)
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
# Specifies the way to match a double value.
|
249
|
+
class DoubleMatcher
|
250
|
+
include Google::Apis::Core::Hashable
|
251
|
+
|
252
|
+
# If specified, the input double value must be equal to the value specified here.
|
253
|
+
# Corresponds to the JSON property `exact`
|
254
|
+
# @return [Float]
|
255
|
+
attr_accessor :exact
|
256
|
+
|
257
|
+
# Specifies the double start and end of the range using half-open interval
|
258
|
+
# semantics [start, end).
|
259
|
+
# Corresponds to the JSON property `range`
|
260
|
+
# @return [Google::Apis::TrafficdirectorV3::DoubleRange]
|
261
|
+
attr_accessor :range
|
262
|
+
|
263
|
+
def initialize(**args)
|
264
|
+
update!(**args)
|
265
|
+
end
|
266
|
+
|
267
|
+
# Update properties of this object
|
268
|
+
def update!(**args)
|
269
|
+
@exact = args[:exact] if args.key?(:exact)
|
270
|
+
@range = args[:range] if args.key?(:range)
|
271
|
+
end
|
272
|
+
end
|
273
|
+
|
274
|
+
# Specifies the double start and end of the range using half-open interval
|
275
|
+
# semantics [start, end).
|
276
|
+
class DoubleRange
|
277
|
+
include Google::Apis::Core::Hashable
|
278
|
+
|
279
|
+
# end of the range (exclusive)
|
280
|
+
# Corresponds to the JSON property `end`
|
281
|
+
# @return [Float]
|
282
|
+
attr_accessor :end
|
283
|
+
|
284
|
+
# start of the range (inclusive)
|
285
|
+
# Corresponds to the JSON property `start`
|
286
|
+
# @return [Float]
|
287
|
+
attr_accessor :start
|
288
|
+
|
289
|
+
def initialize(**args)
|
290
|
+
update!(**args)
|
291
|
+
end
|
292
|
+
|
293
|
+
# Update properties of this object
|
294
|
+
def update!(**args)
|
295
|
+
@end = args[:end] if args.key?(:end)
|
296
|
+
@start = args[:start] if args.key?(:start)
|
297
|
+
end
|
298
|
+
end
|
299
|
+
|
300
|
+
# Describes a dynamically loaded cluster via the CDS API. [#next-free-field: 6]
|
301
|
+
class DynamicCluster
|
302
|
+
include Google::Apis::Core::Hashable
|
303
|
+
|
304
|
+
# The client status of this resource. [#not-implemented-hide:]
|
305
|
+
# Corresponds to the JSON property `clientStatus`
|
306
|
+
# @return [String]
|
307
|
+
attr_accessor :client_status
|
308
|
+
|
309
|
+
# The cluster config.
|
310
|
+
# Corresponds to the JSON property `cluster`
|
311
|
+
# @return [Hash<String,Object>]
|
312
|
+
attr_accessor :cluster
|
313
|
+
|
314
|
+
# Set if the last update failed, cleared after the next successful update. The ``
|
315
|
+
# error_state`` field contains the rejected version of this particular resource
|
316
|
+
# along with the reason and timestamp. For successfully updated or acknowledged
|
317
|
+
# resource, this field should be empty. [#not-implemented-hide:]
|
318
|
+
# Corresponds to the JSON property `errorState`
|
319
|
+
# @return [Google::Apis::TrafficdirectorV3::UpdateFailureState]
|
320
|
+
attr_accessor :error_state
|
321
|
+
|
322
|
+
# The timestamp when the Cluster was last updated.
|
323
|
+
# Corresponds to the JSON property `lastUpdated`
|
324
|
+
# @return [String]
|
325
|
+
attr_accessor :last_updated
|
326
|
+
|
327
|
+
# This is the per-resource version information. This version is currently taken
|
328
|
+
# from the :ref:`version_info ` field at the time that the cluster was loaded.
|
329
|
+
# In the future, discrete per-cluster versions may be supported by the API.
|
330
|
+
# Corresponds to the JSON property `versionInfo`
|
331
|
+
# @return [String]
|
332
|
+
attr_accessor :version_info
|
333
|
+
|
334
|
+
def initialize(**args)
|
335
|
+
update!(**args)
|
336
|
+
end
|
337
|
+
|
338
|
+
# Update properties of this object
|
339
|
+
def update!(**args)
|
340
|
+
@client_status = args[:client_status] if args.key?(:client_status)
|
341
|
+
@cluster = args[:cluster] if args.key?(:cluster)
|
342
|
+
@error_state = args[:error_state] if args.key?(:error_state)
|
343
|
+
@last_updated = args[:last_updated] if args.key?(:last_updated)
|
344
|
+
@version_info = args[:version_info] if args.key?(:version_info)
|
345
|
+
end
|
346
|
+
end
|
347
|
+
|
348
|
+
# [#next-free-field: 6]
|
349
|
+
class DynamicEndpointConfig
|
350
|
+
include Google::Apis::Core::Hashable
|
351
|
+
|
352
|
+
# The client status of this resource. [#not-implemented-hide:]
|
353
|
+
# Corresponds to the JSON property `clientStatus`
|
354
|
+
# @return [String]
|
355
|
+
attr_accessor :client_status
|
356
|
+
|
357
|
+
# The endpoint config.
|
358
|
+
# Corresponds to the JSON property `endpointConfig`
|
359
|
+
# @return [Hash<String,Object>]
|
360
|
+
attr_accessor :endpoint_config
|
361
|
+
|
362
|
+
# Set if the last update failed, cleared after the next successful update. The ``
|
363
|
+
# error_state`` field contains the rejected version of this particular resource
|
364
|
+
# along with the reason and timestamp. For successfully updated or acknowledged
|
365
|
+
# resource, this field should be empty. [#not-implemented-hide:]
|
366
|
+
# Corresponds to the JSON property `errorState`
|
367
|
+
# @return [Google::Apis::TrafficdirectorV3::UpdateFailureState]
|
368
|
+
attr_accessor :error_state
|
369
|
+
|
370
|
+
# [#not-implemented-hide:] The timestamp when the Endpoint was last updated.
|
371
|
+
# Corresponds to the JSON property `lastUpdated`
|
372
|
+
# @return [String]
|
373
|
+
attr_accessor :last_updated
|
374
|
+
|
375
|
+
# [#not-implemented-hide:] This is the per-resource version information. This
|
376
|
+
# version is currently taken from the :ref:`version_info ` field at the time
|
377
|
+
# that the endpoint configuration was loaded.
|
378
|
+
# Corresponds to the JSON property `versionInfo`
|
379
|
+
# @return [String]
|
380
|
+
attr_accessor :version_info
|
381
|
+
|
382
|
+
def initialize(**args)
|
383
|
+
update!(**args)
|
384
|
+
end
|
385
|
+
|
386
|
+
# Update properties of this object
|
387
|
+
def update!(**args)
|
388
|
+
@client_status = args[:client_status] if args.key?(:client_status)
|
389
|
+
@endpoint_config = args[:endpoint_config] if args.key?(:endpoint_config)
|
390
|
+
@error_state = args[:error_state] if args.key?(:error_state)
|
391
|
+
@last_updated = args[:last_updated] if args.key?(:last_updated)
|
392
|
+
@version_info = args[:version_info] if args.key?(:version_info)
|
393
|
+
end
|
394
|
+
end
|
395
|
+
|
396
|
+
# Describes a dynamically loaded listener via the LDS API. [#next-free-field: 7]
|
397
|
+
class DynamicListener
|
398
|
+
include Google::Apis::Core::Hashable
|
399
|
+
|
400
|
+
# The listener state for any active listener by this name. These are listeners
|
401
|
+
# that are available to service data plane traffic.
|
402
|
+
# Corresponds to the JSON property `activeState`
|
403
|
+
# @return [Google::Apis::TrafficdirectorV3::DynamicListenerState]
|
404
|
+
attr_accessor :active_state
|
405
|
+
|
406
|
+
# The client status of this resource. [#not-implemented-hide:]
|
407
|
+
# Corresponds to the JSON property `clientStatus`
|
408
|
+
# @return [String]
|
409
|
+
attr_accessor :client_status
|
410
|
+
|
411
|
+
# The listener state for any draining listener by this name. These are listeners
|
412
|
+
# that are currently undergoing draining in preparation to stop servicing data
|
413
|
+
# plane traffic. Note that if attempting to recreate an Envoy configuration from
|
414
|
+
# a configuration dump, the draining listeners should generally be discarded.
|
415
|
+
# Corresponds to the JSON property `drainingState`
|
416
|
+
# @return [Google::Apis::TrafficdirectorV3::DynamicListenerState]
|
417
|
+
attr_accessor :draining_state
|
418
|
+
|
419
|
+
# Set if the last update failed, cleared after the next successful update. The ``
|
420
|
+
# error_state`` field contains the rejected version of this particular resource
|
421
|
+
# along with the reason and timestamp. For successfully updated or acknowledged
|
422
|
+
# resource, this field should be empty.
|
423
|
+
# Corresponds to the JSON property `errorState`
|
424
|
+
# @return [Google::Apis::TrafficdirectorV3::UpdateFailureState]
|
425
|
+
attr_accessor :error_state
|
426
|
+
|
427
|
+
# The name or unique id of this listener, pulled from the DynamicListenerState
|
428
|
+
# config.
|
429
|
+
# Corresponds to the JSON property `name`
|
430
|
+
# @return [String]
|
431
|
+
attr_accessor :name
|
432
|
+
|
433
|
+
# The listener state for any warming listener by this name. These are listeners
|
434
|
+
# that are currently undergoing warming in preparation to service data plane
|
435
|
+
# traffic. Note that if attempting to recreate an Envoy configuration from a
|
436
|
+
# configuration dump, the warming listeners should generally be discarded.
|
437
|
+
# Corresponds to the JSON property `warmingState`
|
438
|
+
# @return [Google::Apis::TrafficdirectorV3::DynamicListenerState]
|
439
|
+
attr_accessor :warming_state
|
440
|
+
|
441
|
+
def initialize(**args)
|
442
|
+
update!(**args)
|
443
|
+
end
|
444
|
+
|
445
|
+
# Update properties of this object
|
446
|
+
def update!(**args)
|
447
|
+
@active_state = args[:active_state] if args.key?(:active_state)
|
448
|
+
@client_status = args[:client_status] if args.key?(:client_status)
|
449
|
+
@draining_state = args[:draining_state] if args.key?(:draining_state)
|
450
|
+
@error_state = args[:error_state] if args.key?(:error_state)
|
451
|
+
@name = args[:name] if args.key?(:name)
|
452
|
+
@warming_state = args[:warming_state] if args.key?(:warming_state)
|
453
|
+
end
|
454
|
+
end
|
455
|
+
|
456
|
+
#
|
457
|
+
class DynamicListenerState
|
458
|
+
include Google::Apis::Core::Hashable
|
459
|
+
|
460
|
+
# The timestamp when the Listener was last successfully updated.
|
461
|
+
# Corresponds to the JSON property `lastUpdated`
|
462
|
+
# @return [String]
|
463
|
+
attr_accessor :last_updated
|
464
|
+
|
465
|
+
# The listener config.
|
466
|
+
# Corresponds to the JSON property `listener`
|
467
|
+
# @return [Hash<String,Object>]
|
468
|
+
attr_accessor :listener
|
469
|
+
|
470
|
+
# This is the per-resource version information. This version is currently taken
|
471
|
+
# from the :ref:`version_info ` field at the time that the listener was loaded.
|
472
|
+
# In the future, discrete per-listener versions may be supported by the API.
|
473
|
+
# Corresponds to the JSON property `versionInfo`
|
474
|
+
# @return [String]
|
475
|
+
attr_accessor :version_info
|
476
|
+
|
477
|
+
def initialize(**args)
|
478
|
+
update!(**args)
|
479
|
+
end
|
480
|
+
|
481
|
+
# Update properties of this object
|
482
|
+
def update!(**args)
|
483
|
+
@last_updated = args[:last_updated] if args.key?(:last_updated)
|
484
|
+
@listener = args[:listener] if args.key?(:listener)
|
485
|
+
@version_info = args[:version_info] if args.key?(:version_info)
|
486
|
+
end
|
487
|
+
end
|
488
|
+
|
489
|
+
# [#next-free-field: 6]
|
490
|
+
class DynamicRouteConfig
|
491
|
+
include Google::Apis::Core::Hashable
|
492
|
+
|
493
|
+
# The client status of this resource. [#not-implemented-hide:]
|
494
|
+
# Corresponds to the JSON property `clientStatus`
|
495
|
+
# @return [String]
|
496
|
+
attr_accessor :client_status
|
497
|
+
|
498
|
+
# Set if the last update failed, cleared after the next successful update. The ``
|
499
|
+
# error_state`` field contains the rejected version of this particular resource
|
500
|
+
# along with the reason and timestamp. For successfully updated or acknowledged
|
501
|
+
# resource, this field should be empty. [#not-implemented-hide:]
|
502
|
+
# Corresponds to the JSON property `errorState`
|
503
|
+
# @return [Google::Apis::TrafficdirectorV3::UpdateFailureState]
|
504
|
+
attr_accessor :error_state
|
505
|
+
|
506
|
+
# The timestamp when the Route was last updated.
|
507
|
+
# Corresponds to the JSON property `lastUpdated`
|
508
|
+
# @return [String]
|
509
|
+
attr_accessor :last_updated
|
510
|
+
|
511
|
+
# The route config.
|
512
|
+
# Corresponds to the JSON property `routeConfig`
|
513
|
+
# @return [Hash<String,Object>]
|
514
|
+
attr_accessor :route_config
|
515
|
+
|
516
|
+
# This is the per-resource version information. This version is currently taken
|
517
|
+
# from the :ref:`version_info ` field at the time that the route configuration
|
518
|
+
# was loaded.
|
519
|
+
# Corresponds to the JSON property `versionInfo`
|
520
|
+
# @return [String]
|
521
|
+
attr_accessor :version_info
|
522
|
+
|
523
|
+
def initialize(**args)
|
524
|
+
update!(**args)
|
525
|
+
end
|
526
|
+
|
527
|
+
# Update properties of this object
|
528
|
+
def update!(**args)
|
529
|
+
@client_status = args[:client_status] if args.key?(:client_status)
|
530
|
+
@error_state = args[:error_state] if args.key?(:error_state)
|
531
|
+
@last_updated = args[:last_updated] if args.key?(:last_updated)
|
532
|
+
@route_config = args[:route_config] if args.key?(:route_config)
|
533
|
+
@version_info = args[:version_info] if args.key?(:version_info)
|
534
|
+
end
|
535
|
+
end
|
536
|
+
|
537
|
+
# [#next-free-field: 7]
|
538
|
+
class DynamicScopedRouteConfigs
|
539
|
+
include Google::Apis::Core::Hashable
|
540
|
+
|
541
|
+
# The client status of this resource. [#not-implemented-hide:]
|
542
|
+
# Corresponds to the JSON property `clientStatus`
|
543
|
+
# @return [String]
|
544
|
+
attr_accessor :client_status
|
545
|
+
|
546
|
+
# Set if the last update failed, cleared after the next successful update. The ``
|
547
|
+
# error_state`` field contains the rejected version of this particular resource
|
548
|
+
# along with the reason and timestamp. For successfully updated or acknowledged
|
549
|
+
# resource, this field should be empty. [#not-implemented-hide:]
|
550
|
+
# Corresponds to the JSON property `errorState`
|
551
|
+
# @return [Google::Apis::TrafficdirectorV3::UpdateFailureState]
|
552
|
+
attr_accessor :error_state
|
553
|
+
|
554
|
+
# The timestamp when the scoped route config set was last updated.
|
555
|
+
# Corresponds to the JSON property `lastUpdated`
|
556
|
+
# @return [String]
|
557
|
+
attr_accessor :last_updated
|
558
|
+
|
559
|
+
# The name assigned to the scoped route configurations.
|
560
|
+
# Corresponds to the JSON property `name`
|
561
|
+
# @return [String]
|
562
|
+
attr_accessor :name
|
563
|
+
|
564
|
+
# The scoped route configurations.
|
565
|
+
# Corresponds to the JSON property `scopedRouteConfigs`
|
566
|
+
# @return [Array<Hash<String,Object>>]
|
567
|
+
attr_accessor :scoped_route_configs
|
568
|
+
|
569
|
+
# This is the per-resource version information. This version is currently taken
|
570
|
+
# from the :ref:`version_info ` field at the time that the scoped routes
|
571
|
+
# configuration was loaded.
|
572
|
+
# Corresponds to the JSON property `versionInfo`
|
573
|
+
# @return [String]
|
574
|
+
attr_accessor :version_info
|
575
|
+
|
576
|
+
def initialize(**args)
|
577
|
+
update!(**args)
|
578
|
+
end
|
579
|
+
|
580
|
+
# Update properties of this object
|
581
|
+
def update!(**args)
|
582
|
+
@client_status = args[:client_status] if args.key?(:client_status)
|
583
|
+
@error_state = args[:error_state] if args.key?(:error_state)
|
584
|
+
@last_updated = args[:last_updated] if args.key?(:last_updated)
|
585
|
+
@name = args[:name] if args.key?(:name)
|
586
|
+
@scoped_route_configs = args[:scoped_route_configs] if args.key?(:scoped_route_configs)
|
587
|
+
@version_info = args[:version_info] if args.key?(:version_info)
|
588
|
+
end
|
589
|
+
end
|
590
|
+
|
591
|
+
# Envoy's admin fill this message with all currently known endpoints. Endpoint
|
592
|
+
# configuration information can be used to recreate an Envoy configuration by
|
593
|
+
# populating all endpoints as static endpoints or by returning them in an EDS
|
594
|
+
# response.
|
595
|
+
class EndpointsConfigDump
|
596
|
+
include Google::Apis::Core::Hashable
|
597
|
+
|
598
|
+
# The dynamically loaded endpoint configs.
|
599
|
+
# Corresponds to the JSON property `dynamicEndpointConfigs`
|
600
|
+
# @return [Array<Google::Apis::TrafficdirectorV3::DynamicEndpointConfig>]
|
601
|
+
attr_accessor :dynamic_endpoint_configs
|
602
|
+
|
603
|
+
# The statically loaded endpoint configs.
|
604
|
+
# Corresponds to the JSON property `staticEndpointConfigs`
|
605
|
+
# @return [Array<Google::Apis::TrafficdirectorV3::StaticEndpointConfig>]
|
606
|
+
attr_accessor :static_endpoint_configs
|
607
|
+
|
608
|
+
def initialize(**args)
|
609
|
+
update!(**args)
|
610
|
+
end
|
611
|
+
|
612
|
+
# Update properties of this object
|
613
|
+
def update!(**args)
|
614
|
+
@dynamic_endpoint_configs = args[:dynamic_endpoint_configs] if args.key?(:dynamic_endpoint_configs)
|
615
|
+
@static_endpoint_configs = args[:static_endpoint_configs] if args.key?(:static_endpoint_configs)
|
616
|
+
end
|
617
|
+
end
|
618
|
+
|
619
|
+
# The address represents an envoy internal listener. [#comment:
|
620
|
+
class EnvoyInternalAddress
|
621
|
+
include Google::Apis::Core::Hashable
|
622
|
+
|
623
|
+
# Specifies an endpoint identifier to distinguish between multiple endpoints for
|
624
|
+
# the same internal listener in a single upstream pool. Only used in the
|
625
|
+
# upstream addresses for tracking changes to individual endpoints. This, for
|
626
|
+
# example, may be set to the final destination IP for the target internal
|
627
|
+
# listener.
|
628
|
+
# Corresponds to the JSON property `endpointId`
|
629
|
+
# @return [String]
|
630
|
+
attr_accessor :endpoint_id
|
631
|
+
|
632
|
+
# Specifies the :ref:`name ` of the internal listener.
|
633
|
+
# Corresponds to the JSON property `serverListenerName`
|
634
|
+
# @return [String]
|
635
|
+
attr_accessor :server_listener_name
|
636
|
+
|
637
|
+
def initialize(**args)
|
638
|
+
update!(**args)
|
639
|
+
end
|
640
|
+
|
641
|
+
# Update properties of this object
|
642
|
+
def update!(**args)
|
643
|
+
@endpoint_id = args[:endpoint_id] if args.key?(:endpoint_id)
|
644
|
+
@server_listener_name = args[:server_listener_name] if args.key?(:server_listener_name)
|
645
|
+
end
|
646
|
+
end
|
647
|
+
|
648
|
+
# Version and identification for an Envoy extension. [#next-free-field: 7]
|
649
|
+
class Extension
|
650
|
+
include Google::Apis::Core::Hashable
|
651
|
+
|
652
|
+
# Category of the extension. Extension category names use reverse DNS notation.
|
653
|
+
# For instance "envoy.filters.listener" for Envoy's built-in listener filters or
|
654
|
+
# "com.acme.filters.http" for HTTP filters from acme.com vendor. [#comment:
|
655
|
+
# Corresponds to the JSON property `category`
|
656
|
+
# @return [String]
|
657
|
+
attr_accessor :category
|
658
|
+
|
659
|
+
# Indicates that the extension is present but was disabled via dynamic
|
660
|
+
# configuration.
|
661
|
+
# Corresponds to the JSON property `disabled`
|
662
|
+
# @return [Boolean]
|
663
|
+
attr_accessor :disabled
|
664
|
+
alias_method :disabled?, :disabled
|
665
|
+
|
666
|
+
# This is the name of the Envoy filter as specified in the Envoy configuration,
|
667
|
+
# e.g. envoy.filters.http.router, com.acme.widget.
|
668
|
+
# Corresponds to the JSON property `name`
|
669
|
+
# @return [String]
|
670
|
+
attr_accessor :name
|
671
|
+
|
672
|
+
# [#not-implemented-hide:] Type descriptor of extension configuration proto. [#
|
673
|
+
# comment:
|
674
|
+
# Corresponds to the JSON property `typeDescriptor`
|
675
|
+
# @return [String]
|
676
|
+
attr_accessor :type_descriptor
|
677
|
+
|
678
|
+
# Type URLs of extension configuration protos.
|
679
|
+
# Corresponds to the JSON property `typeUrls`
|
680
|
+
# @return [Array<String>]
|
681
|
+
attr_accessor :type_urls
|
682
|
+
|
683
|
+
# BuildVersion combines SemVer version of extension with free-form build
|
684
|
+
# information (i.e. 'alpha', 'private-build') as a set of strings.
|
685
|
+
# Corresponds to the JSON property `version`
|
686
|
+
# @return [Google::Apis::TrafficdirectorV3::BuildVersion]
|
687
|
+
attr_accessor :version
|
688
|
+
|
689
|
+
def initialize(**args)
|
690
|
+
update!(**args)
|
691
|
+
end
|
692
|
+
|
693
|
+
# Update properties of this object
|
694
|
+
def update!(**args)
|
695
|
+
@category = args[:category] if args.key?(:category)
|
696
|
+
@disabled = args[:disabled] if args.key?(:disabled)
|
697
|
+
@name = args[:name] if args.key?(:name)
|
698
|
+
@type_descriptor = args[:type_descriptor] if args.key?(:type_descriptor)
|
699
|
+
@type_urls = args[:type_urls] if args.key?(:type_urls)
|
700
|
+
@version = args[:version] if args.key?(:version)
|
701
|
+
end
|
702
|
+
end
|
703
|
+
|
704
|
+
# GenericXdsConfig is used to specify the config status and the dump of any xDS
|
705
|
+
# resource identified by their type URL. It is the generalized version of the
|
706
|
+
# now deprecated ListenersConfigDump, ClustersConfigDump etc [#next-free-field:
|
707
|
+
# 10]
|
708
|
+
class GenericXdsConfig
|
709
|
+
include Google::Apis::Core::Hashable
|
710
|
+
|
711
|
+
# Per xDS resource status from the view of a xDS client
|
712
|
+
# Corresponds to the JSON property `clientStatus`
|
713
|
+
# @return [String]
|
714
|
+
attr_accessor :client_status
|
715
|
+
|
716
|
+
# Per xDS resource config status. It is generated by management servers. It will
|
717
|
+
# not be present if the CSDS server is an xDS client.
|
718
|
+
# Corresponds to the JSON property `configStatus`
|
719
|
+
# @return [String]
|
720
|
+
attr_accessor :config_status
|
721
|
+
|
722
|
+
# Set if the last update failed, cleared after the next successful update. The *
|
723
|
+
# error_state* field contains the rejected version of this particular resource
|
724
|
+
# along with the reason and timestamp. For successfully updated or acknowledged
|
725
|
+
# resource, this field should be empty. [#not-implemented-hide:]
|
726
|
+
# Corresponds to the JSON property `errorState`
|
727
|
+
# @return [Google::Apis::TrafficdirectorV3::UpdateFailureState]
|
728
|
+
attr_accessor :error_state
|
729
|
+
|
730
|
+
# Is static resource is true if it is specified in the config supplied through
|
731
|
+
# the file at the startup.
|
732
|
+
# Corresponds to the JSON property `isStaticResource`
|
733
|
+
# @return [Boolean]
|
734
|
+
attr_accessor :is_static_resource
|
735
|
+
alias_method :is_static_resource?, :is_static_resource
|
736
|
+
|
737
|
+
# Timestamp when the xDS resource was last updated
|
738
|
+
# Corresponds to the JSON property `lastUpdated`
|
739
|
+
# @return [String]
|
740
|
+
attr_accessor :last_updated
|
741
|
+
|
742
|
+
# Name of the xDS resource
|
743
|
+
# Corresponds to the JSON property `name`
|
744
|
+
# @return [String]
|
745
|
+
attr_accessor :name
|
746
|
+
|
747
|
+
# Type_url represents the fully qualified name of xDS resource type like envoy.
|
748
|
+
# v3.Cluster, envoy.v3.ClusterLoadAssignment etc.
|
749
|
+
# Corresponds to the JSON property `typeUrl`
|
750
|
+
# @return [String]
|
751
|
+
attr_accessor :type_url
|
752
|
+
|
753
|
+
# This is the :ref:`version_info ` in the last processed xDS discovery response.
|
754
|
+
# If there are only static bootstrap listeners, this field will be ""
|
755
|
+
# Corresponds to the JSON property `versionInfo`
|
756
|
+
# @return [String]
|
757
|
+
attr_accessor :version_info
|
758
|
+
|
759
|
+
# The xDS resource config. Actual content depends on the type
|
760
|
+
# Corresponds to the JSON property `xdsConfig`
|
761
|
+
# @return [Hash<String,Object>]
|
762
|
+
attr_accessor :xds_config
|
763
|
+
|
764
|
+
def initialize(**args)
|
765
|
+
update!(**args)
|
766
|
+
end
|
767
|
+
|
768
|
+
# Update properties of this object
|
769
|
+
def update!(**args)
|
770
|
+
@client_status = args[:client_status] if args.key?(:client_status)
|
771
|
+
@config_status = args[:config_status] if args.key?(:config_status)
|
772
|
+
@error_state = args[:error_state] if args.key?(:error_state)
|
773
|
+
@is_static_resource = args[:is_static_resource] if args.key?(:is_static_resource)
|
774
|
+
@last_updated = args[:last_updated] if args.key?(:last_updated)
|
775
|
+
@name = args[:name] if args.key?(:name)
|
776
|
+
@type_url = args[:type_url] if args.key?(:type_url)
|
777
|
+
@version_info = args[:version_info] if args.key?(:version_info)
|
778
|
+
@xds_config = args[:xds_config] if args.key?(:xds_config)
|
779
|
+
end
|
780
|
+
end
|
781
|
+
|
782
|
+
# Google's `RE2 `_ regex engine. The regex string must adhere to the documented `
|
783
|
+
# syntax `_. The engine is designed to complete execution in linear time as well
|
784
|
+
# as limit the amount of memory used. Envoy supports program size checking via
|
785
|
+
# runtime. The runtime keys ``re2.max_program_size.error_level`` and ``re2.
|
786
|
+
# max_program_size.warn_level`` can be set to integers as the maximum program
|
787
|
+
# size or complexity that a compiled regex can have before an exception is
|
788
|
+
# thrown or a warning is logged, respectively. ``re2.max_program_size.
|
789
|
+
# error_level`` defaults to 100, and ``re2.max_program_size.warn_level`` has no
|
790
|
+
# default if unset (will not check/log a warning). Envoy emits two stats for
|
791
|
+
# tracking the program size of regexes: the histogram ``re2.program_size``,
|
792
|
+
# which records the program size, and the counter ``re2.exceeded_warn_level``,
|
793
|
+
# which is incremented each time the program size exceeds the warn level
|
794
|
+
# threshold.
|
795
|
+
class GoogleRe2
|
796
|
+
include Google::Apis::Core::Hashable
|
797
|
+
|
798
|
+
# This field controls the RE2 "program size" which is a rough estimate of how
|
799
|
+
# complex a compiled regex is to evaluate. A regex that has a program size
|
800
|
+
# greater than the configured value will fail to compile. In this case, the
|
801
|
+
# configured max program size can be increased or the regex can be simplified.
|
802
|
+
# If not specified, the default is 100. This field is deprecated; regexp
|
803
|
+
# validation should be performed on the management server instead of being done
|
804
|
+
# by each individual client. .. note:: Although this field is deprecated, the
|
805
|
+
# program size will still be checked against the global ``re2.max_program_size.
|
806
|
+
# error_level`` runtime value.
|
807
|
+
# Corresponds to the JSON property `maxProgramSize`
|
808
|
+
# @return [Fixnum]
|
809
|
+
attr_accessor :max_program_size
|
810
|
+
|
811
|
+
def initialize(**args)
|
812
|
+
update!(**args)
|
813
|
+
end
|
814
|
+
|
815
|
+
# Update properties of this object
|
816
|
+
def update!(**args)
|
817
|
+
@max_program_size = args[:max_program_size] if args.key?(:max_program_size)
|
818
|
+
end
|
819
|
+
end
|
820
|
+
|
821
|
+
#
|
822
|
+
class InlineScopedRouteConfigs
|
823
|
+
include Google::Apis::Core::Hashable
|
824
|
+
|
825
|
+
# The timestamp when the scoped route config set was last updated.
|
826
|
+
# Corresponds to the JSON property `lastUpdated`
|
827
|
+
# @return [String]
|
828
|
+
attr_accessor :last_updated
|
829
|
+
|
830
|
+
# The name assigned to the scoped route configurations.
|
831
|
+
# Corresponds to the JSON property `name`
|
832
|
+
# @return [String]
|
833
|
+
attr_accessor :name
|
834
|
+
|
835
|
+
# The scoped route configurations.
|
836
|
+
# Corresponds to the JSON property `scopedRouteConfigs`
|
837
|
+
# @return [Array<Hash<String,Object>>]
|
838
|
+
attr_accessor :scoped_route_configs
|
839
|
+
|
840
|
+
def initialize(**args)
|
841
|
+
update!(**args)
|
842
|
+
end
|
843
|
+
|
844
|
+
# Update properties of this object
|
845
|
+
def update!(**args)
|
846
|
+
@last_updated = args[:last_updated] if args.key?(:last_updated)
|
847
|
+
@name = args[:name] if args.key?(:name)
|
848
|
+
@scoped_route_configs = args[:scoped_route_configs] if args.key?(:scoped_route_configs)
|
849
|
+
end
|
850
|
+
end
|
851
|
+
|
852
|
+
# Specifies the way to match a list value.
|
853
|
+
class ListMatcher
|
854
|
+
include Google::Apis::Core::Hashable
|
855
|
+
|
856
|
+
# Specifies the way to match a ProtobufWkt::Value. Primitive values and
|
857
|
+
# ListValue are supported. StructValue is not supported and is always not
|
858
|
+
# matched. [#next-free-field: 7]
|
859
|
+
# Corresponds to the JSON property `oneOf`
|
860
|
+
# @return [Google::Apis::TrafficdirectorV3::ValueMatcher]
|
861
|
+
attr_accessor :one_of
|
862
|
+
|
863
|
+
def initialize(**args)
|
864
|
+
update!(**args)
|
865
|
+
end
|
866
|
+
|
867
|
+
# Update properties of this object
|
868
|
+
def update!(**args)
|
869
|
+
@one_of = args[:one_of] if args.key?(:one_of)
|
870
|
+
end
|
871
|
+
end
|
872
|
+
|
873
|
+
# Envoy's listener manager fills this message with all currently known listeners.
|
874
|
+
# Listener configuration information can be used to recreate an Envoy
|
875
|
+
# configuration by populating all listeners as static listeners or by returning
|
876
|
+
# them in a LDS response.
|
877
|
+
class ListenersConfigDump
|
878
|
+
include Google::Apis::Core::Hashable
|
879
|
+
|
880
|
+
# State for any warming, active, or draining listeners.
|
881
|
+
# Corresponds to the JSON property `dynamicListeners`
|
882
|
+
# @return [Array<Google::Apis::TrafficdirectorV3::DynamicListener>]
|
883
|
+
attr_accessor :dynamic_listeners
|
884
|
+
|
885
|
+
# The statically loaded listener configs.
|
886
|
+
# Corresponds to the JSON property `staticListeners`
|
887
|
+
# @return [Array<Google::Apis::TrafficdirectorV3::StaticListener>]
|
888
|
+
attr_accessor :static_listeners
|
889
|
+
|
890
|
+
# This is the :ref:`version_info ` in the last processed LDS discovery response.
|
891
|
+
# If there are only static bootstrap listeners, this field will be "".
|
892
|
+
# Corresponds to the JSON property `versionInfo`
|
893
|
+
# @return [String]
|
894
|
+
attr_accessor :version_info
|
895
|
+
|
896
|
+
def initialize(**args)
|
897
|
+
update!(**args)
|
898
|
+
end
|
899
|
+
|
900
|
+
# Update properties of this object
|
901
|
+
def update!(**args)
|
902
|
+
@dynamic_listeners = args[:dynamic_listeners] if args.key?(:dynamic_listeners)
|
903
|
+
@static_listeners = args[:static_listeners] if args.key?(:static_listeners)
|
904
|
+
@version_info = args[:version_info] if args.key?(:version_info)
|
905
|
+
end
|
906
|
+
end
|
907
|
+
|
908
|
+
# Identifies location of where either Envoy runs or where upstream hosts run.
|
909
|
+
class Locality
|
910
|
+
include Google::Apis::Core::Hashable
|
911
|
+
|
912
|
+
# Region this :ref:`zone ` belongs to.
|
913
|
+
# Corresponds to the JSON property `region`
|
914
|
+
# @return [String]
|
915
|
+
attr_accessor :region
|
916
|
+
|
917
|
+
# When used for locality of upstream hosts, this field further splits zone into
|
918
|
+
# smaller chunks of sub-zones so they can be load balanced independently.
|
919
|
+
# Corresponds to the JSON property `subZone`
|
920
|
+
# @return [String]
|
921
|
+
attr_accessor :sub_zone
|
922
|
+
|
923
|
+
# Defines the local service zone where Envoy is running. Though optional, it
|
924
|
+
# should be set if discovery service routing is used and the discovery service
|
925
|
+
# exposes :ref:`zone data `, either in this message or via :option:`--service-
|
926
|
+
# zone`. The meaning of zone is context dependent, e.g. `Availability Zone (AZ) `
|
927
|
+
# _ on AWS, `Zone `_ on GCP, etc.
|
928
|
+
# Corresponds to the JSON property `zone`
|
929
|
+
# @return [String]
|
930
|
+
attr_accessor :zone
|
931
|
+
|
932
|
+
def initialize(**args)
|
933
|
+
update!(**args)
|
934
|
+
end
|
935
|
+
|
936
|
+
# Update properties of this object
|
937
|
+
def update!(**args)
|
938
|
+
@region = args[:region] if args.key?(:region)
|
939
|
+
@sub_zone = args[:sub_zone] if args.key?(:sub_zone)
|
940
|
+
@zone = args[:zone] if args.key?(:zone)
|
941
|
+
end
|
942
|
+
end
|
943
|
+
|
944
|
+
# Identifies a specific Envoy instance. The node identifier is presented to the
|
945
|
+
# management server, which may use this identifier to distinguish per Envoy
|
946
|
+
# configuration for serving. [#next-free-field: 13]
|
947
|
+
class Node
|
948
|
+
include Google::Apis::Core::Hashable
|
949
|
+
|
950
|
+
# Client feature support list. These are well known features described in the
|
951
|
+
# Envoy API repository for a given major version of an API. Client features use
|
952
|
+
# reverse DNS naming scheme, for example ``com.acme.feature``. See :ref:`the
|
953
|
+
# list of features ` that xDS client may support.
|
954
|
+
# Corresponds to the JSON property `clientFeatures`
|
955
|
+
# @return [Array<String>]
|
956
|
+
attr_accessor :client_features
|
957
|
+
|
958
|
+
# Defines the local service cluster name where Envoy is running. Though optional,
|
959
|
+
# it should be set if any of the following features are used: :ref:`statsd `, :
|
960
|
+
# ref:`health check cluster verification `, :ref:`runtime override directory `, :
|
961
|
+
# ref:`user agent addition `, :ref:`HTTP global rate limiting `, :ref:`CDS `,
|
962
|
+
# and :ref:`HTTP tracing `, either in this message or via :option:`--service-
|
963
|
+
# cluster`.
|
964
|
+
# Corresponds to the JSON property `cluster`
|
965
|
+
# @return [String]
|
966
|
+
attr_accessor :cluster
|
967
|
+
|
968
|
+
# Map from xDS resource type URL to dynamic context parameters. These may vary
|
969
|
+
# at runtime (unlike other fields in this message). For example, the xDS client
|
970
|
+
# may have a shard identifier that changes during the lifetime of the xDS client.
|
971
|
+
# In Envoy, this would be achieved by updating the dynamic context on the
|
972
|
+
# Server::Instance's LocalInfo context provider. The shard ID dynamic parameter
|
973
|
+
# then appears in this field during future discovery requests.
|
974
|
+
# Corresponds to the JSON property `dynamicParameters`
|
975
|
+
# @return [Hash<String,Google::Apis::TrafficdirectorV3::ContextParams>]
|
976
|
+
attr_accessor :dynamic_parameters
|
977
|
+
|
978
|
+
# List of extensions and their versions supported by the node.
|
979
|
+
# Corresponds to the JSON property `extensions`
|
980
|
+
# @return [Array<Google::Apis::TrafficdirectorV3::Extension>]
|
981
|
+
attr_accessor :extensions
|
982
|
+
|
983
|
+
# An opaque node identifier for the Envoy node. This also provides the local
|
984
|
+
# service node name. It should be set if any of the following features are used:
|
985
|
+
# :ref:`statsd `, :ref:`CDS `, and :ref:`HTTP tracing `, either in this message
|
986
|
+
# or via :option:`--service-node`.
|
987
|
+
# Corresponds to the JSON property `id`
|
988
|
+
# @return [String]
|
989
|
+
attr_accessor :id
|
990
|
+
|
991
|
+
# Known listening ports on the node as a generic hint to the management server
|
992
|
+
# for filtering :ref:`listeners ` to be returned. For example, if there is a
|
993
|
+
# listener bound to port 80, the list can optionally contain the SocketAddress ``
|
994
|
+
# (0.0.0.0,80)``. The field is optional and just a hint.
|
995
|
+
# Corresponds to the JSON property `listeningAddresses`
|
996
|
+
# @return [Array<Google::Apis::TrafficdirectorV3::Address>]
|
997
|
+
attr_accessor :listening_addresses
|
998
|
+
|
999
|
+
# Identifies location of where either Envoy runs or where upstream hosts run.
|
1000
|
+
# Corresponds to the JSON property `locality`
|
1001
|
+
# @return [Google::Apis::TrafficdirectorV3::Locality]
|
1002
|
+
attr_accessor :locality
|
1003
|
+
|
1004
|
+
# Opaque metadata extending the node identifier. Envoy will pass this directly
|
1005
|
+
# to the management server.
|
1006
|
+
# Corresponds to the JSON property `metadata`
|
1007
|
+
# @return [Hash<String,Object>]
|
1008
|
+
attr_accessor :metadata
|
1009
|
+
|
1010
|
+
# BuildVersion combines SemVer version of extension with free-form build
|
1011
|
+
# information (i.e. 'alpha', 'private-build') as a set of strings.
|
1012
|
+
# Corresponds to the JSON property `userAgentBuildVersion`
|
1013
|
+
# @return [Google::Apis::TrafficdirectorV3::BuildVersion]
|
1014
|
+
attr_accessor :user_agent_build_version
|
1015
|
+
|
1016
|
+
# Free-form string that identifies the entity requesting config. E.g. "envoy" or
|
1017
|
+
# "grpc"
|
1018
|
+
# Corresponds to the JSON property `userAgentName`
|
1019
|
+
# @return [String]
|
1020
|
+
attr_accessor :user_agent_name
|
1021
|
+
|
1022
|
+
# Free-form string that identifies the version of the entity requesting config.
|
1023
|
+
# E.g. "1.12.2" or "abcd1234", or "SpecialEnvoyBuild"
|
1024
|
+
# Corresponds to the JSON property `userAgentVersion`
|
1025
|
+
# @return [String]
|
1026
|
+
attr_accessor :user_agent_version
|
1027
|
+
|
1028
|
+
def initialize(**args)
|
1029
|
+
update!(**args)
|
1030
|
+
end
|
1031
|
+
|
1032
|
+
# Update properties of this object
|
1033
|
+
def update!(**args)
|
1034
|
+
@client_features = args[:client_features] if args.key?(:client_features)
|
1035
|
+
@cluster = args[:cluster] if args.key?(:cluster)
|
1036
|
+
@dynamic_parameters = args[:dynamic_parameters] if args.key?(:dynamic_parameters)
|
1037
|
+
@extensions = args[:extensions] if args.key?(:extensions)
|
1038
|
+
@id = args[:id] if args.key?(:id)
|
1039
|
+
@listening_addresses = args[:listening_addresses] if args.key?(:listening_addresses)
|
1040
|
+
@locality = args[:locality] if args.key?(:locality)
|
1041
|
+
@metadata = args[:metadata] if args.key?(:metadata)
|
1042
|
+
@user_agent_build_version = args[:user_agent_build_version] if args.key?(:user_agent_build_version)
|
1043
|
+
@user_agent_name = args[:user_agent_name] if args.key?(:user_agent_name)
|
1044
|
+
@user_agent_version = args[:user_agent_version] if args.key?(:user_agent_version)
|
1045
|
+
end
|
1046
|
+
end
|
1047
|
+
|
1048
|
+
# Specifies the way to match a Node. The match follows AND semantics.
|
1049
|
+
class NodeMatcher
|
1050
|
+
include Google::Apis::Core::Hashable
|
1051
|
+
|
1052
|
+
# Specifies the way to match a string. [#next-free-field: 8]
|
1053
|
+
# Corresponds to the JSON property `nodeId`
|
1054
|
+
# @return [Google::Apis::TrafficdirectorV3::StringMatcher]
|
1055
|
+
attr_accessor :node_id
|
1056
|
+
|
1057
|
+
# Specifies match criteria on the node metadata.
|
1058
|
+
# Corresponds to the JSON property `nodeMetadatas`
|
1059
|
+
# @return [Array<Google::Apis::TrafficdirectorV3::StructMatcher>]
|
1060
|
+
attr_accessor :node_metadatas
|
1061
|
+
|
1062
|
+
def initialize(**args)
|
1063
|
+
update!(**args)
|
1064
|
+
end
|
1065
|
+
|
1066
|
+
# Update properties of this object
|
1067
|
+
def update!(**args)
|
1068
|
+
@node_id = args[:node_id] if args.key?(:node_id)
|
1069
|
+
@node_metadatas = args[:node_metadatas] if args.key?(:node_metadatas)
|
1070
|
+
end
|
1071
|
+
end
|
1072
|
+
|
1073
|
+
# NullMatch is an empty message to specify a null value.
|
1074
|
+
class NullMatch
|
1075
|
+
include Google::Apis::Core::Hashable
|
1076
|
+
|
1077
|
+
def initialize(**args)
|
1078
|
+
update!(**args)
|
1079
|
+
end
|
1080
|
+
|
1081
|
+
# Update properties of this object
|
1082
|
+
def update!(**args)
|
1083
|
+
end
|
1084
|
+
end
|
1085
|
+
|
1086
|
+
# Specifies the segment in a path to retrieve value from Struct.
|
1087
|
+
class PathSegment
|
1088
|
+
include Google::Apis::Core::Hashable
|
1089
|
+
|
1090
|
+
# If specified, use the key to retrieve the value in a Struct.
|
1091
|
+
# Corresponds to the JSON property `key`
|
1092
|
+
# @return [String]
|
1093
|
+
attr_accessor :key
|
1094
|
+
|
1095
|
+
def initialize(**args)
|
1096
|
+
update!(**args)
|
1097
|
+
end
|
1098
|
+
|
1099
|
+
# Update properties of this object
|
1100
|
+
def update!(**args)
|
1101
|
+
@key = args[:key] if args.key?(:key)
|
1102
|
+
end
|
1103
|
+
end
|
1104
|
+
|
1105
|
+
# Detailed config (per xDS) with status. [#next-free-field: 8]
|
1106
|
+
class PerXdsConfig
|
1107
|
+
include Google::Apis::Core::Hashable
|
1108
|
+
|
1109
|
+
# Client config status is populated by xDS clients. Will not be present if the
|
1110
|
+
# CSDS server is an xDS server. No matter what the client config status is, xDS
|
1111
|
+
# clients should always dump the most recent accepted xDS config. .. attention::
|
1112
|
+
# This field is deprecated. Use :ref:`ClientResourceStatus ` for per-resource
|
1113
|
+
# config status instead.
|
1114
|
+
# Corresponds to the JSON property `clientStatus`
|
1115
|
+
# @return [String]
|
1116
|
+
attr_accessor :client_status
|
1117
|
+
|
1118
|
+
# Envoy's cluster manager fills this message with all currently known clusters.
|
1119
|
+
# Cluster configuration information can be used to recreate an Envoy
|
1120
|
+
# configuration by populating all clusters as static clusters or by returning
|
1121
|
+
# them in a CDS response.
|
1122
|
+
# Corresponds to the JSON property `clusterConfig`
|
1123
|
+
# @return [Google::Apis::TrafficdirectorV3::ClustersConfigDump]
|
1124
|
+
attr_accessor :cluster_config
|
1125
|
+
|
1126
|
+
# Envoy's admin fill this message with all currently known endpoints. Endpoint
|
1127
|
+
# configuration information can be used to recreate an Envoy configuration by
|
1128
|
+
# populating all endpoints as static endpoints or by returning them in an EDS
|
1129
|
+
# response.
|
1130
|
+
# Corresponds to the JSON property `endpointConfig`
|
1131
|
+
# @return [Google::Apis::TrafficdirectorV3::EndpointsConfigDump]
|
1132
|
+
attr_accessor :endpoint_config
|
1133
|
+
|
1134
|
+
# Envoy's listener manager fills this message with all currently known listeners.
|
1135
|
+
# Listener configuration information can be used to recreate an Envoy
|
1136
|
+
# configuration by populating all listeners as static listeners or by returning
|
1137
|
+
# them in a LDS response.
|
1138
|
+
# Corresponds to the JSON property `listenerConfig`
|
1139
|
+
# @return [Google::Apis::TrafficdirectorV3::ListenersConfigDump]
|
1140
|
+
attr_accessor :listener_config
|
1141
|
+
|
1142
|
+
# Envoy's RDS implementation fills this message with all currently loaded routes,
|
1143
|
+
# as described by their RouteConfiguration objects. Static routes that are
|
1144
|
+
# either defined in the bootstrap configuration or defined inline while
|
1145
|
+
# configuring listeners are separated from those configured dynamically via RDS.
|
1146
|
+
# Route configuration information can be used to recreate an Envoy configuration
|
1147
|
+
# by populating all routes as static routes or by returning them in RDS
|
1148
|
+
# responses.
|
1149
|
+
# Corresponds to the JSON property `routeConfig`
|
1150
|
+
# @return [Google::Apis::TrafficdirectorV3::RoutesConfigDump]
|
1151
|
+
attr_accessor :route_config
|
1152
|
+
|
1153
|
+
# Envoy's scoped RDS implementation fills this message with all currently loaded
|
1154
|
+
# route configuration scopes (defined via ScopedRouteConfigurationsSet protos).
|
1155
|
+
# This message lists both the scopes defined inline with the higher order object
|
1156
|
+
# (i.e., the HttpConnectionManager) and the dynamically obtained scopes via the
|
1157
|
+
# SRDS API.
|
1158
|
+
# Corresponds to the JSON property `scopedRouteConfig`
|
1159
|
+
# @return [Google::Apis::TrafficdirectorV3::ScopedRoutesConfigDump]
|
1160
|
+
attr_accessor :scoped_route_config
|
1161
|
+
|
1162
|
+
# Config status generated by management servers. Will not be present if the CSDS
|
1163
|
+
# server is an xDS client.
|
1164
|
+
# Corresponds to the JSON property `status`
|
1165
|
+
# @return [String]
|
1166
|
+
attr_accessor :status
|
1167
|
+
|
1168
|
+
def initialize(**args)
|
1169
|
+
update!(**args)
|
1170
|
+
end
|
1171
|
+
|
1172
|
+
# Update properties of this object
|
1173
|
+
def update!(**args)
|
1174
|
+
@client_status = args[:client_status] if args.key?(:client_status)
|
1175
|
+
@cluster_config = args[:cluster_config] if args.key?(:cluster_config)
|
1176
|
+
@endpoint_config = args[:endpoint_config] if args.key?(:endpoint_config)
|
1177
|
+
@listener_config = args[:listener_config] if args.key?(:listener_config)
|
1178
|
+
@route_config = args[:route_config] if args.key?(:route_config)
|
1179
|
+
@scoped_route_config = args[:scoped_route_config] if args.key?(:scoped_route_config)
|
1180
|
+
@status = args[:status] if args.key?(:status)
|
1181
|
+
end
|
1182
|
+
end
|
1183
|
+
|
1184
|
+
#
|
1185
|
+
class Pipe
|
1186
|
+
include Google::Apis::Core::Hashable
|
1187
|
+
|
1188
|
+
# The mode for the Pipe. Not applicable for abstract sockets.
|
1189
|
+
# Corresponds to the JSON property `mode`
|
1190
|
+
# @return [Fixnum]
|
1191
|
+
attr_accessor :mode
|
1192
|
+
|
1193
|
+
# Unix Domain Socket path. On Linux, paths starting with '@' will use the
|
1194
|
+
# abstract namespace. The starting '@' is replaced by a null byte by Envoy.
|
1195
|
+
# Paths starting with '@' will result in an error in environments other than
|
1196
|
+
# Linux.
|
1197
|
+
# Corresponds to the JSON property `path`
|
1198
|
+
# @return [String]
|
1199
|
+
attr_accessor :path
|
1200
|
+
|
1201
|
+
def initialize(**args)
|
1202
|
+
update!(**args)
|
1203
|
+
end
|
1204
|
+
|
1205
|
+
# Update properties of this object
|
1206
|
+
def update!(**args)
|
1207
|
+
@mode = args[:mode] if args.key?(:mode)
|
1208
|
+
@path = args[:path] if args.key?(:path)
|
1209
|
+
end
|
1210
|
+
end
|
1211
|
+
|
1212
|
+
# A regex matcher designed for safety when used with untrusted input.
|
1213
|
+
class RegexMatcher
|
1214
|
+
include Google::Apis::Core::Hashable
|
1215
|
+
|
1216
|
+
# Google's `RE2 `_ regex engine. The regex string must adhere to the documented `
|
1217
|
+
# syntax `_. The engine is designed to complete execution in linear time as well
|
1218
|
+
# as limit the amount of memory used. Envoy supports program size checking via
|
1219
|
+
# runtime. The runtime keys ``re2.max_program_size.error_level`` and ``re2.
|
1220
|
+
# max_program_size.warn_level`` can be set to integers as the maximum program
|
1221
|
+
# size or complexity that a compiled regex can have before an exception is
|
1222
|
+
# thrown or a warning is logged, respectively. ``re2.max_program_size.
|
1223
|
+
# error_level`` defaults to 100, and ``re2.max_program_size.warn_level`` has no
|
1224
|
+
# default if unset (will not check/log a warning). Envoy emits two stats for
|
1225
|
+
# tracking the program size of regexes: the histogram ``re2.program_size``,
|
1226
|
+
# which records the program size, and the counter ``re2.exceeded_warn_level``,
|
1227
|
+
# which is incremented each time the program size exceeds the warn level
|
1228
|
+
# threshold.
|
1229
|
+
# Corresponds to the JSON property `googleRe2`
|
1230
|
+
# @return [Google::Apis::TrafficdirectorV3::GoogleRe2]
|
1231
|
+
attr_accessor :google_re2
|
1232
|
+
|
1233
|
+
# The regex match string. The string must be supported by the configured engine.
|
1234
|
+
# The regex is matched against the full string, not as a partial match.
|
1235
|
+
# Corresponds to the JSON property `regex`
|
1236
|
+
# @return [String]
|
1237
|
+
attr_accessor :regex
|
1238
|
+
|
1239
|
+
def initialize(**args)
|
1240
|
+
update!(**args)
|
1241
|
+
end
|
1242
|
+
|
1243
|
+
# Update properties of this object
|
1244
|
+
def update!(**args)
|
1245
|
+
@google_re2 = args[:google_re2] if args.key?(:google_re2)
|
1246
|
+
@regex = args[:regex] if args.key?(:regex)
|
1247
|
+
end
|
1248
|
+
end
|
1249
|
+
|
1250
|
+
# Envoy's RDS implementation fills this message with all currently loaded routes,
|
1251
|
+
# as described by their RouteConfiguration objects. Static routes that are
|
1252
|
+
# either defined in the bootstrap configuration or defined inline while
|
1253
|
+
# configuring listeners are separated from those configured dynamically via RDS.
|
1254
|
+
# Route configuration information can be used to recreate an Envoy configuration
|
1255
|
+
# by populating all routes as static routes or by returning them in RDS
|
1256
|
+
# responses.
|
1257
|
+
class RoutesConfigDump
|
1258
|
+
include Google::Apis::Core::Hashable
|
1259
|
+
|
1260
|
+
# The dynamically loaded route configs.
|
1261
|
+
# Corresponds to the JSON property `dynamicRouteConfigs`
|
1262
|
+
# @return [Array<Google::Apis::TrafficdirectorV3::DynamicRouteConfig>]
|
1263
|
+
attr_accessor :dynamic_route_configs
|
1264
|
+
|
1265
|
+
# The statically loaded route configs.
|
1266
|
+
# Corresponds to the JSON property `staticRouteConfigs`
|
1267
|
+
# @return [Array<Google::Apis::TrafficdirectorV3::StaticRouteConfig>]
|
1268
|
+
attr_accessor :static_route_configs
|
1269
|
+
|
1270
|
+
def initialize(**args)
|
1271
|
+
update!(**args)
|
1272
|
+
end
|
1273
|
+
|
1274
|
+
# Update properties of this object
|
1275
|
+
def update!(**args)
|
1276
|
+
@dynamic_route_configs = args[:dynamic_route_configs] if args.key?(:dynamic_route_configs)
|
1277
|
+
@static_route_configs = args[:static_route_configs] if args.key?(:static_route_configs)
|
1278
|
+
end
|
1279
|
+
end
|
1280
|
+
|
1281
|
+
# Envoy's scoped RDS implementation fills this message with all currently loaded
|
1282
|
+
# route configuration scopes (defined via ScopedRouteConfigurationsSet protos).
|
1283
|
+
# This message lists both the scopes defined inline with the higher order object
|
1284
|
+
# (i.e., the HttpConnectionManager) and the dynamically obtained scopes via the
|
1285
|
+
# SRDS API.
|
1286
|
+
class ScopedRoutesConfigDump
|
1287
|
+
include Google::Apis::Core::Hashable
|
1288
|
+
|
1289
|
+
# The dynamically loaded scoped route configs.
|
1290
|
+
# Corresponds to the JSON property `dynamicScopedRouteConfigs`
|
1291
|
+
# @return [Array<Google::Apis::TrafficdirectorV3::DynamicScopedRouteConfigs>]
|
1292
|
+
attr_accessor :dynamic_scoped_route_configs
|
1293
|
+
|
1294
|
+
# The statically loaded scoped route configs.
|
1295
|
+
# Corresponds to the JSON property `inlineScopedRouteConfigs`
|
1296
|
+
# @return [Array<Google::Apis::TrafficdirectorV3::InlineScopedRouteConfigs>]
|
1297
|
+
attr_accessor :inline_scoped_route_configs
|
1298
|
+
|
1299
|
+
def initialize(**args)
|
1300
|
+
update!(**args)
|
1301
|
+
end
|
1302
|
+
|
1303
|
+
# Update properties of this object
|
1304
|
+
def update!(**args)
|
1305
|
+
@dynamic_scoped_route_configs = args[:dynamic_scoped_route_configs] if args.key?(:dynamic_scoped_route_configs)
|
1306
|
+
@inline_scoped_route_configs = args[:inline_scoped_route_configs] if args.key?(:inline_scoped_route_configs)
|
1307
|
+
end
|
1308
|
+
end
|
1309
|
+
|
1310
|
+
# Envoy uses SemVer (https://semver.org/). Major/minor versions indicate
|
1311
|
+
# expected behaviors and APIs, the patch version field is used only for security
|
1312
|
+
# fixes and can be generally ignored.
|
1313
|
+
class SemanticVersion
|
1314
|
+
include Google::Apis::Core::Hashable
|
1315
|
+
|
1316
|
+
#
|
1317
|
+
# Corresponds to the JSON property `majorNumber`
|
1318
|
+
# @return [Fixnum]
|
1319
|
+
attr_accessor :major_number
|
1320
|
+
|
1321
|
+
#
|
1322
|
+
# Corresponds to the JSON property `minorNumber`
|
1323
|
+
# @return [Fixnum]
|
1324
|
+
attr_accessor :minor_number
|
1325
|
+
|
1326
|
+
#
|
1327
|
+
# Corresponds to the JSON property `patch`
|
1328
|
+
# @return [Fixnum]
|
1329
|
+
attr_accessor :patch
|
1330
|
+
|
1331
|
+
def initialize(**args)
|
1332
|
+
update!(**args)
|
1333
|
+
end
|
1334
|
+
|
1335
|
+
# Update properties of this object
|
1336
|
+
def update!(**args)
|
1337
|
+
@major_number = args[:major_number] if args.key?(:major_number)
|
1338
|
+
@minor_number = args[:minor_number] if args.key?(:minor_number)
|
1339
|
+
@patch = args[:patch] if args.key?(:patch)
|
1340
|
+
end
|
1341
|
+
end
|
1342
|
+
|
1343
|
+
# [#next-free-field: 7]
|
1344
|
+
class SocketAddress
|
1345
|
+
include Google::Apis::Core::Hashable
|
1346
|
+
|
1347
|
+
# The address for this socket. :ref:`Listeners ` will bind to the address. An
|
1348
|
+
# empty address is not allowed. Specify ``0.0.0.0`` or ``::`` to bind to any
|
1349
|
+
# address. [#comment:TODO(zuercher) reinstate when implemented: It is possible
|
1350
|
+
# to distinguish a Listener address via the prefix/suffix matching in :ref:`
|
1351
|
+
# FilterChainMatch `.] When used within an upstream :ref:`BindConfig `, the
|
1352
|
+
# address controls the source address of outbound connections. For :ref:`
|
1353
|
+
# clusters `, the cluster type determines whether the address must be an IP (``
|
1354
|
+
# STATIC`` or ``EDS`` clusters) or a hostname resolved by DNS (``STRICT_DNS`` or
|
1355
|
+
# ``LOGICAL_DNS`` clusters). Address resolution can be customized via :ref:`
|
1356
|
+
# resolver_name `.
|
1357
|
+
# Corresponds to the JSON property `address`
|
1358
|
+
# @return [String]
|
1359
|
+
attr_accessor :address
|
1360
|
+
|
1361
|
+
# When binding to an IPv6 address above, this enables `IPv4 compatibility `_.
|
1362
|
+
# Binding to ``::`` will allow both IPv4 and IPv6 connections, with peer IPv4
|
1363
|
+
# addresses mapped into IPv6 space as ``::FFFF:``.
|
1364
|
+
# Corresponds to the JSON property `ipv4Compat`
|
1365
|
+
# @return [Boolean]
|
1366
|
+
attr_accessor :ipv4_compat
|
1367
|
+
alias_method :ipv4_compat?, :ipv4_compat
|
1368
|
+
|
1369
|
+
# This is only valid if :ref:`resolver_name ` is specified below and the named
|
1370
|
+
# resolver is capable of named port resolution.
|
1371
|
+
# Corresponds to the JSON property `namedPort`
|
1372
|
+
# @return [String]
|
1373
|
+
attr_accessor :named_port
|
1374
|
+
|
1375
|
+
#
|
1376
|
+
# Corresponds to the JSON property `portValue`
|
1377
|
+
# @return [Fixnum]
|
1378
|
+
attr_accessor :port_value
|
1379
|
+
|
1380
|
+
#
|
1381
|
+
# Corresponds to the JSON property `protocol`
|
1382
|
+
# @return [String]
|
1383
|
+
attr_accessor :protocol
|
1384
|
+
|
1385
|
+
# The name of the custom resolver. This must have been registered with Envoy. If
|
1386
|
+
# this is empty, a context dependent default applies. If the address is a
|
1387
|
+
# concrete IP address, no resolution will occur. If address is a hostname this
|
1388
|
+
# should be set for resolution other than DNS. Specifying a custom resolver with
|
1389
|
+
# ``STRICT_DNS`` or ``LOGICAL_DNS`` will generate an error at runtime.
|
1390
|
+
# Corresponds to the JSON property `resolverName`
|
1391
|
+
# @return [String]
|
1392
|
+
attr_accessor :resolver_name
|
1393
|
+
|
1394
|
+
def initialize(**args)
|
1395
|
+
update!(**args)
|
1396
|
+
end
|
1397
|
+
|
1398
|
+
# Update properties of this object
|
1399
|
+
def update!(**args)
|
1400
|
+
@address = args[:address] if args.key?(:address)
|
1401
|
+
@ipv4_compat = args[:ipv4_compat] if args.key?(:ipv4_compat)
|
1402
|
+
@named_port = args[:named_port] if args.key?(:named_port)
|
1403
|
+
@port_value = args[:port_value] if args.key?(:port_value)
|
1404
|
+
@protocol = args[:protocol] if args.key?(:protocol)
|
1405
|
+
@resolver_name = args[:resolver_name] if args.key?(:resolver_name)
|
1406
|
+
end
|
1407
|
+
end
|
1408
|
+
|
1409
|
+
# Describes a statically loaded cluster.
|
1410
|
+
class StaticCluster
|
1411
|
+
include Google::Apis::Core::Hashable
|
1412
|
+
|
1413
|
+
# The cluster config.
|
1414
|
+
# Corresponds to the JSON property `cluster`
|
1415
|
+
# @return [Hash<String,Object>]
|
1416
|
+
attr_accessor :cluster
|
1417
|
+
|
1418
|
+
# The timestamp when the Cluster was last updated.
|
1419
|
+
# Corresponds to the JSON property `lastUpdated`
|
1420
|
+
# @return [String]
|
1421
|
+
attr_accessor :last_updated
|
1422
|
+
|
1423
|
+
def initialize(**args)
|
1424
|
+
update!(**args)
|
1425
|
+
end
|
1426
|
+
|
1427
|
+
# Update properties of this object
|
1428
|
+
def update!(**args)
|
1429
|
+
@cluster = args[:cluster] if args.key?(:cluster)
|
1430
|
+
@last_updated = args[:last_updated] if args.key?(:last_updated)
|
1431
|
+
end
|
1432
|
+
end
|
1433
|
+
|
1434
|
+
#
|
1435
|
+
class StaticEndpointConfig
|
1436
|
+
include Google::Apis::Core::Hashable
|
1437
|
+
|
1438
|
+
# The endpoint config.
|
1439
|
+
# Corresponds to the JSON property `endpointConfig`
|
1440
|
+
# @return [Hash<String,Object>]
|
1441
|
+
attr_accessor :endpoint_config
|
1442
|
+
|
1443
|
+
# [#not-implemented-hide:] The timestamp when the Endpoint was last updated.
|
1444
|
+
# Corresponds to the JSON property `lastUpdated`
|
1445
|
+
# @return [String]
|
1446
|
+
attr_accessor :last_updated
|
1447
|
+
|
1448
|
+
def initialize(**args)
|
1449
|
+
update!(**args)
|
1450
|
+
end
|
1451
|
+
|
1452
|
+
# Update properties of this object
|
1453
|
+
def update!(**args)
|
1454
|
+
@endpoint_config = args[:endpoint_config] if args.key?(:endpoint_config)
|
1455
|
+
@last_updated = args[:last_updated] if args.key?(:last_updated)
|
1456
|
+
end
|
1457
|
+
end
|
1458
|
+
|
1459
|
+
# Describes a statically loaded listener.
|
1460
|
+
class StaticListener
|
1461
|
+
include Google::Apis::Core::Hashable
|
1462
|
+
|
1463
|
+
# The timestamp when the Listener was last successfully updated.
|
1464
|
+
# Corresponds to the JSON property `lastUpdated`
|
1465
|
+
# @return [String]
|
1466
|
+
attr_accessor :last_updated
|
1467
|
+
|
1468
|
+
# The listener config.
|
1469
|
+
# Corresponds to the JSON property `listener`
|
1470
|
+
# @return [Hash<String,Object>]
|
1471
|
+
attr_accessor :listener
|
1472
|
+
|
1473
|
+
def initialize(**args)
|
1474
|
+
update!(**args)
|
1475
|
+
end
|
1476
|
+
|
1477
|
+
# Update properties of this object
|
1478
|
+
def update!(**args)
|
1479
|
+
@last_updated = args[:last_updated] if args.key?(:last_updated)
|
1480
|
+
@listener = args[:listener] if args.key?(:listener)
|
1481
|
+
end
|
1482
|
+
end
|
1483
|
+
|
1484
|
+
#
|
1485
|
+
class StaticRouteConfig
|
1486
|
+
include Google::Apis::Core::Hashable
|
1487
|
+
|
1488
|
+
# The timestamp when the Route was last updated.
|
1489
|
+
# Corresponds to the JSON property `lastUpdated`
|
1490
|
+
# @return [String]
|
1491
|
+
attr_accessor :last_updated
|
1492
|
+
|
1493
|
+
# The route config.
|
1494
|
+
# Corresponds to the JSON property `routeConfig`
|
1495
|
+
# @return [Hash<String,Object>]
|
1496
|
+
attr_accessor :route_config
|
1497
|
+
|
1498
|
+
def initialize(**args)
|
1499
|
+
update!(**args)
|
1500
|
+
end
|
1501
|
+
|
1502
|
+
# Update properties of this object
|
1503
|
+
def update!(**args)
|
1504
|
+
@last_updated = args[:last_updated] if args.key?(:last_updated)
|
1505
|
+
@route_config = args[:route_config] if args.key?(:route_config)
|
1506
|
+
end
|
1507
|
+
end
|
1508
|
+
|
1509
|
+
# Specifies the way to match a string. [#next-free-field: 8]
|
1510
|
+
class StringMatcher
|
1511
|
+
include Google::Apis::Core::Hashable
|
1512
|
+
|
1513
|
+
# The input string must have the substring specified here. Note: empty contains
|
1514
|
+
# match is not allowed, please use regex instead. Examples: * ``abc`` matches
|
1515
|
+
# the value ``xyz.abc.def``
|
1516
|
+
# Corresponds to the JSON property `contains`
|
1517
|
+
# @return [String]
|
1518
|
+
attr_accessor :contains
|
1519
|
+
|
1520
|
+
# The input string must match exactly the string specified here. Examples: * ``
|
1521
|
+
# abc`` only matches the value ``abc``.
|
1522
|
+
# Corresponds to the JSON property `exact`
|
1523
|
+
# @return [String]
|
1524
|
+
attr_accessor :exact
|
1525
|
+
|
1526
|
+
# If true, indicates the exact/prefix/suffix/contains matching should be case
|
1527
|
+
# insensitive. This has no effect for the safe_regex match. For example, the
|
1528
|
+
# matcher ``data`` will match both input string ``Data`` and ``data`` if set to
|
1529
|
+
# true.
|
1530
|
+
# Corresponds to the JSON property `ignoreCase`
|
1531
|
+
# @return [Boolean]
|
1532
|
+
attr_accessor :ignore_case
|
1533
|
+
alias_method :ignore_case?, :ignore_case
|
1534
|
+
|
1535
|
+
# The input string must have the prefix specified here. Note: empty prefix is
|
1536
|
+
# not allowed, please use regex instead. Examples: * ``abc`` matches the value ``
|
1537
|
+
# abc.xyz``
|
1538
|
+
# Corresponds to the JSON property `prefix`
|
1539
|
+
# @return [String]
|
1540
|
+
attr_accessor :prefix
|
1541
|
+
|
1542
|
+
# A regex matcher designed for safety when used with untrusted input.
|
1543
|
+
# Corresponds to the JSON property `safeRegex`
|
1544
|
+
# @return [Google::Apis::TrafficdirectorV3::RegexMatcher]
|
1545
|
+
attr_accessor :safe_regex
|
1546
|
+
|
1547
|
+
# The input string must have the suffix specified here. Note: empty prefix is
|
1548
|
+
# not allowed, please use regex instead. Examples: * ``abc`` matches the value ``
|
1549
|
+
# xyz.abc``
|
1550
|
+
# Corresponds to the JSON property `suffix`
|
1551
|
+
# @return [String]
|
1552
|
+
attr_accessor :suffix
|
1553
|
+
|
1554
|
+
def initialize(**args)
|
1555
|
+
update!(**args)
|
1556
|
+
end
|
1557
|
+
|
1558
|
+
# Update properties of this object
|
1559
|
+
def update!(**args)
|
1560
|
+
@contains = args[:contains] if args.key?(:contains)
|
1561
|
+
@exact = args[:exact] if args.key?(:exact)
|
1562
|
+
@ignore_case = args[:ignore_case] if args.key?(:ignore_case)
|
1563
|
+
@prefix = args[:prefix] if args.key?(:prefix)
|
1564
|
+
@safe_regex = args[:safe_regex] if args.key?(:safe_regex)
|
1565
|
+
@suffix = args[:suffix] if args.key?(:suffix)
|
1566
|
+
end
|
1567
|
+
end
|
1568
|
+
|
1569
|
+
# StructMatcher provides a general interface to check if a given value is
|
1570
|
+
# matched in google.protobuf.Struct. It uses ``path`` to retrieve the value from
|
1571
|
+
# the struct and then check if it's matched to the specified value. For example,
|
1572
|
+
# for the following Struct: .. code-block:: yaml fields: a: struct_value: fields:
|
1573
|
+
# b: struct_value: fields: c: string_value: pro t: list_value: values: -
|
1574
|
+
# string_value: m - string_value: n The following MetadataMatcher is matched as
|
1575
|
+
# the path [a, b, c] will retrieve a string value "pro" from the Metadata which
|
1576
|
+
# is matched to the specified prefix match. .. code-block:: yaml path: - key: a -
|
1577
|
+
# key: b - key: c value: string_match: prefix: pr The following StructMatcher
|
1578
|
+
# is matched as the code will match one of the string values in the list at the
|
1579
|
+
# path [a, t]. .. code-block:: yaml path: - key: a - key: t value: list_match:
|
1580
|
+
# one_of: string_match: exact: m An example use of StructMatcher is to match
|
1581
|
+
# metadata in envoy.v*.core.Node.
|
1582
|
+
class StructMatcher
|
1583
|
+
include Google::Apis::Core::Hashable
|
1584
|
+
|
1585
|
+
# The path to retrieve the Value from the Struct.
|
1586
|
+
# Corresponds to the JSON property `path`
|
1587
|
+
# @return [Array<Google::Apis::TrafficdirectorV3::PathSegment>]
|
1588
|
+
attr_accessor :path
|
1589
|
+
|
1590
|
+
# Specifies the way to match a ProtobufWkt::Value. Primitive values and
|
1591
|
+
# ListValue are supported. StructValue is not supported and is always not
|
1592
|
+
# matched. [#next-free-field: 7]
|
1593
|
+
# Corresponds to the JSON property `value`
|
1594
|
+
# @return [Google::Apis::TrafficdirectorV3::ValueMatcher]
|
1595
|
+
attr_accessor :value
|
1596
|
+
|
1597
|
+
def initialize(**args)
|
1598
|
+
update!(**args)
|
1599
|
+
end
|
1600
|
+
|
1601
|
+
# Update properties of this object
|
1602
|
+
def update!(**args)
|
1603
|
+
@path = args[:path] if args.key?(:path)
|
1604
|
+
@value = args[:value] if args.key?(:value)
|
1605
|
+
end
|
1606
|
+
end
|
1607
|
+
|
1608
|
+
#
|
1609
|
+
class UpdateFailureState
|
1610
|
+
include Google::Apis::Core::Hashable
|
1611
|
+
|
1612
|
+
# Details about the last failed update attempt.
|
1613
|
+
# Corresponds to the JSON property `details`
|
1614
|
+
# @return [String]
|
1615
|
+
attr_accessor :details
|
1616
|
+
|
1617
|
+
# What the component configuration would have been if the update had succeeded.
|
1618
|
+
# This field may not be populated by xDS clients due to storage overhead.
|
1619
|
+
# Corresponds to the JSON property `failedConfiguration`
|
1620
|
+
# @return [Hash<String,Object>]
|
1621
|
+
attr_accessor :failed_configuration
|
1622
|
+
|
1623
|
+
# Time of the latest failed update attempt.
|
1624
|
+
# Corresponds to the JSON property `lastUpdateAttempt`
|
1625
|
+
# @return [String]
|
1626
|
+
attr_accessor :last_update_attempt
|
1627
|
+
|
1628
|
+
# This is the version of the rejected resource. [#not-implemented-hide:]
|
1629
|
+
# Corresponds to the JSON property `versionInfo`
|
1630
|
+
# @return [String]
|
1631
|
+
attr_accessor :version_info
|
1632
|
+
|
1633
|
+
def initialize(**args)
|
1634
|
+
update!(**args)
|
1635
|
+
end
|
1636
|
+
|
1637
|
+
# Update properties of this object
|
1638
|
+
def update!(**args)
|
1639
|
+
@details = args[:details] if args.key?(:details)
|
1640
|
+
@failed_configuration = args[:failed_configuration] if args.key?(:failed_configuration)
|
1641
|
+
@last_update_attempt = args[:last_update_attempt] if args.key?(:last_update_attempt)
|
1642
|
+
@version_info = args[:version_info] if args.key?(:version_info)
|
1643
|
+
end
|
1644
|
+
end
|
1645
|
+
|
1646
|
+
# Specifies the way to match a ProtobufWkt::Value. Primitive values and
|
1647
|
+
# ListValue are supported. StructValue is not supported and is always not
|
1648
|
+
# matched. [#next-free-field: 7]
|
1649
|
+
class ValueMatcher
|
1650
|
+
include Google::Apis::Core::Hashable
|
1651
|
+
|
1652
|
+
# If specified, a match occurs if and only if the target value is a bool value
|
1653
|
+
# and is equal to this field.
|
1654
|
+
# Corresponds to the JSON property `boolMatch`
|
1655
|
+
# @return [Boolean]
|
1656
|
+
attr_accessor :bool_match
|
1657
|
+
alias_method :bool_match?, :bool_match
|
1658
|
+
|
1659
|
+
# Specifies the way to match a double value.
|
1660
|
+
# Corresponds to the JSON property `doubleMatch`
|
1661
|
+
# @return [Google::Apis::TrafficdirectorV3::DoubleMatcher]
|
1662
|
+
attr_accessor :double_match
|
1663
|
+
|
1664
|
+
# Specifies the way to match a list value.
|
1665
|
+
# Corresponds to the JSON property `listMatch`
|
1666
|
+
# @return [Google::Apis::TrafficdirectorV3::ListMatcher]
|
1667
|
+
attr_accessor :list_match
|
1668
|
+
|
1669
|
+
# NullMatch is an empty message to specify a null value.
|
1670
|
+
# Corresponds to the JSON property `nullMatch`
|
1671
|
+
# @return [Google::Apis::TrafficdirectorV3::NullMatch]
|
1672
|
+
attr_accessor :null_match
|
1673
|
+
|
1674
|
+
# If specified, value match will be performed based on whether the path is
|
1675
|
+
# referring to a valid primitive value in the metadata. If the path is referring
|
1676
|
+
# to a non-primitive value, the result is always not matched.
|
1677
|
+
# Corresponds to the JSON property `presentMatch`
|
1678
|
+
# @return [Boolean]
|
1679
|
+
attr_accessor :present_match
|
1680
|
+
alias_method :present_match?, :present_match
|
1681
|
+
|
1682
|
+
# Specifies the way to match a string. [#next-free-field: 8]
|
1683
|
+
# Corresponds to the JSON property `stringMatch`
|
1684
|
+
# @return [Google::Apis::TrafficdirectorV3::StringMatcher]
|
1685
|
+
attr_accessor :string_match
|
1686
|
+
|
1687
|
+
def initialize(**args)
|
1688
|
+
update!(**args)
|
1689
|
+
end
|
1690
|
+
|
1691
|
+
# Update properties of this object
|
1692
|
+
def update!(**args)
|
1693
|
+
@bool_match = args[:bool_match] if args.key?(:bool_match)
|
1694
|
+
@double_match = args[:double_match] if args.key?(:double_match)
|
1695
|
+
@list_match = args[:list_match] if args.key?(:list_match)
|
1696
|
+
@null_match = args[:null_match] if args.key?(:null_match)
|
1697
|
+
@present_match = args[:present_match] if args.key?(:present_match)
|
1698
|
+
@string_match = args[:string_match] if args.key?(:string_match)
|
1699
|
+
end
|
1700
|
+
end
|
1701
|
+
end
|
1702
|
+
end
|
1703
|
+
end
|