google-apis-trafficdirector_v2 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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_v2.rb +15 -0
- data/lib/google/apis/trafficdirector_v2.rb +36 -0
- data/lib/google/apis/trafficdirector_v2/classes.rb +1347 -0
- data/lib/google/apis/trafficdirector_v2/gem_version.rb +28 -0
- data/lib/google/apis/trafficdirector_v2/representations.rb +620 -0
- data/lib/google/apis/trafficdirector_v2/service.rb +91 -0
- metadata +76 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 1fe438f26cad1194d42fa8692b98b9fd60cf898e7292fa4bc772913a6f071ce7
|
4
|
+
data.tar.gz: d07229372b4b416ac31190047f8a6e0fa5f9862f7f3a22b12b8a14996fa76f9e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a065ed3fe666a8337d9ebbe84f23b41364a9507309433f737ab6945b28159a180af1304ac0bca7bee06ea21b5ba2c4564f51e8fac5956e3d8f1dea631ee53a9f
|
7
|
+
data.tar.gz: 52a474abfb9a31a1bd5e1deeef4a8ab779b1f9e86e3475b910692f7944592c6568eab98c1377cbba4be64e820221b74f3619e96cd1ce0664dc2e56eca860b47c
|
data/.yardopts
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
--hide-void-return
|
2
|
+
--no-private
|
3
|
+
--verbose
|
4
|
+
--title=google-apis-trafficdirector_v2
|
5
|
+
--markup-provider=redcarpet
|
6
|
+
--markup=markdown
|
7
|
+
--main OVERVIEW.md
|
8
|
+
lib/google/apis/trafficdirector_v2/*.rb
|
9
|
+
lib/google/apis/trafficdirector_v2.rb
|
10
|
+
-
|
11
|
+
OVERVIEW.md
|
12
|
+
CHANGELOG.md
|
13
|
+
LICENSE.md
|
data/CHANGELOG.md
ADDED
data/LICENSE.md
ADDED
@@ -0,0 +1,202 @@
|
|
1
|
+
|
2
|
+
Apache License
|
3
|
+
Version 2.0, January 2004
|
4
|
+
http://www.apache.org/licenses/
|
5
|
+
|
6
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
7
|
+
|
8
|
+
1. Definitions.
|
9
|
+
|
10
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
11
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
12
|
+
|
13
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
14
|
+
the copyright owner that is granting the License.
|
15
|
+
|
16
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
17
|
+
other entities that control, are controlled by, or are under common
|
18
|
+
control with that entity. For the purposes of this definition,
|
19
|
+
"control" means (i) the power, direct or indirect, to cause the
|
20
|
+
direction or management of such entity, whether by contract or
|
21
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
22
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
23
|
+
|
24
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
25
|
+
exercising permissions granted by this License.
|
26
|
+
|
27
|
+
"Source" form shall mean the preferred form for making modifications,
|
28
|
+
including but not limited to software source code, documentation
|
29
|
+
source, and configuration files.
|
30
|
+
|
31
|
+
"Object" form shall mean any form resulting from mechanical
|
32
|
+
transformation or translation of a Source form, including but
|
33
|
+
not limited to compiled object code, generated documentation,
|
34
|
+
and conversions to other media types.
|
35
|
+
|
36
|
+
"Work" shall mean the work of authorship, whether in Source or
|
37
|
+
Object form, made available under the License, as indicated by a
|
38
|
+
copyright notice that is included in or attached to the work
|
39
|
+
(an example is provided in the Appendix below).
|
40
|
+
|
41
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
42
|
+
form, that is based on (or derived from) the Work and for which the
|
43
|
+
editorial revisions, annotations, elaborations, or other modifications
|
44
|
+
represent, as a whole, an original work of authorship. For the purposes
|
45
|
+
of this License, Derivative Works shall not include works that remain
|
46
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
47
|
+
the Work and Derivative Works thereof.
|
48
|
+
|
49
|
+
"Contribution" shall mean any work of authorship, including
|
50
|
+
the original version of the Work and any modifications or additions
|
51
|
+
to that Work or Derivative Works thereof, that is intentionally
|
52
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
53
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
54
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
55
|
+
means any form of electronic, verbal, or written communication sent
|
56
|
+
to the Licensor or its representatives, including but not limited to
|
57
|
+
communication on electronic mailing lists, source code control systems,
|
58
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
59
|
+
Licensor for the purpose of discussing and improving the Work, but
|
60
|
+
excluding communication that is conspicuously marked or otherwise
|
61
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
62
|
+
|
63
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
64
|
+
on behalf of whom a Contribution has been received by Licensor and
|
65
|
+
subsequently incorporated within the Work.
|
66
|
+
|
67
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
68
|
+
this License, each Contributor hereby grants to You a perpetual,
|
69
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
70
|
+
copyright license to reproduce, prepare Derivative Works of,
|
71
|
+
publicly display, publicly perform, sublicense, and distribute the
|
72
|
+
Work and such Derivative Works in Source or Object form.
|
73
|
+
|
74
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
75
|
+
this License, each Contributor hereby grants to You a perpetual,
|
76
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
77
|
+
(except as stated in this section) patent license to make, have made,
|
78
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
79
|
+
where such license applies only to those patent claims licensable
|
80
|
+
by such Contributor that are necessarily infringed by their
|
81
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
82
|
+
with the Work to which such Contribution(s) was submitted. If You
|
83
|
+
institute patent litigation against any entity (including a
|
84
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
85
|
+
or a Contribution incorporated within the Work constitutes direct
|
86
|
+
or contributory patent infringement, then any patent licenses
|
87
|
+
granted to You under this License for that Work shall terminate
|
88
|
+
as of the date such litigation is filed.
|
89
|
+
|
90
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
91
|
+
Work or Derivative Works thereof in any medium, with or without
|
92
|
+
modifications, and in Source or Object form, provided that You
|
93
|
+
meet the following conditions:
|
94
|
+
|
95
|
+
(a) You must give any other recipients of the Work or
|
96
|
+
Derivative Works a copy of this License; and
|
97
|
+
|
98
|
+
(b) You must cause any modified files to carry prominent notices
|
99
|
+
stating that You changed the files; and
|
100
|
+
|
101
|
+
(c) You must retain, in the Source form of any Derivative Works
|
102
|
+
that You distribute, all copyright, patent, trademark, and
|
103
|
+
attribution notices from the Source form of the Work,
|
104
|
+
excluding those notices that do not pertain to any part of
|
105
|
+
the Derivative Works; and
|
106
|
+
|
107
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
108
|
+
distribution, then any Derivative Works that You distribute must
|
109
|
+
include a readable copy of the attribution notices contained
|
110
|
+
within such NOTICE file, excluding those notices that do not
|
111
|
+
pertain to any part of the Derivative Works, in at least one
|
112
|
+
of the following places: within a NOTICE text file distributed
|
113
|
+
as part of the Derivative Works; within the Source form or
|
114
|
+
documentation, if provided along with the Derivative Works; or,
|
115
|
+
within a display generated by the Derivative Works, if and
|
116
|
+
wherever such third-party notices normally appear. The contents
|
117
|
+
of the NOTICE file are for informational purposes only and
|
118
|
+
do not modify the License. You may add Your own attribution
|
119
|
+
notices within Derivative Works that You distribute, alongside
|
120
|
+
or as an addendum to the NOTICE text from the Work, provided
|
121
|
+
that such additional attribution notices cannot be construed
|
122
|
+
as modifying the License.
|
123
|
+
|
124
|
+
You may add Your own copyright statement to Your modifications and
|
125
|
+
may provide additional or different license terms and conditions
|
126
|
+
for use, reproduction, or distribution of Your modifications, or
|
127
|
+
for any such Derivative Works as a whole, provided Your use,
|
128
|
+
reproduction, and distribution of the Work otherwise complies with
|
129
|
+
the conditions stated in this License.
|
130
|
+
|
131
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
132
|
+
any Contribution intentionally submitted for inclusion in the Work
|
133
|
+
by You to the Licensor shall be under the terms and conditions of
|
134
|
+
this License, without any additional terms or conditions.
|
135
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
136
|
+
the terms of any separate license agreement you may have executed
|
137
|
+
with Licensor regarding such Contributions.
|
138
|
+
|
139
|
+
6. Trademarks. This License does not grant permission to use the trade
|
140
|
+
names, trademarks, service marks, or product names of the Licensor,
|
141
|
+
except as required for reasonable and customary use in describing the
|
142
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
143
|
+
|
144
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
145
|
+
agreed to in writing, Licensor provides the Work (and each
|
146
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
147
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
148
|
+
implied, including, without limitation, any warranties or conditions
|
149
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
150
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
151
|
+
appropriateness of using or redistributing the Work and assume any
|
152
|
+
risks associated with Your exercise of permissions under this License.
|
153
|
+
|
154
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
155
|
+
whether in tort (including negligence), contract, or otherwise,
|
156
|
+
unless required by applicable law (such as deliberate and grossly
|
157
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
158
|
+
liable to You for damages, including any direct, indirect, special,
|
159
|
+
incidental, or consequential damages of any character arising as a
|
160
|
+
result of this License or out of the use or inability to use the
|
161
|
+
Work (including but not limited to damages for loss of goodwill,
|
162
|
+
work stoppage, computer failure or malfunction, or any and all
|
163
|
+
other commercial damages or losses), even if such Contributor
|
164
|
+
has been advised of the possibility of such damages.
|
165
|
+
|
166
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
167
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
168
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
169
|
+
or other liability obligations and/or rights consistent with this
|
170
|
+
License. However, in accepting such obligations, You may act only
|
171
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
172
|
+
of any other Contributor, and only if You agree to indemnify,
|
173
|
+
defend, and hold each Contributor harmless for any liability
|
174
|
+
incurred by, or claims asserted against, such Contributor by reason
|
175
|
+
of your accepting any such warranty or additional liability.
|
176
|
+
|
177
|
+
END OF TERMS AND CONDITIONS
|
178
|
+
|
179
|
+
APPENDIX: How to apply the Apache License to your work.
|
180
|
+
|
181
|
+
To apply the Apache License to your work, attach the following
|
182
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
183
|
+
replaced with your own identifying information. (Don't include
|
184
|
+
the brackets!) The text should be enclosed in the appropriate
|
185
|
+
comment syntax for the file format. We also recommend that a
|
186
|
+
file or class name and description of purpose be included on the
|
187
|
+
same "printed page" as the copyright notice for easier
|
188
|
+
identification within third-party archives.
|
189
|
+
|
190
|
+
Copyright [yyyy] [name of copyright owner]
|
191
|
+
|
192
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
193
|
+
you may not use this file except in compliance with the License.
|
194
|
+
You may obtain a copy of the License at
|
195
|
+
|
196
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
197
|
+
|
198
|
+
Unless required by applicable law or agreed to in writing, software
|
199
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
200
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
201
|
+
See the License for the specific language governing permissions and
|
202
|
+
limitations under the License.
|
data/OVERVIEW.md
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
# Simple REST client for version V2 of the Traffic Director API
|
2
|
+
|
3
|
+
This is a simple client library for version V2 of the Traffic Director API. It provides:
|
4
|
+
|
5
|
+
* A client object that connects to the HTTP/JSON REST endpoint for the service.
|
6
|
+
* Ruby objects for data structures related to the service.
|
7
|
+
* Integration with the googleauth gem for authentication using OAuth, API keys, and service accounts.
|
8
|
+
* Control of retry, pagination, and timeouts.
|
9
|
+
|
10
|
+
Note that although this client library is supported and will continue to be updated to track changes to the service, it is otherwise considered complete and not under active development. Many Google services, especially Google Cloud Platform services, may provide a more modern client that is under more active development and improvement. See the section below titled *Which client should I use?* for more information.
|
11
|
+
|
12
|
+
## Getting started
|
13
|
+
|
14
|
+
### Before you begin
|
15
|
+
|
16
|
+
There are a few setup steps you need to complete before you can use this library:
|
17
|
+
|
18
|
+
1. If you don't already have a Google account, [sign up](https://www.google.com/accounts).
|
19
|
+
2. If you have never created a Google APIs Console project, read about [Managing Projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects) and create a project in the [Google API Console](https://console.cloud.google.com/).
|
20
|
+
3. Most APIs need to be enabled for your project. [Enable it](https://console.cloud.google.com/apis/library/trafficdirector.googleapis.com) in the console.
|
21
|
+
|
22
|
+
### Installation
|
23
|
+
|
24
|
+
Add this line to your application's Gemfile:
|
25
|
+
|
26
|
+
```ruby
|
27
|
+
gem 'google-apis-trafficdirector_v2', '~> 0.1'
|
28
|
+
```
|
29
|
+
|
30
|
+
And then execute:
|
31
|
+
|
32
|
+
```
|
33
|
+
$ bundle
|
34
|
+
```
|
35
|
+
|
36
|
+
Or install it yourself as:
|
37
|
+
|
38
|
+
```
|
39
|
+
$ gem install google-apis-trafficdirector_v2
|
40
|
+
```
|
41
|
+
|
42
|
+
### Creating a client object
|
43
|
+
|
44
|
+
Once the gem is installed, you can load the client code and instantiate a client.
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
# Load the client
|
48
|
+
require "google/apis/trafficdirector_v2"
|
49
|
+
|
50
|
+
# Create a client object
|
51
|
+
client = Google::Apis::TrafficdirectorV2::TrafficDirectorServiceService.new
|
52
|
+
|
53
|
+
# Authenticate calls
|
54
|
+
client.authentication = # ... use the googleauth gem to create credentials
|
55
|
+
```
|
56
|
+
|
57
|
+
See the class reference docs for information on the methods you can call from a client.
|
58
|
+
|
59
|
+
## Documentation
|
60
|
+
|
61
|
+
More detailed descriptions of the Google simple REST clients are available in two documents.
|
62
|
+
|
63
|
+
* The [Usage Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/usage-guide.md) discusses how to make API calls, how to use the provided data structures, and how to work the various features of the client library, including media upload and download, error handling, retries, pagination, and logging.
|
64
|
+
* The [Auth Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/auth-guide.md) discusses authentication in the client libraries, including API keys, OAuth 2.0, service accounts, and environment variables.
|
65
|
+
|
66
|
+
(Note: the above documents are written for the simple REST clients in general, and their examples may not reflect the Trafficdirector service in particular.)
|
67
|
+
|
68
|
+
For reference information on specific calls in the Traffic Director API, see the {Google::Apis::TrafficdirectorV2::TrafficDirectorServiceService class reference docs}.
|
69
|
+
|
70
|
+
## Which client should I use?
|
71
|
+
|
72
|
+
Google provides two types of Ruby API client libraries: **simple REST clients** and **modern clients**.
|
73
|
+
|
74
|
+
This library, `google-apis-trafficdirector_v2`, is a simple REST client. You can identify these clients by their gem names, which are always in the form `google-apis-<servicename>_<serviceversion>`. The simple REST clients connect to HTTP/JSON REST endpoints and are automatically generated from service discovery documents. They support most API functionality, but their class interfaces are sometimes awkward.
|
75
|
+
|
76
|
+
Modern clients are produced by a modern code generator, sometimes combined with hand-crafted functionality. Most modern clients connect to high-performance gRPC endpoints, although a few are backed by REST services. Modern clients are available for many Google services, especially Google Cloud Platform services, but do not yet support all the services covered by the simple clients.
|
77
|
+
|
78
|
+
Gem names for modern clients are often of the form `google-cloud-<service_name>`. (For example, [google-cloud-pubsub](https://rubygems.org/gems/google-cloud-pubsub).) Note that most modern clients also have corresponding "versioned" gems with names like `google-cloud-<service_name>-<version>`. (For example, [google-cloud-pubsub-v1](https://rubygems.org/gems/google-cloud-pubsub-v1).) The "versioned" gems can be used directly, but often provide lower-level interfaces. In most cases, the main gem is recommended.
|
79
|
+
|
80
|
+
**For most users, we recommend the modern client, if one is available.** Compared with simple clients, modern clients are generally much easier to use and more Ruby-like, support more advanced features such as streaming and long-running operations, and often provide much better performance. You may consider using a simple client instead, if a modern client is not yet available for the service you want to use, or if you are not able to use gRPC on your infrastructure.
|
81
|
+
|
82
|
+
The [product documentation](https://cloud.google.com/traffic-director) may provide guidance regarding the preferred client library to use.
|
83
|
+
|
84
|
+
## Supported Ruby versions
|
85
|
+
|
86
|
+
This library is supported on Ruby 2.5+.
|
87
|
+
|
88
|
+
Google provides official support for Ruby versions that are actively supported by Ruby Core -- that is, Ruby versions that are either in normal maintenance or in security maintenance, and not end of life. Currently, this means Ruby 2.5 and later. Older versions of Ruby _may_ still work, but are unsupported and not recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby support schedule.
|
89
|
+
|
90
|
+
## License
|
91
|
+
|
92
|
+
This library is licensed under Apache 2.0. Full license text is available in the {file:LICENSE.md LICENSE}.
|
93
|
+
|
94
|
+
## Support
|
95
|
+
|
96
|
+
Please [report bugs at the project on Github](https://github.com/google/google-api-ruby-client/issues). Don't hesitate to [ask questions](http://stackoverflow.com/questions/tagged/google-api-ruby-client) about the client or APIs on [StackOverflow](http://stackoverflow.com).
|
@@ -0,0 +1,15 @@
|
|
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 "google/apis/trafficdirector_v2"
|
@@ -0,0 +1,36 @@
|
|
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 'google/apis/trafficdirector_v2/service.rb'
|
16
|
+
require 'google/apis/trafficdirector_v2/classes.rb'
|
17
|
+
require 'google/apis/trafficdirector_v2/representations.rb'
|
18
|
+
require 'google/apis/trafficdirector_v2/gem_version.rb'
|
19
|
+
|
20
|
+
module Google
|
21
|
+
module Apis
|
22
|
+
# Traffic Director API
|
23
|
+
#
|
24
|
+
#
|
25
|
+
#
|
26
|
+
# @see https://cloud.google.com/traffic-director
|
27
|
+
module TrafficdirectorV2
|
28
|
+
# Version of the Traffic Director API this client connects to.
|
29
|
+
# This is NOT the gem version.
|
30
|
+
VERSION = 'V2'
|
31
|
+
|
32
|
+
# View and manage your data across Google Cloud Platform services
|
33
|
+
AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,1347 @@
|
|
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 TrafficdirectorV2
|
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
|
+
#
|
32
|
+
# Corresponds to the JSON property `pipe`
|
33
|
+
# @return [Google::Apis::TrafficdirectorV2::Pipe]
|
34
|
+
attr_accessor :pipe
|
35
|
+
|
36
|
+
# [#next-free-field: 7]
|
37
|
+
# Corresponds to the JSON property `socketAddress`
|
38
|
+
# @return [Google::Apis::TrafficdirectorV2::SocketAddress]
|
39
|
+
attr_accessor :socket_address
|
40
|
+
|
41
|
+
def initialize(**args)
|
42
|
+
update!(**args)
|
43
|
+
end
|
44
|
+
|
45
|
+
# Update properties of this object
|
46
|
+
def update!(**args)
|
47
|
+
@pipe = args[:pipe] if args.key?(:pipe)
|
48
|
+
@socket_address = args[:socket_address] if args.key?(:socket_address)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
# BuildVersion combines SemVer version of extension with free-form build
|
53
|
+
# information (i.e. 'alpha', 'private-build') as a set of strings.
|
54
|
+
class BuildVersion
|
55
|
+
include Google::Apis::Core::Hashable
|
56
|
+
|
57
|
+
# Free-form build information. Envoy defines several well known keys in the
|
58
|
+
# source/common/version/version.h file
|
59
|
+
# Corresponds to the JSON property `metadata`
|
60
|
+
# @return [Hash<String,Object>]
|
61
|
+
attr_accessor :metadata
|
62
|
+
|
63
|
+
# Envoy uses SemVer (https://semver.org/). Major/minor versions indicate
|
64
|
+
# expected behaviors and APIs, the patch version field is used only for security
|
65
|
+
# fixes and can be generally ignored.
|
66
|
+
# Corresponds to the JSON property `version`
|
67
|
+
# @return [Google::Apis::TrafficdirectorV2::SemanticVersion]
|
68
|
+
attr_accessor :version
|
69
|
+
|
70
|
+
def initialize(**args)
|
71
|
+
update!(**args)
|
72
|
+
end
|
73
|
+
|
74
|
+
# Update properties of this object
|
75
|
+
def update!(**args)
|
76
|
+
@metadata = args[:metadata] if args.key?(:metadata)
|
77
|
+
@version = args[:version] if args.key?(:version)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
# All xds configs for a particular client.
|
82
|
+
class ClientConfig
|
83
|
+
include Google::Apis::Core::Hashable
|
84
|
+
|
85
|
+
# Identifies a specific Envoy instance. The node identifier is presented to the
|
86
|
+
# management server, which may use this identifier to distinguish per Envoy
|
87
|
+
# configuration for serving. [#next-free-field: 12]
|
88
|
+
# Corresponds to the JSON property `node`
|
89
|
+
# @return [Google::Apis::TrafficdirectorV2::Node]
|
90
|
+
attr_accessor :node
|
91
|
+
|
92
|
+
#
|
93
|
+
# Corresponds to the JSON property `xdsConfig`
|
94
|
+
# @return [Array<Google::Apis::TrafficdirectorV2::PerXdsConfig>]
|
95
|
+
attr_accessor :xds_config
|
96
|
+
|
97
|
+
def initialize(**args)
|
98
|
+
update!(**args)
|
99
|
+
end
|
100
|
+
|
101
|
+
# Update properties of this object
|
102
|
+
def update!(**args)
|
103
|
+
@node = args[:node] if args.key?(:node)
|
104
|
+
@xds_config = args[:xds_config] if args.key?(:xds_config)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
# Request for client status of clients identified by a list of NodeMatchers.
|
109
|
+
class ClientStatusRequest
|
110
|
+
include Google::Apis::Core::Hashable
|
111
|
+
|
112
|
+
# Management server can use these match criteria to identify clients. The match
|
113
|
+
# follows OR semantics.
|
114
|
+
# Corresponds to the JSON property `nodeMatchers`
|
115
|
+
# @return [Array<Google::Apis::TrafficdirectorV2::NodeMatcher>]
|
116
|
+
attr_accessor :node_matchers
|
117
|
+
|
118
|
+
def initialize(**args)
|
119
|
+
update!(**args)
|
120
|
+
end
|
121
|
+
|
122
|
+
# Update properties of this object
|
123
|
+
def update!(**args)
|
124
|
+
@node_matchers = args[:node_matchers] if args.key?(:node_matchers)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
#
|
129
|
+
class ClientStatusResponse
|
130
|
+
include Google::Apis::Core::Hashable
|
131
|
+
|
132
|
+
# Client configs for the clients specified in the ClientStatusRequest.
|
133
|
+
# Corresponds to the JSON property `config`
|
134
|
+
# @return [Array<Google::Apis::TrafficdirectorV2::ClientConfig>]
|
135
|
+
attr_accessor :config
|
136
|
+
|
137
|
+
def initialize(**args)
|
138
|
+
update!(**args)
|
139
|
+
end
|
140
|
+
|
141
|
+
# Update properties of this object
|
142
|
+
def update!(**args)
|
143
|
+
@config = args[:config] if args.key?(:config)
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
# Envoy's cluster manager fills this message with all currently known clusters.
|
148
|
+
# Cluster configuration information can be used to recreate an Envoy
|
149
|
+
# configuration by populating all clusters as static clusters or by returning
|
150
|
+
# them in a CDS response.
|
151
|
+
class ClustersConfigDump
|
152
|
+
include Google::Apis::Core::Hashable
|
153
|
+
|
154
|
+
# The dynamically loaded active clusters. These are clusters that are available
|
155
|
+
# to service data plane traffic.
|
156
|
+
# Corresponds to the JSON property `dynamicActiveClusters`
|
157
|
+
# @return [Array<Google::Apis::TrafficdirectorV2::DynamicCluster>]
|
158
|
+
attr_accessor :dynamic_active_clusters
|
159
|
+
|
160
|
+
# The dynamically loaded warming clusters. These are clusters that are currently
|
161
|
+
# undergoing warming in preparation to service data plane traffic. Note that if
|
162
|
+
# attempting to recreate an Envoy configuration from a configuration dump, the
|
163
|
+
# warming clusters should generally be discarded.
|
164
|
+
# Corresponds to the JSON property `dynamicWarmingClusters`
|
165
|
+
# @return [Array<Google::Apis::TrafficdirectorV2::DynamicCluster>]
|
166
|
+
attr_accessor :dynamic_warming_clusters
|
167
|
+
|
168
|
+
# The statically loaded cluster configs.
|
169
|
+
# Corresponds to the JSON property `staticClusters`
|
170
|
+
# @return [Array<Google::Apis::TrafficdirectorV2::StaticCluster>]
|
171
|
+
attr_accessor :static_clusters
|
172
|
+
|
173
|
+
# This is the :ref:`version_info ` in the last processed CDS discovery response.
|
174
|
+
# If there are only static bootstrap clusters, this field will be "".
|
175
|
+
# Corresponds to the JSON property `versionInfo`
|
176
|
+
# @return [String]
|
177
|
+
attr_accessor :version_info
|
178
|
+
|
179
|
+
def initialize(**args)
|
180
|
+
update!(**args)
|
181
|
+
end
|
182
|
+
|
183
|
+
# Update properties of this object
|
184
|
+
def update!(**args)
|
185
|
+
@dynamic_active_clusters = args[:dynamic_active_clusters] if args.key?(:dynamic_active_clusters)
|
186
|
+
@dynamic_warming_clusters = args[:dynamic_warming_clusters] if args.key?(:dynamic_warming_clusters)
|
187
|
+
@static_clusters = args[:static_clusters] if args.key?(:static_clusters)
|
188
|
+
@version_info = args[:version_info] if args.key?(:version_info)
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
# Specifies the way to match a double value.
|
193
|
+
class DoubleMatcher
|
194
|
+
include Google::Apis::Core::Hashable
|
195
|
+
|
196
|
+
# If specified, the input double value must be equal to the value specified here.
|
197
|
+
# Corresponds to the JSON property `exact`
|
198
|
+
# @return [Float]
|
199
|
+
attr_accessor :exact
|
200
|
+
|
201
|
+
# Specifies the double start and end of the range using half-open interval
|
202
|
+
# semantics [start, end).
|
203
|
+
# Corresponds to the JSON property `range`
|
204
|
+
# @return [Google::Apis::TrafficdirectorV2::DoubleRange]
|
205
|
+
attr_accessor :range
|
206
|
+
|
207
|
+
def initialize(**args)
|
208
|
+
update!(**args)
|
209
|
+
end
|
210
|
+
|
211
|
+
# Update properties of this object
|
212
|
+
def update!(**args)
|
213
|
+
@exact = args[:exact] if args.key?(:exact)
|
214
|
+
@range = args[:range] if args.key?(:range)
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
218
|
+
# Specifies the double start and end of the range using half-open interval
|
219
|
+
# semantics [start, end).
|
220
|
+
class DoubleRange
|
221
|
+
include Google::Apis::Core::Hashable
|
222
|
+
|
223
|
+
# end of the range (exclusive)
|
224
|
+
# Corresponds to the JSON property `end`
|
225
|
+
# @return [Float]
|
226
|
+
attr_accessor :end
|
227
|
+
|
228
|
+
# start of the range (inclusive)
|
229
|
+
# Corresponds to the JSON property `start`
|
230
|
+
# @return [Float]
|
231
|
+
attr_accessor :start
|
232
|
+
|
233
|
+
def initialize(**args)
|
234
|
+
update!(**args)
|
235
|
+
end
|
236
|
+
|
237
|
+
# Update properties of this object
|
238
|
+
def update!(**args)
|
239
|
+
@end = args[:end] if args.key?(:end)
|
240
|
+
@start = args[:start] if args.key?(:start)
|
241
|
+
end
|
242
|
+
end
|
243
|
+
|
244
|
+
# Describes a dynamically loaded cluster via the CDS API.
|
245
|
+
class DynamicCluster
|
246
|
+
include Google::Apis::Core::Hashable
|
247
|
+
|
248
|
+
# The cluster config.
|
249
|
+
# Corresponds to the JSON property `cluster`
|
250
|
+
# @return [Hash<String,Object>]
|
251
|
+
attr_accessor :cluster
|
252
|
+
|
253
|
+
# The timestamp when the Cluster was last updated.
|
254
|
+
# Corresponds to the JSON property `lastUpdated`
|
255
|
+
# @return [String]
|
256
|
+
attr_accessor :last_updated
|
257
|
+
|
258
|
+
# This is the per-resource version information. This version is currently taken
|
259
|
+
# from the :ref:`version_info ` field at the time that the cluster was loaded.
|
260
|
+
# In the future, discrete per-cluster versions may be supported by the API.
|
261
|
+
# Corresponds to the JSON property `versionInfo`
|
262
|
+
# @return [String]
|
263
|
+
attr_accessor :version_info
|
264
|
+
|
265
|
+
def initialize(**args)
|
266
|
+
update!(**args)
|
267
|
+
end
|
268
|
+
|
269
|
+
# Update properties of this object
|
270
|
+
def update!(**args)
|
271
|
+
@cluster = args[:cluster] if args.key?(:cluster)
|
272
|
+
@last_updated = args[:last_updated] if args.key?(:last_updated)
|
273
|
+
@version_info = args[:version_info] if args.key?(:version_info)
|
274
|
+
end
|
275
|
+
end
|
276
|
+
|
277
|
+
# Describes a dynamically loaded listener via the LDS API. [#next-free-field: 6]
|
278
|
+
class DynamicListener
|
279
|
+
include Google::Apis::Core::Hashable
|
280
|
+
|
281
|
+
# The listener state for any active listener by this name. These are listeners
|
282
|
+
# that are available to service data plane traffic.
|
283
|
+
# Corresponds to the JSON property `activeState`
|
284
|
+
# @return [Google::Apis::TrafficdirectorV2::DynamicListenerState]
|
285
|
+
attr_accessor :active_state
|
286
|
+
|
287
|
+
# The listener state for any draining listener by this name. These are listeners
|
288
|
+
# that are currently undergoing draining in preparation to stop servicing data
|
289
|
+
# plane traffic. Note that if attempting to recreate an Envoy configuration from
|
290
|
+
# a configuration dump, the draining listeners should generally be discarded.
|
291
|
+
# Corresponds to the JSON property `drainingState`
|
292
|
+
# @return [Google::Apis::TrafficdirectorV2::DynamicListenerState]
|
293
|
+
attr_accessor :draining_state
|
294
|
+
|
295
|
+
# Set if the last update failed, cleared after the next successful update.
|
296
|
+
# Corresponds to the JSON property `errorState`
|
297
|
+
# @return [Google::Apis::TrafficdirectorV2::UpdateFailureState]
|
298
|
+
attr_accessor :error_state
|
299
|
+
|
300
|
+
# The name or unique id of this listener, pulled from the DynamicListenerState
|
301
|
+
# config.
|
302
|
+
# Corresponds to the JSON property `name`
|
303
|
+
# @return [String]
|
304
|
+
attr_accessor :name
|
305
|
+
|
306
|
+
# The listener state for any warming listener by this name. These are listeners
|
307
|
+
# that are currently undergoing warming in preparation to service data plane
|
308
|
+
# traffic. Note that if attempting to recreate an Envoy configuration from a
|
309
|
+
# configuration dump, the warming listeners should generally be discarded.
|
310
|
+
# Corresponds to the JSON property `warmingState`
|
311
|
+
# @return [Google::Apis::TrafficdirectorV2::DynamicListenerState]
|
312
|
+
attr_accessor :warming_state
|
313
|
+
|
314
|
+
def initialize(**args)
|
315
|
+
update!(**args)
|
316
|
+
end
|
317
|
+
|
318
|
+
# Update properties of this object
|
319
|
+
def update!(**args)
|
320
|
+
@active_state = args[:active_state] if args.key?(:active_state)
|
321
|
+
@draining_state = args[:draining_state] if args.key?(:draining_state)
|
322
|
+
@error_state = args[:error_state] if args.key?(:error_state)
|
323
|
+
@name = args[:name] if args.key?(:name)
|
324
|
+
@warming_state = args[:warming_state] if args.key?(:warming_state)
|
325
|
+
end
|
326
|
+
end
|
327
|
+
|
328
|
+
#
|
329
|
+
class DynamicListenerState
|
330
|
+
include Google::Apis::Core::Hashable
|
331
|
+
|
332
|
+
# The timestamp when the Listener was last successfully updated.
|
333
|
+
# Corresponds to the JSON property `lastUpdated`
|
334
|
+
# @return [String]
|
335
|
+
attr_accessor :last_updated
|
336
|
+
|
337
|
+
# The listener config.
|
338
|
+
# Corresponds to the JSON property `listener`
|
339
|
+
# @return [Hash<String,Object>]
|
340
|
+
attr_accessor :listener
|
341
|
+
|
342
|
+
# This is the per-resource version information. This version is currently taken
|
343
|
+
# from the :ref:`version_info ` field at the time that the listener was loaded.
|
344
|
+
# In the future, discrete per-listener versions may be supported by the API.
|
345
|
+
# Corresponds to the JSON property `versionInfo`
|
346
|
+
# @return [String]
|
347
|
+
attr_accessor :version_info
|
348
|
+
|
349
|
+
def initialize(**args)
|
350
|
+
update!(**args)
|
351
|
+
end
|
352
|
+
|
353
|
+
# Update properties of this object
|
354
|
+
def update!(**args)
|
355
|
+
@last_updated = args[:last_updated] if args.key?(:last_updated)
|
356
|
+
@listener = args[:listener] if args.key?(:listener)
|
357
|
+
@version_info = args[:version_info] if args.key?(:version_info)
|
358
|
+
end
|
359
|
+
end
|
360
|
+
|
361
|
+
#
|
362
|
+
class DynamicRouteConfig
|
363
|
+
include Google::Apis::Core::Hashable
|
364
|
+
|
365
|
+
# The timestamp when the Route was last updated.
|
366
|
+
# Corresponds to the JSON property `lastUpdated`
|
367
|
+
# @return [String]
|
368
|
+
attr_accessor :last_updated
|
369
|
+
|
370
|
+
# The route config.
|
371
|
+
# Corresponds to the JSON property `routeConfig`
|
372
|
+
# @return [Hash<String,Object>]
|
373
|
+
attr_accessor :route_config
|
374
|
+
|
375
|
+
# This is the per-resource version information. This version is currently taken
|
376
|
+
# from the :ref:`version_info ` field at the time that the route configuration
|
377
|
+
# 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
|
+
@last_updated = args[:last_updated] if args.key?(:last_updated)
|
389
|
+
@route_config = args[:route_config] if args.key?(:route_config)
|
390
|
+
@version_info = args[:version_info] if args.key?(:version_info)
|
391
|
+
end
|
392
|
+
end
|
393
|
+
|
394
|
+
#
|
395
|
+
class DynamicScopedRouteConfigs
|
396
|
+
include Google::Apis::Core::Hashable
|
397
|
+
|
398
|
+
# The timestamp when the scoped route config set was last updated.
|
399
|
+
# Corresponds to the JSON property `lastUpdated`
|
400
|
+
# @return [String]
|
401
|
+
attr_accessor :last_updated
|
402
|
+
|
403
|
+
# The name assigned to the scoped route configurations.
|
404
|
+
# Corresponds to the JSON property `name`
|
405
|
+
# @return [String]
|
406
|
+
attr_accessor :name
|
407
|
+
|
408
|
+
# The scoped route configurations.
|
409
|
+
# Corresponds to the JSON property `scopedRouteConfigs`
|
410
|
+
# @return [Array<Hash<String,Object>>]
|
411
|
+
attr_accessor :scoped_route_configs
|
412
|
+
|
413
|
+
# This is the per-resource version information. This version is currently taken
|
414
|
+
# from the :ref:`version_info ` field at the time that the scoped routes
|
415
|
+
# configuration was loaded.
|
416
|
+
# Corresponds to the JSON property `versionInfo`
|
417
|
+
# @return [String]
|
418
|
+
attr_accessor :version_info
|
419
|
+
|
420
|
+
def initialize(**args)
|
421
|
+
update!(**args)
|
422
|
+
end
|
423
|
+
|
424
|
+
# Update properties of this object
|
425
|
+
def update!(**args)
|
426
|
+
@last_updated = args[:last_updated] if args.key?(:last_updated)
|
427
|
+
@name = args[:name] if args.key?(:name)
|
428
|
+
@scoped_route_configs = args[:scoped_route_configs] if args.key?(:scoped_route_configs)
|
429
|
+
@version_info = args[:version_info] if args.key?(:version_info)
|
430
|
+
end
|
431
|
+
end
|
432
|
+
|
433
|
+
# Version and identification for an Envoy extension. [#next-free-field: 6]
|
434
|
+
class Extension
|
435
|
+
include Google::Apis::Core::Hashable
|
436
|
+
|
437
|
+
# Category of the extension. Extension category names use reverse DNS notation.
|
438
|
+
# For instance "envoy.filters.listener" for Envoy's built-in listener filters or
|
439
|
+
# "com.acme.filters.http" for HTTP filters from acme.com vendor. [#comment:
|
440
|
+
# Corresponds to the JSON property `category`
|
441
|
+
# @return [String]
|
442
|
+
attr_accessor :category
|
443
|
+
|
444
|
+
# Indicates that the extension is present but was disabled via dynamic
|
445
|
+
# configuration.
|
446
|
+
# Corresponds to the JSON property `disabled`
|
447
|
+
# @return [Boolean]
|
448
|
+
attr_accessor :disabled
|
449
|
+
alias_method :disabled?, :disabled
|
450
|
+
|
451
|
+
# This is the name of the Envoy filter as specified in the Envoy configuration,
|
452
|
+
# e.g. envoy.filters.http.router, com.acme.widget.
|
453
|
+
# Corresponds to the JSON property `name`
|
454
|
+
# @return [String]
|
455
|
+
attr_accessor :name
|
456
|
+
|
457
|
+
# [#not-implemented-hide:] Type descriptor of extension configuration proto. [#
|
458
|
+
# comment:
|
459
|
+
# Corresponds to the JSON property `typeDescriptor`
|
460
|
+
# @return [String]
|
461
|
+
attr_accessor :type_descriptor
|
462
|
+
|
463
|
+
# BuildVersion combines SemVer version of extension with free-form build
|
464
|
+
# information (i.e. 'alpha', 'private-build') as a set of strings.
|
465
|
+
# Corresponds to the JSON property `version`
|
466
|
+
# @return [Google::Apis::TrafficdirectorV2::BuildVersion]
|
467
|
+
attr_accessor :version
|
468
|
+
|
469
|
+
def initialize(**args)
|
470
|
+
update!(**args)
|
471
|
+
end
|
472
|
+
|
473
|
+
# Update properties of this object
|
474
|
+
def update!(**args)
|
475
|
+
@category = args[:category] if args.key?(:category)
|
476
|
+
@disabled = args[:disabled] if args.key?(:disabled)
|
477
|
+
@name = args[:name] if args.key?(:name)
|
478
|
+
@type_descriptor = args[:type_descriptor] if args.key?(:type_descriptor)
|
479
|
+
@version = args[:version] if args.key?(:version)
|
480
|
+
end
|
481
|
+
end
|
482
|
+
|
483
|
+
# Google's `RE2 `_ regex engine. The regex string must adhere to the documented `
|
484
|
+
# syntax `_. The engine is designed to complete execution in linear time as well
|
485
|
+
# as limit the amount of memory used. Envoy supports program size checking via
|
486
|
+
# runtime. The runtime keys `re2.max_program_size.error_level` and `re2.
|
487
|
+
# max_program_size.warn_level` can be set to integers as the maximum program
|
488
|
+
# size or complexity that a compiled regex can have before an exception is
|
489
|
+
# thrown or a warning is logged, respectively. `re2.max_program_size.error_level`
|
490
|
+
# defaults to 100, and `re2.max_program_size.warn_level` has no default if
|
491
|
+
# unset (will not check/log a warning). Envoy emits two stats for tracking the
|
492
|
+
# program size of regexes: the histogram `re2.program_size`, which records the
|
493
|
+
# program size, and the counter `re2.exceeded_warn_level`, which is incremented
|
494
|
+
# each time the program size exceeds the warn level threshold.
|
495
|
+
class GoogleRe2
|
496
|
+
include Google::Apis::Core::Hashable
|
497
|
+
|
498
|
+
# This field controls the RE2 "program size" which is a rough estimate of how
|
499
|
+
# complex a compiled regex is to evaluate. A regex that has a program size
|
500
|
+
# greater than the configured value will fail to compile. In this case, the
|
501
|
+
# configured max program size can be increased or the regex can be simplified.
|
502
|
+
# If not specified, the default is 100. This field is deprecated; regexp
|
503
|
+
# validation should be performed on the management server instead of being done
|
504
|
+
# by each individual client.
|
505
|
+
# Corresponds to the JSON property `maxProgramSize`
|
506
|
+
# @return [Fixnum]
|
507
|
+
attr_accessor :max_program_size
|
508
|
+
|
509
|
+
def initialize(**args)
|
510
|
+
update!(**args)
|
511
|
+
end
|
512
|
+
|
513
|
+
# Update properties of this object
|
514
|
+
def update!(**args)
|
515
|
+
@max_program_size = args[:max_program_size] if args.key?(:max_program_size)
|
516
|
+
end
|
517
|
+
end
|
518
|
+
|
519
|
+
#
|
520
|
+
class InlineScopedRouteConfigs
|
521
|
+
include Google::Apis::Core::Hashable
|
522
|
+
|
523
|
+
# The timestamp when the scoped route config set was last updated.
|
524
|
+
# Corresponds to the JSON property `lastUpdated`
|
525
|
+
# @return [String]
|
526
|
+
attr_accessor :last_updated
|
527
|
+
|
528
|
+
# The name assigned to the scoped route configurations.
|
529
|
+
# Corresponds to the JSON property `name`
|
530
|
+
# @return [String]
|
531
|
+
attr_accessor :name
|
532
|
+
|
533
|
+
# The scoped route configurations.
|
534
|
+
# Corresponds to the JSON property `scopedRouteConfigs`
|
535
|
+
# @return [Array<Hash<String,Object>>]
|
536
|
+
attr_accessor :scoped_route_configs
|
537
|
+
|
538
|
+
def initialize(**args)
|
539
|
+
update!(**args)
|
540
|
+
end
|
541
|
+
|
542
|
+
# Update properties of this object
|
543
|
+
def update!(**args)
|
544
|
+
@last_updated = args[:last_updated] if args.key?(:last_updated)
|
545
|
+
@name = args[:name] if args.key?(:name)
|
546
|
+
@scoped_route_configs = args[:scoped_route_configs] if args.key?(:scoped_route_configs)
|
547
|
+
end
|
548
|
+
end
|
549
|
+
|
550
|
+
# Specifies the way to match a list value.
|
551
|
+
class ListMatcher
|
552
|
+
include Google::Apis::Core::Hashable
|
553
|
+
|
554
|
+
# Specifies the way to match a ProtobufWkt::Value. Primitive values and
|
555
|
+
# ListValue are supported. StructValue is not supported and is always not
|
556
|
+
# matched. [#next-free-field: 7]
|
557
|
+
# Corresponds to the JSON property `oneOf`
|
558
|
+
# @return [Google::Apis::TrafficdirectorV2::ValueMatcher]
|
559
|
+
attr_accessor :one_of
|
560
|
+
|
561
|
+
def initialize(**args)
|
562
|
+
update!(**args)
|
563
|
+
end
|
564
|
+
|
565
|
+
# Update properties of this object
|
566
|
+
def update!(**args)
|
567
|
+
@one_of = args[:one_of] if args.key?(:one_of)
|
568
|
+
end
|
569
|
+
end
|
570
|
+
|
571
|
+
# Envoy's listener manager fills this message with all currently known listeners.
|
572
|
+
# Listener configuration information can be used to recreate an Envoy
|
573
|
+
# configuration by populating all listeners as static listeners or by returning
|
574
|
+
# them in a LDS response.
|
575
|
+
class ListenersConfigDump
|
576
|
+
include Google::Apis::Core::Hashable
|
577
|
+
|
578
|
+
# State for any warming, active, or draining listeners.
|
579
|
+
# Corresponds to the JSON property `dynamicListeners`
|
580
|
+
# @return [Array<Google::Apis::TrafficdirectorV2::DynamicListener>]
|
581
|
+
attr_accessor :dynamic_listeners
|
582
|
+
|
583
|
+
# The statically loaded listener configs.
|
584
|
+
# Corresponds to the JSON property `staticListeners`
|
585
|
+
# @return [Array<Google::Apis::TrafficdirectorV2::StaticListener>]
|
586
|
+
attr_accessor :static_listeners
|
587
|
+
|
588
|
+
# This is the :ref:`version_info ` in the last processed LDS discovery response.
|
589
|
+
# If there are only static bootstrap listeners, this field will be "".
|
590
|
+
# Corresponds to the JSON property `versionInfo`
|
591
|
+
# @return [String]
|
592
|
+
attr_accessor :version_info
|
593
|
+
|
594
|
+
def initialize(**args)
|
595
|
+
update!(**args)
|
596
|
+
end
|
597
|
+
|
598
|
+
# Update properties of this object
|
599
|
+
def update!(**args)
|
600
|
+
@dynamic_listeners = args[:dynamic_listeners] if args.key?(:dynamic_listeners)
|
601
|
+
@static_listeners = args[:static_listeners] if args.key?(:static_listeners)
|
602
|
+
@version_info = args[:version_info] if args.key?(:version_info)
|
603
|
+
end
|
604
|
+
end
|
605
|
+
|
606
|
+
# Identifies location of where either Envoy runs or where upstream hosts run.
|
607
|
+
class Locality
|
608
|
+
include Google::Apis::Core::Hashable
|
609
|
+
|
610
|
+
# Region this :ref:`zone ` belongs to.
|
611
|
+
# Corresponds to the JSON property `region`
|
612
|
+
# @return [String]
|
613
|
+
attr_accessor :region
|
614
|
+
|
615
|
+
# When used for locality of upstream hosts, this field further splits zone into
|
616
|
+
# smaller chunks of sub-zones so they can be load balanced independently.
|
617
|
+
# Corresponds to the JSON property `subZone`
|
618
|
+
# @return [String]
|
619
|
+
attr_accessor :sub_zone
|
620
|
+
|
621
|
+
# Defines the local service zone where Envoy is running. Though optional, it
|
622
|
+
# should be set if discovery service routing is used and the discovery service
|
623
|
+
# exposes :ref:`zone data `, either in this message or via :option:`--service-
|
624
|
+
# zone`. The meaning of zone is context dependent, e.g. `Availability Zone (AZ) `
|
625
|
+
# _ on AWS, `Zone `_ on GCP, etc.
|
626
|
+
# Corresponds to the JSON property `zone`
|
627
|
+
# @return [String]
|
628
|
+
attr_accessor :zone
|
629
|
+
|
630
|
+
def initialize(**args)
|
631
|
+
update!(**args)
|
632
|
+
end
|
633
|
+
|
634
|
+
# Update properties of this object
|
635
|
+
def update!(**args)
|
636
|
+
@region = args[:region] if args.key?(:region)
|
637
|
+
@sub_zone = args[:sub_zone] if args.key?(:sub_zone)
|
638
|
+
@zone = args[:zone] if args.key?(:zone)
|
639
|
+
end
|
640
|
+
end
|
641
|
+
|
642
|
+
# Identifies a specific Envoy instance. The node identifier is presented to the
|
643
|
+
# management server, which may use this identifier to distinguish per Envoy
|
644
|
+
# configuration for serving. [#next-free-field: 12]
|
645
|
+
class Node
|
646
|
+
include Google::Apis::Core::Hashable
|
647
|
+
|
648
|
+
# This is motivated by informing a management server during canary which version
|
649
|
+
# of Envoy is being tested in a heterogeneous fleet. This will be set by Envoy
|
650
|
+
# in management server RPCs. This field is deprecated in favor of the
|
651
|
+
# user_agent_name and user_agent_version values.
|
652
|
+
# Corresponds to the JSON property `buildVersion`
|
653
|
+
# @return [String]
|
654
|
+
attr_accessor :build_version
|
655
|
+
|
656
|
+
# Client feature support list. These are well known features described in the
|
657
|
+
# Envoy API repository for a given major version of an API. Client features use
|
658
|
+
# reverse DNS naming scheme, for example `com.acme.feature`. See :ref:`the list
|
659
|
+
# of features ` that xDS client may support.
|
660
|
+
# Corresponds to the JSON property `clientFeatures`
|
661
|
+
# @return [Array<String>]
|
662
|
+
attr_accessor :client_features
|
663
|
+
|
664
|
+
# Defines the local service cluster name where Envoy is running. Though optional,
|
665
|
+
# it should be set if any of the following features are used: :ref:`statsd `, :
|
666
|
+
# ref:`health check cluster verification `, :ref:`runtime override directory `, :
|
667
|
+
# ref:`user agent addition `, :ref:`HTTP global rate limiting `, :ref:`CDS `,
|
668
|
+
# and :ref:`HTTP tracing `, either in this message or via :option:`--service-
|
669
|
+
# cluster`.
|
670
|
+
# Corresponds to the JSON property `cluster`
|
671
|
+
# @return [String]
|
672
|
+
attr_accessor :cluster
|
673
|
+
|
674
|
+
# List of extensions and their versions supported by the node.
|
675
|
+
# Corresponds to the JSON property `extensions`
|
676
|
+
# @return [Array<Google::Apis::TrafficdirectorV2::Extension>]
|
677
|
+
attr_accessor :extensions
|
678
|
+
|
679
|
+
# An opaque node identifier for the Envoy node. This also provides the local
|
680
|
+
# service node name. It should be set if any of the following features are used:
|
681
|
+
# :ref:`statsd `, :ref:`CDS `, and :ref:`HTTP tracing `, either in this message
|
682
|
+
# or via :option:`--service-node`.
|
683
|
+
# Corresponds to the JSON property `id`
|
684
|
+
# @return [String]
|
685
|
+
attr_accessor :id
|
686
|
+
|
687
|
+
# Known listening ports on the node as a generic hint to the management server
|
688
|
+
# for filtering :ref:`listeners ` to be returned. For example, if there is a
|
689
|
+
# listener bound to port 80, the list can optionally contain the SocketAddress `(
|
690
|
+
# 0.0.0.0,80)`. The field is optional and just a hint.
|
691
|
+
# Corresponds to the JSON property `listeningAddresses`
|
692
|
+
# @return [Array<Google::Apis::TrafficdirectorV2::Address>]
|
693
|
+
attr_accessor :listening_addresses
|
694
|
+
|
695
|
+
# Identifies location of where either Envoy runs or where upstream hosts run.
|
696
|
+
# Corresponds to the JSON property `locality`
|
697
|
+
# @return [Google::Apis::TrafficdirectorV2::Locality]
|
698
|
+
attr_accessor :locality
|
699
|
+
|
700
|
+
# Opaque metadata extending the node identifier. Envoy will pass this directly
|
701
|
+
# to the management server.
|
702
|
+
# Corresponds to the JSON property `metadata`
|
703
|
+
# @return [Hash<String,Object>]
|
704
|
+
attr_accessor :metadata
|
705
|
+
|
706
|
+
# BuildVersion combines SemVer version of extension with free-form build
|
707
|
+
# information (i.e. 'alpha', 'private-build') as a set of strings.
|
708
|
+
# Corresponds to the JSON property `userAgentBuildVersion`
|
709
|
+
# @return [Google::Apis::TrafficdirectorV2::BuildVersion]
|
710
|
+
attr_accessor :user_agent_build_version
|
711
|
+
|
712
|
+
# Free-form string that identifies the entity requesting config. E.g. "envoy" or
|
713
|
+
# "grpc"
|
714
|
+
# Corresponds to the JSON property `userAgentName`
|
715
|
+
# @return [String]
|
716
|
+
attr_accessor :user_agent_name
|
717
|
+
|
718
|
+
# Free-form string that identifies the version of the entity requesting config.
|
719
|
+
# E.g. "1.12.2" or "abcd1234", or "SpecialEnvoyBuild"
|
720
|
+
# Corresponds to the JSON property `userAgentVersion`
|
721
|
+
# @return [String]
|
722
|
+
attr_accessor :user_agent_version
|
723
|
+
|
724
|
+
def initialize(**args)
|
725
|
+
update!(**args)
|
726
|
+
end
|
727
|
+
|
728
|
+
# Update properties of this object
|
729
|
+
def update!(**args)
|
730
|
+
@build_version = args[:build_version] if args.key?(:build_version)
|
731
|
+
@client_features = args[:client_features] if args.key?(:client_features)
|
732
|
+
@cluster = args[:cluster] if args.key?(:cluster)
|
733
|
+
@extensions = args[:extensions] if args.key?(:extensions)
|
734
|
+
@id = args[:id] if args.key?(:id)
|
735
|
+
@listening_addresses = args[:listening_addresses] if args.key?(:listening_addresses)
|
736
|
+
@locality = args[:locality] if args.key?(:locality)
|
737
|
+
@metadata = args[:metadata] if args.key?(:metadata)
|
738
|
+
@user_agent_build_version = args[:user_agent_build_version] if args.key?(:user_agent_build_version)
|
739
|
+
@user_agent_name = args[:user_agent_name] if args.key?(:user_agent_name)
|
740
|
+
@user_agent_version = args[:user_agent_version] if args.key?(:user_agent_version)
|
741
|
+
end
|
742
|
+
end
|
743
|
+
|
744
|
+
# Specifies the way to match a Node. The match follows AND semantics.
|
745
|
+
class NodeMatcher
|
746
|
+
include Google::Apis::Core::Hashable
|
747
|
+
|
748
|
+
# Specifies the way to match a string. [#next-free-field: 7]
|
749
|
+
# Corresponds to the JSON property `nodeId`
|
750
|
+
# @return [Google::Apis::TrafficdirectorV2::StringMatcher]
|
751
|
+
attr_accessor :node_id
|
752
|
+
|
753
|
+
# Specifies match criteria on the node metadata.
|
754
|
+
# Corresponds to the JSON property `nodeMetadatas`
|
755
|
+
# @return [Array<Google::Apis::TrafficdirectorV2::StructMatcher>]
|
756
|
+
attr_accessor :node_metadatas
|
757
|
+
|
758
|
+
def initialize(**args)
|
759
|
+
update!(**args)
|
760
|
+
end
|
761
|
+
|
762
|
+
# Update properties of this object
|
763
|
+
def update!(**args)
|
764
|
+
@node_id = args[:node_id] if args.key?(:node_id)
|
765
|
+
@node_metadatas = args[:node_metadatas] if args.key?(:node_metadatas)
|
766
|
+
end
|
767
|
+
end
|
768
|
+
|
769
|
+
# NullMatch is an empty message to specify a null value.
|
770
|
+
class NullMatch
|
771
|
+
include Google::Apis::Core::Hashable
|
772
|
+
|
773
|
+
def initialize(**args)
|
774
|
+
update!(**args)
|
775
|
+
end
|
776
|
+
|
777
|
+
# Update properties of this object
|
778
|
+
def update!(**args)
|
779
|
+
end
|
780
|
+
end
|
781
|
+
|
782
|
+
# Specifies the segment in a path to retrieve value from Struct.
|
783
|
+
class PathSegment
|
784
|
+
include Google::Apis::Core::Hashable
|
785
|
+
|
786
|
+
# If specified, use the key to retrieve the value in a Struct.
|
787
|
+
# Corresponds to the JSON property `key`
|
788
|
+
# @return [String]
|
789
|
+
attr_accessor :key
|
790
|
+
|
791
|
+
def initialize(**args)
|
792
|
+
update!(**args)
|
793
|
+
end
|
794
|
+
|
795
|
+
# Update properties of this object
|
796
|
+
def update!(**args)
|
797
|
+
@key = args[:key] if args.key?(:key)
|
798
|
+
end
|
799
|
+
end
|
800
|
+
|
801
|
+
# Detailed config (per xDS) with status. [#next-free-field: 6]
|
802
|
+
class PerXdsConfig
|
803
|
+
include Google::Apis::Core::Hashable
|
804
|
+
|
805
|
+
# Envoy's cluster manager fills this message with all currently known clusters.
|
806
|
+
# Cluster configuration information can be used to recreate an Envoy
|
807
|
+
# configuration by populating all clusters as static clusters or by returning
|
808
|
+
# them in a CDS response.
|
809
|
+
# Corresponds to the JSON property `clusterConfig`
|
810
|
+
# @return [Google::Apis::TrafficdirectorV2::ClustersConfigDump]
|
811
|
+
attr_accessor :cluster_config
|
812
|
+
|
813
|
+
# Envoy's listener manager fills this message with all currently known listeners.
|
814
|
+
# Listener configuration information can be used to recreate an Envoy
|
815
|
+
# configuration by populating all listeners as static listeners or by returning
|
816
|
+
# them in a LDS response.
|
817
|
+
# Corresponds to the JSON property `listenerConfig`
|
818
|
+
# @return [Google::Apis::TrafficdirectorV2::ListenersConfigDump]
|
819
|
+
attr_accessor :listener_config
|
820
|
+
|
821
|
+
# Envoy's RDS implementation fills this message with all currently loaded routes,
|
822
|
+
# as described by their RouteConfiguration objects. Static routes that are
|
823
|
+
# either defined in the bootstrap configuration or defined inline while
|
824
|
+
# configuring listeners are separated from those configured dynamically via RDS.
|
825
|
+
# Route configuration information can be used to recreate an Envoy configuration
|
826
|
+
# by populating all routes as static routes or by returning them in RDS
|
827
|
+
# responses.
|
828
|
+
# Corresponds to the JSON property `routeConfig`
|
829
|
+
# @return [Google::Apis::TrafficdirectorV2::RoutesConfigDump]
|
830
|
+
attr_accessor :route_config
|
831
|
+
|
832
|
+
# Envoy's scoped RDS implementation fills this message with all currently loaded
|
833
|
+
# route configuration scopes (defined via ScopedRouteConfigurationsSet protos).
|
834
|
+
# This message lists both the scopes defined inline with the higher order object
|
835
|
+
# (i.e., the HttpConnectionManager) and the dynamically obtained scopes via the
|
836
|
+
# SRDS API.
|
837
|
+
# Corresponds to the JSON property `scopedRouteConfig`
|
838
|
+
# @return [Google::Apis::TrafficdirectorV2::ScopedRoutesConfigDump]
|
839
|
+
attr_accessor :scoped_route_config
|
840
|
+
|
841
|
+
#
|
842
|
+
# Corresponds to the JSON property `status`
|
843
|
+
# @return [String]
|
844
|
+
attr_accessor :status
|
845
|
+
|
846
|
+
def initialize(**args)
|
847
|
+
update!(**args)
|
848
|
+
end
|
849
|
+
|
850
|
+
# Update properties of this object
|
851
|
+
def update!(**args)
|
852
|
+
@cluster_config = args[:cluster_config] if args.key?(:cluster_config)
|
853
|
+
@listener_config = args[:listener_config] if args.key?(:listener_config)
|
854
|
+
@route_config = args[:route_config] if args.key?(:route_config)
|
855
|
+
@scoped_route_config = args[:scoped_route_config] if args.key?(:scoped_route_config)
|
856
|
+
@status = args[:status] if args.key?(:status)
|
857
|
+
end
|
858
|
+
end
|
859
|
+
|
860
|
+
#
|
861
|
+
class Pipe
|
862
|
+
include Google::Apis::Core::Hashable
|
863
|
+
|
864
|
+
# The mode for the Pipe. Not applicable for abstract sockets.
|
865
|
+
# Corresponds to the JSON property `mode`
|
866
|
+
# @return [Fixnum]
|
867
|
+
attr_accessor :mode
|
868
|
+
|
869
|
+
# Unix Domain Socket path. On Linux, paths starting with '@' will use the
|
870
|
+
# abstract namespace. The starting '@' is replaced by a null byte by Envoy.
|
871
|
+
# Paths starting with '@' will result in an error in environments other than
|
872
|
+
# Linux.
|
873
|
+
# Corresponds to the JSON property `path`
|
874
|
+
# @return [String]
|
875
|
+
attr_accessor :path
|
876
|
+
|
877
|
+
def initialize(**args)
|
878
|
+
update!(**args)
|
879
|
+
end
|
880
|
+
|
881
|
+
# Update properties of this object
|
882
|
+
def update!(**args)
|
883
|
+
@mode = args[:mode] if args.key?(:mode)
|
884
|
+
@path = args[:path] if args.key?(:path)
|
885
|
+
end
|
886
|
+
end
|
887
|
+
|
888
|
+
# A regex matcher designed for safety when used with untrusted input.
|
889
|
+
class RegexMatcher
|
890
|
+
include Google::Apis::Core::Hashable
|
891
|
+
|
892
|
+
# Google's `RE2 `_ regex engine. The regex string must adhere to the documented `
|
893
|
+
# syntax `_. The engine is designed to complete execution in linear time as well
|
894
|
+
# as limit the amount of memory used. Envoy supports program size checking via
|
895
|
+
# runtime. The runtime keys `re2.max_program_size.error_level` and `re2.
|
896
|
+
# max_program_size.warn_level` can be set to integers as the maximum program
|
897
|
+
# size or complexity that a compiled regex can have before an exception is
|
898
|
+
# thrown or a warning is logged, respectively. `re2.max_program_size.error_level`
|
899
|
+
# defaults to 100, and `re2.max_program_size.warn_level` has no default if
|
900
|
+
# unset (will not check/log a warning). Envoy emits two stats for tracking the
|
901
|
+
# program size of regexes: the histogram `re2.program_size`, which records the
|
902
|
+
# program size, and the counter `re2.exceeded_warn_level`, which is incremented
|
903
|
+
# each time the program size exceeds the warn level threshold.
|
904
|
+
# Corresponds to the JSON property `googleRe2`
|
905
|
+
# @return [Google::Apis::TrafficdirectorV2::GoogleRe2]
|
906
|
+
attr_accessor :google_re2
|
907
|
+
|
908
|
+
# The regex match string. The string must be supported by the configured engine.
|
909
|
+
# Corresponds to the JSON property `regex`
|
910
|
+
# @return [String]
|
911
|
+
attr_accessor :regex
|
912
|
+
|
913
|
+
def initialize(**args)
|
914
|
+
update!(**args)
|
915
|
+
end
|
916
|
+
|
917
|
+
# Update properties of this object
|
918
|
+
def update!(**args)
|
919
|
+
@google_re2 = args[:google_re2] if args.key?(:google_re2)
|
920
|
+
@regex = args[:regex] if args.key?(:regex)
|
921
|
+
end
|
922
|
+
end
|
923
|
+
|
924
|
+
# Envoy's RDS implementation fills this message with all currently loaded routes,
|
925
|
+
# as described by their RouteConfiguration objects. Static routes that are
|
926
|
+
# either defined in the bootstrap configuration or defined inline while
|
927
|
+
# configuring listeners are separated from those configured dynamically via RDS.
|
928
|
+
# Route configuration information can be used to recreate an Envoy configuration
|
929
|
+
# by populating all routes as static routes or by returning them in RDS
|
930
|
+
# responses.
|
931
|
+
class RoutesConfigDump
|
932
|
+
include Google::Apis::Core::Hashable
|
933
|
+
|
934
|
+
# The dynamically loaded route configs.
|
935
|
+
# Corresponds to the JSON property `dynamicRouteConfigs`
|
936
|
+
# @return [Array<Google::Apis::TrafficdirectorV2::DynamicRouteConfig>]
|
937
|
+
attr_accessor :dynamic_route_configs
|
938
|
+
|
939
|
+
# The statically loaded route configs.
|
940
|
+
# Corresponds to the JSON property `staticRouteConfigs`
|
941
|
+
# @return [Array<Google::Apis::TrafficdirectorV2::StaticRouteConfig>]
|
942
|
+
attr_accessor :static_route_configs
|
943
|
+
|
944
|
+
def initialize(**args)
|
945
|
+
update!(**args)
|
946
|
+
end
|
947
|
+
|
948
|
+
# Update properties of this object
|
949
|
+
def update!(**args)
|
950
|
+
@dynamic_route_configs = args[:dynamic_route_configs] if args.key?(:dynamic_route_configs)
|
951
|
+
@static_route_configs = args[:static_route_configs] if args.key?(:static_route_configs)
|
952
|
+
end
|
953
|
+
end
|
954
|
+
|
955
|
+
# Envoy's scoped RDS implementation fills this message with all currently loaded
|
956
|
+
# route configuration scopes (defined via ScopedRouteConfigurationsSet protos).
|
957
|
+
# This message lists both the scopes defined inline with the higher order object
|
958
|
+
# (i.e., the HttpConnectionManager) and the dynamically obtained scopes via the
|
959
|
+
# SRDS API.
|
960
|
+
class ScopedRoutesConfigDump
|
961
|
+
include Google::Apis::Core::Hashable
|
962
|
+
|
963
|
+
# The dynamically loaded scoped route configs.
|
964
|
+
# Corresponds to the JSON property `dynamicScopedRouteConfigs`
|
965
|
+
# @return [Array<Google::Apis::TrafficdirectorV2::DynamicScopedRouteConfigs>]
|
966
|
+
attr_accessor :dynamic_scoped_route_configs
|
967
|
+
|
968
|
+
# The statically loaded scoped route configs.
|
969
|
+
# Corresponds to the JSON property `inlineScopedRouteConfigs`
|
970
|
+
# @return [Array<Google::Apis::TrafficdirectorV2::InlineScopedRouteConfigs>]
|
971
|
+
attr_accessor :inline_scoped_route_configs
|
972
|
+
|
973
|
+
def initialize(**args)
|
974
|
+
update!(**args)
|
975
|
+
end
|
976
|
+
|
977
|
+
# Update properties of this object
|
978
|
+
def update!(**args)
|
979
|
+
@dynamic_scoped_route_configs = args[:dynamic_scoped_route_configs] if args.key?(:dynamic_scoped_route_configs)
|
980
|
+
@inline_scoped_route_configs = args[:inline_scoped_route_configs] if args.key?(:inline_scoped_route_configs)
|
981
|
+
end
|
982
|
+
end
|
983
|
+
|
984
|
+
# Envoy uses SemVer (https://semver.org/). Major/minor versions indicate
|
985
|
+
# expected behaviors and APIs, the patch version field is used only for security
|
986
|
+
# fixes and can be generally ignored.
|
987
|
+
class SemanticVersion
|
988
|
+
include Google::Apis::Core::Hashable
|
989
|
+
|
990
|
+
#
|
991
|
+
# Corresponds to the JSON property `majorNumber`
|
992
|
+
# @return [Fixnum]
|
993
|
+
attr_accessor :major_number
|
994
|
+
|
995
|
+
#
|
996
|
+
# Corresponds to the JSON property `minorNumber`
|
997
|
+
# @return [Fixnum]
|
998
|
+
attr_accessor :minor_number
|
999
|
+
|
1000
|
+
#
|
1001
|
+
# Corresponds to the JSON property `patch`
|
1002
|
+
# @return [Fixnum]
|
1003
|
+
attr_accessor :patch
|
1004
|
+
|
1005
|
+
def initialize(**args)
|
1006
|
+
update!(**args)
|
1007
|
+
end
|
1008
|
+
|
1009
|
+
# Update properties of this object
|
1010
|
+
def update!(**args)
|
1011
|
+
@major_number = args[:major_number] if args.key?(:major_number)
|
1012
|
+
@minor_number = args[:minor_number] if args.key?(:minor_number)
|
1013
|
+
@patch = args[:patch] if args.key?(:patch)
|
1014
|
+
end
|
1015
|
+
end
|
1016
|
+
|
1017
|
+
# [#next-free-field: 7]
|
1018
|
+
class SocketAddress
|
1019
|
+
include Google::Apis::Core::Hashable
|
1020
|
+
|
1021
|
+
# The address for this socket. :ref:`Listeners ` will bind to the address. An
|
1022
|
+
# empty address is not allowed. Specify ``0.0.0.0`` or ``::`` to bind to any
|
1023
|
+
# address. [#comment:TODO(zuercher) reinstate when implemented: It is possible
|
1024
|
+
# to distinguish a Listener address via the prefix/suffix matching in :ref:`
|
1025
|
+
# FilterChainMatch `.] When used within an upstream :ref:`BindConfig `, the
|
1026
|
+
# address controls the source address of outbound connections. For :ref:`
|
1027
|
+
# clusters `, the cluster type determines whether the address must be an IP (*
|
1028
|
+
# STATIC* or *EDS* clusters) or a hostname resolved by DNS (*STRICT_DNS* or *
|
1029
|
+
# LOGICAL_DNS* clusters). Address resolution can be customized via :ref:`
|
1030
|
+
# resolver_name `.
|
1031
|
+
# Corresponds to the JSON property `address`
|
1032
|
+
# @return [String]
|
1033
|
+
attr_accessor :address
|
1034
|
+
|
1035
|
+
# When binding to an IPv6 address above, this enables `IPv4 compatibility `_.
|
1036
|
+
# Binding to ``::`` will allow both IPv4 and IPv6 connections, with peer IPv4
|
1037
|
+
# addresses mapped into IPv6 space as ``::FFFF:``.
|
1038
|
+
# Corresponds to the JSON property `ipv4Compat`
|
1039
|
+
# @return [Boolean]
|
1040
|
+
attr_accessor :ipv4_compat
|
1041
|
+
alias_method :ipv4_compat?, :ipv4_compat
|
1042
|
+
|
1043
|
+
# This is only valid if :ref:`resolver_name ` is specified below and the named
|
1044
|
+
# resolver is capable of named port resolution.
|
1045
|
+
# Corresponds to the JSON property `namedPort`
|
1046
|
+
# @return [String]
|
1047
|
+
attr_accessor :named_port
|
1048
|
+
|
1049
|
+
#
|
1050
|
+
# Corresponds to the JSON property `portValue`
|
1051
|
+
# @return [Fixnum]
|
1052
|
+
attr_accessor :port_value
|
1053
|
+
|
1054
|
+
#
|
1055
|
+
# Corresponds to the JSON property `protocol`
|
1056
|
+
# @return [String]
|
1057
|
+
attr_accessor :protocol
|
1058
|
+
|
1059
|
+
# The name of the custom resolver. This must have been registered with Envoy. If
|
1060
|
+
# this is empty, a context dependent default applies. If the address is a
|
1061
|
+
# concrete IP address, no resolution will occur. If address is a hostname this
|
1062
|
+
# should be set for resolution other than DNS. Specifying a custom resolver with
|
1063
|
+
# *STRICT_DNS* or *LOGICAL_DNS* will generate an error at runtime.
|
1064
|
+
# Corresponds to the JSON property `resolverName`
|
1065
|
+
# @return [String]
|
1066
|
+
attr_accessor :resolver_name
|
1067
|
+
|
1068
|
+
def initialize(**args)
|
1069
|
+
update!(**args)
|
1070
|
+
end
|
1071
|
+
|
1072
|
+
# Update properties of this object
|
1073
|
+
def update!(**args)
|
1074
|
+
@address = args[:address] if args.key?(:address)
|
1075
|
+
@ipv4_compat = args[:ipv4_compat] if args.key?(:ipv4_compat)
|
1076
|
+
@named_port = args[:named_port] if args.key?(:named_port)
|
1077
|
+
@port_value = args[:port_value] if args.key?(:port_value)
|
1078
|
+
@protocol = args[:protocol] if args.key?(:protocol)
|
1079
|
+
@resolver_name = args[:resolver_name] if args.key?(:resolver_name)
|
1080
|
+
end
|
1081
|
+
end
|
1082
|
+
|
1083
|
+
# Describes a statically loaded cluster.
|
1084
|
+
class StaticCluster
|
1085
|
+
include Google::Apis::Core::Hashable
|
1086
|
+
|
1087
|
+
# The cluster config.
|
1088
|
+
# Corresponds to the JSON property `cluster`
|
1089
|
+
# @return [Hash<String,Object>]
|
1090
|
+
attr_accessor :cluster
|
1091
|
+
|
1092
|
+
# The timestamp when the Cluster was last updated.
|
1093
|
+
# Corresponds to the JSON property `lastUpdated`
|
1094
|
+
# @return [String]
|
1095
|
+
attr_accessor :last_updated
|
1096
|
+
|
1097
|
+
def initialize(**args)
|
1098
|
+
update!(**args)
|
1099
|
+
end
|
1100
|
+
|
1101
|
+
# Update properties of this object
|
1102
|
+
def update!(**args)
|
1103
|
+
@cluster = args[:cluster] if args.key?(:cluster)
|
1104
|
+
@last_updated = args[:last_updated] if args.key?(:last_updated)
|
1105
|
+
end
|
1106
|
+
end
|
1107
|
+
|
1108
|
+
# Describes a statically loaded listener.
|
1109
|
+
class StaticListener
|
1110
|
+
include Google::Apis::Core::Hashable
|
1111
|
+
|
1112
|
+
# The timestamp when the Listener was last successfully updated.
|
1113
|
+
# Corresponds to the JSON property `lastUpdated`
|
1114
|
+
# @return [String]
|
1115
|
+
attr_accessor :last_updated
|
1116
|
+
|
1117
|
+
# The listener config.
|
1118
|
+
# Corresponds to the JSON property `listener`
|
1119
|
+
# @return [Hash<String,Object>]
|
1120
|
+
attr_accessor :listener
|
1121
|
+
|
1122
|
+
def initialize(**args)
|
1123
|
+
update!(**args)
|
1124
|
+
end
|
1125
|
+
|
1126
|
+
# Update properties of this object
|
1127
|
+
def update!(**args)
|
1128
|
+
@last_updated = args[:last_updated] if args.key?(:last_updated)
|
1129
|
+
@listener = args[:listener] if args.key?(:listener)
|
1130
|
+
end
|
1131
|
+
end
|
1132
|
+
|
1133
|
+
#
|
1134
|
+
class StaticRouteConfig
|
1135
|
+
include Google::Apis::Core::Hashable
|
1136
|
+
|
1137
|
+
# The timestamp when the Route was last updated.
|
1138
|
+
# Corresponds to the JSON property `lastUpdated`
|
1139
|
+
# @return [String]
|
1140
|
+
attr_accessor :last_updated
|
1141
|
+
|
1142
|
+
# The route config.
|
1143
|
+
# Corresponds to the JSON property `routeConfig`
|
1144
|
+
# @return [Hash<String,Object>]
|
1145
|
+
attr_accessor :route_config
|
1146
|
+
|
1147
|
+
def initialize(**args)
|
1148
|
+
update!(**args)
|
1149
|
+
end
|
1150
|
+
|
1151
|
+
# Update properties of this object
|
1152
|
+
def update!(**args)
|
1153
|
+
@last_updated = args[:last_updated] if args.key?(:last_updated)
|
1154
|
+
@route_config = args[:route_config] if args.key?(:route_config)
|
1155
|
+
end
|
1156
|
+
end
|
1157
|
+
|
1158
|
+
# Specifies the way to match a string. [#next-free-field: 7]
|
1159
|
+
class StringMatcher
|
1160
|
+
include Google::Apis::Core::Hashable
|
1161
|
+
|
1162
|
+
# The input string must match exactly the string specified here. Examples: * *
|
1163
|
+
# abc* only matches the value *abc*.
|
1164
|
+
# Corresponds to the JSON property `exact`
|
1165
|
+
# @return [String]
|
1166
|
+
attr_accessor :exact
|
1167
|
+
|
1168
|
+
# If true, indicates the exact/prefix/suffix matching should be case insensitive.
|
1169
|
+
# This has no effect for the safe_regex match. For example, the matcher *data*
|
1170
|
+
# will match both input string *Data* and *data* if set to true.
|
1171
|
+
# Corresponds to the JSON property `ignoreCase`
|
1172
|
+
# @return [Boolean]
|
1173
|
+
attr_accessor :ignore_case
|
1174
|
+
alias_method :ignore_case?, :ignore_case
|
1175
|
+
|
1176
|
+
# The input string must have the prefix specified here. Note: empty prefix is
|
1177
|
+
# not allowed, please use regex instead. Examples: * *abc* matches the value *
|
1178
|
+
# abc.xyz*
|
1179
|
+
# Corresponds to the JSON property `prefix`
|
1180
|
+
# @return [String]
|
1181
|
+
attr_accessor :prefix
|
1182
|
+
|
1183
|
+
# The input string must match the regular expression specified here. The regex
|
1184
|
+
# grammar is defined `here `_. Examples: * The regex ``\d`3``` matches the value
|
1185
|
+
# *123* * The regex ``\d`3``` does not match the value *1234* * The regex ``\d`3`
|
1186
|
+
# `` does not match the value *123.456* .. attention:: This field has been
|
1187
|
+
# deprecated in favor of `safe_regex` as it is not safe for use with untrusted
|
1188
|
+
# input in all cases.
|
1189
|
+
# Corresponds to the JSON property `regex`
|
1190
|
+
# @return [String]
|
1191
|
+
attr_accessor :regex
|
1192
|
+
|
1193
|
+
# A regex matcher designed for safety when used with untrusted input.
|
1194
|
+
# Corresponds to the JSON property `safeRegex`
|
1195
|
+
# @return [Google::Apis::TrafficdirectorV2::RegexMatcher]
|
1196
|
+
attr_accessor :safe_regex
|
1197
|
+
|
1198
|
+
# The input string must have the suffix specified here. Note: empty prefix is
|
1199
|
+
# not allowed, please use regex instead. Examples: * *abc* matches the value *
|
1200
|
+
# xyz.abc*
|
1201
|
+
# Corresponds to the JSON property `suffix`
|
1202
|
+
# @return [String]
|
1203
|
+
attr_accessor :suffix
|
1204
|
+
|
1205
|
+
def initialize(**args)
|
1206
|
+
update!(**args)
|
1207
|
+
end
|
1208
|
+
|
1209
|
+
# Update properties of this object
|
1210
|
+
def update!(**args)
|
1211
|
+
@exact = args[:exact] if args.key?(:exact)
|
1212
|
+
@ignore_case = args[:ignore_case] if args.key?(:ignore_case)
|
1213
|
+
@prefix = args[:prefix] if args.key?(:prefix)
|
1214
|
+
@regex = args[:regex] if args.key?(:regex)
|
1215
|
+
@safe_regex = args[:safe_regex] if args.key?(:safe_regex)
|
1216
|
+
@suffix = args[:suffix] if args.key?(:suffix)
|
1217
|
+
end
|
1218
|
+
end
|
1219
|
+
|
1220
|
+
# StructMatcher provides a general interface to check if a given value is
|
1221
|
+
# matched in google.protobuf.Struct. It uses `path` to retrieve the value from
|
1222
|
+
# the struct and then check if it's matched to the specified value. For example,
|
1223
|
+
# for the following Struct: .. code-block:: yaml fields: a: struct_value: fields:
|
1224
|
+
# b: struct_value: fields: c: string_value: pro t: list_value: values: -
|
1225
|
+
# string_value: m - string_value: n The following MetadataMatcher is matched as
|
1226
|
+
# the path [a, b, c] will retrieve a string value "pro" from the Metadata which
|
1227
|
+
# is matched to the specified prefix match. .. code-block:: yaml path: - key: a -
|
1228
|
+
# key: b - key: c value: string_match: prefix: pr The following StructMatcher
|
1229
|
+
# is matched as the code will match one of the string values in the list at the
|
1230
|
+
# path [a, t]. .. code-block:: yaml path: - key: a - key: t value: list_match:
|
1231
|
+
# one_of: string_match: exact: m An example use of StructMatcher is to match
|
1232
|
+
# metadata in envoy.v*.core.Node.
|
1233
|
+
class StructMatcher
|
1234
|
+
include Google::Apis::Core::Hashable
|
1235
|
+
|
1236
|
+
# The path to retrieve the Value from the Struct.
|
1237
|
+
# Corresponds to the JSON property `path`
|
1238
|
+
# @return [Array<Google::Apis::TrafficdirectorV2::PathSegment>]
|
1239
|
+
attr_accessor :path
|
1240
|
+
|
1241
|
+
# Specifies the way to match a ProtobufWkt::Value. Primitive values and
|
1242
|
+
# ListValue are supported. StructValue is not supported and is always not
|
1243
|
+
# matched. [#next-free-field: 7]
|
1244
|
+
# Corresponds to the JSON property `value`
|
1245
|
+
# @return [Google::Apis::TrafficdirectorV2::ValueMatcher]
|
1246
|
+
attr_accessor :value
|
1247
|
+
|
1248
|
+
def initialize(**args)
|
1249
|
+
update!(**args)
|
1250
|
+
end
|
1251
|
+
|
1252
|
+
# Update properties of this object
|
1253
|
+
def update!(**args)
|
1254
|
+
@path = args[:path] if args.key?(:path)
|
1255
|
+
@value = args[:value] if args.key?(:value)
|
1256
|
+
end
|
1257
|
+
end
|
1258
|
+
|
1259
|
+
#
|
1260
|
+
class UpdateFailureState
|
1261
|
+
include Google::Apis::Core::Hashable
|
1262
|
+
|
1263
|
+
# Details about the last failed update attempt.
|
1264
|
+
# Corresponds to the JSON property `details`
|
1265
|
+
# @return [String]
|
1266
|
+
attr_accessor :details
|
1267
|
+
|
1268
|
+
# What the component configuration would have been if the update had succeeded.
|
1269
|
+
# Corresponds to the JSON property `failedConfiguration`
|
1270
|
+
# @return [Hash<String,Object>]
|
1271
|
+
attr_accessor :failed_configuration
|
1272
|
+
|
1273
|
+
# Time of the latest failed update attempt.
|
1274
|
+
# Corresponds to the JSON property `lastUpdateAttempt`
|
1275
|
+
# @return [String]
|
1276
|
+
attr_accessor :last_update_attempt
|
1277
|
+
|
1278
|
+
def initialize(**args)
|
1279
|
+
update!(**args)
|
1280
|
+
end
|
1281
|
+
|
1282
|
+
# Update properties of this object
|
1283
|
+
def update!(**args)
|
1284
|
+
@details = args[:details] if args.key?(:details)
|
1285
|
+
@failed_configuration = args[:failed_configuration] if args.key?(:failed_configuration)
|
1286
|
+
@last_update_attempt = args[:last_update_attempt] if args.key?(:last_update_attempt)
|
1287
|
+
end
|
1288
|
+
end
|
1289
|
+
|
1290
|
+
# Specifies the way to match a ProtobufWkt::Value. Primitive values and
|
1291
|
+
# ListValue are supported. StructValue is not supported and is always not
|
1292
|
+
# matched. [#next-free-field: 7]
|
1293
|
+
class ValueMatcher
|
1294
|
+
include Google::Apis::Core::Hashable
|
1295
|
+
|
1296
|
+
# If specified, a match occurs if and only if the target value is a bool value
|
1297
|
+
# and is equal to this field.
|
1298
|
+
# Corresponds to the JSON property `boolMatch`
|
1299
|
+
# @return [Boolean]
|
1300
|
+
attr_accessor :bool_match
|
1301
|
+
alias_method :bool_match?, :bool_match
|
1302
|
+
|
1303
|
+
# Specifies the way to match a double value.
|
1304
|
+
# Corresponds to the JSON property `doubleMatch`
|
1305
|
+
# @return [Google::Apis::TrafficdirectorV2::DoubleMatcher]
|
1306
|
+
attr_accessor :double_match
|
1307
|
+
|
1308
|
+
# Specifies the way to match a list value.
|
1309
|
+
# Corresponds to the JSON property `listMatch`
|
1310
|
+
# @return [Google::Apis::TrafficdirectorV2::ListMatcher]
|
1311
|
+
attr_accessor :list_match
|
1312
|
+
|
1313
|
+
# NullMatch is an empty message to specify a null value.
|
1314
|
+
# Corresponds to the JSON property `nullMatch`
|
1315
|
+
# @return [Google::Apis::TrafficdirectorV2::NullMatch]
|
1316
|
+
attr_accessor :null_match
|
1317
|
+
|
1318
|
+
# If specified, value match will be performed based on whether the path is
|
1319
|
+
# referring to a valid primitive value in the metadata. If the path is referring
|
1320
|
+
# to a non-primitive value, the result is always not matched.
|
1321
|
+
# Corresponds to the JSON property `presentMatch`
|
1322
|
+
# @return [Boolean]
|
1323
|
+
attr_accessor :present_match
|
1324
|
+
alias_method :present_match?, :present_match
|
1325
|
+
|
1326
|
+
# Specifies the way to match a string. [#next-free-field: 7]
|
1327
|
+
# Corresponds to the JSON property `stringMatch`
|
1328
|
+
# @return [Google::Apis::TrafficdirectorV2::StringMatcher]
|
1329
|
+
attr_accessor :string_match
|
1330
|
+
|
1331
|
+
def initialize(**args)
|
1332
|
+
update!(**args)
|
1333
|
+
end
|
1334
|
+
|
1335
|
+
# Update properties of this object
|
1336
|
+
def update!(**args)
|
1337
|
+
@bool_match = args[:bool_match] if args.key?(:bool_match)
|
1338
|
+
@double_match = args[:double_match] if args.key?(:double_match)
|
1339
|
+
@list_match = args[:list_match] if args.key?(:list_match)
|
1340
|
+
@null_match = args[:null_match] if args.key?(:null_match)
|
1341
|
+
@present_match = args[:present_match] if args.key?(:present_match)
|
1342
|
+
@string_match = args[:string_match] if args.key?(:string_match)
|
1343
|
+
end
|
1344
|
+
end
|
1345
|
+
end
|
1346
|
+
end
|
1347
|
+
end
|