You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
288 lines
9.3 KiB
288 lines
9.3 KiB
6 years ago
|
// Copyright 2016 Google Inc.
|
||
|
//
|
||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
// you may not use this file except in compliance with the License.
|
||
|
// You may obtain a copy of the License at
|
||
|
//
|
||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||
|
//
|
||
|
// Unless required by applicable law or agreed to in writing, software
|
||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
// See the License for the specific language governing permissions and
|
||
|
// limitations under the License.
|
||
|
|
||
|
syntax = "proto3";
|
||
|
|
||
|
package google.appengine.v1;
|
||
|
|
||
|
import "google/api/annotations.proto";
|
||
|
import "google/protobuf/duration.proto";
|
||
|
|
||
|
option go_package = "google.golang.org/genproto/googleapis/appengine/v1;appengine";
|
||
|
option java_multiple_files = true;
|
||
|
option java_outer_classname = "AppYamlProto";
|
||
|
option java_package = "com.google.appengine.v1";
|
||
|
|
||
|
// [Google Cloud
|
||
|
// Endpoints](https://cloud.google.com/appengine/docs/python/endpoints/)
|
||
|
// configuration for API handlers.
|
||
|
message ApiConfigHandler {
|
||
|
// Action to take when users access resources that require
|
||
|
// authentication. Defaults to `redirect`.
|
||
|
AuthFailAction auth_fail_action = 1;
|
||
|
|
||
|
// Level of login required to access this resource. Defaults to
|
||
|
// `optional`.
|
||
|
LoginRequirement login = 2;
|
||
|
|
||
|
// Path to the script from the application root directory.
|
||
|
string script = 3;
|
||
|
|
||
|
// Security (HTTPS) enforcement for this URL.
|
||
|
SecurityLevel security_level = 4;
|
||
|
|
||
|
// URL to serve the endpoint at.
|
||
|
string url = 5;
|
||
|
}
|
||
|
|
||
|
// Custom static error page to be served when an error occurs.
|
||
|
message ErrorHandler {
|
||
|
// Error codes.
|
||
|
enum ErrorCode {
|
||
|
option allow_alias = true;
|
||
|
|
||
|
// Not specified. ERROR_CODE_DEFAULT is assumed.
|
||
|
ERROR_CODE_UNSPECIFIED = 0;
|
||
|
|
||
|
// All other error types.
|
||
|
ERROR_CODE_DEFAULT = 0;
|
||
|
|
||
|
// Application has exceeded a resource quota.
|
||
|
ERROR_CODE_OVER_QUOTA = 1;
|
||
|
|
||
|
// Client blocked by the application's Denial of Service protection
|
||
|
// configuration.
|
||
|
ERROR_CODE_DOS_API_DENIAL = 2;
|
||
|
|
||
|
// Deadline reached before the application responds.
|
||
|
ERROR_CODE_TIMEOUT = 3;
|
||
|
}
|
||
|
|
||
|
// Error condition this handler applies to.
|
||
|
ErrorCode error_code = 1;
|
||
|
|
||
|
// Static file content to be served for this error.
|
||
|
string static_file = 2;
|
||
|
|
||
|
// MIME type of file. Defaults to `text/html`.
|
||
|
string mime_type = 3;
|
||
|
}
|
||
|
|
||
|
// URL pattern and description of how the URL should be handled. App Engine can
|
||
|
// handle URLs by executing application code or by serving static files
|
||
|
// uploaded with the version, such as images, CSS, or JavaScript.
|
||
|
message UrlMap {
|
||
|
// Redirect codes.
|
||
|
enum RedirectHttpResponseCode {
|
||
|
// Not specified. `302` is assumed.
|
||
|
REDIRECT_HTTP_RESPONSE_CODE_UNSPECIFIED = 0;
|
||
|
|
||
|
// `301 Moved Permanently` code.
|
||
|
REDIRECT_HTTP_RESPONSE_CODE_301 = 1;
|
||
|
|
||
|
// `302 Moved Temporarily` code.
|
||
|
REDIRECT_HTTP_RESPONSE_CODE_302 = 2;
|
||
|
|
||
|
// `303 See Other` code.
|
||
|
REDIRECT_HTTP_RESPONSE_CODE_303 = 3;
|
||
|
|
||
|
// `307 Temporary Redirect` code.
|
||
|
REDIRECT_HTTP_RESPONSE_CODE_307 = 4;
|
||
|
}
|
||
|
|
||
|
// URL prefix. Uses regular expression syntax, which means regexp
|
||
|
// special characters must be escaped, but should not contain groupings.
|
||
|
// All URLs that begin with this prefix are handled by this handler, using the
|
||
|
// portion of the URL after the prefix as part of the file path.
|
||
|
string url_regex = 1;
|
||
|
|
||
|
// Type of handler for this URL pattern.
|
||
|
oneof handler_type {
|
||
|
// Returns the contents of a file, such as an image, as the response.
|
||
|
StaticFilesHandler static_files = 2;
|
||
|
|
||
|
// Executes a script to handle the request that matches this URL
|
||
|
// pattern.
|
||
|
ScriptHandler script = 3;
|
||
|
|
||
|
// Uses API Endpoints to handle requests.
|
||
|
ApiEndpointHandler api_endpoint = 4;
|
||
|
}
|
||
|
|
||
|
// Security (HTTPS) enforcement for this URL.
|
||
|
SecurityLevel security_level = 5;
|
||
|
|
||
|
// Level of login required to access this resource.
|
||
|
LoginRequirement login = 6;
|
||
|
|
||
|
// Action to take when users access resources that require
|
||
|
// authentication. Defaults to `redirect`.
|
||
|
AuthFailAction auth_fail_action = 7;
|
||
|
|
||
|
// `30x` code to use when performing redirects for the `secure` field.
|
||
|
// Defaults to `302`.
|
||
|
RedirectHttpResponseCode redirect_http_response_code = 8;
|
||
|
}
|
||
|
|
||
|
// Files served directly to the user for a given URL, such as images, CSS
|
||
|
// stylesheets, or JavaScript source files. Static file handlers describe which
|
||
|
// files in the application directory are static files, and which URLs serve
|
||
|
// them.
|
||
|
message StaticFilesHandler {
|
||
|
// Path to the static files matched by the URL pattern, from the
|
||
|
// application root directory. The path can refer to text matched in groupings
|
||
|
// in the URL pattern.
|
||
|
string path = 1;
|
||
|
|
||
|
// Regular expression that matches the file paths for all files that should be
|
||
|
// referenced by this handler.
|
||
|
string upload_path_regex = 2;
|
||
|
|
||
|
// HTTP headers to use for all responses from these URLs.
|
||
|
map<string, string> http_headers = 3;
|
||
|
|
||
|
// MIME type used to serve all files served by this handler.
|
||
|
//
|
||
|
// Defaults to file-specific MIME types, which are derived from each file's
|
||
|
// filename extension.
|
||
|
string mime_type = 4;
|
||
|
|
||
|
// Time a static file served by this handler should be cached
|
||
|
// by web proxies and browsers.
|
||
|
google.protobuf.Duration expiration = 5;
|
||
|
|
||
|
// Whether this handler should match the request if the file
|
||
|
// referenced by the handler does not exist.
|
||
|
bool require_matching_file = 6;
|
||
|
|
||
|
// Whether files should also be uploaded as code data. By default, files
|
||
|
// declared in static file handlers are uploaded as static
|
||
|
// data and are only served to end users; they cannot be read by the
|
||
|
// application. If enabled, uploads are charged against both your code and
|
||
|
// static data storage resource quotas.
|
||
|
bool application_readable = 7;
|
||
|
}
|
||
|
|
||
|
// Executes a script to handle the request that matches the URL pattern.
|
||
|
message ScriptHandler {
|
||
|
// Path to the script from the application root directory.
|
||
|
string script_path = 1;
|
||
|
}
|
||
|
|
||
|
// Uses Google Cloud Endpoints to handle requests.
|
||
|
message ApiEndpointHandler {
|
||
|
// Path to the script from the application root directory.
|
||
|
string script_path = 1;
|
||
|
}
|
||
|
|
||
|
// Health checking configuration for VM instances. Unhealthy instances
|
||
|
// are killed and replaced with new instances. Only applicable for
|
||
|
// instances in App Engine flexible environment.
|
||
|
message HealthCheck {
|
||
|
// Whether to explicitly disable health checks for this instance.
|
||
|
bool disable_health_check = 1;
|
||
|
|
||
|
// Host header to send when performing an HTTP health check.
|
||
|
// Example: "myapp.appspot.com"
|
||
|
string host = 2;
|
||
|
|
||
|
// Number of consecutive successful health checks required before receiving
|
||
|
// traffic.
|
||
|
uint32 healthy_threshold = 3;
|
||
|
|
||
|
// Number of consecutive failed health checks required before removing
|
||
|
// traffic.
|
||
|
uint32 unhealthy_threshold = 4;
|
||
|
|
||
|
// Number of consecutive failed health checks required before an instance is
|
||
|
// restarted.
|
||
|
uint32 restart_threshold = 5;
|
||
|
|
||
|
// Interval between health checks.
|
||
|
google.protobuf.Duration check_interval = 6;
|
||
|
|
||
|
// Time before the health check is considered failed.
|
||
|
google.protobuf.Duration timeout = 7;
|
||
|
}
|
||
|
|
||
|
// Third-party Python runtime library that is required by the application.
|
||
|
message Library {
|
||
|
// Name of the library. Example: "django".
|
||
|
string name = 1;
|
||
|
|
||
|
// Version of the library to select, or "latest".
|
||
|
string version = 2;
|
||
|
}
|
||
|
|
||
|
// Actions to take when the user is not logged in.
|
||
|
enum AuthFailAction {
|
||
|
// Not specified. `AUTH_FAIL_ACTION_REDIRECT` is assumed.
|
||
|
AUTH_FAIL_ACTION_UNSPECIFIED = 0;
|
||
|
|
||
|
// Redirects user to "accounts.google.com". The user is redirected back to the
|
||
|
// application URL after signing in or creating an account.
|
||
|
AUTH_FAIL_ACTION_REDIRECT = 1;
|
||
|
|
||
|
// Rejects request with a `401` HTTP status code and an error
|
||
|
// message.
|
||
|
AUTH_FAIL_ACTION_UNAUTHORIZED = 2;
|
||
|
}
|
||
|
|
||
|
// Methods to restrict access to a URL based on login status.
|
||
|
enum LoginRequirement {
|
||
|
// Not specified. `LOGIN_OPTIONAL` is assumed.
|
||
|
LOGIN_UNSPECIFIED = 0;
|
||
|
|
||
|
// Does not require that the user is signed in.
|
||
|
LOGIN_OPTIONAL = 1;
|
||
|
|
||
|
// If the user is not signed in, the `auth_fail_action` is taken.
|
||
|
// In addition, if the user is not an administrator for the
|
||
|
// application, they are given an error message regardless of
|
||
|
// `auth_fail_action`. If the user is an administrator, the handler
|
||
|
// proceeds.
|
||
|
LOGIN_ADMIN = 2;
|
||
|
|
||
|
// If the user has signed in, the handler proceeds normally. Otherwise, the
|
||
|
// auth_fail_action is taken.
|
||
|
LOGIN_REQUIRED = 3;
|
||
|
}
|
||
|
|
||
|
// Methods to enforce security (HTTPS) on a URL.
|
||
|
enum SecurityLevel {
|
||
|
option allow_alias = true;
|
||
|
|
||
|
// Not specified.
|
||
|
SECURE_UNSPECIFIED = 0;
|
||
|
|
||
|
// Both HTTP and HTTPS requests with URLs that match the handler succeed
|
||
|
// without redirects. The application can examine the request to determine
|
||
|
// which protocol was used, and respond accordingly.
|
||
|
SECURE_DEFAULT = 0;
|
||
|
|
||
|
// Requests for a URL that match this handler that use HTTPS are automatically
|
||
|
// redirected to the HTTP equivalent URL.
|
||
|
SECURE_NEVER = 1;
|
||
|
|
||
|
// Both HTTP and HTTPS requests with URLs that match the handler succeed
|
||
|
// without redirects. The application can examine the request to determine
|
||
|
// which protocol was used and respond accordingly.
|
||
|
SECURE_OPTIONAL = 2;
|
||
|
|
||
|
// Requests for a URL that match this handler that do not use HTTPS are
|
||
|
// automatically redirected to the HTTPS URL with the same path. Query
|
||
|
// parameters are reserved for the redirect.
|
||
|
SECURE_ALWAYS = 3;
|
||
|
}
|