xref: /aosp_15_r20/external/googleapis/google/appengine/v1/application.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 = "ApplicationProto";
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// An Application resource contains the top-level configuration of an App
30*d5c09012SAndroid Build Coastguard Worker// Engine application.
31*d5c09012SAndroid Build Coastguard Workermessage Application {
32*d5c09012SAndroid Build Coastguard Worker  enum ServingStatus {
33*d5c09012SAndroid Build Coastguard Worker    // Serving status is unspecified.
34*d5c09012SAndroid Build Coastguard Worker    UNSPECIFIED = 0;
35*d5c09012SAndroid Build Coastguard Worker
36*d5c09012SAndroid Build Coastguard Worker    // Application is serving.
37*d5c09012SAndroid Build Coastguard Worker    SERVING = 1;
38*d5c09012SAndroid Build Coastguard Worker
39*d5c09012SAndroid Build Coastguard Worker    // Application has been disabled by the user.
40*d5c09012SAndroid Build Coastguard Worker    USER_DISABLED = 2;
41*d5c09012SAndroid Build Coastguard Worker
42*d5c09012SAndroid Build Coastguard Worker    // Application has been disabled by the system.
43*d5c09012SAndroid Build Coastguard Worker    SYSTEM_DISABLED = 3;
44*d5c09012SAndroid Build Coastguard Worker  }
45*d5c09012SAndroid Build Coastguard Worker
46*d5c09012SAndroid Build Coastguard Worker  // Identity-Aware Proxy
47*d5c09012SAndroid Build Coastguard Worker  message IdentityAwareProxy {
48*d5c09012SAndroid Build Coastguard Worker    // Whether the serving infrastructure will authenticate and
49*d5c09012SAndroid Build Coastguard Worker    // authorize all incoming requests.
50*d5c09012SAndroid Build Coastguard Worker    //
51*d5c09012SAndroid Build Coastguard Worker    // If true, the `oauth2_client_id` and `oauth2_client_secret`
52*d5c09012SAndroid Build Coastguard Worker    // fields must be non-empty.
53*d5c09012SAndroid Build Coastguard Worker    bool enabled = 1;
54*d5c09012SAndroid Build Coastguard Worker
55*d5c09012SAndroid Build Coastguard Worker    // OAuth2 client ID to use for the authentication flow.
56*d5c09012SAndroid Build Coastguard Worker    string oauth2_client_id = 2;
57*d5c09012SAndroid Build Coastguard Worker
58*d5c09012SAndroid Build Coastguard Worker    // OAuth2 client secret to use for the authentication flow.
59*d5c09012SAndroid Build Coastguard Worker    //
60*d5c09012SAndroid Build Coastguard Worker    // For security reasons, this value cannot be retrieved via the API.
61*d5c09012SAndroid Build Coastguard Worker    // Instead, the SHA-256 hash of the value is returned in the
62*d5c09012SAndroid Build Coastguard Worker    // `oauth2_client_secret_sha256` field.
63*d5c09012SAndroid Build Coastguard Worker    //
64*d5c09012SAndroid Build Coastguard Worker    // @InputOnly
65*d5c09012SAndroid Build Coastguard Worker    string oauth2_client_secret = 3;
66*d5c09012SAndroid Build Coastguard Worker
67*d5c09012SAndroid Build Coastguard Worker    // Hex-encoded SHA-256 hash of the client secret.
68*d5c09012SAndroid Build Coastguard Worker    //
69*d5c09012SAndroid Build Coastguard Worker    // @OutputOnly
70*d5c09012SAndroid Build Coastguard Worker    string oauth2_client_secret_sha256 = 4;
71*d5c09012SAndroid Build Coastguard Worker  }
72*d5c09012SAndroid Build Coastguard Worker
73*d5c09012SAndroid Build Coastguard Worker  enum DatabaseType {
74*d5c09012SAndroid Build Coastguard Worker    // Database type is unspecified.
75*d5c09012SAndroid Build Coastguard Worker    DATABASE_TYPE_UNSPECIFIED = 0;
76*d5c09012SAndroid Build Coastguard Worker
77*d5c09012SAndroid Build Coastguard Worker    // Cloud Datastore
78*d5c09012SAndroid Build Coastguard Worker    CLOUD_DATASTORE = 1;
79*d5c09012SAndroid Build Coastguard Worker
80*d5c09012SAndroid Build Coastguard Worker    // Cloud Firestore Native
81*d5c09012SAndroid Build Coastguard Worker    CLOUD_FIRESTORE = 2;
82*d5c09012SAndroid Build Coastguard Worker
83*d5c09012SAndroid Build Coastguard Worker    // Cloud Firestore in Datastore Mode
84*d5c09012SAndroid Build Coastguard Worker    CLOUD_DATASTORE_COMPATIBILITY = 3;
85*d5c09012SAndroid Build Coastguard Worker  }
86*d5c09012SAndroid Build Coastguard Worker
87*d5c09012SAndroid Build Coastguard Worker  // The feature specific settings to be used in the application. These define
88*d5c09012SAndroid Build Coastguard Worker  // behaviors that are user configurable.
89*d5c09012SAndroid Build Coastguard Worker  message FeatureSettings {
90*d5c09012SAndroid Build Coastguard Worker    // Boolean value indicating if split health checks should be used instead
91*d5c09012SAndroid Build Coastguard Worker    // of the legacy health checks. At an app.yaml level, this means defaulting
92*d5c09012SAndroid Build Coastguard Worker    // to 'readiness_check' and 'liveness_check' values instead of
93*d5c09012SAndroid Build Coastguard Worker    // 'health_check' ones. Once the legacy 'health_check' behavior is
94*d5c09012SAndroid Build Coastguard Worker    // deprecated, and this value is always true, this setting can
95*d5c09012SAndroid Build Coastguard Worker    // be removed.
96*d5c09012SAndroid Build Coastguard Worker    bool split_health_checks = 1;
97*d5c09012SAndroid Build Coastguard Worker
98*d5c09012SAndroid Build Coastguard Worker    // If true, use [Container-Optimized OS](https://cloud.google.com/container-optimized-os/)
99*d5c09012SAndroid Build Coastguard Worker    // base image for VMs, rather than a base Debian image.
100*d5c09012SAndroid Build Coastguard Worker    bool use_container_optimized_os = 2;
101*d5c09012SAndroid Build Coastguard Worker  }
102*d5c09012SAndroid Build Coastguard Worker
103*d5c09012SAndroid Build Coastguard Worker  // Full path to the Application resource in the API.
104*d5c09012SAndroid Build Coastguard Worker  // Example: `apps/myapp`.
105*d5c09012SAndroid Build Coastguard Worker  //
106*d5c09012SAndroid Build Coastguard Worker  // @OutputOnly
107*d5c09012SAndroid Build Coastguard Worker  string name = 1;
108*d5c09012SAndroid Build Coastguard Worker
109*d5c09012SAndroid Build Coastguard Worker  // Identifier of the Application resource. This identifier is equivalent
110*d5c09012SAndroid Build Coastguard Worker  // to the project ID of the Google Cloud Platform project where you want to
111*d5c09012SAndroid Build Coastguard Worker  // deploy your application.
112*d5c09012SAndroid Build Coastguard Worker  // Example: `myapp`.
113*d5c09012SAndroid Build Coastguard Worker  string id = 2;
114*d5c09012SAndroid Build Coastguard Worker
115*d5c09012SAndroid Build Coastguard Worker  // HTTP path dispatch rules for requests to the application that do not
116*d5c09012SAndroid Build Coastguard Worker  // explicitly target a service or version. Rules are order-dependent.
117*d5c09012SAndroid Build Coastguard Worker  // Up to 20 dispatch rules can be supported.
118*d5c09012SAndroid Build Coastguard Worker  repeated UrlDispatchRule dispatch_rules = 3;
119*d5c09012SAndroid Build Coastguard Worker
120*d5c09012SAndroid Build Coastguard Worker  // Google Apps authentication domain that controls which users can access
121*d5c09012SAndroid Build Coastguard Worker  // this application.
122*d5c09012SAndroid Build Coastguard Worker  //
123*d5c09012SAndroid Build Coastguard Worker  // Defaults to open access for any Google Account.
124*d5c09012SAndroid Build Coastguard Worker  string auth_domain = 6;
125*d5c09012SAndroid Build Coastguard Worker
126*d5c09012SAndroid Build Coastguard Worker  // Location from which this application runs. Application instances
127*d5c09012SAndroid Build Coastguard Worker  // run out of the data centers in the specified location, which is also where
128*d5c09012SAndroid Build Coastguard Worker  // all of the application's end user content is stored.
129*d5c09012SAndroid Build Coastguard Worker  //
130*d5c09012SAndroid Build Coastguard Worker  // Defaults to `us-central`.
131*d5c09012SAndroid Build Coastguard Worker  //
132*d5c09012SAndroid Build Coastguard Worker  // View the list of
133*d5c09012SAndroid Build Coastguard Worker  // [supported locations](https://cloud.google.com/appengine/docs/locations).
134*d5c09012SAndroid Build Coastguard Worker  string location_id = 7;
135*d5c09012SAndroid Build Coastguard Worker
136*d5c09012SAndroid Build Coastguard Worker  // Google Cloud Storage bucket that can be used for storing files
137*d5c09012SAndroid Build Coastguard Worker  // associated with this application. This bucket is associated with the
138*d5c09012SAndroid Build Coastguard Worker  // application and can be used by the gcloud deployment commands.
139*d5c09012SAndroid Build Coastguard Worker  //
140*d5c09012SAndroid Build Coastguard Worker  // @OutputOnly
141*d5c09012SAndroid Build Coastguard Worker  string code_bucket = 8;
142*d5c09012SAndroid Build Coastguard Worker
143*d5c09012SAndroid Build Coastguard Worker  // Cookie expiration policy for this application.
144*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration default_cookie_expiration = 9;
145*d5c09012SAndroid Build Coastguard Worker
146*d5c09012SAndroid Build Coastguard Worker  // Serving status of this application.
147*d5c09012SAndroid Build Coastguard Worker  ServingStatus serving_status = 10;
148*d5c09012SAndroid Build Coastguard Worker
149*d5c09012SAndroid Build Coastguard Worker  // Hostname used to reach this application, as resolved by App Engine.
150*d5c09012SAndroid Build Coastguard Worker  //
151*d5c09012SAndroid Build Coastguard Worker  // @OutputOnly
152*d5c09012SAndroid Build Coastguard Worker  string default_hostname = 11;
153*d5c09012SAndroid Build Coastguard Worker
154*d5c09012SAndroid Build Coastguard Worker  // Google Cloud Storage bucket that can be used by this application to store
155*d5c09012SAndroid Build Coastguard Worker  // content.
156*d5c09012SAndroid Build Coastguard Worker  //
157*d5c09012SAndroid Build Coastguard Worker  // @OutputOnly
158*d5c09012SAndroid Build Coastguard Worker  string default_bucket = 12;
159*d5c09012SAndroid Build Coastguard Worker
160*d5c09012SAndroid Build Coastguard Worker  // The service account associated with the application.
161*d5c09012SAndroid Build Coastguard Worker  // This is the app-level default identity. If no identity provided during
162*d5c09012SAndroid Build Coastguard Worker  // create version, Admin API will fallback to this one.
163*d5c09012SAndroid Build Coastguard Worker  string service_account = 13;
164*d5c09012SAndroid Build Coastguard Worker
165*d5c09012SAndroid Build Coastguard Worker  IdentityAwareProxy iap = 14;
166*d5c09012SAndroid Build Coastguard Worker
167*d5c09012SAndroid Build Coastguard Worker  // The Google Container Registry domain used for storing managed build docker
168*d5c09012SAndroid Build Coastguard Worker  // images for this application.
169*d5c09012SAndroid Build Coastguard Worker  string gcr_domain = 16;
170*d5c09012SAndroid Build Coastguard Worker
171*d5c09012SAndroid Build Coastguard Worker  // The type of the Cloud Firestore or Cloud Datastore database associated with
172*d5c09012SAndroid Build Coastguard Worker  // this application.
173*d5c09012SAndroid Build Coastguard Worker  DatabaseType database_type = 17;
174*d5c09012SAndroid Build Coastguard Worker
175*d5c09012SAndroid Build Coastguard Worker  // The feature specific settings to be used in the application.
176*d5c09012SAndroid Build Coastguard Worker  FeatureSettings feature_settings = 18;
177*d5c09012SAndroid Build Coastguard Worker}
178*d5c09012SAndroid Build Coastguard Worker
179*d5c09012SAndroid Build Coastguard Worker// Rules to match an HTTP request and dispatch that request to a service.
180*d5c09012SAndroid Build Coastguard Workermessage UrlDispatchRule {
181*d5c09012SAndroid Build Coastguard Worker  // Domain name to match against. The wildcard "`*`" is supported if
182*d5c09012SAndroid Build Coastguard Worker  // specified before a period: "`*.`".
183*d5c09012SAndroid Build Coastguard Worker  //
184*d5c09012SAndroid Build Coastguard Worker  // Defaults to matching all domains: "`*`".
185*d5c09012SAndroid Build Coastguard Worker  string domain = 1;
186*d5c09012SAndroid Build Coastguard Worker
187*d5c09012SAndroid Build Coastguard Worker  // Pathname within the host. Must start with a "`/`". A
188*d5c09012SAndroid Build Coastguard Worker  // single "`*`" can be included at the end of the path.
189*d5c09012SAndroid Build Coastguard Worker  //
190*d5c09012SAndroid Build Coastguard Worker  // The sum of the lengths of the domain and path may not
191*d5c09012SAndroid Build Coastguard Worker  // exceed 100 characters.
192*d5c09012SAndroid Build Coastguard Worker  string path = 2;
193*d5c09012SAndroid Build Coastguard Worker
194*d5c09012SAndroid Build Coastguard Worker  // Resource ID of a service in this application that should
195*d5c09012SAndroid Build Coastguard Worker  // serve the matched request. The service must already
196*d5c09012SAndroid Build Coastguard Worker  // exist. Example: `default`.
197*d5c09012SAndroid Build Coastguard Worker  string service = 3;
198*d5c09012SAndroid Build Coastguard Worker}
199