google-apis-apigateway_v1beta 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 7b8eda0bb1e6e370a590ddc65bb1331b349b40b9061f90e938bb2c54b43480e8
4
+ data.tar.gz: b72578899ab51a027d7ed7be43a14f6e6299c8655b122cc844ee4db46f8f28d6
5
+ SHA512:
6
+ metadata.gz: 6300c5c97686a65a04d4c695c9a52d1778196d9b22a17b97db28ba5b7da442923b8f814566cbc06c124ae98fc93ca3e4433f4478b61cd4675f9961b13752032e
7
+ data.tar.gz: a5aa13b09d107485b98556e500b319786ce48da9bfcbc87330d7666679ca532625733635842a0bc8053779048256846994be08006219eca2d348d9d4dcc5e8f1
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-apigateway_v1beta
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/apigateway_v1beta/*.rb
9
+ lib/google/apis/apigateway_v1beta.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-apigateway_v1beta
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated using generator version 0.1.1
6
+ * Regenerated from discovery document revision 20201211
7
+
@@ -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.
@@ -0,0 +1,96 @@
1
+ # Simple REST client for version V1beta of the API Gateway API
2
+
3
+ This is a simple client library for version V1beta of the API Gateway 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/apigateway.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-apigateway_v1beta', '~> 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-apigateway_v1beta
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/apigateway_v1beta"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::ApigatewayV1beta::ApigatewayService.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 Apigateway service in particular.)
67
+
68
+ For reference information on specific calls in the API Gateway API, see the {Google::Apis::ApigatewayV1beta::ApigatewayService 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-apigateway_v1beta`, 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/api-gateway/docs) 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/apigateway_v1beta"
@@ -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/apigateway_v1beta/service.rb'
16
+ require 'google/apis/apigateway_v1beta/classes.rb'
17
+ require 'google/apis/apigateway_v1beta/representations.rb'
18
+ require 'google/apis/apigateway_v1beta/gem_version.rb'
19
+
20
+ module Google
21
+ module Apis
22
+ # API Gateway API
23
+ #
24
+ #
25
+ #
26
+ # @see https://cloud.google.com/api-gateway/docs
27
+ module ApigatewayV1beta
28
+ # Version of the API Gateway API this client connects to.
29
+ # This is NOT the gem version.
30
+ VERSION = 'V1beta'
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,1170 @@
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 ApigatewayV1beta
24
+
25
+ # An API that can be served by one or more Gateways.
26
+ class ApigatewayApi
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Output only. Created time.
30
+ # Corresponds to the JSON property `createTime`
31
+ # @return [String]
32
+ attr_accessor :create_time
33
+
34
+ # Optional. Display name.
35
+ # Corresponds to the JSON property `displayName`
36
+ # @return [String]
37
+ attr_accessor :display_name
38
+
39
+ # Optional. Resource labels to represent user-provided metadata. Refer to cloud
40
+ # documentation on labels for more details. https://cloud.google.com/compute/
41
+ # docs/labeling-resources
42
+ # Corresponds to the JSON property `labels`
43
+ # @return [Hash<String,String>]
44
+ attr_accessor :labels
45
+
46
+ # Optional. Immutable. The name of a Google Managed Service ( https://cloud.
47
+ # google.com/service-infrastructure/docs/glossary#managed). If not specified, a
48
+ # new Service will automatically be created in the same project as this API.
49
+ # Corresponds to the JSON property `managedService`
50
+ # @return [String]
51
+ attr_accessor :managed_service
52
+
53
+ # Output only. Resource name of the API. Format: projects/`project`/locations/
54
+ # global/apis/`api`
55
+ # Corresponds to the JSON property `name`
56
+ # @return [String]
57
+ attr_accessor :name
58
+
59
+ # Output only. State of the API.
60
+ # Corresponds to the JSON property `state`
61
+ # @return [String]
62
+ attr_accessor :state
63
+
64
+ # Output only. Updated time.
65
+ # Corresponds to the JSON property `updateTime`
66
+ # @return [String]
67
+ attr_accessor :update_time
68
+
69
+ def initialize(**args)
70
+ update!(**args)
71
+ end
72
+
73
+ # Update properties of this object
74
+ def update!(**args)
75
+ @create_time = args[:create_time] if args.key?(:create_time)
76
+ @display_name = args[:display_name] if args.key?(:display_name)
77
+ @labels = args[:labels] if args.key?(:labels)
78
+ @managed_service = args[:managed_service] if args.key?(:managed_service)
79
+ @name = args[:name] if args.key?(:name)
80
+ @state = args[:state] if args.key?(:state)
81
+ @update_time = args[:update_time] if args.key?(:update_time)
82
+ end
83
+ end
84
+
85
+ # An API Configuration is a combination of settings for both the Managed Service
86
+ # and Gateways serving this API Config.
87
+ class ApigatewayApiConfig
88
+ include Google::Apis::Core::Hashable
89
+
90
+ # Output only. Created time.
91
+ # Corresponds to the JSON property `createTime`
92
+ # @return [String]
93
+ attr_accessor :create_time
94
+
95
+ # Optional. Display name.
96
+ # Corresponds to the JSON property `displayName`
97
+ # @return [String]
98
+ attr_accessor :display_name
99
+
100
+ # Configuration settings for Gateways.
101
+ # Corresponds to the JSON property `gatewayConfig`
102
+ # @return [Google::Apis::ApigatewayV1beta::ApigatewayGatewayConfig]
103
+ attr_accessor :gateway_config
104
+
105
+ # Immutable. The Google Cloud IAM Service Account that Gateways serving this
106
+ # config should use to authenticate to other services. This may either be the
107
+ # Service Account's email (``ACCOUNT_ID`@`PROJECT`.iam.gserviceaccount.com`) or
108
+ # its full resource name (`projects/`PROJECT`/accounts/`UNIQUE_ID``). This is
109
+ # most often used when the service is a GCP resource such as a Cloud Run Service
110
+ # or an IAP-secured service.
111
+ # Corresponds to the JSON property `gatewayServiceAccount`
112
+ # @return [String]
113
+ attr_accessor :gateway_service_account
114
+
115
+ # Optional. gRPC service definition files. If specified, openapi_documents must
116
+ # not be included.
117
+ # Corresponds to the JSON property `grpcServices`
118
+ # @return [Array<Google::Apis::ApigatewayV1beta::ApigatewayApiConfigGrpcServiceDefinition>]
119
+ attr_accessor :grpc_services
120
+
121
+ # Optional. Resource labels to represent user-provided metadata. Refer to cloud
122
+ # documentation on labels for more details. https://cloud.google.com/compute/
123
+ # docs/labeling-resources
124
+ # Corresponds to the JSON property `labels`
125
+ # @return [Hash<String,String>]
126
+ attr_accessor :labels
127
+
128
+ # Optional. Service Configuration files. At least one must be included when
129
+ # using gRPC service definitions. See https://cloud.google.com/endpoints/docs/
130
+ # grpc/grpc-service-config#service_configuration_overview for the expected file
131
+ # contents. If multiple files are specified, the files are merged with the
132
+ # following rules: * All singular scalar fields are merged using "last one wins"
133
+ # semantics in the order of the files uploaded. * Repeated fields are
134
+ # concatenated. * Singular embedded messages are merged using these rules for
135
+ # nested fields.
136
+ # Corresponds to the JSON property `managedServiceConfigs`
137
+ # @return [Array<Google::Apis::ApigatewayV1beta::ApigatewayApiConfigFile>]
138
+ attr_accessor :managed_service_configs
139
+
140
+ # Output only. Resource name of the API Config. Format: projects/`project`/
141
+ # locations/global/apis/`api`/configs/`api_config`
142
+ # Corresponds to the JSON property `name`
143
+ # @return [String]
144
+ attr_accessor :name
145
+
146
+ # Optional. OpenAPI specification documents. If specified, grpc_services and
147
+ # managed_service_configs must not be included.
148
+ # Corresponds to the JSON property `openapiDocuments`
149
+ # @return [Array<Google::Apis::ApigatewayV1beta::ApigatewayApiConfigOpenApiDocument>]
150
+ attr_accessor :openapi_documents
151
+
152
+ # Output only. The ID of the associated Service Config ( https://cloud.google.
153
+ # com/service-infrastructure/docs/glossary#config).
154
+ # Corresponds to the JSON property `serviceConfigId`
155
+ # @return [String]
156
+ attr_accessor :service_config_id
157
+
158
+ # Output only. State of the API Config.
159
+ # Corresponds to the JSON property `state`
160
+ # @return [String]
161
+ attr_accessor :state
162
+
163
+ # Output only. Updated time.
164
+ # Corresponds to the JSON property `updateTime`
165
+ # @return [String]
166
+ attr_accessor :update_time
167
+
168
+ def initialize(**args)
169
+ update!(**args)
170
+ end
171
+
172
+ # Update properties of this object
173
+ def update!(**args)
174
+ @create_time = args[:create_time] if args.key?(:create_time)
175
+ @display_name = args[:display_name] if args.key?(:display_name)
176
+ @gateway_config = args[:gateway_config] if args.key?(:gateway_config)
177
+ @gateway_service_account = args[:gateway_service_account] if args.key?(:gateway_service_account)
178
+ @grpc_services = args[:grpc_services] if args.key?(:grpc_services)
179
+ @labels = args[:labels] if args.key?(:labels)
180
+ @managed_service_configs = args[:managed_service_configs] if args.key?(:managed_service_configs)
181
+ @name = args[:name] if args.key?(:name)
182
+ @openapi_documents = args[:openapi_documents] if args.key?(:openapi_documents)
183
+ @service_config_id = args[:service_config_id] if args.key?(:service_config_id)
184
+ @state = args[:state] if args.key?(:state)
185
+ @update_time = args[:update_time] if args.key?(:update_time)
186
+ end
187
+ end
188
+
189
+ # A lightweight description of a file.
190
+ class ApigatewayApiConfigFile
191
+ include Google::Apis::Core::Hashable
192
+
193
+ # The bytes that constitute the file.
194
+ # Corresponds to the JSON property `contents`
195
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
196
+ # @return [String]
197
+ attr_accessor :contents
198
+
199
+ # The file path (full or relative path). This is typically the path of the file
200
+ # when it is uploaded.
201
+ # Corresponds to the JSON property `path`
202
+ # @return [String]
203
+ attr_accessor :path
204
+
205
+ def initialize(**args)
206
+ update!(**args)
207
+ end
208
+
209
+ # Update properties of this object
210
+ def update!(**args)
211
+ @contents = args[:contents] if args.key?(:contents)
212
+ @path = args[:path] if args.key?(:path)
213
+ end
214
+ end
215
+
216
+ # A gRPC service definition.
217
+ class ApigatewayApiConfigGrpcServiceDefinition
218
+ include Google::Apis::Core::Hashable
219
+
220
+ # A lightweight description of a file.
221
+ # Corresponds to the JSON property `fileDescriptorSet`
222
+ # @return [Google::Apis::ApigatewayV1beta::ApigatewayApiConfigFile]
223
+ attr_accessor :file_descriptor_set
224
+
225
+ # Optional. Uncompiled proto files associated with the descriptor set, used for
226
+ # display purposes (server-side compilation is not supported). These should
227
+ # match the inputs to 'protoc' command used to generate file_descriptor_set.
228
+ # Corresponds to the JSON property `source`
229
+ # @return [Array<Google::Apis::ApigatewayV1beta::ApigatewayApiConfigFile>]
230
+ attr_accessor :source
231
+
232
+ def initialize(**args)
233
+ update!(**args)
234
+ end
235
+
236
+ # Update properties of this object
237
+ def update!(**args)
238
+ @file_descriptor_set = args[:file_descriptor_set] if args.key?(:file_descriptor_set)
239
+ @source = args[:source] if args.key?(:source)
240
+ end
241
+ end
242
+
243
+ # An OpenAPI Specification Document describing an API.
244
+ class ApigatewayApiConfigOpenApiDocument
245
+ include Google::Apis::Core::Hashable
246
+
247
+ # A lightweight description of a file.
248
+ # Corresponds to the JSON property `document`
249
+ # @return [Google::Apis::ApigatewayV1beta::ApigatewayApiConfigFile]
250
+ attr_accessor :document
251
+
252
+ def initialize(**args)
253
+ update!(**args)
254
+ end
255
+
256
+ # Update properties of this object
257
+ def update!(**args)
258
+ @document = args[:document] if args.key?(:document)
259
+ end
260
+ end
261
+
262
+ # Specifies the audit configuration for a service. The configuration determines
263
+ # which permission types are logged, and what identities, if any, are exempted
264
+ # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
265
+ # are AuditConfigs for both `allServices` and a specific service, the union of
266
+ # the two AuditConfigs is used for that service: the log_types specified in each
267
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
268
+ # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
269
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
270
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
271
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
272
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
273
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
274
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
275
+ # exempts jose@example.com from DATA_READ logging, and aliya@example.com from
276
+ # DATA_WRITE logging.
277
+ class ApigatewayAuditConfig
278
+ include Google::Apis::Core::Hashable
279
+
280
+ # The configuration for logging of each type of permission.
281
+ # Corresponds to the JSON property `auditLogConfigs`
282
+ # @return [Array<Google::Apis::ApigatewayV1beta::ApigatewayAuditLogConfig>]
283
+ attr_accessor :audit_log_configs
284
+
285
+ # Specifies a service that will be enabled for audit logging. For example, `
286
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
287
+ # value that covers all services.
288
+ # Corresponds to the JSON property `service`
289
+ # @return [String]
290
+ attr_accessor :service
291
+
292
+ def initialize(**args)
293
+ update!(**args)
294
+ end
295
+
296
+ # Update properties of this object
297
+ def update!(**args)
298
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
299
+ @service = args[:service] if args.key?(:service)
300
+ end
301
+ end
302
+
303
+ # Provides the configuration for logging a type of permissions. Example: ` "
304
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
305
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
306
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
307
+ # DATA_READ logging.
308
+ class ApigatewayAuditLogConfig
309
+ include Google::Apis::Core::Hashable
310
+
311
+ # Specifies the identities that do not cause logging for this type of permission.
312
+ # Follows the same format of Binding.members.
313
+ # Corresponds to the JSON property `exemptedMembers`
314
+ # @return [Array<String>]
315
+ attr_accessor :exempted_members
316
+
317
+ # The log type that this config enables.
318
+ # Corresponds to the JSON property `logType`
319
+ # @return [String]
320
+ attr_accessor :log_type
321
+
322
+ def initialize(**args)
323
+ update!(**args)
324
+ end
325
+
326
+ # Update properties of this object
327
+ def update!(**args)
328
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
329
+ @log_type = args[:log_type] if args.key?(:log_type)
330
+ end
331
+ end
332
+
333
+ # Configuration for all backends.
334
+ class ApigatewayBackendConfig
335
+ include Google::Apis::Core::Hashable
336
+
337
+ # Google Cloud IAM service account used to sign OIDC tokens for backends that
338
+ # have authentication configured (https://cloud.google.com/service-
339
+ # infrastructure/docs/service-management/reference/rest/v1/services.configs#
340
+ # backend). This may either be the Service Account's email (i.e. "`ACCOUNT_ID`@`
341
+ # PROJECT`.iam.gserviceaccount.com") or its full resource name (i.e. "projects/`
342
+ # PROJECT`/accounts/`UNIQUE_ID`"). This is most often used when the backend is a
343
+ # GCP resource such as a Cloud Run Service or an IAP-secured service. Note that
344
+ # this token is always sent as an authorization header bearer token. The
345
+ # audience of the OIDC token is configured in the associated Service Config in
346
+ # the BackendRule option (https://github.com/googleapis/googleapis/blob/master/
347
+ # google/api/backend.proto#L125).
348
+ # Corresponds to the JSON property `googleServiceAccount`
349
+ # @return [String]
350
+ attr_accessor :google_service_account
351
+
352
+ def initialize(**args)
353
+ update!(**args)
354
+ end
355
+
356
+ # Update properties of this object
357
+ def update!(**args)
358
+ @google_service_account = args[:google_service_account] if args.key?(:google_service_account)
359
+ end
360
+ end
361
+
362
+ # Associates `members` with a `role`.
363
+ class ApigatewayBinding
364
+ include Google::Apis::Core::Hashable
365
+
366
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
367
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
368
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
369
+ # "Summary size limit" description: "Determines if a summary is less than 100
370
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
371
+ # Requestor is owner" description: "Determines if requestor is the document
372
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
373
+ # Logic): title: "Public documents" description: "Determine whether the document
374
+ # should be publicly visible" expression: "document.type != 'private' &&
375
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
376
+ # string" description: "Create a notification string with a timestamp."
377
+ # expression: "'New message received at ' + string(document.create_time)" The
378
+ # exact variables and functions that may be referenced within an expression are
379
+ # determined by the service that evaluates it. See the service documentation for
380
+ # additional information.
381
+ # Corresponds to the JSON property `condition`
382
+ # @return [Google::Apis::ApigatewayV1beta::ApigatewayExpr]
383
+ attr_accessor :condition
384
+
385
+ # Specifies the identities requesting access for a Cloud Platform resource. `
386
+ # members` can have the following values: * `allUsers`: A special identifier
387
+ # that represents anyone who is on the internet; with or without a Google
388
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
389
+ # anyone who is authenticated with a Google account or a service account. * `
390
+ # user:`emailid``: An email address that represents a specific Google account.
391
+ # For example, `alice@example.com` . * `serviceAccount:`emailid``: An email
392
+ # address that represents a service account. For example, `my-other-app@appspot.
393
+ # gserviceaccount.com`. * `group:`emailid``: An email address that represents a
394
+ # Google group. For example, `admins@example.com`. * `deleted:user:`emailid`?uid=
395
+ # `uniqueid``: An email address (plus unique identifier) representing a user
396
+ # that has been recently deleted. For example, `alice@example.com?uid=
397
+ # 123456789012345678901`. If the user is recovered, this value reverts to `user:`
398
+ # emailid`` and the recovered user retains the role in the binding. * `deleted:
399
+ # serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus unique
400
+ # identifier) representing a service account that has been recently deleted. For
401
+ # example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
402
+ # If the service account is undeleted, this value reverts to `serviceAccount:`
403
+ # emailid`` and the undeleted service account retains the role in the binding. *
404
+ # `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
405
+ # identifier) representing a Google group that has been recently deleted. For
406
+ # example, `admins@example.com?uid=123456789012345678901`. If the group is
407
+ # recovered, this value reverts to `group:`emailid`` and the recovered group
408
+ # retains the role in the binding. * `domain:`domain``: The G Suite domain (
409
+ # primary) that represents all the users of that domain. For example, `google.
410
+ # com` or `example.com`.
411
+ # Corresponds to the JSON property `members`
412
+ # @return [Array<String>]
413
+ attr_accessor :members
414
+
415
+ # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
416
+ # , or `roles/owner`.
417
+ # Corresponds to the JSON property `role`
418
+ # @return [String]
419
+ attr_accessor :role
420
+
421
+ def initialize(**args)
422
+ update!(**args)
423
+ end
424
+
425
+ # Update properties of this object
426
+ def update!(**args)
427
+ @condition = args[:condition] if args.key?(:condition)
428
+ @members = args[:members] if args.key?(:members)
429
+ @role = args[:role] if args.key?(:role)
430
+ end
431
+ end
432
+
433
+ # The request message for Operations.CancelOperation.
434
+ class ApigatewayCancelOperationRequest
435
+ include Google::Apis::Core::Hashable
436
+
437
+ def initialize(**args)
438
+ update!(**args)
439
+ end
440
+
441
+ # Update properties of this object
442
+ def update!(**args)
443
+ end
444
+ end
445
+
446
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
447
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
448
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
449
+ # "Summary size limit" description: "Determines if a summary is less than 100
450
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
451
+ # Requestor is owner" description: "Determines if requestor is the document
452
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
453
+ # Logic): title: "Public documents" description: "Determine whether the document
454
+ # should be publicly visible" expression: "document.type != 'private' &&
455
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
456
+ # string" description: "Create a notification string with a timestamp."
457
+ # expression: "'New message received at ' + string(document.create_time)" The
458
+ # exact variables and functions that may be referenced within an expression are
459
+ # determined by the service that evaluates it. See the service documentation for
460
+ # additional information.
461
+ class ApigatewayExpr
462
+ include Google::Apis::Core::Hashable
463
+
464
+ # Optional. Description of the expression. This is a longer text which describes
465
+ # the expression, e.g. when hovered over it in a UI.
466
+ # Corresponds to the JSON property `description`
467
+ # @return [String]
468
+ attr_accessor :description
469
+
470
+ # Textual representation of an expression in Common Expression Language syntax.
471
+ # Corresponds to the JSON property `expression`
472
+ # @return [String]
473
+ attr_accessor :expression
474
+
475
+ # Optional. String indicating the location of the expression for error reporting,
476
+ # e.g. a file name and a position in the file.
477
+ # Corresponds to the JSON property `location`
478
+ # @return [String]
479
+ attr_accessor :location
480
+
481
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
482
+ # This can be used e.g. in UIs which allow to enter the expression.
483
+ # Corresponds to the JSON property `title`
484
+ # @return [String]
485
+ attr_accessor :title
486
+
487
+ def initialize(**args)
488
+ update!(**args)
489
+ end
490
+
491
+ # Update properties of this object
492
+ def update!(**args)
493
+ @description = args[:description] if args.key?(:description)
494
+ @expression = args[:expression] if args.key?(:expression)
495
+ @location = args[:location] if args.key?(:location)
496
+ @title = args[:title] if args.key?(:title)
497
+ end
498
+ end
499
+
500
+ # A Gateway is an API-aware HTTP proxy. It performs API-Method and/or API-
501
+ # Consumer specific actions based on an API Config such as authentication,
502
+ # policy enforcement, and backend selection.
503
+ class ApigatewayGateway
504
+ include Google::Apis::Core::Hashable
505
+
506
+ # Required. Resource name of the API Config for this Gateway. Format: projects/`
507
+ # project`/locations/global/apis/`api`/configs/`apiConfig`
508
+ # Corresponds to the JSON property `apiConfig`
509
+ # @return [String]
510
+ attr_accessor :api_config
511
+
512
+ # Output only. Created time.
513
+ # Corresponds to the JSON property `createTime`
514
+ # @return [String]
515
+ attr_accessor :create_time
516
+
517
+ # Output only. The default API Gateway host name of the form ``gateway_id`-`hash`
518
+ # .`region_code`.gateway.dev`.
519
+ # Corresponds to the JSON property `defaultHostname`
520
+ # @return [String]
521
+ attr_accessor :default_hostname
522
+
523
+ # Optional. Display name.
524
+ # Corresponds to the JSON property `displayName`
525
+ # @return [String]
526
+ attr_accessor :display_name
527
+
528
+ # Optional. Resource labels to represent user-provided metadata. Refer to cloud
529
+ # documentation on labels for more details. https://cloud.google.com/compute/
530
+ # docs/labeling-resources
531
+ # Corresponds to the JSON property `labels`
532
+ # @return [Hash<String,String>]
533
+ attr_accessor :labels
534
+
535
+ # Output only. Resource name of the Gateway. Format: projects/`project`/
536
+ # locations/`location`/gateways/`gateway`
537
+ # Corresponds to the JSON property `name`
538
+ # @return [String]
539
+ attr_accessor :name
540
+
541
+ # Output only. The current state of the Gateway.
542
+ # Corresponds to the JSON property `state`
543
+ # @return [String]
544
+ attr_accessor :state
545
+
546
+ # Output only. Updated time.
547
+ # Corresponds to the JSON property `updateTime`
548
+ # @return [String]
549
+ attr_accessor :update_time
550
+
551
+ def initialize(**args)
552
+ update!(**args)
553
+ end
554
+
555
+ # Update properties of this object
556
+ def update!(**args)
557
+ @api_config = args[:api_config] if args.key?(:api_config)
558
+ @create_time = args[:create_time] if args.key?(:create_time)
559
+ @default_hostname = args[:default_hostname] if args.key?(:default_hostname)
560
+ @display_name = args[:display_name] if args.key?(:display_name)
561
+ @labels = args[:labels] if args.key?(:labels)
562
+ @name = args[:name] if args.key?(:name)
563
+ @state = args[:state] if args.key?(:state)
564
+ @update_time = args[:update_time] if args.key?(:update_time)
565
+ end
566
+ end
567
+
568
+ # Configuration settings for Gateways.
569
+ class ApigatewayGatewayConfig
570
+ include Google::Apis::Core::Hashable
571
+
572
+ # Configuration for all backends.
573
+ # Corresponds to the JSON property `backendConfig`
574
+ # @return [Google::Apis::ApigatewayV1beta::ApigatewayBackendConfig]
575
+ attr_accessor :backend_config
576
+
577
+ def initialize(**args)
578
+ update!(**args)
579
+ end
580
+
581
+ # Update properties of this object
582
+ def update!(**args)
583
+ @backend_config = args[:backend_config] if args.key?(:backend_config)
584
+ end
585
+ end
586
+
587
+ # Response message for ApiGatewayService.ListApiConfigs
588
+ class ApigatewayListApiConfigsResponse
589
+ include Google::Apis::Core::Hashable
590
+
591
+ # API Configs.
592
+ # Corresponds to the JSON property `apiConfigs`
593
+ # @return [Array<Google::Apis::ApigatewayV1beta::ApigatewayApiConfig>]
594
+ attr_accessor :api_configs
595
+
596
+ # Next page token.
597
+ # Corresponds to the JSON property `nextPageToken`
598
+ # @return [String]
599
+ attr_accessor :next_page_token
600
+
601
+ # Locations that could not be reached.
602
+ # Corresponds to the JSON property `unreachableLocations`
603
+ # @return [Array<String>]
604
+ attr_accessor :unreachable_locations
605
+
606
+ def initialize(**args)
607
+ update!(**args)
608
+ end
609
+
610
+ # Update properties of this object
611
+ def update!(**args)
612
+ @api_configs = args[:api_configs] if args.key?(:api_configs)
613
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
614
+ @unreachable_locations = args[:unreachable_locations] if args.key?(:unreachable_locations)
615
+ end
616
+ end
617
+
618
+ # Response message for ApiGatewayService.ListApis
619
+ class ApigatewayListApisResponse
620
+ include Google::Apis::Core::Hashable
621
+
622
+ # APIs.
623
+ # Corresponds to the JSON property `apis`
624
+ # @return [Array<Google::Apis::ApigatewayV1beta::ApigatewayApi>]
625
+ attr_accessor :apis
626
+
627
+ # Next page token.
628
+ # Corresponds to the JSON property `nextPageToken`
629
+ # @return [String]
630
+ attr_accessor :next_page_token
631
+
632
+ # Locations that could not be reached.
633
+ # Corresponds to the JSON property `unreachableLocations`
634
+ # @return [Array<String>]
635
+ attr_accessor :unreachable_locations
636
+
637
+ def initialize(**args)
638
+ update!(**args)
639
+ end
640
+
641
+ # Update properties of this object
642
+ def update!(**args)
643
+ @apis = args[:apis] if args.key?(:apis)
644
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
645
+ @unreachable_locations = args[:unreachable_locations] if args.key?(:unreachable_locations)
646
+ end
647
+ end
648
+
649
+ # Response message for ApiGatewayService.ListGateways
650
+ class ApigatewayListGatewaysResponse
651
+ include Google::Apis::Core::Hashable
652
+
653
+ # Gateways.
654
+ # Corresponds to the JSON property `gateways`
655
+ # @return [Array<Google::Apis::ApigatewayV1beta::ApigatewayGateway>]
656
+ attr_accessor :gateways
657
+
658
+ # Next page token.
659
+ # Corresponds to the JSON property `nextPageToken`
660
+ # @return [String]
661
+ attr_accessor :next_page_token
662
+
663
+ # Locations that could not be reached.
664
+ # Corresponds to the JSON property `unreachableLocations`
665
+ # @return [Array<String>]
666
+ attr_accessor :unreachable_locations
667
+
668
+ def initialize(**args)
669
+ update!(**args)
670
+ end
671
+
672
+ # Update properties of this object
673
+ def update!(**args)
674
+ @gateways = args[:gateways] if args.key?(:gateways)
675
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
676
+ @unreachable_locations = args[:unreachable_locations] if args.key?(:unreachable_locations)
677
+ end
678
+ end
679
+
680
+ # The response message for Locations.ListLocations.
681
+ class ApigatewayListLocationsResponse
682
+ include Google::Apis::Core::Hashable
683
+
684
+ # A list of locations that matches the specified filter in the request.
685
+ # Corresponds to the JSON property `locations`
686
+ # @return [Array<Google::Apis::ApigatewayV1beta::ApigatewayLocation>]
687
+ attr_accessor :locations
688
+
689
+ # The standard List next-page token.
690
+ # Corresponds to the JSON property `nextPageToken`
691
+ # @return [String]
692
+ attr_accessor :next_page_token
693
+
694
+ def initialize(**args)
695
+ update!(**args)
696
+ end
697
+
698
+ # Update properties of this object
699
+ def update!(**args)
700
+ @locations = args[:locations] if args.key?(:locations)
701
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
702
+ end
703
+ end
704
+
705
+ # The response message for Operations.ListOperations.
706
+ class ApigatewayListOperationsResponse
707
+ include Google::Apis::Core::Hashable
708
+
709
+ # The standard List next-page token.
710
+ # Corresponds to the JSON property `nextPageToken`
711
+ # @return [String]
712
+ attr_accessor :next_page_token
713
+
714
+ # A list of operations that matches the specified filter in the request.
715
+ # Corresponds to the JSON property `operations`
716
+ # @return [Array<Google::Apis::ApigatewayV1beta::ApigatewayOperation>]
717
+ attr_accessor :operations
718
+
719
+ def initialize(**args)
720
+ update!(**args)
721
+ end
722
+
723
+ # Update properties of this object
724
+ def update!(**args)
725
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
726
+ @operations = args[:operations] if args.key?(:operations)
727
+ end
728
+ end
729
+
730
+ # A resource that represents Google Cloud Platform location.
731
+ class ApigatewayLocation
732
+ include Google::Apis::Core::Hashable
733
+
734
+ # The friendly name for this location, typically a nearby city name. For example,
735
+ # "Tokyo".
736
+ # Corresponds to the JSON property `displayName`
737
+ # @return [String]
738
+ attr_accessor :display_name
739
+
740
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
741
+ # region": "us-east1"`
742
+ # Corresponds to the JSON property `labels`
743
+ # @return [Hash<String,String>]
744
+ attr_accessor :labels
745
+
746
+ # The canonical id for this location. For example: `"us-east1"`.
747
+ # Corresponds to the JSON property `locationId`
748
+ # @return [String]
749
+ attr_accessor :location_id
750
+
751
+ # Service-specific metadata. For example the available capacity at the given
752
+ # location.
753
+ # Corresponds to the JSON property `metadata`
754
+ # @return [Hash<String,Object>]
755
+ attr_accessor :metadata
756
+
757
+ # Resource name for the location, which may vary between implementations. For
758
+ # example: `"projects/example-project/locations/us-east1"`
759
+ # Corresponds to the JSON property `name`
760
+ # @return [String]
761
+ attr_accessor :name
762
+
763
+ def initialize(**args)
764
+ update!(**args)
765
+ end
766
+
767
+ # Update properties of this object
768
+ def update!(**args)
769
+ @display_name = args[:display_name] if args.key?(:display_name)
770
+ @labels = args[:labels] if args.key?(:labels)
771
+ @location_id = args[:location_id] if args.key?(:location_id)
772
+ @metadata = args[:metadata] if args.key?(:metadata)
773
+ @name = args[:name] if args.key?(:name)
774
+ end
775
+ end
776
+
777
+ # This resource represents a long-running operation that is the result of a
778
+ # network API call.
779
+ class ApigatewayOperation
780
+ include Google::Apis::Core::Hashable
781
+
782
+ # If the value is `false`, it means the operation is still in progress. If `true`
783
+ # , the operation is completed, and either `error` or `response` is available.
784
+ # Corresponds to the JSON property `done`
785
+ # @return [Boolean]
786
+ attr_accessor :done
787
+ alias_method :done?, :done
788
+
789
+ # The `Status` type defines a logical error model that is suitable for different
790
+ # programming environments, including REST APIs and RPC APIs. It is used by [
791
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
792
+ # data: error code, error message, and error details. You can find out more
793
+ # about this error model and how to work with it in the [API Design Guide](https:
794
+ # //cloud.google.com/apis/design/errors).
795
+ # Corresponds to the JSON property `error`
796
+ # @return [Google::Apis::ApigatewayV1beta::ApigatewayStatus]
797
+ attr_accessor :error
798
+
799
+ # Service-specific metadata associated with the operation. It typically contains
800
+ # progress information and common metadata such as create time. Some services
801
+ # might not provide such metadata. Any method that returns a long-running
802
+ # operation should document the metadata type, if any.
803
+ # Corresponds to the JSON property `metadata`
804
+ # @return [Hash<String,Object>]
805
+ attr_accessor :metadata
806
+
807
+ # The server-assigned name, which is only unique within the same service that
808
+ # originally returns it. If you use the default HTTP mapping, the `name` should
809
+ # be a resource name ending with `operations/`unique_id``.
810
+ # Corresponds to the JSON property `name`
811
+ # @return [String]
812
+ attr_accessor :name
813
+
814
+ # The normal response of the operation in case of success. If the original
815
+ # method returns no data on success, such as `Delete`, the response is `google.
816
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
817
+ # the response should be the resource. For other methods, the response should
818
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
819
+ # example, if the original method name is `TakeSnapshot()`, the inferred
820
+ # response type is `TakeSnapshotResponse`.
821
+ # Corresponds to the JSON property `response`
822
+ # @return [Hash<String,Object>]
823
+ attr_accessor :response
824
+
825
+ def initialize(**args)
826
+ update!(**args)
827
+ end
828
+
829
+ # Update properties of this object
830
+ def update!(**args)
831
+ @done = args[:done] if args.key?(:done)
832
+ @error = args[:error] if args.key?(:error)
833
+ @metadata = args[:metadata] if args.key?(:metadata)
834
+ @name = args[:name] if args.key?(:name)
835
+ @response = args[:response] if args.key?(:response)
836
+ end
837
+ end
838
+
839
+ # Represents the metadata of the long-running operation.
840
+ class ApigatewayOperationMetadata
841
+ include Google::Apis::Core::Hashable
842
+
843
+ # Output only. API version used to start the operation.
844
+ # Corresponds to the JSON property `apiVersion`
845
+ # @return [String]
846
+ attr_accessor :api_version
847
+
848
+ # Output only. The time the operation was created.
849
+ # Corresponds to the JSON property `createTime`
850
+ # @return [String]
851
+ attr_accessor :create_time
852
+
853
+ # Output only. Diagnostics generated during processing of configuration source
854
+ # files.
855
+ # Corresponds to the JSON property `diagnostics`
856
+ # @return [Array<Google::Apis::ApigatewayV1beta::ApigatewayOperationMetadataDiagnostic>]
857
+ attr_accessor :diagnostics
858
+
859
+ # Output only. The time the operation finished running.
860
+ # Corresponds to the JSON property `endTime`
861
+ # @return [String]
862
+ attr_accessor :end_time
863
+
864
+ # Output only. Identifies whether the user has requested cancellation of the
865
+ # operation. Operations that have successfully been cancelled have Operation.
866
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
867
+ # CANCELLED`.
868
+ # Corresponds to the JSON property `requestedCancellation`
869
+ # @return [Boolean]
870
+ attr_accessor :requested_cancellation
871
+ alias_method :requested_cancellation?, :requested_cancellation
872
+
873
+ # Output only. Human-readable status of the operation, if any.
874
+ # Corresponds to the JSON property `statusMessage`
875
+ # @return [String]
876
+ attr_accessor :status_message
877
+
878
+ # Output only. Server-defined resource path for the target of the operation.
879
+ # Corresponds to the JSON property `target`
880
+ # @return [String]
881
+ attr_accessor :target
882
+
883
+ # Output only. Name of the verb executed by the operation.
884
+ # Corresponds to the JSON property `verb`
885
+ # @return [String]
886
+ attr_accessor :verb
887
+
888
+ def initialize(**args)
889
+ update!(**args)
890
+ end
891
+
892
+ # Update properties of this object
893
+ def update!(**args)
894
+ @api_version = args[:api_version] if args.key?(:api_version)
895
+ @create_time = args[:create_time] if args.key?(:create_time)
896
+ @diagnostics = args[:diagnostics] if args.key?(:diagnostics)
897
+ @end_time = args[:end_time] if args.key?(:end_time)
898
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
899
+ @status_message = args[:status_message] if args.key?(:status_message)
900
+ @target = args[:target] if args.key?(:target)
901
+ @verb = args[:verb] if args.key?(:verb)
902
+ end
903
+ end
904
+
905
+ # Diagnostic information from configuration processing.
906
+ class ApigatewayOperationMetadataDiagnostic
907
+ include Google::Apis::Core::Hashable
908
+
909
+ # Location of the diagnostic.
910
+ # Corresponds to the JSON property `location`
911
+ # @return [String]
912
+ attr_accessor :location
913
+
914
+ # The diagnostic message.
915
+ # Corresponds to the JSON property `message`
916
+ # @return [String]
917
+ attr_accessor :message
918
+
919
+ def initialize(**args)
920
+ update!(**args)
921
+ end
922
+
923
+ # Update properties of this object
924
+ def update!(**args)
925
+ @location = args[:location] if args.key?(:location)
926
+ @message = args[:message] if args.key?(:message)
927
+ end
928
+ end
929
+
930
+ # An Identity and Access Management (IAM) policy, which specifies access
931
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
932
+ # A `binding` binds one or more `members` to a single `role`. Members can be
933
+ # user accounts, service accounts, Google groups, and domains (such as G Suite).
934
+ # A `role` is a named list of permissions; each `role` can be an IAM predefined
935
+ # role or a user-created custom role. For some types of Google Cloud resources,
936
+ # a `binding` can also specify a `condition`, which is a logical expression that
937
+ # allows access to a resource only if the expression evaluates to `true`. A
938
+ # condition can add constraints based on attributes of the request, the resource,
939
+ # or both. To learn which resources support conditions in their IAM policies,
940
+ # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
941
+ # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
942
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
943
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
944
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
945
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
946
+ # title": "expirable access", "description": "Does not grant access after Sep
947
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
948
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
949
+ # members: - user:mike@example.com - group:admins@example.com - domain:google.
950
+ # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
951
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
952
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
953
+ # description: Does not grant access after Sep 2020 expression: request.time <
954
+ # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
955
+ # description of IAM and its features, see the [IAM documentation](https://cloud.
956
+ # google.com/iam/docs/).
957
+ class ApigatewayPolicy
958
+ include Google::Apis::Core::Hashable
959
+
960
+ # Specifies cloud audit logging configuration for this policy.
961
+ # Corresponds to the JSON property `auditConfigs`
962
+ # @return [Array<Google::Apis::ApigatewayV1beta::ApigatewayAuditConfig>]
963
+ attr_accessor :audit_configs
964
+
965
+ # Associates a list of `members` to a `role`. Optionally, may specify a `
966
+ # condition` that determines how and when the `bindings` are applied. Each of
967
+ # the `bindings` must contain at least one member.
968
+ # Corresponds to the JSON property `bindings`
969
+ # @return [Array<Google::Apis::ApigatewayV1beta::ApigatewayBinding>]
970
+ attr_accessor :bindings
971
+
972
+ # `etag` is used for optimistic concurrency control as a way to help prevent
973
+ # simultaneous updates of a policy from overwriting each other. It is strongly
974
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
975
+ # to perform policy updates in order to avoid race conditions: An `etag` is
976
+ # returned in the response to `getIamPolicy`, and systems are expected to put
977
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
978
+ # applied to the same version of the policy. **Important:** If you use IAM
979
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
980
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
981
+ # with a version `1` policy, and all of the conditions in the version `3` policy
982
+ # are lost.
983
+ # Corresponds to the JSON property `etag`
984
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
985
+ # @return [String]
986
+ attr_accessor :etag
987
+
988
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
989
+ # Requests that specify an invalid value are rejected. Any operation that
990
+ # affects conditional role bindings must specify version `3`. This requirement
991
+ # applies to the following operations: * Getting a policy that includes a
992
+ # conditional role binding * Adding a conditional role binding to a policy *
993
+ # Changing a conditional role binding in a policy * Removing any role binding,
994
+ # with or without a condition, from a policy that includes conditions **
995
+ # Important:** If you use IAM Conditions, you must include the `etag` field
996
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
997
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
998
+ # conditions in the version `3` policy are lost. If a policy does not include
999
+ # any conditions, operations on that policy may specify any valid version or
1000
+ # leave the field unset. To learn which resources support conditions in their
1001
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
1002
+ # conditions/resource-policies).
1003
+ # Corresponds to the JSON property `version`
1004
+ # @return [Fixnum]
1005
+ attr_accessor :version
1006
+
1007
+ def initialize(**args)
1008
+ update!(**args)
1009
+ end
1010
+
1011
+ # Update properties of this object
1012
+ def update!(**args)
1013
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1014
+ @bindings = args[:bindings] if args.key?(:bindings)
1015
+ @etag = args[:etag] if args.key?(:etag)
1016
+ @version = args[:version] if args.key?(:version)
1017
+ end
1018
+ end
1019
+
1020
+ # Request message for `SetIamPolicy` method.
1021
+ class ApigatewaySetIamPolicyRequest
1022
+ include Google::Apis::Core::Hashable
1023
+
1024
+ # An Identity and Access Management (IAM) policy, which specifies access
1025
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1026
+ # A `binding` binds one or more `members` to a single `role`. Members can be
1027
+ # user accounts, service accounts, Google groups, and domains (such as G Suite).
1028
+ # A `role` is a named list of permissions; each `role` can be an IAM predefined
1029
+ # role or a user-created custom role. For some types of Google Cloud resources,
1030
+ # a `binding` can also specify a `condition`, which is a logical expression that
1031
+ # allows access to a resource only if the expression evaluates to `true`. A
1032
+ # condition can add constraints based on attributes of the request, the resource,
1033
+ # or both. To learn which resources support conditions in their IAM policies,
1034
+ # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1035
+ # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
1036
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
1037
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
1038
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
1039
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
1040
+ # title": "expirable access", "description": "Does not grant access after Sep
1041
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
1042
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
1043
+ # members: - user:mike@example.com - group:admins@example.com - domain:google.
1044
+ # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
1045
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
1046
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
1047
+ # description: Does not grant access after Sep 2020 expression: request.time <
1048
+ # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
1049
+ # description of IAM and its features, see the [IAM documentation](https://cloud.
1050
+ # google.com/iam/docs/).
1051
+ # Corresponds to the JSON property `policy`
1052
+ # @return [Google::Apis::ApigatewayV1beta::ApigatewayPolicy]
1053
+ attr_accessor :policy
1054
+
1055
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
1056
+ # the fields in the mask will be modified. If no mask is provided, the following
1057
+ # default mask is used: `paths: "bindings, etag"`
1058
+ # Corresponds to the JSON property `updateMask`
1059
+ # @return [String]
1060
+ attr_accessor :update_mask
1061
+
1062
+ def initialize(**args)
1063
+ update!(**args)
1064
+ end
1065
+
1066
+ # Update properties of this object
1067
+ def update!(**args)
1068
+ @policy = args[:policy] if args.key?(:policy)
1069
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1070
+ end
1071
+ end
1072
+
1073
+ # The `Status` type defines a logical error model that is suitable for different
1074
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1075
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1076
+ # data: error code, error message, and error details. You can find out more
1077
+ # about this error model and how to work with it in the [API Design Guide](https:
1078
+ # //cloud.google.com/apis/design/errors).
1079
+ class ApigatewayStatus
1080
+ include Google::Apis::Core::Hashable
1081
+
1082
+ # The status code, which should be an enum value of google.rpc.Code.
1083
+ # Corresponds to the JSON property `code`
1084
+ # @return [Fixnum]
1085
+ attr_accessor :code
1086
+
1087
+ # A list of messages that carry the error details. There is a common set of
1088
+ # message types for APIs to use.
1089
+ # Corresponds to the JSON property `details`
1090
+ # @return [Array<Hash<String,Object>>]
1091
+ attr_accessor :details
1092
+
1093
+ # A developer-facing error message, which should be in English. Any user-facing
1094
+ # error message should be localized and sent in the google.rpc.Status.details
1095
+ # field, or localized by the client.
1096
+ # Corresponds to the JSON property `message`
1097
+ # @return [String]
1098
+ attr_accessor :message
1099
+
1100
+ def initialize(**args)
1101
+ update!(**args)
1102
+ end
1103
+
1104
+ # Update properties of this object
1105
+ def update!(**args)
1106
+ @code = args[:code] if args.key?(:code)
1107
+ @details = args[:details] if args.key?(:details)
1108
+ @message = args[:message] if args.key?(:message)
1109
+ end
1110
+ end
1111
+
1112
+ # Request message for `TestIamPermissions` method.
1113
+ class ApigatewayTestIamPermissionsRequest
1114
+ include Google::Apis::Core::Hashable
1115
+
1116
+ # The set of permissions to check for the `resource`. Permissions with wildcards
1117
+ # (such as '*' or 'storage.*') are not allowed. For more information see [IAM
1118
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
1119
+ # Corresponds to the JSON property `permissions`
1120
+ # @return [Array<String>]
1121
+ attr_accessor :permissions
1122
+
1123
+ def initialize(**args)
1124
+ update!(**args)
1125
+ end
1126
+
1127
+ # Update properties of this object
1128
+ def update!(**args)
1129
+ @permissions = args[:permissions] if args.key?(:permissions)
1130
+ end
1131
+ end
1132
+
1133
+ # Response message for `TestIamPermissions` method.
1134
+ class ApigatewayTestIamPermissionsResponse
1135
+ include Google::Apis::Core::Hashable
1136
+
1137
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
1138
+ # Corresponds to the JSON property `permissions`
1139
+ # @return [Array<String>]
1140
+ attr_accessor :permissions
1141
+
1142
+ def initialize(**args)
1143
+ update!(**args)
1144
+ end
1145
+
1146
+ # Update properties of this object
1147
+ def update!(**args)
1148
+ @permissions = args[:permissions] if args.key?(:permissions)
1149
+ end
1150
+ end
1151
+
1152
+ # A generic empty message that you can re-use to avoid defining duplicated empty
1153
+ # messages in your APIs. A typical example is to use it as the request or the
1154
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
1155
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
1156
+ # `Empty` is empty JSON object ````.
1157
+ class Empty
1158
+ include Google::Apis::Core::Hashable
1159
+
1160
+ def initialize(**args)
1161
+ update!(**args)
1162
+ end
1163
+
1164
+ # Update properties of this object
1165
+ def update!(**args)
1166
+ end
1167
+ end
1168
+ end
1169
+ end
1170
+ end