xref: /aosp_15_r20/external/googleapis/google/appengine/v1/app_yaml.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2022 Google LLC
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage google.appengine.v1;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/duration.proto";
20*d5c09012SAndroid Build Coastguard Worker
21*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.AppEngine.V1";
22*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/appengine/apiv1/appenginepb;appenginepb";
23*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
24*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "AppYamlProto";
25*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.appengine.v1";
26*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\AppEngine\\V1";
27*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::AppEngine::V1";
28*d5c09012SAndroid Build Coastguard Worker
29*d5c09012SAndroid Build Coastguard Worker// [Google Cloud Endpoints](https://cloud.google.com/appengine/docs/python/endpoints/)
30*d5c09012SAndroid Build Coastguard Worker// configuration for API handlers.
31*d5c09012SAndroid Build Coastguard Workermessage ApiConfigHandler {
32*d5c09012SAndroid Build Coastguard Worker  // Action to take when users access resources that require
33*d5c09012SAndroid Build Coastguard Worker  // authentication. Defaults to `redirect`.
34*d5c09012SAndroid Build Coastguard Worker  AuthFailAction auth_fail_action = 1;
35*d5c09012SAndroid Build Coastguard Worker
36*d5c09012SAndroid Build Coastguard Worker  // Level of login required to access this resource. Defaults to
37*d5c09012SAndroid Build Coastguard Worker  // `optional`.
38*d5c09012SAndroid Build Coastguard Worker  LoginRequirement login = 2;
39*d5c09012SAndroid Build Coastguard Worker
40*d5c09012SAndroid Build Coastguard Worker  // Path to the script from the application root directory.
41*d5c09012SAndroid Build Coastguard Worker  string script = 3;
42*d5c09012SAndroid Build Coastguard Worker
43*d5c09012SAndroid Build Coastguard Worker  // Security (HTTPS) enforcement for this URL.
44*d5c09012SAndroid Build Coastguard Worker  SecurityLevel security_level = 4;
45*d5c09012SAndroid Build Coastguard Worker
46*d5c09012SAndroid Build Coastguard Worker  // URL to serve the endpoint at.
47*d5c09012SAndroid Build Coastguard Worker  string url = 5;
48*d5c09012SAndroid Build Coastguard Worker}
49*d5c09012SAndroid Build Coastguard Worker
50*d5c09012SAndroid Build Coastguard Worker// Custom static error page to be served when an error occurs.
51*d5c09012SAndroid Build Coastguard Workermessage ErrorHandler {
52*d5c09012SAndroid Build Coastguard Worker  // Error codes.
53*d5c09012SAndroid Build Coastguard Worker  enum ErrorCode {
54*d5c09012SAndroid Build Coastguard Worker    option allow_alias = true;
55*d5c09012SAndroid Build Coastguard Worker
56*d5c09012SAndroid Build Coastguard Worker    // Not specified. ERROR_CODE_DEFAULT is assumed.
57*d5c09012SAndroid Build Coastguard Worker    ERROR_CODE_UNSPECIFIED = 0;
58*d5c09012SAndroid Build Coastguard Worker
59*d5c09012SAndroid Build Coastguard Worker    // All other error types.
60*d5c09012SAndroid Build Coastguard Worker    ERROR_CODE_DEFAULT = 0;
61*d5c09012SAndroid Build Coastguard Worker
62*d5c09012SAndroid Build Coastguard Worker    // Application has exceeded a resource quota.
63*d5c09012SAndroid Build Coastguard Worker    ERROR_CODE_OVER_QUOTA = 1;
64*d5c09012SAndroid Build Coastguard Worker
65*d5c09012SAndroid Build Coastguard Worker    // Client blocked by the application's Denial of Service protection
66*d5c09012SAndroid Build Coastguard Worker    // configuration.
67*d5c09012SAndroid Build Coastguard Worker    ERROR_CODE_DOS_API_DENIAL = 2;
68*d5c09012SAndroid Build Coastguard Worker
69*d5c09012SAndroid Build Coastguard Worker    // Deadline reached before the application responds.
70*d5c09012SAndroid Build Coastguard Worker    ERROR_CODE_TIMEOUT = 3;
71*d5c09012SAndroid Build Coastguard Worker  }
72*d5c09012SAndroid Build Coastguard Worker
73*d5c09012SAndroid Build Coastguard Worker  // Error condition this handler applies to.
74*d5c09012SAndroid Build Coastguard Worker  ErrorCode error_code = 1;
75*d5c09012SAndroid Build Coastguard Worker
76*d5c09012SAndroid Build Coastguard Worker  // Static file content to be served for this error.
77*d5c09012SAndroid Build Coastguard Worker  string static_file = 2;
78*d5c09012SAndroid Build Coastguard Worker
79*d5c09012SAndroid Build Coastguard Worker  // MIME type of file. Defaults to `text/html`.
80*d5c09012SAndroid Build Coastguard Worker  string mime_type = 3;
81*d5c09012SAndroid Build Coastguard Worker}
82*d5c09012SAndroid Build Coastguard Worker
83*d5c09012SAndroid Build Coastguard Worker// URL pattern and description of how the URL should be handled. App Engine can
84*d5c09012SAndroid Build Coastguard Worker// handle URLs by executing application code or by serving static files
85*d5c09012SAndroid Build Coastguard Worker// uploaded with the version, such as images, CSS, or JavaScript.
86*d5c09012SAndroid Build Coastguard Workermessage UrlMap {
87*d5c09012SAndroid Build Coastguard Worker  // Redirect codes.
88*d5c09012SAndroid Build Coastguard Worker  enum RedirectHttpResponseCode {
89*d5c09012SAndroid Build Coastguard Worker    // Not specified. `302` is assumed.
90*d5c09012SAndroid Build Coastguard Worker    REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED = 0;
91*d5c09012SAndroid Build Coastguard Worker
92*d5c09012SAndroid Build Coastguard Worker    // `301 Moved Permanently` code.
93*d5c09012SAndroid Build Coastguard Worker    REDIRECT_HTTP_RESPONSE_CODE_301 = 1;
94*d5c09012SAndroid Build Coastguard Worker
95*d5c09012SAndroid Build Coastguard Worker    // `302 Moved Temporarily` code.
96*d5c09012SAndroid Build Coastguard Worker    REDIRECT_HTTP_RESPONSE_CODE_302 = 2;
97*d5c09012SAndroid Build Coastguard Worker
98*d5c09012SAndroid Build Coastguard Worker    // `303 See Other` code.
99*d5c09012SAndroid Build Coastguard Worker    REDIRECT_HTTP_RESPONSE_CODE_303 = 3;
100*d5c09012SAndroid Build Coastguard Worker
101*d5c09012SAndroid Build Coastguard Worker    // `307 Temporary Redirect` code.
102*d5c09012SAndroid Build Coastguard Worker    REDIRECT_HTTP_RESPONSE_CODE_307 = 4;
103*d5c09012SAndroid Build Coastguard Worker  }
104*d5c09012SAndroid Build Coastguard Worker
105*d5c09012SAndroid Build Coastguard Worker  // URL prefix. Uses regular expression syntax, which means regexp
106*d5c09012SAndroid Build Coastguard Worker  // special characters must be escaped, but should not contain groupings.
107*d5c09012SAndroid Build Coastguard Worker  // All URLs that begin with this prefix are handled by this handler, using the
108*d5c09012SAndroid Build Coastguard Worker  // portion of the URL after the prefix as part of the file path.
109*d5c09012SAndroid Build Coastguard Worker  string url_regex = 1;
110*d5c09012SAndroid Build Coastguard Worker
111*d5c09012SAndroid Build Coastguard Worker  // Type of handler for this URL pattern.
112*d5c09012SAndroid Build Coastguard Worker  oneof handler_type {
113*d5c09012SAndroid Build Coastguard Worker    // Returns the contents of a file, such as an image, as the response.
114*d5c09012SAndroid Build Coastguard Worker    StaticFilesHandler static_files = 2;
115*d5c09012SAndroid Build Coastguard Worker
116*d5c09012SAndroid Build Coastguard Worker    // Executes a script to handle the requests that match this URL
117*d5c09012SAndroid Build Coastguard Worker    // pattern. Only the `auto` value is supported for Node.js in the
118*d5c09012SAndroid Build Coastguard Worker    // App Engine standard environment, for example `"script": "auto"`.
119*d5c09012SAndroid Build Coastguard Worker    ScriptHandler script = 3;
120*d5c09012SAndroid Build Coastguard Worker
121*d5c09012SAndroid Build Coastguard Worker    // Uses API Endpoints to handle requests.
122*d5c09012SAndroid Build Coastguard Worker    ApiEndpointHandler api_endpoint = 4;
123*d5c09012SAndroid Build Coastguard Worker  }
124*d5c09012SAndroid Build Coastguard Worker
125*d5c09012SAndroid Build Coastguard Worker  // Security (HTTPS) enforcement for this URL.
126*d5c09012SAndroid Build Coastguard Worker  SecurityLevel security_level = 5;
127*d5c09012SAndroid Build Coastguard Worker
128*d5c09012SAndroid Build Coastguard Worker  // Level of login required to access this resource. Not supported for Node.js
129*d5c09012SAndroid Build Coastguard Worker  // in the App Engine standard environment.
130*d5c09012SAndroid Build Coastguard Worker  LoginRequirement login = 6;
131*d5c09012SAndroid Build Coastguard Worker
132*d5c09012SAndroid Build Coastguard Worker  // Action to take when users access resources that require
133*d5c09012SAndroid Build Coastguard Worker  // authentication. Defaults to `redirect`.
134*d5c09012SAndroid Build Coastguard Worker  AuthFailAction auth_fail_action = 7;
135*d5c09012SAndroid Build Coastguard Worker
136*d5c09012SAndroid Build Coastguard Worker  // `30x` code to use when performing redirects for the `secure` field.
137*d5c09012SAndroid Build Coastguard Worker  // Defaults to `302`.
138*d5c09012SAndroid Build Coastguard Worker  RedirectHttpResponseCode redirect_http_response_code = 8;
139*d5c09012SAndroid Build Coastguard Worker}
140*d5c09012SAndroid Build Coastguard Worker
141*d5c09012SAndroid Build Coastguard Worker// Files served directly to the user for a given URL, such as images, CSS
142*d5c09012SAndroid Build Coastguard Worker// stylesheets, or JavaScript source files. Static file handlers describe which
143*d5c09012SAndroid Build Coastguard Worker// files in the application directory are static files, and which URLs serve
144*d5c09012SAndroid Build Coastguard Worker// them.
145*d5c09012SAndroid Build Coastguard Workermessage StaticFilesHandler {
146*d5c09012SAndroid Build Coastguard Worker  // Path to the static files matched by the URL pattern, from the
147*d5c09012SAndroid Build Coastguard Worker  // application root directory. The path can refer to text matched in groupings
148*d5c09012SAndroid Build Coastguard Worker  // in the URL pattern.
149*d5c09012SAndroid Build Coastguard Worker  string path = 1;
150*d5c09012SAndroid Build Coastguard Worker
151*d5c09012SAndroid Build Coastguard Worker  // Regular expression that matches the file paths for all files that should be
152*d5c09012SAndroid Build Coastguard Worker  // referenced by this handler.
153*d5c09012SAndroid Build Coastguard Worker  string upload_path_regex = 2;
154*d5c09012SAndroid Build Coastguard Worker
155*d5c09012SAndroid Build Coastguard Worker  // HTTP headers to use for all responses from these URLs.
156*d5c09012SAndroid Build Coastguard Worker  map<string, string> http_headers = 3;
157*d5c09012SAndroid Build Coastguard Worker
158*d5c09012SAndroid Build Coastguard Worker  // MIME type used to serve all files served by this handler.
159*d5c09012SAndroid Build Coastguard Worker  //
160*d5c09012SAndroid Build Coastguard Worker  // Defaults to file-specific MIME types, which are derived from each file's
161*d5c09012SAndroid Build Coastguard Worker  // filename extension.
162*d5c09012SAndroid Build Coastguard Worker  string mime_type = 4;
163*d5c09012SAndroid Build Coastguard Worker
164*d5c09012SAndroid Build Coastguard Worker  // Time a static file served by this handler should be cached
165*d5c09012SAndroid Build Coastguard Worker  // by web proxies and browsers.
166*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration expiration = 5;
167*d5c09012SAndroid Build Coastguard Worker
168*d5c09012SAndroid Build Coastguard Worker  // Whether this handler should match the request if the file
169*d5c09012SAndroid Build Coastguard Worker  // referenced by the handler does not exist.
170*d5c09012SAndroid Build Coastguard Worker  bool require_matching_file = 6;
171*d5c09012SAndroid Build Coastguard Worker
172*d5c09012SAndroid Build Coastguard Worker  // Whether files should also be uploaded as code data. By default, files
173*d5c09012SAndroid Build Coastguard Worker  // declared in static file handlers are uploaded as static
174*d5c09012SAndroid Build Coastguard Worker  // data and are only served to end users; they cannot be read by the
175*d5c09012SAndroid Build Coastguard Worker  // application. If enabled, uploads are charged against both your code and
176*d5c09012SAndroid Build Coastguard Worker  // static data storage resource quotas.
177*d5c09012SAndroid Build Coastguard Worker  bool application_readable = 7;
178*d5c09012SAndroid Build Coastguard Worker}
179*d5c09012SAndroid Build Coastguard Worker
180*d5c09012SAndroid Build Coastguard Worker// Executes a script to handle the request that matches the URL pattern.
181*d5c09012SAndroid Build Coastguard Workermessage ScriptHandler {
182*d5c09012SAndroid Build Coastguard Worker  // Path to the script from the application root directory.
183*d5c09012SAndroid Build Coastguard Worker  string script_path = 1;
184*d5c09012SAndroid Build Coastguard Worker}
185*d5c09012SAndroid Build Coastguard Worker
186*d5c09012SAndroid Build Coastguard Worker// Uses Google Cloud Endpoints to handle requests.
187*d5c09012SAndroid Build Coastguard Workermessage ApiEndpointHandler {
188*d5c09012SAndroid Build Coastguard Worker  // Path to the script from the application root directory.
189*d5c09012SAndroid Build Coastguard Worker  string script_path = 1;
190*d5c09012SAndroid Build Coastguard Worker}
191*d5c09012SAndroid Build Coastguard Worker
192*d5c09012SAndroid Build Coastguard Worker// Health checking configuration for VM instances. Unhealthy instances
193*d5c09012SAndroid Build Coastguard Worker// are killed and replaced with new instances. Only applicable for
194*d5c09012SAndroid Build Coastguard Worker// instances in App Engine flexible environment.
195*d5c09012SAndroid Build Coastguard Workermessage HealthCheck {
196*d5c09012SAndroid Build Coastguard Worker  // Whether to explicitly disable health checks for this instance.
197*d5c09012SAndroid Build Coastguard Worker  bool disable_health_check = 1;
198*d5c09012SAndroid Build Coastguard Worker
199*d5c09012SAndroid Build Coastguard Worker  // Host header to send when performing an HTTP health check.
200*d5c09012SAndroid Build Coastguard Worker  // Example: "myapp.appspot.com"
201*d5c09012SAndroid Build Coastguard Worker  string host = 2;
202*d5c09012SAndroid Build Coastguard Worker
203*d5c09012SAndroid Build Coastguard Worker  // Number of consecutive successful health checks required before receiving
204*d5c09012SAndroid Build Coastguard Worker  // traffic.
205*d5c09012SAndroid Build Coastguard Worker  uint32 healthy_threshold = 3;
206*d5c09012SAndroid Build Coastguard Worker
207*d5c09012SAndroid Build Coastguard Worker  // Number of consecutive failed health checks required before removing
208*d5c09012SAndroid Build Coastguard Worker  // traffic.
209*d5c09012SAndroid Build Coastguard Worker  uint32 unhealthy_threshold = 4;
210*d5c09012SAndroid Build Coastguard Worker
211*d5c09012SAndroid Build Coastguard Worker  // Number of consecutive failed health checks required before an instance is
212*d5c09012SAndroid Build Coastguard Worker  // restarted.
213*d5c09012SAndroid Build Coastguard Worker  uint32 restart_threshold = 5;
214*d5c09012SAndroid Build Coastguard Worker
215*d5c09012SAndroid Build Coastguard Worker  // Interval between health checks.
216*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration check_interval = 6;
217*d5c09012SAndroid Build Coastguard Worker
218*d5c09012SAndroid Build Coastguard Worker  // Time before the health check is considered failed.
219*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration timeout = 7;
220*d5c09012SAndroid Build Coastguard Worker}
221*d5c09012SAndroid Build Coastguard Worker
222*d5c09012SAndroid Build Coastguard Worker// Readiness checking configuration for VM instances. Unhealthy instances
223*d5c09012SAndroid Build Coastguard Worker// are removed from traffic rotation.
224*d5c09012SAndroid Build Coastguard Workermessage ReadinessCheck {
225*d5c09012SAndroid Build Coastguard Worker  // The request path.
226*d5c09012SAndroid Build Coastguard Worker  string path = 1;
227*d5c09012SAndroid Build Coastguard Worker
228*d5c09012SAndroid Build Coastguard Worker  // Host header to send when performing a HTTP Readiness check.
229*d5c09012SAndroid Build Coastguard Worker  // Example: "myapp.appspot.com"
230*d5c09012SAndroid Build Coastguard Worker  string host = 2;
231*d5c09012SAndroid Build Coastguard Worker
232*d5c09012SAndroid Build Coastguard Worker  // Number of consecutive failed checks required before removing
233*d5c09012SAndroid Build Coastguard Worker  // traffic.
234*d5c09012SAndroid Build Coastguard Worker  uint32 failure_threshold = 3;
235*d5c09012SAndroid Build Coastguard Worker
236*d5c09012SAndroid Build Coastguard Worker  // Number of consecutive successful checks required before receiving
237*d5c09012SAndroid Build Coastguard Worker  // traffic.
238*d5c09012SAndroid Build Coastguard Worker  uint32 success_threshold = 4;
239*d5c09012SAndroid Build Coastguard Worker
240*d5c09012SAndroid Build Coastguard Worker  // Interval between health checks.
241*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration check_interval = 5;
242*d5c09012SAndroid Build Coastguard Worker
243*d5c09012SAndroid Build Coastguard Worker  // Time before the check is considered failed.
244*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration timeout = 6;
245*d5c09012SAndroid Build Coastguard Worker
246*d5c09012SAndroid Build Coastguard Worker  // A maximum time limit on application initialization, measured from moment
247*d5c09012SAndroid Build Coastguard Worker  // the application successfully replies to a healthcheck until it is ready to
248*d5c09012SAndroid Build Coastguard Worker  // serve traffic.
249*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration app_start_timeout = 7;
250*d5c09012SAndroid Build Coastguard Worker}
251*d5c09012SAndroid Build Coastguard Worker
252*d5c09012SAndroid Build Coastguard Worker// Health checking configuration for VM instances. Unhealthy instances
253*d5c09012SAndroid Build Coastguard Worker// are killed and replaced with new instances.
254*d5c09012SAndroid Build Coastguard Workermessage LivenessCheck {
255*d5c09012SAndroid Build Coastguard Worker  // The request path.
256*d5c09012SAndroid Build Coastguard Worker  string path = 1;
257*d5c09012SAndroid Build Coastguard Worker
258*d5c09012SAndroid Build Coastguard Worker  // Host header to send when performing a HTTP Liveness check.
259*d5c09012SAndroid Build Coastguard Worker  // Example: "myapp.appspot.com"
260*d5c09012SAndroid Build Coastguard Worker  string host = 2;
261*d5c09012SAndroid Build Coastguard Worker
262*d5c09012SAndroid Build Coastguard Worker  // Number of consecutive failed checks required before considering the
263*d5c09012SAndroid Build Coastguard Worker  // VM unhealthy.
264*d5c09012SAndroid Build Coastguard Worker  uint32 failure_threshold = 3;
265*d5c09012SAndroid Build Coastguard Worker
266*d5c09012SAndroid Build Coastguard Worker  // Number of consecutive successful checks required before considering
267*d5c09012SAndroid Build Coastguard Worker  // the VM healthy.
268*d5c09012SAndroid Build Coastguard Worker  uint32 success_threshold = 4;
269*d5c09012SAndroid Build Coastguard Worker
270*d5c09012SAndroid Build Coastguard Worker  // Interval between health checks.
271*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration check_interval = 5;
272*d5c09012SAndroid Build Coastguard Worker
273*d5c09012SAndroid Build Coastguard Worker  // Time before the check is considered failed.
274*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration timeout = 6;
275*d5c09012SAndroid Build Coastguard Worker
276*d5c09012SAndroid Build Coastguard Worker  // The initial delay before starting to execute the checks.
277*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration initial_delay = 7;
278*d5c09012SAndroid Build Coastguard Worker}
279*d5c09012SAndroid Build Coastguard Worker
280*d5c09012SAndroid Build Coastguard Worker// Third-party Python runtime library that is required by the application.
281*d5c09012SAndroid Build Coastguard Workermessage Library {
282*d5c09012SAndroid Build Coastguard Worker  // Name of the library. Example: "django".
283*d5c09012SAndroid Build Coastguard Worker  string name = 1;
284*d5c09012SAndroid Build Coastguard Worker
285*d5c09012SAndroid Build Coastguard Worker  // Version of the library to select, or "latest".
286*d5c09012SAndroid Build Coastguard Worker  string version = 2;
287*d5c09012SAndroid Build Coastguard Worker}
288*d5c09012SAndroid Build Coastguard Worker
289*d5c09012SAndroid Build Coastguard Worker// Actions to take when the user is not logged in.
290*d5c09012SAndroid Build Coastguard Workerenum AuthFailAction {
291*d5c09012SAndroid Build Coastguard Worker  // Not specified. `AUTH_FAIL_ACTION_REDIRECT` is assumed.
292*d5c09012SAndroid Build Coastguard Worker  AUTH_FAIL_ACTION_UNSPECIFIED = 0;
293*d5c09012SAndroid Build Coastguard Worker
294*d5c09012SAndroid Build Coastguard Worker  // Redirects user to "accounts.google.com". The user is redirected back to the
295*d5c09012SAndroid Build Coastguard Worker  // application URL after signing in or creating an account.
296*d5c09012SAndroid Build Coastguard Worker  AUTH_FAIL_ACTION_REDIRECT = 1;
297*d5c09012SAndroid Build Coastguard Worker
298*d5c09012SAndroid Build Coastguard Worker  // Rejects request with a `401` HTTP status code and an error
299*d5c09012SAndroid Build Coastguard Worker  // message.
300*d5c09012SAndroid Build Coastguard Worker  AUTH_FAIL_ACTION_UNAUTHORIZED = 2;
301*d5c09012SAndroid Build Coastguard Worker}
302*d5c09012SAndroid Build Coastguard Worker
303*d5c09012SAndroid Build Coastguard Worker// Methods to restrict access to a URL based on login status.
304*d5c09012SAndroid Build Coastguard Workerenum LoginRequirement {
305*d5c09012SAndroid Build Coastguard Worker  // Not specified. `LOGIN_OPTIONAL` is assumed.
306*d5c09012SAndroid Build Coastguard Worker  LOGIN_UNSPECIFIED = 0;
307*d5c09012SAndroid Build Coastguard Worker
308*d5c09012SAndroid Build Coastguard Worker  // Does not require that the user is signed in.
309*d5c09012SAndroid Build Coastguard Worker  LOGIN_OPTIONAL = 1;
310*d5c09012SAndroid Build Coastguard Worker
311*d5c09012SAndroid Build Coastguard Worker  // If the user is not signed in, the `auth_fail_action` is taken.
312*d5c09012SAndroid Build Coastguard Worker  // In addition, if the user is not an administrator for the
313*d5c09012SAndroid Build Coastguard Worker  // application, they are given an error message regardless of
314*d5c09012SAndroid Build Coastguard Worker  // `auth_fail_action`. If the user is an administrator, the handler
315*d5c09012SAndroid Build Coastguard Worker  // proceeds.
316*d5c09012SAndroid Build Coastguard Worker  LOGIN_ADMIN = 2;
317*d5c09012SAndroid Build Coastguard Worker
318*d5c09012SAndroid Build Coastguard Worker  // If the user has signed in, the handler proceeds normally. Otherwise, the
319*d5c09012SAndroid Build Coastguard Worker  // auth_fail_action is taken.
320*d5c09012SAndroid Build Coastguard Worker  LOGIN_REQUIRED = 3;
321*d5c09012SAndroid Build Coastguard Worker}
322*d5c09012SAndroid Build Coastguard Worker
323*d5c09012SAndroid Build Coastguard Worker// Methods to enforce security (HTTPS) on a URL.
324*d5c09012SAndroid Build Coastguard Workerenum SecurityLevel {
325*d5c09012SAndroid Build Coastguard Worker  option allow_alias = true;
326*d5c09012SAndroid Build Coastguard Worker
327*d5c09012SAndroid Build Coastguard Worker  // Not specified.
328*d5c09012SAndroid Build Coastguard Worker  SECURE_UNSPECIFIED = 0;
329*d5c09012SAndroid Build Coastguard Worker
330*d5c09012SAndroid Build Coastguard Worker  // Both HTTP and HTTPS requests with URLs that match the handler succeed
331*d5c09012SAndroid Build Coastguard Worker  // without redirects. The application can examine the request to determine
332*d5c09012SAndroid Build Coastguard Worker  // which protocol was used, and respond accordingly.
333*d5c09012SAndroid Build Coastguard Worker  SECURE_DEFAULT = 0;
334*d5c09012SAndroid Build Coastguard Worker
335*d5c09012SAndroid Build Coastguard Worker  // Requests for a URL that match this handler that use HTTPS are automatically
336*d5c09012SAndroid Build Coastguard Worker  // redirected to the HTTP equivalent URL.
337*d5c09012SAndroid Build Coastguard Worker  SECURE_NEVER = 1;
338*d5c09012SAndroid Build Coastguard Worker
339*d5c09012SAndroid Build Coastguard Worker  // Both HTTP and HTTPS requests with URLs that match the handler succeed
340*d5c09012SAndroid Build Coastguard Worker  // without redirects. The application can examine the request to determine
341*d5c09012SAndroid Build Coastguard Worker  // which protocol was used and respond accordingly.
342*d5c09012SAndroid Build Coastguard Worker  SECURE_OPTIONAL = 2;
343*d5c09012SAndroid Build Coastguard Worker
344*d5c09012SAndroid Build Coastguard Worker  // Requests for a URL that match this handler that do not use HTTPS are
345*d5c09012SAndroid Build Coastguard Worker  // automatically redirected to the HTTPS URL with the same path. Query
346*d5c09012SAndroid Build Coastguard Worker  // parameters are reserved for the redirect.
347*d5c09012SAndroid Build Coastguard Worker  SECURE_ALWAYS = 3;
348*d5c09012SAndroid Build Coastguard Worker}
349