1// Copyright 2016 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto2"; 16 17package acloud.internal.proto; 18 19// Hold configurations from user. 20message UserConfig { 21 // Account information for accessing Cloud API 22 optional string service_account_name = 1; 23 optional string service_account_private_key_path = 2; 24 25 // Compute Engine project name 26 optional string project = 3; 27 // Compute Engine zone name, e.g. "us-central1-f" 28 optional string zone = 4; 29 optional string machine_type = 5; 30 // Compute Engine network name, e.g. "default" 31 optional string network = 6; 32 33 // SSH key configuration 34 optional string ssh_private_key_path = 7; 35 optional string ssh_public_key_path = 8; 36 37 // Storage configuration 38 optional string storage_bucket_name = 9; 39 40 // Desired orientation, e.g. 'portrait' or 'landscape' 41 optional string orientation = 10; 42 // Desired resolution 43 optional string resolution = 11; 44 // Size of extra data disk. 45 optional int32 extra_data_disk_size_gb = 12; 46 // Metadata for creating Compute Engine instance 47 map <string, string> metadata_variable = 13; 48 49 // client_id and client secret are required when user authenticates via 50 // Oauth2 flow with their user account (not service account). 51 // * They are created in the cloud project console -> API manager. 52 // * They are used to authorize the app to talk to the cloud project 53 // on behalf of the user. 54 // * They by themselves do not authenticate the user. 55 // * They are stored as plain text in the configuration file so they are 56 // not that secret. Generally, we should not share it with people we 57 // don't trust. 58 // * All users talking to the same cloud project can share the same 59 // client_id and client_secret. 60 optional string client_id = 14; 61 optional string client_secret = 15; 62 63 // [CVD only] The name of the stable host image released by Cloud Android team 64 optional string stable_host_image_name = 16; 65 // [CVD only] The name of the host image family released by Cloud Android team 66 optional string stable_host_image_family = 17; 67 // [CVD only] The project that the stable host image is released to 68 optional string stable_host_image_project = 18; 69 70 // [GOLDFISH only] The name of the stable host image released by Android 71 // Emulator (emu-dev) team 72 optional string stable_goldfish_host_image_name = 19; 73 // [GOLDFISH only] The project that the stable goldfish host image is 74 // released to (emu-dev-cts) 75 76 optional string stable_goldfish_host_image_project = 20; 77 78 // Account information for accessing Cloud API 79 // This is the new way to provide service account auth. 80 optional string service_account_json_private_key_path = 21; 81 82 // Desired hw_property 83 optional string hw_property = 22; 84 85 // [CHEEPS only] The name of the stable host image released by the ARC 86 // (arc-eng) team 87 optional string stable_cheeps_host_image_name = 23; 88 // [CHEEPS only] The project that the stable host image is released to 89 optional string stable_cheeps_host_image_project = 24; 90 91 // [CVD only] It will get passed into the launch_cvd command if not empty. 92 // In version 0.7.2 and later. 93 optional string launch_args = 25; 94 95 // The pattern of the instance name, e.g. ins-{uuid}-{build_id}-{build_target} 96 // the parts in {} will be automatically replaced with the actual value if 97 // you specify them in the pattern, uuid will be automatically generated. 98 optional string instance_name_pattern = 26; 99 100 // List of scopes that will be given to the instance 101 // https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances#changeserviceaccountandscopes 102 repeated string extra_scopes = 27; 103 104 // Provide some additional parameters to build the ssh tunnel. 105 optional string extra_args_ssh_tunnel = 28; 106 107 // [CVD only] Version of fetch_cvd to use. 108 optional string fetch_cvd_version = 29; 109 110 // [CVD only] Enable multi stage function. 111 optional bool enable_multi_stage = 30; 112 113 // [CHEEPS only] The name of the L1 betty image (used with Cheeps controller) 114 optional string betty_image = 31; 115 116 // [Oxygen only] The OAuth Credentials of API key. 117 optional string api_key = 32; 118 119 // [Oxygen only] The API service url. 120 optional string api_url = 33; 121 122 // [Oxygen only] The client to call oxygen api. 123 optional string oxygen_client = 34; 124 125 // [Oxygen only] The args append to lease command. 126 optional string oxygen_lease_args = 35; 127 128 // Storage options of created GCP instance, e.g. pd-standard, pd-ssd. 129 optional string disk_type = 36; 130} 131