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