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/appengine/v1/app_yaml.proto"; 20*d5c09012SAndroid Build Coastguard Workerimport "google/appengine/v1/deploy.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/duration.proto"; 22*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto"; 23*d5c09012SAndroid Build Coastguard Worker 24*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.AppEngine.V1"; 25*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/appengine/apiv1/appenginepb;appenginepb"; 26*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 27*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "VersionProto"; 28*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.appengine.v1"; 29*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\AppEngine\\V1"; 30*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::AppEngine::V1"; 31*d5c09012SAndroid Build Coastguard Worker 32*d5c09012SAndroid Build Coastguard Worker// A Version resource is a specific set of source code and configuration files 33*d5c09012SAndroid Build Coastguard Worker// that are deployed into a service. 34*d5c09012SAndroid Build Coastguard Workermessage Version { 35*d5c09012SAndroid Build Coastguard Worker // Full path to the Version resource in the API. Example: 36*d5c09012SAndroid Build Coastguard Worker // `apps/myapp/services/default/versions/v1`. 37*d5c09012SAndroid Build Coastguard Worker // 38*d5c09012SAndroid Build Coastguard Worker // @OutputOnly 39*d5c09012SAndroid Build Coastguard Worker string name = 1; 40*d5c09012SAndroid Build Coastguard Worker 41*d5c09012SAndroid Build Coastguard Worker // Relative name of the version within the service. Example: `v1`. 42*d5c09012SAndroid Build Coastguard Worker // Version names can contain only lowercase letters, numbers, or hyphens. 43*d5c09012SAndroid Build Coastguard Worker // Reserved names: "default", "latest", and any name with the prefix "ah-". 44*d5c09012SAndroid Build Coastguard Worker string id = 2; 45*d5c09012SAndroid Build Coastguard Worker 46*d5c09012SAndroid Build Coastguard Worker // Controls how instances are created, scaled, and reaped. 47*d5c09012SAndroid Build Coastguard Worker // 48*d5c09012SAndroid Build Coastguard Worker // Defaults to `AutomaticScaling`. 49*d5c09012SAndroid Build Coastguard Worker oneof scaling { 50*d5c09012SAndroid Build Coastguard Worker // Automatic scaling is based on request rate, response latencies, and other 51*d5c09012SAndroid Build Coastguard Worker // application metrics. Instances are dynamically created and destroyed as 52*d5c09012SAndroid Build Coastguard Worker // needed in order to handle traffic. 53*d5c09012SAndroid Build Coastguard Worker AutomaticScaling automatic_scaling = 3; 54*d5c09012SAndroid Build Coastguard Worker 55*d5c09012SAndroid Build Coastguard Worker // A service with basic scaling will create an instance when the application 56*d5c09012SAndroid Build Coastguard Worker // receives a request. The instance will be turned down when the app becomes 57*d5c09012SAndroid Build Coastguard Worker // idle. Basic scaling is ideal for work that is intermittent or driven by 58*d5c09012SAndroid Build Coastguard Worker // user activity. 59*d5c09012SAndroid Build Coastguard Worker BasicScaling basic_scaling = 4; 60*d5c09012SAndroid Build Coastguard Worker 61*d5c09012SAndroid Build Coastguard Worker // A service with manual scaling runs continuously, allowing you to perform 62*d5c09012SAndroid Build Coastguard Worker // complex initialization and rely on the state of its memory over time. 63*d5c09012SAndroid Build Coastguard Worker // Manually scaled versions are sometimes referred to as "backends". 64*d5c09012SAndroid Build Coastguard Worker ManualScaling manual_scaling = 5; 65*d5c09012SAndroid Build Coastguard Worker } 66*d5c09012SAndroid Build Coastguard Worker 67*d5c09012SAndroid Build Coastguard Worker // Before an application can receive email or XMPP messages, the application 68*d5c09012SAndroid Build Coastguard Worker // must be configured to enable the service. 69*d5c09012SAndroid Build Coastguard Worker repeated InboundServiceType inbound_services = 6; 70*d5c09012SAndroid Build Coastguard Worker 71*d5c09012SAndroid Build Coastguard Worker // Instance class that is used to run this version. Valid values are: 72*d5c09012SAndroid Build Coastguard Worker // 73*d5c09012SAndroid Build Coastguard Worker // * AutomaticScaling: `F1`, `F2`, `F4`, `F4_1G` 74*d5c09012SAndroid Build Coastguard Worker // * ManualScaling or BasicScaling: `B1`, `B2`, `B4`, `B8`, `B4_1G` 75*d5c09012SAndroid Build Coastguard Worker // 76*d5c09012SAndroid Build Coastguard Worker // Defaults to `F1` for AutomaticScaling and `B1` for ManualScaling or 77*d5c09012SAndroid Build Coastguard Worker // BasicScaling. 78*d5c09012SAndroid Build Coastguard Worker string instance_class = 7; 79*d5c09012SAndroid Build Coastguard Worker 80*d5c09012SAndroid Build Coastguard Worker // Extra network settings. 81*d5c09012SAndroid Build Coastguard Worker // Only applicable in the App Engine flexible environment. 82*d5c09012SAndroid Build Coastguard Worker Network network = 8; 83*d5c09012SAndroid Build Coastguard Worker 84*d5c09012SAndroid Build Coastguard Worker // The Google Compute Engine zones that are supported by this version in the 85*d5c09012SAndroid Build Coastguard Worker // App Engine flexible environment. Deprecated. 86*d5c09012SAndroid Build Coastguard Worker repeated string zones = 118; 87*d5c09012SAndroid Build Coastguard Worker 88*d5c09012SAndroid Build Coastguard Worker // Machine resources for this version. 89*d5c09012SAndroid Build Coastguard Worker // Only applicable in the App Engine flexible environment. 90*d5c09012SAndroid Build Coastguard Worker Resources resources = 9; 91*d5c09012SAndroid Build Coastguard Worker 92*d5c09012SAndroid Build Coastguard Worker // Desired runtime. Example: `python27`. 93*d5c09012SAndroid Build Coastguard Worker string runtime = 10; 94*d5c09012SAndroid Build Coastguard Worker 95*d5c09012SAndroid Build Coastguard Worker // The channel of the runtime to use. Only available for some 96*d5c09012SAndroid Build Coastguard Worker // runtimes. Defaults to the `default` channel. 97*d5c09012SAndroid Build Coastguard Worker string runtime_channel = 117; 98*d5c09012SAndroid Build Coastguard Worker 99*d5c09012SAndroid Build Coastguard Worker // Whether multiple requests can be dispatched to this version at once. 100*d5c09012SAndroid Build Coastguard Worker bool threadsafe = 11; 101*d5c09012SAndroid Build Coastguard Worker 102*d5c09012SAndroid Build Coastguard Worker // Whether to deploy this version in a container on a virtual machine. 103*d5c09012SAndroid Build Coastguard Worker bool vm = 12; 104*d5c09012SAndroid Build Coastguard Worker 105*d5c09012SAndroid Build Coastguard Worker // Allows App Engine second generation runtimes to access the legacy bundled 106*d5c09012SAndroid Build Coastguard Worker // services. 107*d5c09012SAndroid Build Coastguard Worker bool app_engine_apis = 128; 108*d5c09012SAndroid Build Coastguard Worker 109*d5c09012SAndroid Build Coastguard Worker // Metadata settings that are supplied to this version to enable 110*d5c09012SAndroid Build Coastguard Worker // beta runtime features. 111*d5c09012SAndroid Build Coastguard Worker map<string, string> beta_settings = 13; 112*d5c09012SAndroid Build Coastguard Worker 113*d5c09012SAndroid Build Coastguard Worker // App Engine execution environment for this version. 114*d5c09012SAndroid Build Coastguard Worker // 115*d5c09012SAndroid Build Coastguard Worker // Defaults to `standard`. 116*d5c09012SAndroid Build Coastguard Worker string env = 14; 117*d5c09012SAndroid Build Coastguard Worker 118*d5c09012SAndroid Build Coastguard Worker // Current serving status of this version. Only the versions with a 119*d5c09012SAndroid Build Coastguard Worker // `SERVING` status create instances and can be billed. 120*d5c09012SAndroid Build Coastguard Worker // 121*d5c09012SAndroid Build Coastguard Worker // `SERVING_STATUS_UNSPECIFIED` is an invalid value. Defaults to `SERVING`. 122*d5c09012SAndroid Build Coastguard Worker ServingStatus serving_status = 15; 123*d5c09012SAndroid Build Coastguard Worker 124*d5c09012SAndroid Build Coastguard Worker // Email address of the user who created this version. 125*d5c09012SAndroid Build Coastguard Worker // 126*d5c09012SAndroid Build Coastguard Worker // @OutputOnly 127*d5c09012SAndroid Build Coastguard Worker string created_by = 16; 128*d5c09012SAndroid Build Coastguard Worker 129*d5c09012SAndroid Build Coastguard Worker // Time that this version was created. 130*d5c09012SAndroid Build Coastguard Worker // 131*d5c09012SAndroid Build Coastguard Worker // @OutputOnly 132*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp create_time = 17; 133*d5c09012SAndroid Build Coastguard Worker 134*d5c09012SAndroid Build Coastguard Worker // Total size in bytes of all the files that are included in this version 135*d5c09012SAndroid Build Coastguard Worker // and currently hosted on the App Engine disk. 136*d5c09012SAndroid Build Coastguard Worker // 137*d5c09012SAndroid Build Coastguard Worker // @OutputOnly 138*d5c09012SAndroid Build Coastguard Worker int64 disk_usage_bytes = 18; 139*d5c09012SAndroid Build Coastguard Worker 140*d5c09012SAndroid Build Coastguard Worker // The version of the API in the given runtime environment. Please see the 141*d5c09012SAndroid Build Coastguard Worker // app.yaml reference for valid values at 142*d5c09012SAndroid Build Coastguard Worker // https://cloud.google.com/appengine/docs/standard/<language>/config/appref 143*d5c09012SAndroid Build Coastguard Worker string runtime_api_version = 21; 144*d5c09012SAndroid Build Coastguard Worker 145*d5c09012SAndroid Build Coastguard Worker // The path or name of the app's main executable. 146*d5c09012SAndroid Build Coastguard Worker string runtime_main_executable_path = 22; 147*d5c09012SAndroid Build Coastguard Worker 148*d5c09012SAndroid Build Coastguard Worker // The identity that the deployed version will run as. 149*d5c09012SAndroid Build Coastguard Worker // Admin API will use the App Engine Appspot service account as default if 150*d5c09012SAndroid Build Coastguard Worker // this field is neither provided in app.yaml file nor through CLI flag. 151*d5c09012SAndroid Build Coastguard Worker string service_account = 127; 152*d5c09012SAndroid Build Coastguard Worker 153*d5c09012SAndroid Build Coastguard Worker // An ordered list of URL-matching patterns that should be applied to incoming 154*d5c09012SAndroid Build Coastguard Worker // requests. The first matching URL handles the request and other request 155*d5c09012SAndroid Build Coastguard Worker // handlers are not attempted. 156*d5c09012SAndroid Build Coastguard Worker // 157*d5c09012SAndroid Build Coastguard Worker // Only returned in `GET` requests if `view=FULL` is set. 158*d5c09012SAndroid Build Coastguard Worker repeated UrlMap handlers = 100; 159*d5c09012SAndroid Build Coastguard Worker 160*d5c09012SAndroid Build Coastguard Worker // Custom static error pages. Limited to 10KB per page. 161*d5c09012SAndroid Build Coastguard Worker // 162*d5c09012SAndroid Build Coastguard Worker // Only returned in `GET` requests if `view=FULL` is set. 163*d5c09012SAndroid Build Coastguard Worker repeated ErrorHandler error_handlers = 101; 164*d5c09012SAndroid Build Coastguard Worker 165*d5c09012SAndroid Build Coastguard Worker // Configuration for third-party Python runtime libraries that are required 166*d5c09012SAndroid Build Coastguard Worker // by the application. 167*d5c09012SAndroid Build Coastguard Worker // 168*d5c09012SAndroid Build Coastguard Worker // Only returned in `GET` requests if `view=FULL` is set. 169*d5c09012SAndroid Build Coastguard Worker repeated Library libraries = 102; 170*d5c09012SAndroid Build Coastguard Worker 171*d5c09012SAndroid Build Coastguard Worker // Serving configuration for 172*d5c09012SAndroid Build Coastguard Worker // [Google Cloud Endpoints](https://cloud.google.com/appengine/docs/python/endpoints/). 173*d5c09012SAndroid Build Coastguard Worker // 174*d5c09012SAndroid Build Coastguard Worker // Only returned in `GET` requests if `view=FULL` is set. 175*d5c09012SAndroid Build Coastguard Worker ApiConfigHandler api_config = 103; 176*d5c09012SAndroid Build Coastguard Worker 177*d5c09012SAndroid Build Coastguard Worker // Environment variables available to the application. 178*d5c09012SAndroid Build Coastguard Worker // 179*d5c09012SAndroid Build Coastguard Worker // Only returned in `GET` requests if `view=FULL` is set. 180*d5c09012SAndroid Build Coastguard Worker map<string, string> env_variables = 104; 181*d5c09012SAndroid Build Coastguard Worker 182*d5c09012SAndroid Build Coastguard Worker // Environment variables available to the build environment. 183*d5c09012SAndroid Build Coastguard Worker // 184*d5c09012SAndroid Build Coastguard Worker // Only returned in `GET` requests if `view=FULL` is set. 185*d5c09012SAndroid Build Coastguard Worker map<string, string> build_env_variables = 125; 186*d5c09012SAndroid Build Coastguard Worker 187*d5c09012SAndroid Build Coastguard Worker // Duration that static files should be cached by web proxies and browsers. 188*d5c09012SAndroid Build Coastguard Worker // Only applicable if the corresponding 189*d5c09012SAndroid Build Coastguard Worker // [StaticFilesHandler](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions#StaticFilesHandler) 190*d5c09012SAndroid Build Coastguard Worker // does not specify its own expiration time. 191*d5c09012SAndroid Build Coastguard Worker // 192*d5c09012SAndroid Build Coastguard Worker // Only returned in `GET` requests if `view=FULL` is set. 193*d5c09012SAndroid Build Coastguard Worker google.protobuf.Duration default_expiration = 105; 194*d5c09012SAndroid Build Coastguard Worker 195*d5c09012SAndroid Build Coastguard Worker // Configures health checking for instances. Unhealthy instances are 196*d5c09012SAndroid Build Coastguard Worker // stopped and replaced with new instances. 197*d5c09012SAndroid Build Coastguard Worker // Only applicable in the App Engine flexible environment. 198*d5c09012SAndroid Build Coastguard Worker // 199*d5c09012SAndroid Build Coastguard Worker // Only returned in `GET` requests if `view=FULL` is set. 200*d5c09012SAndroid Build Coastguard Worker HealthCheck health_check = 106; 201*d5c09012SAndroid Build Coastguard Worker 202*d5c09012SAndroid Build Coastguard Worker // Configures readiness health checking for instances. 203*d5c09012SAndroid Build Coastguard Worker // Unhealthy instances are not put into the backend traffic rotation. 204*d5c09012SAndroid Build Coastguard Worker // 205*d5c09012SAndroid Build Coastguard Worker // Only returned in `GET` requests if `view=FULL` is set. 206*d5c09012SAndroid Build Coastguard Worker ReadinessCheck readiness_check = 112; 207*d5c09012SAndroid Build Coastguard Worker 208*d5c09012SAndroid Build Coastguard Worker // Configures liveness health checking for instances. 209*d5c09012SAndroid Build Coastguard Worker // Unhealthy instances are stopped and replaced with new instances 210*d5c09012SAndroid Build Coastguard Worker // 211*d5c09012SAndroid Build Coastguard Worker // Only returned in `GET` requests if `view=FULL` is set. 212*d5c09012SAndroid Build Coastguard Worker LivenessCheck liveness_check = 113; 213*d5c09012SAndroid Build Coastguard Worker 214*d5c09012SAndroid Build Coastguard Worker // Files that match this pattern will not be built into this version. 215*d5c09012SAndroid Build Coastguard Worker // Only applicable for Go runtimes. 216*d5c09012SAndroid Build Coastguard Worker // 217*d5c09012SAndroid Build Coastguard Worker // Only returned in `GET` requests if `view=FULL` is set. 218*d5c09012SAndroid Build Coastguard Worker string nobuild_files_regex = 107; 219*d5c09012SAndroid Build Coastguard Worker 220*d5c09012SAndroid Build Coastguard Worker // Code and application artifacts that make up this version. 221*d5c09012SAndroid Build Coastguard Worker // 222*d5c09012SAndroid Build Coastguard Worker // Only returned in `GET` requests if `view=FULL` is set. 223*d5c09012SAndroid Build Coastguard Worker Deployment deployment = 108; 224*d5c09012SAndroid Build Coastguard Worker 225*d5c09012SAndroid Build Coastguard Worker // Serving URL for this version. Example: 226*d5c09012SAndroid Build Coastguard Worker // "https://myversion-dot-myservice-dot-myapp.appspot.com" 227*d5c09012SAndroid Build Coastguard Worker // 228*d5c09012SAndroid Build Coastguard Worker // @OutputOnly 229*d5c09012SAndroid Build Coastguard Worker string version_url = 109; 230*d5c09012SAndroid Build Coastguard Worker 231*d5c09012SAndroid Build Coastguard Worker // Cloud Endpoints configuration. 232*d5c09012SAndroid Build Coastguard Worker // 233*d5c09012SAndroid Build Coastguard Worker // If endpoints_api_service is set, the Cloud Endpoints Extensible Service 234*d5c09012SAndroid Build Coastguard Worker // Proxy will be provided to serve the API implemented by the app. 235*d5c09012SAndroid Build Coastguard Worker EndpointsApiService endpoints_api_service = 110; 236*d5c09012SAndroid Build Coastguard Worker 237*d5c09012SAndroid Build Coastguard Worker // The entrypoint for the application. 238*d5c09012SAndroid Build Coastguard Worker Entrypoint entrypoint = 122; 239*d5c09012SAndroid Build Coastguard Worker 240*d5c09012SAndroid Build Coastguard Worker // Enables VPC connectivity for standard apps. 241*d5c09012SAndroid Build Coastguard Worker VpcAccessConnector vpc_access_connector = 121; 242*d5c09012SAndroid Build Coastguard Worker} 243*d5c09012SAndroid Build Coastguard Worker 244*d5c09012SAndroid Build Coastguard Worker// [Cloud Endpoints](https://cloud.google.com/endpoints) configuration. 245*d5c09012SAndroid Build Coastguard Worker// The Endpoints API Service provides tooling for serving Open API and gRPC 246*d5c09012SAndroid Build Coastguard Worker// endpoints via an NGINX proxy. Only valid for App Engine Flexible environment 247*d5c09012SAndroid Build Coastguard Worker// deployments. 248*d5c09012SAndroid Build Coastguard Worker// 249*d5c09012SAndroid Build Coastguard Worker// The fields here refer to the name and configuration ID of a "service" 250*d5c09012SAndroid Build Coastguard Worker// resource in the [Service Management API](https://cloud.google.com/service-management/overview). 251*d5c09012SAndroid Build Coastguard Workermessage EndpointsApiService { 252*d5c09012SAndroid Build Coastguard Worker // Available rollout strategies. 253*d5c09012SAndroid Build Coastguard Worker enum RolloutStrategy { 254*d5c09012SAndroid Build Coastguard Worker // Not specified. Defaults to `FIXED`. 255*d5c09012SAndroid Build Coastguard Worker UNSPECIFIED_ROLLOUT_STRATEGY = 0; 256*d5c09012SAndroid Build Coastguard Worker 257*d5c09012SAndroid Build Coastguard Worker // Endpoints service configuration ID will be fixed to the configuration ID 258*d5c09012SAndroid Build Coastguard Worker // specified by `config_id`. 259*d5c09012SAndroid Build Coastguard Worker FIXED = 1; 260*d5c09012SAndroid Build Coastguard Worker 261*d5c09012SAndroid Build Coastguard Worker // Endpoints service configuration ID will be updated with each rollout. 262*d5c09012SAndroid Build Coastguard Worker MANAGED = 2; 263*d5c09012SAndroid Build Coastguard Worker } 264*d5c09012SAndroid Build Coastguard Worker 265*d5c09012SAndroid Build Coastguard Worker // Endpoints service name which is the name of the "service" resource in the 266*d5c09012SAndroid Build Coastguard Worker // Service Management API. For example "myapi.endpoints.myproject.cloud.goog" 267*d5c09012SAndroid Build Coastguard Worker string name = 1; 268*d5c09012SAndroid Build Coastguard Worker 269*d5c09012SAndroid Build Coastguard Worker // Endpoints service configuration ID as specified by the Service Management 270*d5c09012SAndroid Build Coastguard Worker // API. For example "2016-09-19r1". 271*d5c09012SAndroid Build Coastguard Worker // 272*d5c09012SAndroid Build Coastguard Worker // By default, the rollout strategy for Endpoints is `RolloutStrategy.FIXED`. 273*d5c09012SAndroid Build Coastguard Worker // This means that Endpoints starts up with a particular configuration ID. 274*d5c09012SAndroid Build Coastguard Worker // When a new configuration is rolled out, Endpoints must be given the new 275*d5c09012SAndroid Build Coastguard Worker // configuration ID. The `config_id` field is used to give the configuration 276*d5c09012SAndroid Build Coastguard Worker // ID and is required in this case. 277*d5c09012SAndroid Build Coastguard Worker // 278*d5c09012SAndroid Build Coastguard Worker // Endpoints also has a rollout strategy called `RolloutStrategy.MANAGED`. 279*d5c09012SAndroid Build Coastguard Worker // When using this, Endpoints fetches the latest configuration and does not 280*d5c09012SAndroid Build Coastguard Worker // need the configuration ID. In this case, `config_id` must be omitted. 281*d5c09012SAndroid Build Coastguard Worker string config_id = 2; 282*d5c09012SAndroid Build Coastguard Worker 283*d5c09012SAndroid Build Coastguard Worker // Endpoints rollout strategy. If `FIXED`, `config_id` must be specified. If 284*d5c09012SAndroid Build Coastguard Worker // `MANAGED`, `config_id` must be omitted. 285*d5c09012SAndroid Build Coastguard Worker RolloutStrategy rollout_strategy = 3; 286*d5c09012SAndroid Build Coastguard Worker 287*d5c09012SAndroid Build Coastguard Worker // Enable or disable trace sampling. By default, this is set to false for 288*d5c09012SAndroid Build Coastguard Worker // enabled. 289*d5c09012SAndroid Build Coastguard Worker bool disable_trace_sampling = 4; 290*d5c09012SAndroid Build Coastguard Worker} 291*d5c09012SAndroid Build Coastguard Worker 292*d5c09012SAndroid Build Coastguard Worker// Automatic scaling is based on request rate, response latencies, and other 293*d5c09012SAndroid Build Coastguard Worker// application metrics. 294*d5c09012SAndroid Build Coastguard Workermessage AutomaticScaling { 295*d5c09012SAndroid Build Coastguard Worker // The time period that the 296*d5c09012SAndroid Build Coastguard Worker // [Autoscaler](https://cloud.google.com/compute/docs/autoscaler/) 297*d5c09012SAndroid Build Coastguard Worker // should wait before it starts collecting information from a new instance. 298*d5c09012SAndroid Build Coastguard Worker // This prevents the autoscaler from collecting information when the instance 299*d5c09012SAndroid Build Coastguard Worker // is initializing, during which the collected usage would not be reliable. 300*d5c09012SAndroid Build Coastguard Worker // Only applicable in the App Engine flexible environment. 301*d5c09012SAndroid Build Coastguard Worker google.protobuf.Duration cool_down_period = 1; 302*d5c09012SAndroid Build Coastguard Worker 303*d5c09012SAndroid Build Coastguard Worker // Target scaling by CPU usage. 304*d5c09012SAndroid Build Coastguard Worker CpuUtilization cpu_utilization = 2; 305*d5c09012SAndroid Build Coastguard Worker 306*d5c09012SAndroid Build Coastguard Worker // Number of concurrent requests an automatic scaling instance can accept 307*d5c09012SAndroid Build Coastguard Worker // before the scheduler spawns a new instance. 308*d5c09012SAndroid Build Coastguard Worker // 309*d5c09012SAndroid Build Coastguard Worker // Defaults to a runtime-specific value. 310*d5c09012SAndroid Build Coastguard Worker int32 max_concurrent_requests = 3; 311*d5c09012SAndroid Build Coastguard Worker 312*d5c09012SAndroid Build Coastguard Worker // Maximum number of idle instances that should be maintained for this 313*d5c09012SAndroid Build Coastguard Worker // version. 314*d5c09012SAndroid Build Coastguard Worker int32 max_idle_instances = 4; 315*d5c09012SAndroid Build Coastguard Worker 316*d5c09012SAndroid Build Coastguard Worker // Maximum number of instances that should be started to handle requests for 317*d5c09012SAndroid Build Coastguard Worker // this version. 318*d5c09012SAndroid Build Coastguard Worker int32 max_total_instances = 5; 319*d5c09012SAndroid Build Coastguard Worker 320*d5c09012SAndroid Build Coastguard Worker // Maximum amount of time that a request should wait in the pending queue 321*d5c09012SAndroid Build Coastguard Worker // before starting a new instance to handle it. 322*d5c09012SAndroid Build Coastguard Worker google.protobuf.Duration max_pending_latency = 6; 323*d5c09012SAndroid Build Coastguard Worker 324*d5c09012SAndroid Build Coastguard Worker // Minimum number of idle instances that should be maintained for 325*d5c09012SAndroid Build Coastguard Worker // this version. Only applicable for the default version of a service. 326*d5c09012SAndroid Build Coastguard Worker int32 min_idle_instances = 7; 327*d5c09012SAndroid Build Coastguard Worker 328*d5c09012SAndroid Build Coastguard Worker // Minimum number of running instances that should be maintained for this 329*d5c09012SAndroid Build Coastguard Worker // version. 330*d5c09012SAndroid Build Coastguard Worker int32 min_total_instances = 8; 331*d5c09012SAndroid Build Coastguard Worker 332*d5c09012SAndroid Build Coastguard Worker // Minimum amount of time a request should wait in the pending queue before 333*d5c09012SAndroid Build Coastguard Worker // starting a new instance to handle it. 334*d5c09012SAndroid Build Coastguard Worker google.protobuf.Duration min_pending_latency = 9; 335*d5c09012SAndroid Build Coastguard Worker 336*d5c09012SAndroid Build Coastguard Worker // Target scaling by request utilization. 337*d5c09012SAndroid Build Coastguard Worker RequestUtilization request_utilization = 10; 338*d5c09012SAndroid Build Coastguard Worker 339*d5c09012SAndroid Build Coastguard Worker // Target scaling by disk usage. 340*d5c09012SAndroid Build Coastguard Worker DiskUtilization disk_utilization = 11; 341*d5c09012SAndroid Build Coastguard Worker 342*d5c09012SAndroid Build Coastguard Worker // Target scaling by network usage. 343*d5c09012SAndroid Build Coastguard Worker NetworkUtilization network_utilization = 12; 344*d5c09012SAndroid Build Coastguard Worker 345*d5c09012SAndroid Build Coastguard Worker // Scheduler settings for standard environment. 346*d5c09012SAndroid Build Coastguard Worker StandardSchedulerSettings standard_scheduler_settings = 20; 347*d5c09012SAndroid Build Coastguard Worker} 348*d5c09012SAndroid Build Coastguard Worker 349*d5c09012SAndroid Build Coastguard Worker// A service with basic scaling will create an instance when the application 350*d5c09012SAndroid Build Coastguard Worker// receives a request. The instance will be turned down when the app becomes 351*d5c09012SAndroid Build Coastguard Worker// idle. Basic scaling is ideal for work that is intermittent or driven by 352*d5c09012SAndroid Build Coastguard Worker// user activity. 353*d5c09012SAndroid Build Coastguard Workermessage BasicScaling { 354*d5c09012SAndroid Build Coastguard Worker // Duration of time after the last request that an instance must wait before 355*d5c09012SAndroid Build Coastguard Worker // the instance is shut down. 356*d5c09012SAndroid Build Coastguard Worker google.protobuf.Duration idle_timeout = 1; 357*d5c09012SAndroid Build Coastguard Worker 358*d5c09012SAndroid Build Coastguard Worker // Maximum number of instances to create for this version. 359*d5c09012SAndroid Build Coastguard Worker int32 max_instances = 2; 360*d5c09012SAndroid Build Coastguard Worker} 361*d5c09012SAndroid Build Coastguard Worker 362*d5c09012SAndroid Build Coastguard Worker// A service with manual scaling runs continuously, allowing you to perform 363*d5c09012SAndroid Build Coastguard Worker// complex initialization and rely on the state of its memory over time. 364*d5c09012SAndroid Build Coastguard Workermessage ManualScaling { 365*d5c09012SAndroid Build Coastguard Worker // Number of instances to assign to the service at the start. This number 366*d5c09012SAndroid Build Coastguard Worker // can later be altered by using the 367*d5c09012SAndroid Build Coastguard Worker // [Modules API](https://cloud.google.com/appengine/docs/python/modules/functions) 368*d5c09012SAndroid Build Coastguard Worker // `set_num_instances()` function. 369*d5c09012SAndroid Build Coastguard Worker int32 instances = 1; 370*d5c09012SAndroid Build Coastguard Worker} 371*d5c09012SAndroid Build Coastguard Worker 372*d5c09012SAndroid Build Coastguard Worker// Target scaling by CPU usage. 373*d5c09012SAndroid Build Coastguard Workermessage CpuUtilization { 374*d5c09012SAndroid Build Coastguard Worker // Period of time over which CPU utilization is calculated. 375*d5c09012SAndroid Build Coastguard Worker google.protobuf.Duration aggregation_window_length = 1; 376*d5c09012SAndroid Build Coastguard Worker 377*d5c09012SAndroid Build Coastguard Worker // Target CPU utilization ratio to maintain when scaling. Must be between 0 378*d5c09012SAndroid Build Coastguard Worker // and 1. 379*d5c09012SAndroid Build Coastguard Worker double target_utilization = 2; 380*d5c09012SAndroid Build Coastguard Worker} 381*d5c09012SAndroid Build Coastguard Worker 382*d5c09012SAndroid Build Coastguard Worker// Target scaling by request utilization. 383*d5c09012SAndroid Build Coastguard Worker// Only applicable in the App Engine flexible environment. 384*d5c09012SAndroid Build Coastguard Workermessage RequestUtilization { 385*d5c09012SAndroid Build Coastguard Worker // Target requests per second. 386*d5c09012SAndroid Build Coastguard Worker int32 target_request_count_per_second = 1; 387*d5c09012SAndroid Build Coastguard Worker 388*d5c09012SAndroid Build Coastguard Worker // Target number of concurrent requests. 389*d5c09012SAndroid Build Coastguard Worker int32 target_concurrent_requests = 2; 390*d5c09012SAndroid Build Coastguard Worker} 391*d5c09012SAndroid Build Coastguard Worker 392*d5c09012SAndroid Build Coastguard Worker// Target scaling by disk usage. 393*d5c09012SAndroid Build Coastguard Worker// Only applicable in the App Engine flexible environment. 394*d5c09012SAndroid Build Coastguard Workermessage DiskUtilization { 395*d5c09012SAndroid Build Coastguard Worker // Target bytes written per second. 396*d5c09012SAndroid Build Coastguard Worker int32 target_write_bytes_per_second = 14; 397*d5c09012SAndroid Build Coastguard Worker 398*d5c09012SAndroid Build Coastguard Worker // Target ops written per second. 399*d5c09012SAndroid Build Coastguard Worker int32 target_write_ops_per_second = 15; 400*d5c09012SAndroid Build Coastguard Worker 401*d5c09012SAndroid Build Coastguard Worker // Target bytes read per second. 402*d5c09012SAndroid Build Coastguard Worker int32 target_read_bytes_per_second = 16; 403*d5c09012SAndroid Build Coastguard Worker 404*d5c09012SAndroid Build Coastguard Worker // Target ops read per seconds. 405*d5c09012SAndroid Build Coastguard Worker int32 target_read_ops_per_second = 17; 406*d5c09012SAndroid Build Coastguard Worker} 407*d5c09012SAndroid Build Coastguard Worker 408*d5c09012SAndroid Build Coastguard Worker// Target scaling by network usage. 409*d5c09012SAndroid Build Coastguard Worker// Only applicable in the App Engine flexible environment. 410*d5c09012SAndroid Build Coastguard Workermessage NetworkUtilization { 411*d5c09012SAndroid Build Coastguard Worker // Target bytes sent per second. 412*d5c09012SAndroid Build Coastguard Worker int32 target_sent_bytes_per_second = 1; 413*d5c09012SAndroid Build Coastguard Worker 414*d5c09012SAndroid Build Coastguard Worker // Target packets sent per second. 415*d5c09012SAndroid Build Coastguard Worker int32 target_sent_packets_per_second = 11; 416*d5c09012SAndroid Build Coastguard Worker 417*d5c09012SAndroid Build Coastguard Worker // Target bytes received per second. 418*d5c09012SAndroid Build Coastguard Worker int32 target_received_bytes_per_second = 12; 419*d5c09012SAndroid Build Coastguard Worker 420*d5c09012SAndroid Build Coastguard Worker // Target packets received per second. 421*d5c09012SAndroid Build Coastguard Worker int32 target_received_packets_per_second = 13; 422*d5c09012SAndroid Build Coastguard Worker} 423*d5c09012SAndroid Build Coastguard Worker 424*d5c09012SAndroid Build Coastguard Worker// Scheduler settings for standard environment. 425*d5c09012SAndroid Build Coastguard Workermessage StandardSchedulerSettings { 426*d5c09012SAndroid Build Coastguard Worker // Target CPU utilization ratio to maintain when scaling. 427*d5c09012SAndroid Build Coastguard Worker double target_cpu_utilization = 1; 428*d5c09012SAndroid Build Coastguard Worker 429*d5c09012SAndroid Build Coastguard Worker // Target throughput utilization ratio to maintain when scaling 430*d5c09012SAndroid Build Coastguard Worker double target_throughput_utilization = 2; 431*d5c09012SAndroid Build Coastguard Worker 432*d5c09012SAndroid Build Coastguard Worker // Minimum number of instances to run for this version. Set to zero to disable 433*d5c09012SAndroid Build Coastguard Worker // `min_instances` configuration. 434*d5c09012SAndroid Build Coastguard Worker int32 min_instances = 3; 435*d5c09012SAndroid Build Coastguard Worker 436*d5c09012SAndroid Build Coastguard Worker // Maximum number of instances to run for this version. Set to zero to disable 437*d5c09012SAndroid Build Coastguard Worker // `max_instances` configuration. 438*d5c09012SAndroid Build Coastguard Worker int32 max_instances = 4; 439*d5c09012SAndroid Build Coastguard Worker} 440*d5c09012SAndroid Build Coastguard Worker 441*d5c09012SAndroid Build Coastguard Worker// Extra network settings. 442*d5c09012SAndroid Build Coastguard Worker// Only applicable in the App Engine flexible environment. 443*d5c09012SAndroid Build Coastguard Workermessage Network { 444*d5c09012SAndroid Build Coastguard Worker // List of ports, or port pairs, to forward from the virtual machine to the 445*d5c09012SAndroid Build Coastguard Worker // application container. 446*d5c09012SAndroid Build Coastguard Worker // Only applicable in the App Engine flexible environment. 447*d5c09012SAndroid Build Coastguard Worker repeated string forwarded_ports = 1; 448*d5c09012SAndroid Build Coastguard Worker 449*d5c09012SAndroid Build Coastguard Worker // Tag to apply to the instance during creation. 450*d5c09012SAndroid Build Coastguard Worker // Only applicable in the App Engine flexible environment. 451*d5c09012SAndroid Build Coastguard Worker string instance_tag = 2; 452*d5c09012SAndroid Build Coastguard Worker 453*d5c09012SAndroid Build Coastguard Worker // Google Compute Engine network where the virtual machines are created. 454*d5c09012SAndroid Build Coastguard Worker // Specify the short name, not the resource path. 455*d5c09012SAndroid Build Coastguard Worker // 456*d5c09012SAndroid Build Coastguard Worker // Defaults to `default`. 457*d5c09012SAndroid Build Coastguard Worker string name = 3; 458*d5c09012SAndroid Build Coastguard Worker 459*d5c09012SAndroid Build Coastguard Worker // Google Cloud Platform sub-network where the virtual machines are created. 460*d5c09012SAndroid Build Coastguard Worker // Specify the short name, not the resource path. 461*d5c09012SAndroid Build Coastguard Worker // 462*d5c09012SAndroid Build Coastguard Worker // If a subnetwork name is specified, a network name will also be required 463*d5c09012SAndroid Build Coastguard Worker // unless it is for the default network. 464*d5c09012SAndroid Build Coastguard Worker // 465*d5c09012SAndroid Build Coastguard Worker // * If the network that the instance is being created in is a Legacy network, 466*d5c09012SAndroid Build Coastguard Worker // then the IP address is allocated from the IPv4Range. 467*d5c09012SAndroid Build Coastguard Worker // * If the network that the instance is being created in is an auto Subnet 468*d5c09012SAndroid Build Coastguard Worker // Mode Network, then only network name should be specified (not the 469*d5c09012SAndroid Build Coastguard Worker // subnetwork_name) and the IP address is created from the IPCidrRange of the 470*d5c09012SAndroid Build Coastguard Worker // subnetwork that exists in that zone for that network. 471*d5c09012SAndroid Build Coastguard Worker // * If the network that the instance is being created in is a custom Subnet 472*d5c09012SAndroid Build Coastguard Worker // Mode Network, then the subnetwork_name must be specified and the 473*d5c09012SAndroid Build Coastguard Worker // IP address is created from the IPCidrRange of the subnetwork. 474*d5c09012SAndroid Build Coastguard Worker // 475*d5c09012SAndroid Build Coastguard Worker // If specified, the subnetwork must exist in the same region as the 476*d5c09012SAndroid Build Coastguard Worker // App Engine flexible environment application. 477*d5c09012SAndroid Build Coastguard Worker string subnetwork_name = 4; 478*d5c09012SAndroid Build Coastguard Worker 479*d5c09012SAndroid Build Coastguard Worker // Enable session affinity. 480*d5c09012SAndroid Build Coastguard Worker // Only applicable in the App Engine flexible environment. 481*d5c09012SAndroid Build Coastguard Worker bool session_affinity = 5; 482*d5c09012SAndroid Build Coastguard Worker} 483*d5c09012SAndroid Build Coastguard Worker 484*d5c09012SAndroid Build Coastguard Worker// Volumes mounted within the app container. 485*d5c09012SAndroid Build Coastguard Worker// Only applicable in the App Engine flexible environment. 486*d5c09012SAndroid Build Coastguard Workermessage Volume { 487*d5c09012SAndroid Build Coastguard Worker // Unique name for the volume. 488*d5c09012SAndroid Build Coastguard Worker string name = 1; 489*d5c09012SAndroid Build Coastguard Worker 490*d5c09012SAndroid Build Coastguard Worker // Underlying volume type, e.g. 'tmpfs'. 491*d5c09012SAndroid Build Coastguard Worker string volume_type = 2; 492*d5c09012SAndroid Build Coastguard Worker 493*d5c09012SAndroid Build Coastguard Worker // Volume size in gigabytes. 494*d5c09012SAndroid Build Coastguard Worker double size_gb = 3; 495*d5c09012SAndroid Build Coastguard Worker} 496*d5c09012SAndroid Build Coastguard Worker 497*d5c09012SAndroid Build Coastguard Worker// Machine resources for a version. 498*d5c09012SAndroid Build Coastguard Workermessage Resources { 499*d5c09012SAndroid Build Coastguard Worker // Number of CPU cores needed. 500*d5c09012SAndroid Build Coastguard Worker double cpu = 1; 501*d5c09012SAndroid Build Coastguard Worker 502*d5c09012SAndroid Build Coastguard Worker // Disk size (GB) needed. 503*d5c09012SAndroid Build Coastguard Worker double disk_gb = 2; 504*d5c09012SAndroid Build Coastguard Worker 505*d5c09012SAndroid Build Coastguard Worker // Memory (GB) needed. 506*d5c09012SAndroid Build Coastguard Worker double memory_gb = 3; 507*d5c09012SAndroid Build Coastguard Worker 508*d5c09012SAndroid Build Coastguard Worker // User specified volumes. 509*d5c09012SAndroid Build Coastguard Worker repeated Volume volumes = 4; 510*d5c09012SAndroid Build Coastguard Worker 511*d5c09012SAndroid Build Coastguard Worker // The name of the encryption key that is stored in Google Cloud KMS. 512*d5c09012SAndroid Build Coastguard Worker // Only should be used by Cloud Composer to encrypt the vm disk 513*d5c09012SAndroid Build Coastguard Worker string kms_key_reference = 5; 514*d5c09012SAndroid Build Coastguard Worker} 515*d5c09012SAndroid Build Coastguard Worker 516*d5c09012SAndroid Build Coastguard Worker// Available inbound services. 517*d5c09012SAndroid Build Coastguard Workerenum InboundServiceType { 518*d5c09012SAndroid Build Coastguard Worker // Not specified. 519*d5c09012SAndroid Build Coastguard Worker INBOUND_SERVICE_UNSPECIFIED = 0; 520*d5c09012SAndroid Build Coastguard Worker 521*d5c09012SAndroid Build Coastguard Worker // Allows an application to receive mail. 522*d5c09012SAndroid Build Coastguard Worker INBOUND_SERVICE_MAIL = 1; 523*d5c09012SAndroid Build Coastguard Worker 524*d5c09012SAndroid Build Coastguard Worker // Allows an application to receive email-bound notifications. 525*d5c09012SAndroid Build Coastguard Worker INBOUND_SERVICE_MAIL_BOUNCE = 2; 526*d5c09012SAndroid Build Coastguard Worker 527*d5c09012SAndroid Build Coastguard Worker // Allows an application to receive error stanzas. 528*d5c09012SAndroid Build Coastguard Worker INBOUND_SERVICE_XMPP_ERROR = 3; 529*d5c09012SAndroid Build Coastguard Worker 530*d5c09012SAndroid Build Coastguard Worker // Allows an application to receive instant messages. 531*d5c09012SAndroid Build Coastguard Worker INBOUND_SERVICE_XMPP_MESSAGE = 4; 532*d5c09012SAndroid Build Coastguard Worker 533*d5c09012SAndroid Build Coastguard Worker // Allows an application to receive user subscription POSTs. 534*d5c09012SAndroid Build Coastguard Worker INBOUND_SERVICE_XMPP_SUBSCRIBE = 5; 535*d5c09012SAndroid Build Coastguard Worker 536*d5c09012SAndroid Build Coastguard Worker // Allows an application to receive a user's chat presence. 537*d5c09012SAndroid Build Coastguard Worker INBOUND_SERVICE_XMPP_PRESENCE = 6; 538*d5c09012SAndroid Build Coastguard Worker 539*d5c09012SAndroid Build Coastguard Worker // Registers an application for notifications when a client connects or 540*d5c09012SAndroid Build Coastguard Worker // disconnects from a channel. 541*d5c09012SAndroid Build Coastguard Worker INBOUND_SERVICE_CHANNEL_PRESENCE = 7; 542*d5c09012SAndroid Build Coastguard Worker 543*d5c09012SAndroid Build Coastguard Worker // Enables warmup requests. 544*d5c09012SAndroid Build Coastguard Worker INBOUND_SERVICE_WARMUP = 9; 545*d5c09012SAndroid Build Coastguard Worker} 546*d5c09012SAndroid Build Coastguard Worker 547*d5c09012SAndroid Build Coastguard Worker// Run states of a version. 548*d5c09012SAndroid Build Coastguard Workerenum ServingStatus { 549*d5c09012SAndroid Build Coastguard Worker // Not specified. 550*d5c09012SAndroid Build Coastguard Worker SERVING_STATUS_UNSPECIFIED = 0; 551*d5c09012SAndroid Build Coastguard Worker 552*d5c09012SAndroid Build Coastguard Worker // Currently serving. Instances are created according to the 553*d5c09012SAndroid Build Coastguard Worker // scaling settings of the version. 554*d5c09012SAndroid Build Coastguard Worker SERVING = 1; 555*d5c09012SAndroid Build Coastguard Worker 556*d5c09012SAndroid Build Coastguard Worker // Disabled. No instances will be created and the scaling 557*d5c09012SAndroid Build Coastguard Worker // settings are ignored until the state of the version changes 558*d5c09012SAndroid Build Coastguard Worker // to `SERVING`. 559*d5c09012SAndroid Build Coastguard Worker STOPPED = 2; 560*d5c09012SAndroid Build Coastguard Worker} 561*d5c09012SAndroid Build Coastguard Worker 562*d5c09012SAndroid Build Coastguard Worker// VPC access connector specification. 563*d5c09012SAndroid Build Coastguard Workermessage VpcAccessConnector { 564*d5c09012SAndroid Build Coastguard Worker // Available egress settings. 565*d5c09012SAndroid Build Coastguard Worker // 566*d5c09012SAndroid Build Coastguard Worker // This controls what traffic is diverted through the VPC Access Connector 567*d5c09012SAndroid Build Coastguard Worker // resource. By default PRIVATE_IP_RANGES will be used. 568*d5c09012SAndroid Build Coastguard Worker enum EgressSetting { 569*d5c09012SAndroid Build Coastguard Worker EGRESS_SETTING_UNSPECIFIED = 0; 570*d5c09012SAndroid Build Coastguard Worker 571*d5c09012SAndroid Build Coastguard Worker // Force the use of VPC Access for all egress traffic from the function. 572*d5c09012SAndroid Build Coastguard Worker ALL_TRAFFIC = 1; 573*d5c09012SAndroid Build Coastguard Worker 574*d5c09012SAndroid Build Coastguard Worker // Use the VPC Access Connector for private IP space from RFC1918. 575*d5c09012SAndroid Build Coastguard Worker PRIVATE_IP_RANGES = 2; 576*d5c09012SAndroid Build Coastguard Worker } 577*d5c09012SAndroid Build Coastguard Worker 578*d5c09012SAndroid Build Coastguard Worker // Full Serverless VPC Access Connector name e.g. 579*d5c09012SAndroid Build Coastguard Worker // /projects/my-project/locations/us-central1/connectors/c1. 580*d5c09012SAndroid Build Coastguard Worker string name = 1; 581*d5c09012SAndroid Build Coastguard Worker 582*d5c09012SAndroid Build Coastguard Worker // The egress setting for the connector, controlling what traffic is diverted 583*d5c09012SAndroid Build Coastguard Worker // through it. 584*d5c09012SAndroid Build Coastguard Worker EgressSetting egress_setting = 2; 585*d5c09012SAndroid Build Coastguard Worker} 586*d5c09012SAndroid Build Coastguard Worker 587*d5c09012SAndroid Build Coastguard Worker// The entrypoint for the application. 588*d5c09012SAndroid Build Coastguard Workermessage Entrypoint { 589*d5c09012SAndroid Build Coastguard Worker // The command to run. 590*d5c09012SAndroid Build Coastguard Worker oneof command { 591*d5c09012SAndroid Build Coastguard Worker // The format should be a shell command that can be fed to `bash -c`. 592*d5c09012SAndroid Build Coastguard Worker string shell = 1; 593*d5c09012SAndroid Build Coastguard Worker } 594*d5c09012SAndroid Build Coastguard Worker} 595