google-apis-appengine_v1beta4 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: ffaccb89967d3304ff687617c4c5391d156ec1ae118c8dcd58bca5a4be5da129
4
+ data.tar.gz: b325a436257853a24aa328d5685c69dddafcd98ce154624d40d54be707d17a30
5
+ SHA512:
6
+ metadata.gz: 2024f2c80fb17560b7a1f0d3b99b50a9879d9ec4c48be7f6fc84ce6b18f67ce6e14fc734a5f22e8bbc83c35dcc27037bf1365d5ec1e9c1cdafa343d9c43b2bc7
7
+ data.tar.gz: 9e9ef171491b555ba77be8ad9746193af7d5d613e1bda21e860738be86622cb1c10ed304ec9a028c2f2b43f65a21407e98927cd1b9ec10ce5aeca385b8096702
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-appengine_v1beta4
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/appengine_v1beta4/*.rb
9
+ lib/google/apis/appengine_v1beta4.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-appengine_v1beta4
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated using generator version 0.1.1
6
+ * Regenerated from discovery document revision 20181218
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 V1beta4 of the App Engine Admin API
2
+
3
+ This is a simple client library for version V1beta4 of the App Engine Admin 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/appengine.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-appengine_v1beta4', '~> 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-appengine_v1beta4
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/appengine_v1beta4"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::AppengineV1beta4::AppengineService.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 Appengine service in particular.)
67
+
68
+ For reference information on specific calls in the App Engine Admin API, see the {Google::Apis::AppengineV1beta4::AppengineService 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-appengine_v1beta4`, 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/appengine/docs/admin-api/) 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/appengine_v1beta4"
@@ -0,0 +1,42 @@
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/appengine_v1beta4/service.rb'
16
+ require 'google/apis/appengine_v1beta4/classes.rb'
17
+ require 'google/apis/appengine_v1beta4/representations.rb'
18
+ require 'google/apis/appengine_v1beta4/gem_version.rb'
19
+
20
+ module Google
21
+ module Apis
22
+ # App Engine Admin API
23
+ #
24
+ # Provisions and manages developers' App Engine applications.
25
+ #
26
+ # @see https://cloud.google.com/appengine/docs/admin-api/
27
+ module AppengineV1beta4
28
+ # Version of the App Engine Admin API this client connects to.
29
+ # This is NOT the gem version.
30
+ VERSION = 'V1beta4'
31
+
32
+ # View and manage your applications deployed on Google App Engine
33
+ AUTH_APPENGINE_ADMIN = 'https://www.googleapis.com/auth/appengine.admin'
34
+
35
+ # View and manage your data across Google Cloud Platform services
36
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
37
+
38
+ # View your data across Google Cloud Platform services
39
+ AUTH_CLOUD_PLATFORM_READ_ONLY = 'https://www.googleapis.com/auth/cloud-platform.read-only'
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,2284 @@
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 AppengineV1beta4
24
+
25
+ # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/
26
+ # endpoints/) configuration for API handlers.
27
+ class ApiConfigHandler
28
+ include Google::Apis::Core::Hashable
29
+
30
+ # Action to take when users access resources that require authentication.
31
+ # Defaults to redirect.
32
+ # Corresponds to the JSON property `authFailAction`
33
+ # @return [String]
34
+ attr_accessor :auth_fail_action
35
+
36
+ # Level of login required to access this resource. Defaults to optional.
37
+ # Corresponds to the JSON property `login`
38
+ # @return [String]
39
+ attr_accessor :login
40
+
41
+ # Path to the script from the application root directory.
42
+ # Corresponds to the JSON property `script`
43
+ # @return [String]
44
+ attr_accessor :script
45
+
46
+ # Security (HTTPS) enforcement for this URL.
47
+ # Corresponds to the JSON property `securityLevel`
48
+ # @return [String]
49
+ attr_accessor :security_level
50
+
51
+ # URL to serve the endpoint at.
52
+ # Corresponds to the JSON property `url`
53
+ # @return [String]
54
+ attr_accessor :url
55
+
56
+ def initialize(**args)
57
+ update!(**args)
58
+ end
59
+
60
+ # Update properties of this object
61
+ def update!(**args)
62
+ @auth_fail_action = args[:auth_fail_action] if args.key?(:auth_fail_action)
63
+ @login = args[:login] if args.key?(:login)
64
+ @script = args[:script] if args.key?(:script)
65
+ @security_level = args[:security_level] if args.key?(:security_level)
66
+ @url = args[:url] if args.key?(:url)
67
+ end
68
+ end
69
+
70
+ # Uses Google Cloud Endpoints to handle requests.
71
+ class ApiEndpointHandler
72
+ include Google::Apis::Core::Hashable
73
+
74
+ # Path to the script from the application root directory.
75
+ # Corresponds to the JSON property `scriptPath`
76
+ # @return [String]
77
+ attr_accessor :script_path
78
+
79
+ def initialize(**args)
80
+ update!(**args)
81
+ end
82
+
83
+ # Update properties of this object
84
+ def update!(**args)
85
+ @script_path = args[:script_path] if args.key?(:script_path)
86
+ end
87
+ end
88
+
89
+ # An Application resource contains the top-level configuration of an App Engine
90
+ # application.
91
+ class Application
92
+ include Google::Apis::Core::Hashable
93
+
94
+ # Google Apps authentication domain that controls which users can access this
95
+ # application.Defaults to open access for any Google Account.
96
+ # Corresponds to the JSON property `authDomain`
97
+ # @return [String]
98
+ attr_accessor :auth_domain
99
+
100
+ # Google Cloud Storage bucket that can be used for storing files associated with
101
+ # this application. This bucket is associated with the application and can be
102
+ # used by the gcloud deployment commands.@OutputOnly
103
+ # Corresponds to the JSON property `codeBucket`
104
+ # @return [String]
105
+ attr_accessor :code_bucket
106
+
107
+ # Google Cloud Storage bucket that can be used by this application to store
108
+ # content.@OutputOnly
109
+ # Corresponds to the JSON property `defaultBucket`
110
+ # @return [String]
111
+ attr_accessor :default_bucket
112
+
113
+ # Cookie expiration policy for this application.
114
+ # Corresponds to the JSON property `defaultCookieExpiration`
115
+ # @return [String]
116
+ attr_accessor :default_cookie_expiration
117
+
118
+ # Hostname used to reach the application, as resolved by App Engine.@OutputOnly
119
+ # Corresponds to the JSON property `defaultHostname`
120
+ # @return [String]
121
+ attr_accessor :default_hostname
122
+
123
+ # HTTP path dispatch rules for requests to the application that do not
124
+ # explicitly target a module or version. Rules are order-dependent.@OutputOnly
125
+ # Corresponds to the JSON property `dispatchRules`
126
+ # @return [Array<Google::Apis::AppengineV1beta4::UrlDispatchRule>]
127
+ attr_accessor :dispatch_rules
128
+
129
+ # Identity-Aware Proxy
130
+ # Corresponds to the JSON property `iap`
131
+ # @return [Google::Apis::AppengineV1beta4::IdentityAwareProxy]
132
+ attr_accessor :iap
133
+
134
+ # Identifier of the Application resource. This identifier is equivalent to the
135
+ # project ID of the Google Cloud Platform project where you want to deploy your
136
+ # application. Example: myapp.
137
+ # Corresponds to the JSON property `id`
138
+ # @return [String]
139
+ attr_accessor :id
140
+
141
+ # Location from which this application will be run. Application instances will
142
+ # run out of data centers in the chosen location, which is also where all of the
143
+ # application's end user content is stored.Defaults to us-central.Options are:us-
144
+ # central - Central USeurope-west - Western Europeus-east1 - Eastern US
145
+ # Corresponds to the JSON property `location`
146
+ # @return [String]
147
+ attr_accessor :location
148
+
149
+ # Full path to the Application resource in the API. Example: apps/myapp.@
150
+ # OutputOnly
151
+ # Corresponds to the JSON property `name`
152
+ # @return [String]
153
+ attr_accessor :name
154
+
155
+ def initialize(**args)
156
+ update!(**args)
157
+ end
158
+
159
+ # Update properties of this object
160
+ def update!(**args)
161
+ @auth_domain = args[:auth_domain] if args.key?(:auth_domain)
162
+ @code_bucket = args[:code_bucket] if args.key?(:code_bucket)
163
+ @default_bucket = args[:default_bucket] if args.key?(:default_bucket)
164
+ @default_cookie_expiration = args[:default_cookie_expiration] if args.key?(:default_cookie_expiration)
165
+ @default_hostname = args[:default_hostname] if args.key?(:default_hostname)
166
+ @dispatch_rules = args[:dispatch_rules] if args.key?(:dispatch_rules)
167
+ @iap = args[:iap] if args.key?(:iap)
168
+ @id = args[:id] if args.key?(:id)
169
+ @location = args[:location] if args.key?(:location)
170
+ @name = args[:name] if args.key?(:name)
171
+ end
172
+ end
173
+
174
+ # Automatic scaling is based on request rate, response latencies, and other
175
+ # application metrics.
176
+ class AutomaticScaling
177
+ include Google::Apis::Core::Hashable
178
+
179
+ # The time period that the Autoscaler (https://cloud.google.com/compute/docs/
180
+ # autoscaler/) should wait before it starts collecting information from a new
181
+ # instance. This prevents the autoscaler from collecting information when the
182
+ # instance is initializing, during which the collected usage would not be
183
+ # reliable. Only applicable in the App Engine flexible environment.
184
+ # Corresponds to the JSON property `coolDownPeriod`
185
+ # @return [String]
186
+ attr_accessor :cool_down_period
187
+
188
+ # Target scaling by CPU usage.
189
+ # Corresponds to the JSON property `cpuUtilization`
190
+ # @return [Google::Apis::AppengineV1beta4::CpuUtilization]
191
+ attr_accessor :cpu_utilization
192
+
193
+ # Target scaling by disk usage. Only applicable for VM runtimes.
194
+ # Corresponds to the JSON property `diskUtilization`
195
+ # @return [Google::Apis::AppengineV1beta4::DiskUtilization]
196
+ attr_accessor :disk_utilization
197
+
198
+ # Number of concurrent requests an automatic scaling instance can accept before
199
+ # the scheduler spawns a new instance.Defaults to a runtime-specific value.
200
+ # Corresponds to the JSON property `maxConcurrentRequests`
201
+ # @return [Fixnum]
202
+ attr_accessor :max_concurrent_requests
203
+
204
+ # Maximum number of idle instances that should be maintained for this version.
205
+ # Corresponds to the JSON property `maxIdleInstances`
206
+ # @return [Fixnum]
207
+ attr_accessor :max_idle_instances
208
+
209
+ # Maximum amount of time that a request should wait in the pending queue before
210
+ # starting a new instance to handle it.
211
+ # Corresponds to the JSON property `maxPendingLatency`
212
+ # @return [String]
213
+ attr_accessor :max_pending_latency
214
+
215
+ # Maximum number of instances that should be started to handle requests.
216
+ # Corresponds to the JSON property `maxTotalInstances`
217
+ # @return [Fixnum]
218
+ attr_accessor :max_total_instances
219
+
220
+ # Minimum number of idle instances that should be maintained for this version.
221
+ # Only applicable for the default version of a module.
222
+ # Corresponds to the JSON property `minIdleInstances`
223
+ # @return [Fixnum]
224
+ attr_accessor :min_idle_instances
225
+
226
+ # Minimum amount of time a request should wait in the pending queue before
227
+ # starting a new instance to handle it.
228
+ # Corresponds to the JSON property `minPendingLatency`
229
+ # @return [String]
230
+ attr_accessor :min_pending_latency
231
+
232
+ # Minimum number of instances that should be maintained for this version.
233
+ # Corresponds to the JSON property `minTotalInstances`
234
+ # @return [Fixnum]
235
+ attr_accessor :min_total_instances
236
+
237
+ # Target scaling by network usage. Only applicable for VM runtimes.
238
+ # Corresponds to the JSON property `networkUtilization`
239
+ # @return [Google::Apis::AppengineV1beta4::NetworkUtilization]
240
+ attr_accessor :network_utilization
241
+
242
+ # Target scaling by request utilization. Only applicable for VM runtimes.
243
+ # Corresponds to the JSON property `requestUtilization`
244
+ # @return [Google::Apis::AppengineV1beta4::RequestUtilization]
245
+ attr_accessor :request_utilization
246
+
247
+ def initialize(**args)
248
+ update!(**args)
249
+ end
250
+
251
+ # Update properties of this object
252
+ def update!(**args)
253
+ @cool_down_period = args[:cool_down_period] if args.key?(:cool_down_period)
254
+ @cpu_utilization = args[:cpu_utilization] if args.key?(:cpu_utilization)
255
+ @disk_utilization = args[:disk_utilization] if args.key?(:disk_utilization)
256
+ @max_concurrent_requests = args[:max_concurrent_requests] if args.key?(:max_concurrent_requests)
257
+ @max_idle_instances = args[:max_idle_instances] if args.key?(:max_idle_instances)
258
+ @max_pending_latency = args[:max_pending_latency] if args.key?(:max_pending_latency)
259
+ @max_total_instances = args[:max_total_instances] if args.key?(:max_total_instances)
260
+ @min_idle_instances = args[:min_idle_instances] if args.key?(:min_idle_instances)
261
+ @min_pending_latency = args[:min_pending_latency] if args.key?(:min_pending_latency)
262
+ @min_total_instances = args[:min_total_instances] if args.key?(:min_total_instances)
263
+ @network_utilization = args[:network_utilization] if args.key?(:network_utilization)
264
+ @request_utilization = args[:request_utilization] if args.key?(:request_utilization)
265
+ end
266
+ end
267
+
268
+ # A module with basic scaling will create an instance when the application
269
+ # receives a request. The instance will be turned down when the app becomes idle.
270
+ # Basic scaling is ideal for work that is intermittent or driven by user
271
+ # activity.
272
+ class BasicScaling
273
+ include Google::Apis::Core::Hashable
274
+
275
+ # Duration of time after the last request that an instance must wait before the
276
+ # instance is shut down.
277
+ # Corresponds to the JSON property `idleTimeout`
278
+ # @return [String]
279
+ attr_accessor :idle_timeout
280
+
281
+ # Maximum number of instances to create for this version.
282
+ # Corresponds to the JSON property `maxInstances`
283
+ # @return [Fixnum]
284
+ attr_accessor :max_instances
285
+
286
+ def initialize(**args)
287
+ update!(**args)
288
+ end
289
+
290
+ # Update properties of this object
291
+ def update!(**args)
292
+ @idle_timeout = args[:idle_timeout] if args.key?(:idle_timeout)
293
+ @max_instances = args[:max_instances] if args.key?(:max_instances)
294
+ end
295
+ end
296
+
297
+ # Docker image that is used to create a container and start a VM instance for
298
+ # the version that you deploy. Only applicable for instances running in the App
299
+ # Engine flexible environment.
300
+ class ContainerInfo
301
+ include Google::Apis::Core::Hashable
302
+
303
+ # URI to the hosted container image in Google Container Registry. The URI must
304
+ # be fully qualified and include a tag or digest. Examples: "gcr.io/my-project/
305
+ # image:tag" or "gcr.io/my-project/image@digest"
306
+ # Corresponds to the JSON property `image`
307
+ # @return [String]
308
+ attr_accessor :image
309
+
310
+ def initialize(**args)
311
+ update!(**args)
312
+ end
313
+
314
+ # Update properties of this object
315
+ def update!(**args)
316
+ @image = args[:image] if args.key?(:image)
317
+ end
318
+ end
319
+
320
+ # Target scaling by CPU usage.
321
+ class CpuUtilization
322
+ include Google::Apis::Core::Hashable
323
+
324
+ # Period of time over which CPU utilization is calculated.
325
+ # Corresponds to the JSON property `aggregationWindowLength`
326
+ # @return [String]
327
+ attr_accessor :aggregation_window_length
328
+
329
+ # Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.
330
+ # Corresponds to the JSON property `targetUtilization`
331
+ # @return [Float]
332
+ attr_accessor :target_utilization
333
+
334
+ def initialize(**args)
335
+ update!(**args)
336
+ end
337
+
338
+ # Update properties of this object
339
+ def update!(**args)
340
+ @aggregation_window_length = args[:aggregation_window_length] if args.key?(:aggregation_window_length)
341
+ @target_utilization = args[:target_utilization] if args.key?(:target_utilization)
342
+ end
343
+ end
344
+
345
+ # Metadata for the given google.longrunning.Operation during a google.appengine.
346
+ # v1.CreateVersionRequest.
347
+ class CreateVersionMetadataV1
348
+ include Google::Apis::Core::Hashable
349
+
350
+ # The Cloud Build ID if one was created as part of the version create. @
351
+ # OutputOnly
352
+ # Corresponds to the JSON property `cloudBuildId`
353
+ # @return [String]
354
+ attr_accessor :cloud_build_id
355
+
356
+ def initialize(**args)
357
+ update!(**args)
358
+ end
359
+
360
+ # Update properties of this object
361
+ def update!(**args)
362
+ @cloud_build_id = args[:cloud_build_id] if args.key?(:cloud_build_id)
363
+ end
364
+ end
365
+
366
+ # Metadata for the given google.longrunning.Operation during a google.appengine.
367
+ # v1alpha.CreateVersionRequest.
368
+ class CreateVersionMetadataV1Alpha
369
+ include Google::Apis::Core::Hashable
370
+
371
+ # The Cloud Build ID if one was created as part of the version create. @
372
+ # OutputOnly
373
+ # Corresponds to the JSON property `cloudBuildId`
374
+ # @return [String]
375
+ attr_accessor :cloud_build_id
376
+
377
+ def initialize(**args)
378
+ update!(**args)
379
+ end
380
+
381
+ # Update properties of this object
382
+ def update!(**args)
383
+ @cloud_build_id = args[:cloud_build_id] if args.key?(:cloud_build_id)
384
+ end
385
+ end
386
+
387
+ # Metadata for the given google.longrunning.Operation during a google.appengine.
388
+ # v1beta.CreateVersionRequest.
389
+ class CreateVersionMetadataV1Beta
390
+ include Google::Apis::Core::Hashable
391
+
392
+ # The Cloud Build ID if one was created as part of the version create. @
393
+ # OutputOnly
394
+ # Corresponds to the JSON property `cloudBuildId`
395
+ # @return [String]
396
+ attr_accessor :cloud_build_id
397
+
398
+ def initialize(**args)
399
+ update!(**args)
400
+ end
401
+
402
+ # Update properties of this object
403
+ def update!(**args)
404
+ @cloud_build_id = args[:cloud_build_id] if args.key?(:cloud_build_id)
405
+ end
406
+ end
407
+
408
+ # Request message for Instances.DebugInstance.
409
+ class DebugInstanceRequest
410
+ include Google::Apis::Core::Hashable
411
+
412
+ # Public SSH key to add to the instance. Examples:
413
+ # [USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]
414
+ # [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh `"userName":"[USERNAME]","expireOn":"
415
+ # [EXPIRE_TIME]"`For more information, see Adding and Removing SSH Keys (https://
416
+ # cloud.google.com/compute/docs/instances/adding-removing-ssh-keys).
417
+ # Corresponds to the JSON property `sshKey`
418
+ # @return [String]
419
+ attr_accessor :ssh_key
420
+
421
+ def initialize(**args)
422
+ update!(**args)
423
+ end
424
+
425
+ # Update properties of this object
426
+ def update!(**args)
427
+ @ssh_key = args[:ssh_key] if args.key?(:ssh_key)
428
+ end
429
+ end
430
+
431
+ # Code and application artifacts used to deploy a version to App Engine.
432
+ class Deployment
433
+ include Google::Apis::Core::Hashable
434
+
435
+ # Docker image that is used to create a container and start a VM instance for
436
+ # the version that you deploy. Only applicable for instances running in the App
437
+ # Engine flexible environment.
438
+ # Corresponds to the JSON property `container`
439
+ # @return [Google::Apis::AppengineV1beta4::ContainerInfo]
440
+ attr_accessor :container
441
+
442
+ # Manifest of the files stored in Google Cloud Storage that are included as part
443
+ # of this version. All files must be readable using the credentials supplied
444
+ # with this call.
445
+ # Corresponds to the JSON property `files`
446
+ # @return [Hash<String,Google::Apis::AppengineV1beta4::FileInfo>]
447
+ attr_accessor :files
448
+
449
+ # Origin of the source code for this deployment. There can be more than one
450
+ # source reference per version if source code is distributed among multiple
451
+ # repositories.
452
+ # Corresponds to the JSON property `sourceReferences`
453
+ # @return [Array<Google::Apis::AppengineV1beta4::SourceReference>]
454
+ attr_accessor :source_references
455
+
456
+ def initialize(**args)
457
+ update!(**args)
458
+ end
459
+
460
+ # Update properties of this object
461
+ def update!(**args)
462
+ @container = args[:container] if args.key?(:container)
463
+ @files = args[:files] if args.key?(:files)
464
+ @source_references = args[:source_references] if args.key?(:source_references)
465
+ end
466
+ end
467
+
468
+ # Target scaling by disk usage. Only applicable for VM runtimes.
469
+ class DiskUtilization
470
+ include Google::Apis::Core::Hashable
471
+
472
+ # Target bytes read per second.
473
+ # Corresponds to the JSON property `targetReadBytesPerSec`
474
+ # @return [Fixnum]
475
+ attr_accessor :target_read_bytes_per_sec
476
+
477
+ # Target ops read per second.
478
+ # Corresponds to the JSON property `targetReadOpsPerSec`
479
+ # @return [Fixnum]
480
+ attr_accessor :target_read_ops_per_sec
481
+
482
+ # Target bytes written per second.
483
+ # Corresponds to the JSON property `targetWriteBytesPerSec`
484
+ # @return [Fixnum]
485
+ attr_accessor :target_write_bytes_per_sec
486
+
487
+ # Target ops written per second.
488
+ # Corresponds to the JSON property `targetWriteOpsPerSec`
489
+ # @return [Fixnum]
490
+ attr_accessor :target_write_ops_per_sec
491
+
492
+ def initialize(**args)
493
+ update!(**args)
494
+ end
495
+
496
+ # Update properties of this object
497
+ def update!(**args)
498
+ @target_read_bytes_per_sec = args[:target_read_bytes_per_sec] if args.key?(:target_read_bytes_per_sec)
499
+ @target_read_ops_per_sec = args[:target_read_ops_per_sec] if args.key?(:target_read_ops_per_sec)
500
+ @target_write_bytes_per_sec = args[:target_write_bytes_per_sec] if args.key?(:target_write_bytes_per_sec)
501
+ @target_write_ops_per_sec = args[:target_write_ops_per_sec] if args.key?(:target_write_ops_per_sec)
502
+ end
503
+ end
504
+
505
+ # Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The
506
+ # Endpoints API Service provides tooling for serving Open API and gRPC endpoints
507
+ # via an NGINX proxy. Only valid for App Engine Flexible environment deployments.
508
+ # .The fields here refer to the name and configuration id of a "service"
509
+ # resource in the Service Management API (https://cloud.google.com/service-
510
+ # management/overview).
511
+ class EndpointsApiService
512
+ include Google::Apis::Core::Hashable
513
+
514
+ # Endpoints service configuration id as specified by the Service Management API.
515
+ # For example "2016-09-19r1"By default, the Endpoints service configuration id
516
+ # is fixed and config_id must be specified. To keep the Endpoints service
517
+ # configuration id updated with each rollout, specify RolloutStrategy.MANAGED
518
+ # and omit config_id.
519
+ # Corresponds to the JSON property `configId`
520
+ # @return [String]
521
+ attr_accessor :config_id
522
+
523
+ # Enable or disable trace sampling. By default, this is set to false for enabled.
524
+ # Corresponds to the JSON property `disableTraceSampling`
525
+ # @return [Boolean]
526
+ attr_accessor :disable_trace_sampling
527
+ alias_method :disable_trace_sampling?, :disable_trace_sampling
528
+
529
+ # Endpoints service name which is the name of the "service" resource in the
530
+ # Service Management API. For example "myapi.endpoints.myproject.cloud.goog"
531
+ # Corresponds to the JSON property `name`
532
+ # @return [String]
533
+ attr_accessor :name
534
+
535
+ # Endpoints rollout strategy. If FIXED, config_id must be specified. If MANAGED,
536
+ # config_id must be omitted.
537
+ # Corresponds to the JSON property `rolloutStrategy`
538
+ # @return [String]
539
+ attr_accessor :rollout_strategy
540
+
541
+ def initialize(**args)
542
+ update!(**args)
543
+ end
544
+
545
+ # Update properties of this object
546
+ def update!(**args)
547
+ @config_id = args[:config_id] if args.key?(:config_id)
548
+ @disable_trace_sampling = args[:disable_trace_sampling] if args.key?(:disable_trace_sampling)
549
+ @name = args[:name] if args.key?(:name)
550
+ @rollout_strategy = args[:rollout_strategy] if args.key?(:rollout_strategy)
551
+ end
552
+ end
553
+
554
+ # Custom static error page to be served when an error occurs.
555
+ class ErrorHandler
556
+ include Google::Apis::Core::Hashable
557
+
558
+ # Error condition this handler applies to.
559
+ # Corresponds to the JSON property `errorCode`
560
+ # @return [String]
561
+ attr_accessor :error_code
562
+
563
+ # MIME type of file. Defaults to text/html.
564
+ # Corresponds to the JSON property `mimeType`
565
+ # @return [String]
566
+ attr_accessor :mime_type
567
+
568
+ # Static file content to be served for this error.
569
+ # Corresponds to the JSON property `staticFile`
570
+ # @return [String]
571
+ attr_accessor :static_file
572
+
573
+ def initialize(**args)
574
+ update!(**args)
575
+ end
576
+
577
+ # Update properties of this object
578
+ def update!(**args)
579
+ @error_code = args[:error_code] if args.key?(:error_code)
580
+ @mime_type = args[:mime_type] if args.key?(:mime_type)
581
+ @static_file = args[:static_file] if args.key?(:static_file)
582
+ end
583
+ end
584
+
585
+ # Single source file that is part of the version to be deployed. Each source
586
+ # file that is deployed must be specified separately.
587
+ class FileInfo
588
+ include Google::Apis::Core::Hashable
589
+
590
+ # The MIME type of the file.Defaults to the value from Google Cloud Storage.
591
+ # Corresponds to the JSON property `mimeType`
592
+ # @return [String]
593
+ attr_accessor :mime_type
594
+
595
+ # The SHA1 hash of the file, in hex.
596
+ # Corresponds to the JSON property `sha1Sum`
597
+ # @return [String]
598
+ attr_accessor :sha1_sum
599
+
600
+ # URL source to use to fetch this file. Must be a URL to a resource in Google
601
+ # Cloud Storage in the form 'http(s)://storage.googleapis.com/<bucket>/<object>'.
602
+ # Corresponds to the JSON property `sourceUrl`
603
+ # @return [String]
604
+ attr_accessor :source_url
605
+
606
+ def initialize(**args)
607
+ update!(**args)
608
+ end
609
+
610
+ # Update properties of this object
611
+ def update!(**args)
612
+ @mime_type = args[:mime_type] if args.key?(:mime_type)
613
+ @sha1_sum = args[:sha1_sum] if args.key?(:sha1_sum)
614
+ @source_url = args[:source_url] if args.key?(:source_url)
615
+ end
616
+ end
617
+
618
+ # Health checking configuration for VM instances. Unhealthy instances are killed
619
+ # and replaced with new instances. Only applicable for instances in App Engine
620
+ # flexible environment.
621
+ class HealthCheck
622
+ include Google::Apis::Core::Hashable
623
+
624
+ # Interval between health checks.
625
+ # Corresponds to the JSON property `checkInterval`
626
+ # @return [String]
627
+ attr_accessor :check_interval
628
+
629
+ # Whether to explicitly disable health checks for this instance.
630
+ # Corresponds to the JSON property `disableHealthCheck`
631
+ # @return [Boolean]
632
+ attr_accessor :disable_health_check
633
+ alias_method :disable_health_check?, :disable_health_check
634
+
635
+ # Number of consecutive successful health checks required before receiving
636
+ # traffic.
637
+ # Corresponds to the JSON property `healthyThreshold`
638
+ # @return [Fixnum]
639
+ attr_accessor :healthy_threshold
640
+
641
+ # Host header to send when performing an HTTP health check. Example: "myapp.
642
+ # appspot.com"
643
+ # Corresponds to the JSON property `host`
644
+ # @return [String]
645
+ attr_accessor :host
646
+
647
+ # Number of consecutive failed health checks required before an instance is
648
+ # restarted.
649
+ # Corresponds to the JSON property `restartThreshold`
650
+ # @return [Fixnum]
651
+ attr_accessor :restart_threshold
652
+
653
+ # Time before the health check is considered failed.
654
+ # Corresponds to the JSON property `timeout`
655
+ # @return [String]
656
+ attr_accessor :timeout
657
+
658
+ # Number of consecutive failed health checks required before removing traffic.
659
+ # Corresponds to the JSON property `unhealthyThreshold`
660
+ # @return [Fixnum]
661
+ attr_accessor :unhealthy_threshold
662
+
663
+ def initialize(**args)
664
+ update!(**args)
665
+ end
666
+
667
+ # Update properties of this object
668
+ def update!(**args)
669
+ @check_interval = args[:check_interval] if args.key?(:check_interval)
670
+ @disable_health_check = args[:disable_health_check] if args.key?(:disable_health_check)
671
+ @healthy_threshold = args[:healthy_threshold] if args.key?(:healthy_threshold)
672
+ @host = args[:host] if args.key?(:host)
673
+ @restart_threshold = args[:restart_threshold] if args.key?(:restart_threshold)
674
+ @timeout = args[:timeout] if args.key?(:timeout)
675
+ @unhealthy_threshold = args[:unhealthy_threshold] if args.key?(:unhealthy_threshold)
676
+ end
677
+ end
678
+
679
+ # Identity-Aware Proxy
680
+ class IdentityAwareProxy
681
+ include Google::Apis::Core::Hashable
682
+
683
+ # Whether the serving infrastructure will authenticate and authorize all
684
+ # incoming requests.If true, the oauth2_client_id and oauth2_client_secret
685
+ # fields must be non-empty.
686
+ # Corresponds to the JSON property `enabled`
687
+ # @return [Boolean]
688
+ attr_accessor :enabled
689
+ alias_method :enabled?, :enabled
690
+
691
+ # OAuth2 client ID to use for the authentication flow.
692
+ # Corresponds to the JSON property `oauth2ClientId`
693
+ # @return [String]
694
+ attr_accessor :oauth2_client_id
695
+
696
+ # For security reasons, this value cannot be retrieved via the API. Instead, the
697
+ # SHA-256 hash of the value is returned in the oauth2_client_secret_sha256 field.
698
+ # @InputOnly
699
+ # Corresponds to the JSON property `oauth2ClientSecret`
700
+ # @return [String]
701
+ attr_accessor :oauth2_client_secret
702
+
703
+ # Hex-encoded SHA-256 hash of the client secret.@OutputOnly
704
+ # Corresponds to the JSON property `oauth2ClientSecretSha256`
705
+ # @return [String]
706
+ attr_accessor :oauth2_client_secret_sha256
707
+
708
+ def initialize(**args)
709
+ update!(**args)
710
+ end
711
+
712
+ # Update properties of this object
713
+ def update!(**args)
714
+ @enabled = args[:enabled] if args.key?(:enabled)
715
+ @oauth2_client_id = args[:oauth2_client_id] if args.key?(:oauth2_client_id)
716
+ @oauth2_client_secret = args[:oauth2_client_secret] if args.key?(:oauth2_client_secret)
717
+ @oauth2_client_secret_sha256 = args[:oauth2_client_secret_sha256] if args.key?(:oauth2_client_secret_sha256)
718
+ end
719
+ end
720
+
721
+ # An Instance resource is the computing unit that App Engine uses to
722
+ # automatically scale an application.
723
+ class Instance
724
+ include Google::Apis::Core::Hashable
725
+
726
+ # App Engine release this instance is running on.@OutputOnly
727
+ # Corresponds to the JSON property `appEngineRelease`
728
+ # @return [String]
729
+ attr_accessor :app_engine_release
730
+
731
+ # Availability of the instance.@OutputOnly
732
+ # Corresponds to the JSON property `availability`
733
+ # @return [String]
734
+ attr_accessor :availability
735
+
736
+ # Average latency (ms) over the last minute.@OutputOnly
737
+ # Corresponds to the JSON property `averageLatency`
738
+ # @return [Fixnum]
739
+ attr_accessor :average_latency
740
+
741
+ # Number of errors since this instance was started.@OutputOnly
742
+ # Corresponds to the JSON property `errors`
743
+ # @return [Fixnum]
744
+ attr_accessor :errors
745
+
746
+ # Relative name of the instance within the version. Example: instance-1.@
747
+ # OutputOnly
748
+ # Corresponds to the JSON property `id`
749
+ # @return [String]
750
+ attr_accessor :id
751
+
752
+ # Total memory in use (bytes).@OutputOnly
753
+ # Corresponds to the JSON property `memoryUsage`
754
+ # @return [Fixnum]
755
+ attr_accessor :memory_usage
756
+
757
+ # Full path to the Instance resource in the API. Example: apps/myapp/modules/
758
+ # default/versions/v1/instances/instance-1.@OutputOnly
759
+ # Corresponds to the JSON property `name`
760
+ # @return [String]
761
+ attr_accessor :name
762
+
763
+ # Average queries per second (QPS) over the last minute.@OutputOnly
764
+ # Corresponds to the JSON property `qps`
765
+ # @return [Float]
766
+ attr_accessor :qps
767
+
768
+ # Number of requests since this instance was started.@OutputOnly
769
+ # Corresponds to the JSON property `requests`
770
+ # @return [Fixnum]
771
+ attr_accessor :requests
772
+
773
+ # Time that this instance was started.@OutputOnly
774
+ # Corresponds to the JSON property `startTimestamp`
775
+ # @return [String]
776
+ attr_accessor :start_timestamp
777
+
778
+ # Virtual machine ID of this instance. Only applicable for instances in App
779
+ # Engine flexible environment.@OutputOnly
780
+ # Corresponds to the JSON property `vmId`
781
+ # @return [String]
782
+ attr_accessor :vm_id
783
+
784
+ # The IP address of this instance. Only applicable for instances in App Engine
785
+ # flexible environment.@OutputOnly
786
+ # Corresponds to the JSON property `vmIp`
787
+ # @return [String]
788
+ attr_accessor :vm_ip
789
+
790
+ # Name of the virtual machine where this instance lives. Only applicable for
791
+ # instances in App Engine flexible environment.@OutputOnly
792
+ # Corresponds to the JSON property `vmName`
793
+ # @return [String]
794
+ attr_accessor :vm_name
795
+
796
+ # Status of the virtual machine where this instance lives. Only applicable for
797
+ # instances in App Engine flexible environment.@OutputOnly
798
+ # Corresponds to the JSON property `vmStatus`
799
+ # @return [String]
800
+ attr_accessor :vm_status
801
+
802
+ # Whether this instance is in debug mode. Only applicable for instances in App
803
+ # Engine flexible environment.@OutputOnly
804
+ # Corresponds to the JSON property `vmUnlocked`
805
+ # @return [Boolean]
806
+ attr_accessor :vm_unlocked
807
+ alias_method :vm_unlocked?, :vm_unlocked
808
+
809
+ # Zone where the virtual machine is located. Only applicable for instances in
810
+ # App Engine flexible environment.@OutputOnly
811
+ # Corresponds to the JSON property `vmZoneName`
812
+ # @return [String]
813
+ attr_accessor :vm_zone_name
814
+
815
+ def initialize(**args)
816
+ update!(**args)
817
+ end
818
+
819
+ # Update properties of this object
820
+ def update!(**args)
821
+ @app_engine_release = args[:app_engine_release] if args.key?(:app_engine_release)
822
+ @availability = args[:availability] if args.key?(:availability)
823
+ @average_latency = args[:average_latency] if args.key?(:average_latency)
824
+ @errors = args[:errors] if args.key?(:errors)
825
+ @id = args[:id] if args.key?(:id)
826
+ @memory_usage = args[:memory_usage] if args.key?(:memory_usage)
827
+ @name = args[:name] if args.key?(:name)
828
+ @qps = args[:qps] if args.key?(:qps)
829
+ @requests = args[:requests] if args.key?(:requests)
830
+ @start_timestamp = args[:start_timestamp] if args.key?(:start_timestamp)
831
+ @vm_id = args[:vm_id] if args.key?(:vm_id)
832
+ @vm_ip = args[:vm_ip] if args.key?(:vm_ip)
833
+ @vm_name = args[:vm_name] if args.key?(:vm_name)
834
+ @vm_status = args[:vm_status] if args.key?(:vm_status)
835
+ @vm_unlocked = args[:vm_unlocked] if args.key?(:vm_unlocked)
836
+ @vm_zone_name = args[:vm_zone_name] if args.key?(:vm_zone_name)
837
+ end
838
+ end
839
+
840
+ # Third-party Python runtime library that is required by the application.
841
+ class Library
842
+ include Google::Apis::Core::Hashable
843
+
844
+ # Name of the library. Example: "django".
845
+ # Corresponds to the JSON property `name`
846
+ # @return [String]
847
+ attr_accessor :name
848
+
849
+ # Version of the library to select, or "latest".
850
+ # Corresponds to the JSON property `version`
851
+ # @return [String]
852
+ attr_accessor :version
853
+
854
+ def initialize(**args)
855
+ update!(**args)
856
+ end
857
+
858
+ # Update properties of this object
859
+ def update!(**args)
860
+ @name = args[:name] if args.key?(:name)
861
+ @version = args[:version] if args.key?(:version)
862
+ end
863
+ end
864
+
865
+ # Response message for Instances.ListInstances.
866
+ class ListInstancesResponse
867
+ include Google::Apis::Core::Hashable
868
+
869
+ # The instances belonging to the requested version.
870
+ # Corresponds to the JSON property `instances`
871
+ # @return [Array<Google::Apis::AppengineV1beta4::Instance>]
872
+ attr_accessor :instances
873
+
874
+ # Continuation token for fetching the next page of results.
875
+ # Corresponds to the JSON property `nextPageToken`
876
+ # @return [String]
877
+ attr_accessor :next_page_token
878
+
879
+ def initialize(**args)
880
+ update!(**args)
881
+ end
882
+
883
+ # Update properties of this object
884
+ def update!(**args)
885
+ @instances = args[:instances] if args.key?(:instances)
886
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
887
+ end
888
+ end
889
+
890
+ # The response message for Locations.ListLocations.
891
+ class ListLocationsResponse
892
+ include Google::Apis::Core::Hashable
893
+
894
+ # A list of locations that matches the specified filter in the request.
895
+ # Corresponds to the JSON property `locations`
896
+ # @return [Array<Google::Apis::AppengineV1beta4::Location>]
897
+ attr_accessor :locations
898
+
899
+ # The standard List next-page token.
900
+ # Corresponds to the JSON property `nextPageToken`
901
+ # @return [String]
902
+ attr_accessor :next_page_token
903
+
904
+ def initialize(**args)
905
+ update!(**args)
906
+ end
907
+
908
+ # Update properties of this object
909
+ def update!(**args)
910
+ @locations = args[:locations] if args.key?(:locations)
911
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
912
+ end
913
+ end
914
+
915
+ # Response message for Modules.ListModules.
916
+ class ListModulesResponse
917
+ include Google::Apis::Core::Hashable
918
+
919
+ # The modules belonging to the requested application.
920
+ # Corresponds to the JSON property `modules`
921
+ # @return [Array<Google::Apis::AppengineV1beta4::Module>]
922
+ attr_accessor :modules
923
+
924
+ # Continuation token for fetching the next page of results.
925
+ # Corresponds to the JSON property `nextPageToken`
926
+ # @return [String]
927
+ attr_accessor :next_page_token
928
+
929
+ def initialize(**args)
930
+ update!(**args)
931
+ end
932
+
933
+ # Update properties of this object
934
+ def update!(**args)
935
+ @modules = args[:modules] if args.key?(:modules)
936
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
937
+ end
938
+ end
939
+
940
+ # The response message for Operations.ListOperations.
941
+ class ListOperationsResponse
942
+ include Google::Apis::Core::Hashable
943
+
944
+ # The standard List next-page token.
945
+ # Corresponds to the JSON property `nextPageToken`
946
+ # @return [String]
947
+ attr_accessor :next_page_token
948
+
949
+ # A list of operations that matches the specified filter in the request.
950
+ # Corresponds to the JSON property `operations`
951
+ # @return [Array<Google::Apis::AppengineV1beta4::Operation>]
952
+ attr_accessor :operations
953
+
954
+ def initialize(**args)
955
+ update!(**args)
956
+ end
957
+
958
+ # Update properties of this object
959
+ def update!(**args)
960
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
961
+ @operations = args[:operations] if args.key?(:operations)
962
+ end
963
+ end
964
+
965
+ # Response message for Versions.ListVersions.
966
+ class ListVersionsResponse
967
+ include Google::Apis::Core::Hashable
968
+
969
+ # Continuation token for fetching the next page of results.
970
+ # Corresponds to the JSON property `nextPageToken`
971
+ # @return [String]
972
+ attr_accessor :next_page_token
973
+
974
+ # The versions belonging to the requested module.
975
+ # Corresponds to the JSON property `versions`
976
+ # @return [Array<Google::Apis::AppengineV1beta4::Version>]
977
+ attr_accessor :versions
978
+
979
+ def initialize(**args)
980
+ update!(**args)
981
+ end
982
+
983
+ # Update properties of this object
984
+ def update!(**args)
985
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
986
+ @versions = args[:versions] if args.key?(:versions)
987
+ end
988
+ end
989
+
990
+ # A resource that represents Google Cloud Platform location.
991
+ class Location
992
+ include Google::Apis::Core::Hashable
993
+
994
+ # The friendly name for this location, typically a nearby city name. For example,
995
+ # "Tokyo".
996
+ # Corresponds to the JSON property `displayName`
997
+ # @return [String]
998
+ attr_accessor :display_name
999
+
1000
+ # Cross-service attributes for the location. For example
1001
+ # `"cloud.googleapis.com/region": "us-east1"`
1002
+ # Corresponds to the JSON property `labels`
1003
+ # @return [Hash<String,String>]
1004
+ attr_accessor :labels
1005
+
1006
+ # The canonical id for this location. For example: "us-east1".
1007
+ # Corresponds to the JSON property `locationId`
1008
+ # @return [String]
1009
+ attr_accessor :location_id
1010
+
1011
+ # Service-specific metadata. For example the available capacity at the given
1012
+ # location.
1013
+ # Corresponds to the JSON property `metadata`
1014
+ # @return [Hash<String,Object>]
1015
+ attr_accessor :metadata
1016
+
1017
+ # Resource name for the location, which may vary between implementations. For
1018
+ # example: "projects/example-project/locations/us-east1"
1019
+ # Corresponds to the JSON property `name`
1020
+ # @return [String]
1021
+ attr_accessor :name
1022
+
1023
+ def initialize(**args)
1024
+ update!(**args)
1025
+ end
1026
+
1027
+ # Update properties of this object
1028
+ def update!(**args)
1029
+ @display_name = args[:display_name] if args.key?(:display_name)
1030
+ @labels = args[:labels] if args.key?(:labels)
1031
+ @location_id = args[:location_id] if args.key?(:location_id)
1032
+ @metadata = args[:metadata] if args.key?(:metadata)
1033
+ @name = args[:name] if args.key?(:name)
1034
+ end
1035
+ end
1036
+
1037
+ # Metadata for the given google.cloud.location.Location.
1038
+ class LocationMetadata
1039
+ include Google::Apis::Core::Hashable
1040
+
1041
+ # App Engine flexible environment is available in the given location.@OutputOnly
1042
+ # Corresponds to the JSON property `flexibleEnvironmentAvailable`
1043
+ # @return [Boolean]
1044
+ attr_accessor :flexible_environment_available
1045
+ alias_method :flexible_environment_available?, :flexible_environment_available
1046
+
1047
+ # App Engine standard environment is available in the given location.@OutputOnly
1048
+ # Corresponds to the JSON property `standardEnvironmentAvailable`
1049
+ # @return [Boolean]
1050
+ attr_accessor :standard_environment_available
1051
+ alias_method :standard_environment_available?, :standard_environment_available
1052
+
1053
+ def initialize(**args)
1054
+ update!(**args)
1055
+ end
1056
+
1057
+ # Update properties of this object
1058
+ def update!(**args)
1059
+ @flexible_environment_available = args[:flexible_environment_available] if args.key?(:flexible_environment_available)
1060
+ @standard_environment_available = args[:standard_environment_available] if args.key?(:standard_environment_available)
1061
+ end
1062
+ end
1063
+
1064
+ # A module with manual scaling runs continuously, allowing you to perform
1065
+ # complex initialization and rely on the state of its memory over time.
1066
+ class ManualScaling
1067
+ include Google::Apis::Core::Hashable
1068
+
1069
+ # Number of instances to assign to the module at the start. This number can
1070
+ # later be altered by using the Modules API (https://cloud.google.com/appengine/
1071
+ # docs/python/modules/functions) set_num_instances() function.
1072
+ # Corresponds to the JSON property `instances`
1073
+ # @return [Fixnum]
1074
+ attr_accessor :instances
1075
+
1076
+ def initialize(**args)
1077
+ update!(**args)
1078
+ end
1079
+
1080
+ # Update properties of this object
1081
+ def update!(**args)
1082
+ @instances = args[:instances] if args.key?(:instances)
1083
+ end
1084
+ end
1085
+
1086
+ # A Module resource is a logical component of an application that can share
1087
+ # state and communicate in a secure fashion with other modules. For example, an
1088
+ # application that handles customer requests might include separate modules to
1089
+ # handle tasks such as backend data analysis or API requests from mobile devices.
1090
+ # Each module has a collection of versions that define a specific set of code
1091
+ # used to implement the functionality of that module.
1092
+ class Module
1093
+ include Google::Apis::Core::Hashable
1094
+
1095
+ # Relative name of the module within the application. Example: default.@
1096
+ # OutputOnly
1097
+ # Corresponds to the JSON property `id`
1098
+ # @return [String]
1099
+ attr_accessor :id
1100
+
1101
+ # Full path to the Module resource in the API. Example: apps/myapp/modules/
1102
+ # default.@OutputOnly
1103
+ # Corresponds to the JSON property `name`
1104
+ # @return [String]
1105
+ attr_accessor :name
1106
+
1107
+ # Traffic routing configuration for versions within a single module. Traffic
1108
+ # splits define how traffic directed to the module is assigned to versions.
1109
+ # Corresponds to the JSON property `split`
1110
+ # @return [Google::Apis::AppengineV1beta4::TrafficSplit]
1111
+ attr_accessor :split
1112
+
1113
+ def initialize(**args)
1114
+ update!(**args)
1115
+ end
1116
+
1117
+ # Update properties of this object
1118
+ def update!(**args)
1119
+ @id = args[:id] if args.key?(:id)
1120
+ @name = args[:name] if args.key?(:name)
1121
+ @split = args[:split] if args.key?(:split)
1122
+ end
1123
+ end
1124
+
1125
+ # Extra network settings. Only applicable for VM runtimes.
1126
+ class Network
1127
+ include Google::Apis::Core::Hashable
1128
+
1129
+ # List of ports, or port pairs, to forward from the virtual machine to the
1130
+ # application container.
1131
+ # Corresponds to the JSON property `forwardedPorts`
1132
+ # @return [Array<String>]
1133
+ attr_accessor :forwarded_ports
1134
+
1135
+ # Tag to apply to the VM instance during creation.
1136
+ # Corresponds to the JSON property `instanceTag`
1137
+ # @return [String]
1138
+ attr_accessor :instance_tag
1139
+
1140
+ # Google Cloud Platform network where the virtual machines are created. Specify
1141
+ # the short name, not the resource path.Defaults to default.
1142
+ # Corresponds to the JSON property `name`
1143
+ # @return [String]
1144
+ attr_accessor :name
1145
+
1146
+ def initialize(**args)
1147
+ update!(**args)
1148
+ end
1149
+
1150
+ # Update properties of this object
1151
+ def update!(**args)
1152
+ @forwarded_ports = args[:forwarded_ports] if args.key?(:forwarded_ports)
1153
+ @instance_tag = args[:instance_tag] if args.key?(:instance_tag)
1154
+ @name = args[:name] if args.key?(:name)
1155
+ end
1156
+ end
1157
+
1158
+ # Target scaling by network usage. Only applicable for VM runtimes.
1159
+ class NetworkUtilization
1160
+ include Google::Apis::Core::Hashable
1161
+
1162
+ # Target bytes received per second.
1163
+ # Corresponds to the JSON property `targetReceivedBytesPerSec`
1164
+ # @return [Fixnum]
1165
+ attr_accessor :target_received_bytes_per_sec
1166
+
1167
+ # Target packets received per second.
1168
+ # Corresponds to the JSON property `targetReceivedPacketsPerSec`
1169
+ # @return [Fixnum]
1170
+ attr_accessor :target_received_packets_per_sec
1171
+
1172
+ # Target bytes sent per second.
1173
+ # Corresponds to the JSON property `targetSentBytesPerSec`
1174
+ # @return [Fixnum]
1175
+ attr_accessor :target_sent_bytes_per_sec
1176
+
1177
+ # Target packets sent per second.
1178
+ # Corresponds to the JSON property `targetSentPacketsPerSec`
1179
+ # @return [Fixnum]
1180
+ attr_accessor :target_sent_packets_per_sec
1181
+
1182
+ def initialize(**args)
1183
+ update!(**args)
1184
+ end
1185
+
1186
+ # Update properties of this object
1187
+ def update!(**args)
1188
+ @target_received_bytes_per_sec = args[:target_received_bytes_per_sec] if args.key?(:target_received_bytes_per_sec)
1189
+ @target_received_packets_per_sec = args[:target_received_packets_per_sec] if args.key?(:target_received_packets_per_sec)
1190
+ @target_sent_bytes_per_sec = args[:target_sent_bytes_per_sec] if args.key?(:target_sent_bytes_per_sec)
1191
+ @target_sent_packets_per_sec = args[:target_sent_packets_per_sec] if args.key?(:target_sent_packets_per_sec)
1192
+ end
1193
+ end
1194
+
1195
+ # This resource represents a long-running operation that is the result of a
1196
+ # network API call.
1197
+ class Operation
1198
+ include Google::Apis::Core::Hashable
1199
+
1200
+ # If the value is false, it means the operation is still in progress. If true,
1201
+ # the operation is completed, and either error or response is available.
1202
+ # Corresponds to the JSON property `done`
1203
+ # @return [Boolean]
1204
+ attr_accessor :done
1205
+ alias_method :done?, :done
1206
+
1207
+ # The Status type defines a logical error model that is suitable for different
1208
+ # programming environments, including REST APIs and RPC APIs. It is used by gRPC
1209
+ # (https://github.com/grpc). The error model is designed to be:
1210
+ # Simple to use and understand for most users
1211
+ # Flexible enough to meet unexpected needsOverviewThe Status message contains
1212
+ # three pieces of data: error code, error message, and error details. The error
1213
+ # code should be an enum value of google.rpc.Code, but it may accept additional
1214
+ # error codes if needed. The error message should be a developer-facing English
1215
+ # message that helps developers understand and resolve the error. If a localized
1216
+ # user-facing error message is needed, put the localized message in the error
1217
+ # details or localize it in the client. The optional error details may contain
1218
+ # arbitrary information about the error. There is a predefined set of error
1219
+ # detail types in the package google.rpc that can be used for common error
1220
+ # conditions.Language mappingThe Status message is the logical representation of
1221
+ # the error model, but it is not necessarily the actual wire format. When the
1222
+ # Status message is exposed in different client libraries and different wire
1223
+ # protocols, it can be mapped differently. For example, it will likely be mapped
1224
+ # to some exceptions in Java, but more likely mapped to some error codes in C.
1225
+ # Other usesThe error model and the Status message can be used in a variety of
1226
+ # environments, either with or without APIs, to provide a consistent developer
1227
+ # experience across different environments.Example uses of this error model
1228
+ # include:
1229
+ # Partial errors. If a service needs to return partial errors to the client, it
1230
+ # may embed the Status in the normal response to indicate the partial errors.
1231
+ # Workflow errors. A typical workflow has multiple steps. Each step may have a
1232
+ # Status message for error reporting.
1233
+ # Batch operations. If a client uses batch request and batch response, the
1234
+ # Status message should be used directly inside batch response, one for each
1235
+ # error sub-response.
1236
+ # Asynchronous operations. If an API call embeds asynchronous operation results
1237
+ # in its response, the status of those operations should be represented directly
1238
+ # using the Status message.
1239
+ # Logging. If some API errors are stored in logs, the message Status could be
1240
+ # used directly after any stripping needed for security/privacy reasons.
1241
+ # Corresponds to the JSON property `error`
1242
+ # @return [Google::Apis::AppengineV1beta4::Status]
1243
+ attr_accessor :error
1244
+
1245
+ # Service-specific metadata associated with the operation. It typically contains
1246
+ # progress information and common metadata such as create time. Some services
1247
+ # might not provide such metadata. Any method that returns a long-running
1248
+ # operation should document the metadata type, if any.
1249
+ # Corresponds to the JSON property `metadata`
1250
+ # @return [Hash<String,Object>]
1251
+ attr_accessor :metadata
1252
+
1253
+ # The server-assigned name, which is only unique within the same service that
1254
+ # originally returns it. If you use the default HTTP mapping, the name should
1255
+ # have the format of operations/some/unique/name.
1256
+ # Corresponds to the JSON property `name`
1257
+ # @return [String]
1258
+ attr_accessor :name
1259
+
1260
+ # The normal response of the operation in case of success. If the original
1261
+ # method returns no data on success, such as Delete, the response is google.
1262
+ # protobuf.Empty. If the original method is standard Get/Create/Update, the
1263
+ # response should be the resource. For other methods, the response should have
1264
+ # the type XxxResponse, where Xxx is the original method name. For example, if
1265
+ # the original method name is TakeSnapshot(), the inferred response type is
1266
+ # TakeSnapshotResponse.
1267
+ # Corresponds to the JSON property `response`
1268
+ # @return [Hash<String,Object>]
1269
+ attr_accessor :response
1270
+
1271
+ def initialize(**args)
1272
+ update!(**args)
1273
+ end
1274
+
1275
+ # Update properties of this object
1276
+ def update!(**args)
1277
+ @done = args[:done] if args.key?(:done)
1278
+ @error = args[:error] if args.key?(:error)
1279
+ @metadata = args[:metadata] if args.key?(:metadata)
1280
+ @name = args[:name] if args.key?(:name)
1281
+ @response = args[:response] if args.key?(:response)
1282
+ end
1283
+ end
1284
+
1285
+ # Metadata for the given google.longrunning.Operation.
1286
+ class OperationMetadata
1287
+ include Google::Apis::Core::Hashable
1288
+
1289
+ # Timestamp that this operation completed.@OutputOnly
1290
+ # Corresponds to the JSON property `endTime`
1291
+ # @return [String]
1292
+ attr_accessor :end_time
1293
+
1294
+ # Timestamp that this operation was created.@OutputOnly
1295
+ # Corresponds to the JSON property `insertTime`
1296
+ # @return [String]
1297
+ attr_accessor :insert_time
1298
+
1299
+ # API method that initiated this operation. Example: google.appengine.v1beta4.
1300
+ # Version.CreateVersion.@OutputOnly
1301
+ # Corresponds to the JSON property `method`
1302
+ # @return [String]
1303
+ attr_accessor :method_prop
1304
+
1305
+ # Type of this operation. Deprecated, use method field instead. Example: "
1306
+ # create_version".@OutputOnly
1307
+ # Corresponds to the JSON property `operationType`
1308
+ # @return [String]
1309
+ attr_accessor :operation_type
1310
+
1311
+ # Name of the resource that this operation is acting on. Example: apps/myapp/
1312
+ # modules/default.@OutputOnly
1313
+ # Corresponds to the JSON property `target`
1314
+ # @return [String]
1315
+ attr_accessor :target
1316
+
1317
+ # User who requested this operation.@OutputOnly
1318
+ # Corresponds to the JSON property `user`
1319
+ # @return [String]
1320
+ attr_accessor :user
1321
+
1322
+ def initialize(**args)
1323
+ update!(**args)
1324
+ end
1325
+
1326
+ # Update properties of this object
1327
+ def update!(**args)
1328
+ @end_time = args[:end_time] if args.key?(:end_time)
1329
+ @insert_time = args[:insert_time] if args.key?(:insert_time)
1330
+ @method_prop = args[:method_prop] if args.key?(:method_prop)
1331
+ @operation_type = args[:operation_type] if args.key?(:operation_type)
1332
+ @target = args[:target] if args.key?(:target)
1333
+ @user = args[:user] if args.key?(:user)
1334
+ end
1335
+ end
1336
+
1337
+ # Metadata for the given google.longrunning.Operation.
1338
+ class OperationMetadataV1
1339
+ include Google::Apis::Core::Hashable
1340
+
1341
+ # Metadata for the given google.longrunning.Operation during a google.appengine.
1342
+ # v1.CreateVersionRequest.
1343
+ # Corresponds to the JSON property `createVersionMetadata`
1344
+ # @return [Google::Apis::AppengineV1beta4::CreateVersionMetadataV1]
1345
+ attr_accessor :create_version_metadata
1346
+
1347
+ # Time that this operation completed.@OutputOnly
1348
+ # Corresponds to the JSON property `endTime`
1349
+ # @return [String]
1350
+ attr_accessor :end_time
1351
+
1352
+ # Ephemeral message that may change every time the operation is polled. @
1353
+ # OutputOnly
1354
+ # Corresponds to the JSON property `ephemeralMessage`
1355
+ # @return [String]
1356
+ attr_accessor :ephemeral_message
1357
+
1358
+ # Time that this operation was created.@OutputOnly
1359
+ # Corresponds to the JSON property `insertTime`
1360
+ # @return [String]
1361
+ attr_accessor :insert_time
1362
+
1363
+ # API method that initiated this operation. Example: google.appengine.v1.
1364
+ # Versions.CreateVersion.@OutputOnly
1365
+ # Corresponds to the JSON property `method`
1366
+ # @return [String]
1367
+ attr_accessor :method_prop
1368
+
1369
+ # Name of the resource that this operation is acting on. Example: apps/myapp/
1370
+ # services/default.@OutputOnly
1371
+ # Corresponds to the JSON property `target`
1372
+ # @return [String]
1373
+ attr_accessor :target
1374
+
1375
+ # User who requested this operation.@OutputOnly
1376
+ # Corresponds to the JSON property `user`
1377
+ # @return [String]
1378
+ attr_accessor :user
1379
+
1380
+ # Durable messages that persist on every operation poll. @OutputOnly
1381
+ # Corresponds to the JSON property `warning`
1382
+ # @return [Array<String>]
1383
+ attr_accessor :warning
1384
+
1385
+ def initialize(**args)
1386
+ update!(**args)
1387
+ end
1388
+
1389
+ # Update properties of this object
1390
+ def update!(**args)
1391
+ @create_version_metadata = args[:create_version_metadata] if args.key?(:create_version_metadata)
1392
+ @end_time = args[:end_time] if args.key?(:end_time)
1393
+ @ephemeral_message = args[:ephemeral_message] if args.key?(:ephemeral_message)
1394
+ @insert_time = args[:insert_time] if args.key?(:insert_time)
1395
+ @method_prop = args[:method_prop] if args.key?(:method_prop)
1396
+ @target = args[:target] if args.key?(:target)
1397
+ @user = args[:user] if args.key?(:user)
1398
+ @warning = args[:warning] if args.key?(:warning)
1399
+ end
1400
+ end
1401
+
1402
+ # Metadata for the given google.longrunning.Operation.
1403
+ class OperationMetadataV1Alpha
1404
+ include Google::Apis::Core::Hashable
1405
+
1406
+ # Metadata for the given google.longrunning.Operation during a google.appengine.
1407
+ # v1alpha.CreateVersionRequest.
1408
+ # Corresponds to the JSON property `createVersionMetadata`
1409
+ # @return [Google::Apis::AppengineV1beta4::CreateVersionMetadataV1Alpha]
1410
+ attr_accessor :create_version_metadata
1411
+
1412
+ # Time that this operation completed.@OutputOnly
1413
+ # Corresponds to the JSON property `endTime`
1414
+ # @return [String]
1415
+ attr_accessor :end_time
1416
+
1417
+ # Ephemeral message that may change every time the operation is polled. @
1418
+ # OutputOnly
1419
+ # Corresponds to the JSON property `ephemeralMessage`
1420
+ # @return [String]
1421
+ attr_accessor :ephemeral_message
1422
+
1423
+ # Time that this operation was created.@OutputOnly
1424
+ # Corresponds to the JSON property `insertTime`
1425
+ # @return [String]
1426
+ attr_accessor :insert_time
1427
+
1428
+ # API method that initiated this operation. Example: google.appengine.v1alpha.
1429
+ # Versions.CreateVersion.@OutputOnly
1430
+ # Corresponds to the JSON property `method`
1431
+ # @return [String]
1432
+ attr_accessor :method_prop
1433
+
1434
+ # Name of the resource that this operation is acting on. Example: apps/myapp/
1435
+ # services/default.@OutputOnly
1436
+ # Corresponds to the JSON property `target`
1437
+ # @return [String]
1438
+ attr_accessor :target
1439
+
1440
+ # User who requested this operation.@OutputOnly
1441
+ # Corresponds to the JSON property `user`
1442
+ # @return [String]
1443
+ attr_accessor :user
1444
+
1445
+ # Durable messages that persist on every operation poll. @OutputOnly
1446
+ # Corresponds to the JSON property `warning`
1447
+ # @return [Array<String>]
1448
+ attr_accessor :warning
1449
+
1450
+ def initialize(**args)
1451
+ update!(**args)
1452
+ end
1453
+
1454
+ # Update properties of this object
1455
+ def update!(**args)
1456
+ @create_version_metadata = args[:create_version_metadata] if args.key?(:create_version_metadata)
1457
+ @end_time = args[:end_time] if args.key?(:end_time)
1458
+ @ephemeral_message = args[:ephemeral_message] if args.key?(:ephemeral_message)
1459
+ @insert_time = args[:insert_time] if args.key?(:insert_time)
1460
+ @method_prop = args[:method_prop] if args.key?(:method_prop)
1461
+ @target = args[:target] if args.key?(:target)
1462
+ @user = args[:user] if args.key?(:user)
1463
+ @warning = args[:warning] if args.key?(:warning)
1464
+ end
1465
+ end
1466
+
1467
+ # Metadata for the given google.longrunning.Operation.
1468
+ class OperationMetadataV1Beta
1469
+ include Google::Apis::Core::Hashable
1470
+
1471
+ # Metadata for the given google.longrunning.Operation during a google.appengine.
1472
+ # v1beta.CreateVersionRequest.
1473
+ # Corresponds to the JSON property `createVersionMetadata`
1474
+ # @return [Google::Apis::AppengineV1beta4::CreateVersionMetadataV1Beta]
1475
+ attr_accessor :create_version_metadata
1476
+
1477
+ # Time that this operation completed.@OutputOnly
1478
+ # Corresponds to the JSON property `endTime`
1479
+ # @return [String]
1480
+ attr_accessor :end_time
1481
+
1482
+ # Ephemeral message that may change every time the operation is polled. @
1483
+ # OutputOnly
1484
+ # Corresponds to the JSON property `ephemeralMessage`
1485
+ # @return [String]
1486
+ attr_accessor :ephemeral_message
1487
+
1488
+ # Time that this operation was created.@OutputOnly
1489
+ # Corresponds to the JSON property `insertTime`
1490
+ # @return [String]
1491
+ attr_accessor :insert_time
1492
+
1493
+ # API method that initiated this operation. Example: google.appengine.v1beta.
1494
+ # Versions.CreateVersion.@OutputOnly
1495
+ # Corresponds to the JSON property `method`
1496
+ # @return [String]
1497
+ attr_accessor :method_prop
1498
+
1499
+ # Name of the resource that this operation is acting on. Example: apps/myapp/
1500
+ # services/default.@OutputOnly
1501
+ # Corresponds to the JSON property `target`
1502
+ # @return [String]
1503
+ attr_accessor :target
1504
+
1505
+ # User who requested this operation.@OutputOnly
1506
+ # Corresponds to the JSON property `user`
1507
+ # @return [String]
1508
+ attr_accessor :user
1509
+
1510
+ # Durable messages that persist on every operation poll. @OutputOnly
1511
+ # Corresponds to the JSON property `warning`
1512
+ # @return [Array<String>]
1513
+ attr_accessor :warning
1514
+
1515
+ def initialize(**args)
1516
+ update!(**args)
1517
+ end
1518
+
1519
+ # Update properties of this object
1520
+ def update!(**args)
1521
+ @create_version_metadata = args[:create_version_metadata] if args.key?(:create_version_metadata)
1522
+ @end_time = args[:end_time] if args.key?(:end_time)
1523
+ @ephemeral_message = args[:ephemeral_message] if args.key?(:ephemeral_message)
1524
+ @insert_time = args[:insert_time] if args.key?(:insert_time)
1525
+ @method_prop = args[:method_prop] if args.key?(:method_prop)
1526
+ @target = args[:target] if args.key?(:target)
1527
+ @user = args[:user] if args.key?(:user)
1528
+ @warning = args[:warning] if args.key?(:warning)
1529
+ end
1530
+ end
1531
+
1532
+ # Metadata for the given google.longrunning.Operation.
1533
+ class OperationMetadataV1Beta5
1534
+ include Google::Apis::Core::Hashable
1535
+
1536
+ # Timestamp that this operation completed.@OutputOnly
1537
+ # Corresponds to the JSON property `endTime`
1538
+ # @return [String]
1539
+ attr_accessor :end_time
1540
+
1541
+ # Timestamp that this operation was created.@OutputOnly
1542
+ # Corresponds to the JSON property `insertTime`
1543
+ # @return [String]
1544
+ attr_accessor :insert_time
1545
+
1546
+ # API method name that initiated this operation. Example: google.appengine.
1547
+ # v1beta5.Version.CreateVersion.@OutputOnly
1548
+ # Corresponds to the JSON property `method`
1549
+ # @return [String]
1550
+ attr_accessor :method_prop
1551
+
1552
+ # Name of the resource that this operation is acting on. Example: apps/myapp/
1553
+ # services/default.@OutputOnly
1554
+ # Corresponds to the JSON property `target`
1555
+ # @return [String]
1556
+ attr_accessor :target
1557
+
1558
+ # User who requested this operation.@OutputOnly
1559
+ # Corresponds to the JSON property `user`
1560
+ # @return [String]
1561
+ attr_accessor :user
1562
+
1563
+ def initialize(**args)
1564
+ update!(**args)
1565
+ end
1566
+
1567
+ # Update properties of this object
1568
+ def update!(**args)
1569
+ @end_time = args[:end_time] if args.key?(:end_time)
1570
+ @insert_time = args[:insert_time] if args.key?(:insert_time)
1571
+ @method_prop = args[:method_prop] if args.key?(:method_prop)
1572
+ @target = args[:target] if args.key?(:target)
1573
+ @user = args[:user] if args.key?(:user)
1574
+ end
1575
+ end
1576
+
1577
+ # Target scaling by request utilization. Only applicable for VM runtimes.
1578
+ class RequestUtilization
1579
+ include Google::Apis::Core::Hashable
1580
+
1581
+ # Target number of concurrent requests.
1582
+ # Corresponds to the JSON property `targetConcurrentRequests`
1583
+ # @return [Fixnum]
1584
+ attr_accessor :target_concurrent_requests
1585
+
1586
+ # Target requests per second.
1587
+ # Corresponds to the JSON property `targetRequestCountPerSec`
1588
+ # @return [Fixnum]
1589
+ attr_accessor :target_request_count_per_sec
1590
+
1591
+ def initialize(**args)
1592
+ update!(**args)
1593
+ end
1594
+
1595
+ # Update properties of this object
1596
+ def update!(**args)
1597
+ @target_concurrent_requests = args[:target_concurrent_requests] if args.key?(:target_concurrent_requests)
1598
+ @target_request_count_per_sec = args[:target_request_count_per_sec] if args.key?(:target_request_count_per_sec)
1599
+ end
1600
+ end
1601
+
1602
+ # Machine resources for a version.
1603
+ class Resources
1604
+ include Google::Apis::Core::Hashable
1605
+
1606
+ # Number of CPU cores needed.
1607
+ # Corresponds to the JSON property `cpu`
1608
+ # @return [Float]
1609
+ attr_accessor :cpu
1610
+
1611
+ # Disk size (GB) needed.
1612
+ # Corresponds to the JSON property `diskGb`
1613
+ # @return [Float]
1614
+ attr_accessor :disk_gb
1615
+
1616
+ # Memory (GB) needed.
1617
+ # Corresponds to the JSON property `memoryGb`
1618
+ # @return [Float]
1619
+ attr_accessor :memory_gb
1620
+
1621
+ # User specified volumes.
1622
+ # Corresponds to the JSON property `volumes`
1623
+ # @return [Array<Google::Apis::AppengineV1beta4::Volume>]
1624
+ attr_accessor :volumes
1625
+
1626
+ def initialize(**args)
1627
+ update!(**args)
1628
+ end
1629
+
1630
+ # Update properties of this object
1631
+ def update!(**args)
1632
+ @cpu = args[:cpu] if args.key?(:cpu)
1633
+ @disk_gb = args[:disk_gb] if args.key?(:disk_gb)
1634
+ @memory_gb = args[:memory_gb] if args.key?(:memory_gb)
1635
+ @volumes = args[:volumes] if args.key?(:volumes)
1636
+ end
1637
+ end
1638
+
1639
+ # Executes a script to handle the request that matches the URL pattern.
1640
+ class ScriptHandler
1641
+ include Google::Apis::Core::Hashable
1642
+
1643
+ # Path to the script from the application root directory.
1644
+ # Corresponds to the JSON property `scriptPath`
1645
+ # @return [String]
1646
+ attr_accessor :script_path
1647
+
1648
+ def initialize(**args)
1649
+ update!(**args)
1650
+ end
1651
+
1652
+ # Update properties of this object
1653
+ def update!(**args)
1654
+ @script_path = args[:script_path] if args.key?(:script_path)
1655
+ end
1656
+ end
1657
+
1658
+ # Reference to a particular snapshot of the source tree used to build and deploy
1659
+ # the application.
1660
+ class SourceReference
1661
+ include Google::Apis::Core::Hashable
1662
+
1663
+ # URI string identifying the repository. Example: "https://source.developers.
1664
+ # google.com/p/app-123/r/default"
1665
+ # Corresponds to the JSON property `repository`
1666
+ # @return [String]
1667
+ attr_accessor :repository
1668
+
1669
+ # The canonical, persistent identifier of the deployed revision. Aliases that
1670
+ # include tags or branch names are not allowed. Example (git): "
1671
+ # 2198322f89e0bb2e25021667c2ed489d1fd34e6b"
1672
+ # Corresponds to the JSON property `revisionId`
1673
+ # @return [String]
1674
+ attr_accessor :revision_id
1675
+
1676
+ def initialize(**args)
1677
+ update!(**args)
1678
+ end
1679
+
1680
+ # Update properties of this object
1681
+ def update!(**args)
1682
+ @repository = args[:repository] if args.key?(:repository)
1683
+ @revision_id = args[:revision_id] if args.key?(:revision_id)
1684
+ end
1685
+ end
1686
+
1687
+ # Files served directly to the user for a given URL, such as images, CSS
1688
+ # stylesheets, or JavaScript source files. Static directory handlers make it
1689
+ # easy to serve the entire contents of a directory as static files.
1690
+ class StaticDirectoryHandler
1691
+ include Google::Apis::Core::Hashable
1692
+
1693
+ # Whether files should also be uploaded as code data. By default, files declared
1694
+ # in static directory handlers are uploaded as static data and are only served
1695
+ # to end users; they cannot be read by the application. If enabled, uploads are
1696
+ # charged against both your code and static data storage resource quotas.
1697
+ # Corresponds to the JSON property `applicationReadable`
1698
+ # @return [Boolean]
1699
+ attr_accessor :application_readable
1700
+ alias_method :application_readable?, :application_readable
1701
+
1702
+ # Path to the directory containing the static files from the application root
1703
+ # directory. Everything after the end of the matched URL pattern is appended to
1704
+ # static_dir to form the full path to the requested file.
1705
+ # Corresponds to the JSON property `directory`
1706
+ # @return [String]
1707
+ attr_accessor :directory
1708
+
1709
+ # Time a static file served by this handler should be cached.
1710
+ # Corresponds to the JSON property `expiration`
1711
+ # @return [String]
1712
+ attr_accessor :expiration
1713
+
1714
+ # HTTP headers to use for all responses from these URLs.
1715
+ # Corresponds to the JSON property `httpHeaders`
1716
+ # @return [Hash<String,String>]
1717
+ attr_accessor :http_headers
1718
+
1719
+ # MIME type used to serve all files served by this handler. Defaults to file-
1720
+ # specific MIME types, which are direved from each file's filename extension.
1721
+ # Corresponds to the JSON property `mimeType`
1722
+ # @return [String]
1723
+ attr_accessor :mime_type
1724
+
1725
+ # Whether this handler should match the request if the file referenced by the
1726
+ # handler does not exist.
1727
+ # Corresponds to the JSON property `requireMatchingFile`
1728
+ # @return [Boolean]
1729
+ attr_accessor :require_matching_file
1730
+ alias_method :require_matching_file?, :require_matching_file
1731
+
1732
+ def initialize(**args)
1733
+ update!(**args)
1734
+ end
1735
+
1736
+ # Update properties of this object
1737
+ def update!(**args)
1738
+ @application_readable = args[:application_readable] if args.key?(:application_readable)
1739
+ @directory = args[:directory] if args.key?(:directory)
1740
+ @expiration = args[:expiration] if args.key?(:expiration)
1741
+ @http_headers = args[:http_headers] if args.key?(:http_headers)
1742
+ @mime_type = args[:mime_type] if args.key?(:mime_type)
1743
+ @require_matching_file = args[:require_matching_file] if args.key?(:require_matching_file)
1744
+ end
1745
+ end
1746
+
1747
+ # Files served directly to the user for a given URL, such as images, CSS
1748
+ # stylesheets, or JavaScript source files. Static file handlers describe which
1749
+ # files in the application directory are static files, and which URLs serve them.
1750
+ class StaticFilesHandler
1751
+ include Google::Apis::Core::Hashable
1752
+
1753
+ # Whether files should also be uploaded as code data. By default, files declared
1754
+ # in static file handlers are uploaded as static data and are only served to end
1755
+ # users; they cannot be read by the application. If enabled, uploads are charged
1756
+ # against both your code and static data storage resource quotas.
1757
+ # Corresponds to the JSON property `applicationReadable`
1758
+ # @return [Boolean]
1759
+ attr_accessor :application_readable
1760
+ alias_method :application_readable?, :application_readable
1761
+
1762
+ # Time a static file served by this handler should be cached.
1763
+ # Corresponds to the JSON property `expiration`
1764
+ # @return [String]
1765
+ attr_accessor :expiration
1766
+
1767
+ # HTTP headers to use for all responses from these URLs.
1768
+ # Corresponds to the JSON property `httpHeaders`
1769
+ # @return [Hash<String,String>]
1770
+ attr_accessor :http_headers
1771
+
1772
+ # MIME type used to serve all files served by this handler. Defaults to file-
1773
+ # specific MIME types, which are derived from each file's filename extension.
1774
+ # Corresponds to the JSON property `mimeType`
1775
+ # @return [String]
1776
+ attr_accessor :mime_type
1777
+
1778
+ # Path to the static files matched by the URL pattern, from the application root
1779
+ # directory. The path can refer to text matched in groupings in the URL pattern.
1780
+ # Corresponds to the JSON property `path`
1781
+ # @return [String]
1782
+ attr_accessor :path
1783
+
1784
+ # Whether this handler should match the request if the file referenced by the
1785
+ # handler does not exist.
1786
+ # Corresponds to the JSON property `requireMatchingFile`
1787
+ # @return [Boolean]
1788
+ attr_accessor :require_matching_file
1789
+ alias_method :require_matching_file?, :require_matching_file
1790
+
1791
+ # Regular expression that matches the file paths for all files that should be
1792
+ # referenced by this handler.
1793
+ # Corresponds to the JSON property `uploadPathRegex`
1794
+ # @return [String]
1795
+ attr_accessor :upload_path_regex
1796
+
1797
+ def initialize(**args)
1798
+ update!(**args)
1799
+ end
1800
+
1801
+ # Update properties of this object
1802
+ def update!(**args)
1803
+ @application_readable = args[:application_readable] if args.key?(:application_readable)
1804
+ @expiration = args[:expiration] if args.key?(:expiration)
1805
+ @http_headers = args[:http_headers] if args.key?(:http_headers)
1806
+ @mime_type = args[:mime_type] if args.key?(:mime_type)
1807
+ @path = args[:path] if args.key?(:path)
1808
+ @require_matching_file = args[:require_matching_file] if args.key?(:require_matching_file)
1809
+ @upload_path_regex = args[:upload_path_regex] if args.key?(:upload_path_regex)
1810
+ end
1811
+ end
1812
+
1813
+ # The Status type defines a logical error model that is suitable for different
1814
+ # programming environments, including REST APIs and RPC APIs. It is used by gRPC
1815
+ # (https://github.com/grpc). The error model is designed to be:
1816
+ # Simple to use and understand for most users
1817
+ # Flexible enough to meet unexpected needsOverviewThe Status message contains
1818
+ # three pieces of data: error code, error message, and error details. The error
1819
+ # code should be an enum value of google.rpc.Code, but it may accept additional
1820
+ # error codes if needed. The error message should be a developer-facing English
1821
+ # message that helps developers understand and resolve the error. If a localized
1822
+ # user-facing error message is needed, put the localized message in the error
1823
+ # details or localize it in the client. The optional error details may contain
1824
+ # arbitrary information about the error. There is a predefined set of error
1825
+ # detail types in the package google.rpc that can be used for common error
1826
+ # conditions.Language mappingThe Status message is the logical representation of
1827
+ # the error model, but it is not necessarily the actual wire format. When the
1828
+ # Status message is exposed in different client libraries and different wire
1829
+ # protocols, it can be mapped differently. For example, it will likely be mapped
1830
+ # to some exceptions in Java, but more likely mapped to some error codes in C.
1831
+ # Other usesThe error model and the Status message can be used in a variety of
1832
+ # environments, either with or without APIs, to provide a consistent developer
1833
+ # experience across different environments.Example uses of this error model
1834
+ # include:
1835
+ # Partial errors. If a service needs to return partial errors to the client, it
1836
+ # may embed the Status in the normal response to indicate the partial errors.
1837
+ # Workflow errors. A typical workflow has multiple steps. Each step may have a
1838
+ # Status message for error reporting.
1839
+ # Batch operations. If a client uses batch request and batch response, the
1840
+ # Status message should be used directly inside batch response, one for each
1841
+ # error sub-response.
1842
+ # Asynchronous operations. If an API call embeds asynchronous operation results
1843
+ # in its response, the status of those operations should be represented directly
1844
+ # using the Status message.
1845
+ # Logging. If some API errors are stored in logs, the message Status could be
1846
+ # used directly after any stripping needed for security/privacy reasons.
1847
+ class Status
1848
+ include Google::Apis::Core::Hashable
1849
+
1850
+ # The status code, which should be an enum value of google.rpc.Code.
1851
+ # Corresponds to the JSON property `code`
1852
+ # @return [Fixnum]
1853
+ attr_accessor :code
1854
+
1855
+ # A list of messages that carry the error details. There is a common set of
1856
+ # message types for APIs to use.
1857
+ # Corresponds to the JSON property `details`
1858
+ # @return [Array<Hash<String,Object>>]
1859
+ attr_accessor :details
1860
+
1861
+ # A developer-facing error message, which should be in English. Any user-facing
1862
+ # error message should be localized and sent in the google.rpc.Status.details
1863
+ # field, or localized by the client.
1864
+ # Corresponds to the JSON property `message`
1865
+ # @return [String]
1866
+ attr_accessor :message
1867
+
1868
+ def initialize(**args)
1869
+ update!(**args)
1870
+ end
1871
+
1872
+ # Update properties of this object
1873
+ def update!(**args)
1874
+ @code = args[:code] if args.key?(:code)
1875
+ @details = args[:details] if args.key?(:details)
1876
+ @message = args[:message] if args.key?(:message)
1877
+ end
1878
+ end
1879
+
1880
+ # Traffic routing configuration for versions within a single module. Traffic
1881
+ # splits define how traffic directed to the module is assigned to versions.
1882
+ class TrafficSplit
1883
+ include Google::Apis::Core::Hashable
1884
+
1885
+ # Mapping from version IDs within the module to fractional (0.000, 1]
1886
+ # allocations of traffic for that version. Each version can be specified only
1887
+ # once, but some versions in the module may not have any traffic allocation.
1888
+ # Modules that have traffic allocated cannot be deleted until either the module
1889
+ # is deleted or their traffic allocation is removed. Allocations must sum to 1.
1890
+ # Up to two decimal place precision is supported for IP-based splits and up to
1891
+ # three decimal places is supported for cookie-based splits.
1892
+ # Corresponds to the JSON property `allocations`
1893
+ # @return [Hash<String,Float>]
1894
+ attr_accessor :allocations
1895
+
1896
+ # Mechanism used to determine which version a request is sent to. The traffic
1897
+ # selection algorithm will be stable for either type until allocations are
1898
+ # changed.
1899
+ # Corresponds to the JSON property `shardBy`
1900
+ # @return [String]
1901
+ attr_accessor :shard_by
1902
+
1903
+ def initialize(**args)
1904
+ update!(**args)
1905
+ end
1906
+
1907
+ # Update properties of this object
1908
+ def update!(**args)
1909
+ @allocations = args[:allocations] if args.key?(:allocations)
1910
+ @shard_by = args[:shard_by] if args.key?(:shard_by)
1911
+ end
1912
+ end
1913
+
1914
+ # Rules to match an HTTP request and dispatch that request to a module.
1915
+ class UrlDispatchRule
1916
+ include Google::Apis::Core::Hashable
1917
+
1918
+ # Domain name to match against. The wildcard "*" is supported if specified
1919
+ # before a period: "*.".Defaults to matching all domains: "*".
1920
+ # Corresponds to the JSON property `domain`
1921
+ # @return [String]
1922
+ attr_accessor :domain
1923
+
1924
+ # Resource ID of a module in this application that should serve the matched
1925
+ # request. The module must already exist. Example: default.
1926
+ # Corresponds to the JSON property `module`
1927
+ # @return [String]
1928
+ attr_accessor :module
1929
+
1930
+ # Pathname within the host. Must start with a "/". A single "*" can be included
1931
+ # at the end of the path. The sum of the lengths of the domain and path may not
1932
+ # exceed 100 characters.
1933
+ # Corresponds to the JSON property `path`
1934
+ # @return [String]
1935
+ attr_accessor :path
1936
+
1937
+ def initialize(**args)
1938
+ update!(**args)
1939
+ end
1940
+
1941
+ # Update properties of this object
1942
+ def update!(**args)
1943
+ @domain = args[:domain] if args.key?(:domain)
1944
+ @module = args[:module] if args.key?(:module)
1945
+ @path = args[:path] if args.key?(:path)
1946
+ end
1947
+ end
1948
+
1949
+ # URL pattern and description of how the URL should be handled. App Engine can
1950
+ # handle URLs by executing application code, or by serving static files uploaded
1951
+ # with the version, such as images, CSS, or JavaScript.
1952
+ class UrlMap
1953
+ include Google::Apis::Core::Hashable
1954
+
1955
+ # Uses Google Cloud Endpoints to handle requests.
1956
+ # Corresponds to the JSON property `apiEndpoint`
1957
+ # @return [Google::Apis::AppengineV1beta4::ApiEndpointHandler]
1958
+ attr_accessor :api_endpoint
1959
+
1960
+ # Action to take when users access resources that require authentication.
1961
+ # Defaults to redirect.
1962
+ # Corresponds to the JSON property `authFailAction`
1963
+ # @return [String]
1964
+ attr_accessor :auth_fail_action
1965
+
1966
+ # Level of login required to access this resource.
1967
+ # Corresponds to the JSON property `login`
1968
+ # @return [String]
1969
+ attr_accessor :login
1970
+
1971
+ # 30x code to use when performing redirects for the secure field. Defaults to
1972
+ # 302.
1973
+ # Corresponds to the JSON property `redirectHttpResponseCode`
1974
+ # @return [String]
1975
+ attr_accessor :redirect_http_response_code
1976
+
1977
+ # Executes a script to handle the request that matches the URL pattern.
1978
+ # Corresponds to the JSON property `script`
1979
+ # @return [Google::Apis::AppengineV1beta4::ScriptHandler]
1980
+ attr_accessor :script
1981
+
1982
+ # Security (HTTPS) enforcement for this URL.
1983
+ # Corresponds to the JSON property `securityLevel`
1984
+ # @return [String]
1985
+ attr_accessor :security_level
1986
+
1987
+ # Files served directly to the user for a given URL, such as images, CSS
1988
+ # stylesheets, or JavaScript source files. Static directory handlers make it
1989
+ # easy to serve the entire contents of a directory as static files.
1990
+ # Corresponds to the JSON property `staticDirectory`
1991
+ # @return [Google::Apis::AppengineV1beta4::StaticDirectoryHandler]
1992
+ attr_accessor :static_directory
1993
+
1994
+ # Files served directly to the user for a given URL, such as images, CSS
1995
+ # stylesheets, or JavaScript source files. Static file handlers describe which
1996
+ # files in the application directory are static files, and which URLs serve them.
1997
+ # Corresponds to the JSON property `staticFiles`
1998
+ # @return [Google::Apis::AppengineV1beta4::StaticFilesHandler]
1999
+ attr_accessor :static_files
2000
+
2001
+ # A URL prefix. Uses regular expression syntax, which means regexp special
2002
+ # characters must be escaped, but should not contain groupings. All URLs that
2003
+ # begin with this prefix are handled by this handler, using the portion of the
2004
+ # URL after the prefix as part of the file path.
2005
+ # Corresponds to the JSON property `urlRegex`
2006
+ # @return [String]
2007
+ attr_accessor :url_regex
2008
+
2009
+ def initialize(**args)
2010
+ update!(**args)
2011
+ end
2012
+
2013
+ # Update properties of this object
2014
+ def update!(**args)
2015
+ @api_endpoint = args[:api_endpoint] if args.key?(:api_endpoint)
2016
+ @auth_fail_action = args[:auth_fail_action] if args.key?(:auth_fail_action)
2017
+ @login = args[:login] if args.key?(:login)
2018
+ @redirect_http_response_code = args[:redirect_http_response_code] if args.key?(:redirect_http_response_code)
2019
+ @script = args[:script] if args.key?(:script)
2020
+ @security_level = args[:security_level] if args.key?(:security_level)
2021
+ @static_directory = args[:static_directory] if args.key?(:static_directory)
2022
+ @static_files = args[:static_files] if args.key?(:static_files)
2023
+ @url_regex = args[:url_regex] if args.key?(:url_regex)
2024
+ end
2025
+ end
2026
+
2027
+ # A Version resource is a specific set of source code and configuration files
2028
+ # that are deployed into a module.
2029
+ class Version
2030
+ include Google::Apis::Core::Hashable
2031
+
2032
+ # Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/
2033
+ # endpoints/) configuration for API handlers.
2034
+ # Corresponds to the JSON property `apiConfig`
2035
+ # @return [Google::Apis::AppengineV1beta4::ApiConfigHandler]
2036
+ attr_accessor :api_config
2037
+
2038
+ # Automatic scaling is based on request rate, response latencies, and other
2039
+ # application metrics.
2040
+ # Corresponds to the JSON property `automaticScaling`
2041
+ # @return [Google::Apis::AppengineV1beta4::AutomaticScaling]
2042
+ attr_accessor :automatic_scaling
2043
+
2044
+ # A module with basic scaling will create an instance when the application
2045
+ # receives a request. The instance will be turned down when the app becomes idle.
2046
+ # Basic scaling is ideal for work that is intermittent or driven by user
2047
+ # activity.
2048
+ # Corresponds to the JSON property `basicScaling`
2049
+ # @return [Google::Apis::AppengineV1beta4::BasicScaling]
2050
+ attr_accessor :basic_scaling
2051
+
2052
+ # Metadata settings that are supplied to this version to enable beta runtime
2053
+ # features.
2054
+ # Corresponds to the JSON property `betaSettings`
2055
+ # @return [Hash<String,String>]
2056
+ attr_accessor :beta_settings
2057
+
2058
+ # Time that this version was created.@OutputOnly
2059
+ # Corresponds to the JSON property `creationTime`
2060
+ # @return [String]
2061
+ attr_accessor :creation_time
2062
+
2063
+ # Duration that static files should be cached by web proxies and browsers. Only
2064
+ # applicable if the corresponding StaticFilesHandler (https://cloud.google.com/
2065
+ # appengine/docs/admin-api/reference/rest/v1/apps.services.versions#
2066
+ # staticfileshandler) does not specify its own expiration time.Only returned in
2067
+ # GET requests if view=FULL is set.
2068
+ # Corresponds to the JSON property `defaultExpiration`
2069
+ # @return [String]
2070
+ attr_accessor :default_expiration
2071
+
2072
+ # Email address of the user who created this version.@OutputOnly
2073
+ # Corresponds to the JSON property `deployer`
2074
+ # @return [String]
2075
+ attr_accessor :deployer
2076
+
2077
+ # Code and application artifacts used to deploy a version to App Engine.
2078
+ # Corresponds to the JSON property `deployment`
2079
+ # @return [Google::Apis::AppengineV1beta4::Deployment]
2080
+ attr_accessor :deployment
2081
+
2082
+ # Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The
2083
+ # Endpoints API Service provides tooling for serving Open API and gRPC endpoints
2084
+ # via an NGINX proxy. Only valid for App Engine Flexible environment deployments.
2085
+ # .The fields here refer to the name and configuration id of a "service"
2086
+ # resource in the Service Management API (https://cloud.google.com/service-
2087
+ # management/overview).
2088
+ # Corresponds to the JSON property `endpointsApiService`
2089
+ # @return [Google::Apis::AppengineV1beta4::EndpointsApiService]
2090
+ attr_accessor :endpoints_api_service
2091
+
2092
+ # App Engine execution environment to use for this version.Defaults to 1.
2093
+ # Corresponds to the JSON property `env`
2094
+ # @return [String]
2095
+ attr_accessor :env
2096
+
2097
+ # Environment variables made available to the application.Only returned in GET
2098
+ # requests if view=FULL is set.
2099
+ # Corresponds to the JSON property `envVariables`
2100
+ # @return [Hash<String,String>]
2101
+ attr_accessor :env_variables
2102
+
2103
+ # Custom static error pages. Limited to 10KB per page.Only returned in GET
2104
+ # requests if view=FULL is set.
2105
+ # Corresponds to the JSON property `errorHandlers`
2106
+ # @return [Array<Google::Apis::AppengineV1beta4::ErrorHandler>]
2107
+ attr_accessor :error_handlers
2108
+
2109
+ # An ordered list of URL-matching patterns that should be applied to incoming
2110
+ # requests. The first matching URL handles the request and other request
2111
+ # handlers are not attempted.Only returned in GET requests if view=FULL is set.
2112
+ # Corresponds to the JSON property `handlers`
2113
+ # @return [Array<Google::Apis::AppengineV1beta4::UrlMap>]
2114
+ attr_accessor :handlers
2115
+
2116
+ # Health checking configuration for VM instances. Unhealthy instances are killed
2117
+ # and replaced with new instances. Only applicable for instances in App Engine
2118
+ # flexible environment.
2119
+ # Corresponds to the JSON property `healthCheck`
2120
+ # @return [Google::Apis::AppengineV1beta4::HealthCheck]
2121
+ attr_accessor :health_check
2122
+
2123
+ # Relative name of the version within the module. Example: v1. Version names can
2124
+ # contain only lowercase letters, numbers, or hyphens. Reserved names: "default",
2125
+ # "latest", and any name with the prefix "ah-".
2126
+ # Corresponds to the JSON property `id`
2127
+ # @return [String]
2128
+ attr_accessor :id
2129
+
2130
+ # Before an application can receive email or XMPP messages, the application must
2131
+ # be configured to enable the service.
2132
+ # Corresponds to the JSON property `inboundServices`
2133
+ # @return [Array<String>]
2134
+ attr_accessor :inbound_services
2135
+
2136
+ # Instance class that is used to run this version. Valid values are:
2137
+ # AutomaticScaling: F1, F2, F4, F4_1G
2138
+ # ManualScaling or BasicScaling: B1, B2, B4, B8, B4_1GDefaults to F1 for
2139
+ # AutomaticScaling and B1 for ManualScaling or BasicScaling.
2140
+ # Corresponds to the JSON property `instanceClass`
2141
+ # @return [String]
2142
+ attr_accessor :instance_class
2143
+
2144
+ # Configuration for third-party Python runtime libraries required by the
2145
+ # application.Only returned in GET requests if view=FULL is set.
2146
+ # Corresponds to the JSON property `libraries`
2147
+ # @return [Array<Google::Apis::AppengineV1beta4::Library>]
2148
+ attr_accessor :libraries
2149
+
2150
+ # A module with manual scaling runs continuously, allowing you to perform
2151
+ # complex initialization and rely on the state of its memory over time.
2152
+ # Corresponds to the JSON property `manualScaling`
2153
+ # @return [Google::Apis::AppengineV1beta4::ManualScaling]
2154
+ attr_accessor :manual_scaling
2155
+
2156
+ # Full path to the Version resource in the API. Example: apps/myapp/modules/
2157
+ # default/versions/v1.@OutputOnly
2158
+ # Corresponds to the JSON property `name`
2159
+ # @return [String]
2160
+ attr_accessor :name
2161
+
2162
+ # Extra network settings. Only applicable for VM runtimes.
2163
+ # Corresponds to the JSON property `network`
2164
+ # @return [Google::Apis::AppengineV1beta4::Network]
2165
+ attr_accessor :network
2166
+
2167
+ # Files that match this pattern will not be built into this version. Only
2168
+ # applicable for Go runtimes.Only returned in GET requests if view=FULL is set.
2169
+ # Corresponds to the JSON property `nobuildFilesRegex`
2170
+ # @return [String]
2171
+ attr_accessor :nobuild_files_regex
2172
+
2173
+ # Machine resources for a version.
2174
+ # Corresponds to the JSON property `resources`
2175
+ # @return [Google::Apis::AppengineV1beta4::Resources]
2176
+ attr_accessor :resources
2177
+
2178
+ # Desired runtime. Example: python27.
2179
+ # Corresponds to the JSON property `runtime`
2180
+ # @return [String]
2181
+ attr_accessor :runtime
2182
+
2183
+ # The version of the API in the given runtime environment. Please see the app.
2184
+ # yaml reference for valid values at https://cloud.google.com/appengine/docs/
2185
+ # standard/<language>/config/appref
2186
+ # Corresponds to the JSON property `runtimeApiVersion`
2187
+ # @return [String]
2188
+ attr_accessor :runtime_api_version
2189
+
2190
+ # The path or name of the app's main executable.
2191
+ # Corresponds to the JSON property `runtimeMainExecutablePath`
2192
+ # @return [String]
2193
+ attr_accessor :runtime_main_executable_path
2194
+
2195
+ # Current serving status of this version. Only the versions with a SERVING
2196
+ # status create instances and can be billed.SERVING_STATUS_UNSPECIFIED is an
2197
+ # invalid value. Defaults to SERVING.
2198
+ # Corresponds to the JSON property `servingStatus`
2199
+ # @return [String]
2200
+ attr_accessor :serving_status
2201
+
2202
+ # Whether multiple requests can be dispatched to this version at once.
2203
+ # Corresponds to the JSON property `threadsafe`
2204
+ # @return [Boolean]
2205
+ attr_accessor :threadsafe
2206
+ alias_method :threadsafe?, :threadsafe
2207
+
2208
+ # Whether to deploy this version in a container on a virtual machine.
2209
+ # Corresponds to the JSON property `vm`
2210
+ # @return [Boolean]
2211
+ attr_accessor :vm
2212
+ alias_method :vm?, :vm
2213
+
2214
+ def initialize(**args)
2215
+ update!(**args)
2216
+ end
2217
+
2218
+ # Update properties of this object
2219
+ def update!(**args)
2220
+ @api_config = args[:api_config] if args.key?(:api_config)
2221
+ @automatic_scaling = args[:automatic_scaling] if args.key?(:automatic_scaling)
2222
+ @basic_scaling = args[:basic_scaling] if args.key?(:basic_scaling)
2223
+ @beta_settings = args[:beta_settings] if args.key?(:beta_settings)
2224
+ @creation_time = args[:creation_time] if args.key?(:creation_time)
2225
+ @default_expiration = args[:default_expiration] if args.key?(:default_expiration)
2226
+ @deployer = args[:deployer] if args.key?(:deployer)
2227
+ @deployment = args[:deployment] if args.key?(:deployment)
2228
+ @endpoints_api_service = args[:endpoints_api_service] if args.key?(:endpoints_api_service)
2229
+ @env = args[:env] if args.key?(:env)
2230
+ @env_variables = args[:env_variables] if args.key?(:env_variables)
2231
+ @error_handlers = args[:error_handlers] if args.key?(:error_handlers)
2232
+ @handlers = args[:handlers] if args.key?(:handlers)
2233
+ @health_check = args[:health_check] if args.key?(:health_check)
2234
+ @id = args[:id] if args.key?(:id)
2235
+ @inbound_services = args[:inbound_services] if args.key?(:inbound_services)
2236
+ @instance_class = args[:instance_class] if args.key?(:instance_class)
2237
+ @libraries = args[:libraries] if args.key?(:libraries)
2238
+ @manual_scaling = args[:manual_scaling] if args.key?(:manual_scaling)
2239
+ @name = args[:name] if args.key?(:name)
2240
+ @network = args[:network] if args.key?(:network)
2241
+ @nobuild_files_regex = args[:nobuild_files_regex] if args.key?(:nobuild_files_regex)
2242
+ @resources = args[:resources] if args.key?(:resources)
2243
+ @runtime = args[:runtime] if args.key?(:runtime)
2244
+ @runtime_api_version = args[:runtime_api_version] if args.key?(:runtime_api_version)
2245
+ @runtime_main_executable_path = args[:runtime_main_executable_path] if args.key?(:runtime_main_executable_path)
2246
+ @serving_status = args[:serving_status] if args.key?(:serving_status)
2247
+ @threadsafe = args[:threadsafe] if args.key?(:threadsafe)
2248
+ @vm = args[:vm] if args.key?(:vm)
2249
+ end
2250
+ end
2251
+
2252
+ # Volumes mounted within the app container. Only applicable for VM runtimes.
2253
+ class Volume
2254
+ include Google::Apis::Core::Hashable
2255
+
2256
+ # Unique name for the volume.
2257
+ # Corresponds to the JSON property `name`
2258
+ # @return [String]
2259
+ attr_accessor :name
2260
+
2261
+ # Volume size in gigabytes.
2262
+ # Corresponds to the JSON property `sizeGb`
2263
+ # @return [Float]
2264
+ attr_accessor :size_gb
2265
+
2266
+ # Underlying volume type, e.g. 'tmpfs'.
2267
+ # Corresponds to the JSON property `volumeType`
2268
+ # @return [String]
2269
+ attr_accessor :volume_type
2270
+
2271
+ def initialize(**args)
2272
+ update!(**args)
2273
+ end
2274
+
2275
+ # Update properties of this object
2276
+ def update!(**args)
2277
+ @name = args[:name] if args.key?(:name)
2278
+ @size_gb = args[:size_gb] if args.key?(:size_gb)
2279
+ @volume_type = args[:volume_type] if args.key?(:volume_type)
2280
+ end
2281
+ end
2282
+ end
2283
+ end
2284
+ end