blob: 131b42eee45ebed91c1914bdbe936cedf38330c0 [file] [log] [blame]
// Copyright 2016 The Android Open Source Project
//
// 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 = "proto2";
package acloud.internal.proto;
// Hold configurations from user.
message UserConfig {
// Account information for accessing Cloud API
optional string service_account_name = 1;
optional string service_account_private_key_path = 2;
// Compute Engine project name
optional string project = 3;
// Compute Engine zone name, e.g. "us-central1-f"
optional string zone = 4;
optional string machine_type = 5;
// Compute Engine network name, e.g. "default"
optional string network = 6;
// SSH key configuration
optional string ssh_private_key_path = 7;
optional string ssh_public_key_path = 8;
// Storage configuration
optional string storage_bucket_name = 9;
// Desired orientation, e.g. 'portrait' or 'landscape'
optional string orientation = 10;
// Desired resolution
optional string resolution = 11;
// Size of extra data disk.
optional int32 extra_data_disk_size_gb = 12;
// Metadata for creating Compute Engine instance
map <string, string> metadata_variable = 13;
// client_id and client secret are required when user authenticates via
// Oauth2 flow with their user account (not service account).
// * They are created in the cloud project console -> API manager.
// * They are used to authorize the app to talk to the cloud project
// on behalf of the user.
// * They by themselves do not authenticate the user.
// * They are stored as plain text in the configuration file so they are
// not that secret. Generally, we should not share it with people we
// don't trust.
// * All users talking to the same cloud project can share the same
// client_id and client_secret.
optional string client_id = 14;
optional string client_secret = 15;
// [CVD only] The name of the stable host image released by Cloud Android team
optional string stable_host_image_name = 16;
// [CVD only] The project that the stable host image is released to
optional string stable_host_image_project = 17;
// [GOLDFISH only] The name of the stable host image released by Android
// Emulator (emu-dev) team
optional string stable_goldfish_host_image_name = 18;
// [GOLDFISH only] The project that the stable goldfish host image is
// released to (emu-dev-cts)
optional string stable_goldfish_host_image_project = 19;
// Account information for accessing Cloud API
// This is the new way to provide service account auth.
optional string service_account_json_private_key_path = 20;
// Desired hw_property
optional string hw_property = 21;
// [CHEEPS only] The name of the stable host image released by the ARC
// (arc-eng) team
optional string stable_cheeps_host_image_name = 22;
// [CHEEPS only] The project that the stable host image is released to
optional string stable_cheeps_host_image_project = 23;
// [CVD only] It will get passed into the launch_cvd command if not empty.
// In version 0.7.2 and later.
optional string launch_args = 24;
// The pattern of the instance name, e.g. ins-{uuid}-{build_id}-{build_target}
// the parts in {} will be automatically replaced with the actual value if
// you specify them in the pattern, uuid will be automatically generated.
optional string instance_name_pattern = 25;
// List of scopes that will be given to the instance
// https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances#changeserviceaccountandscopes
repeated string extra_scopes = 26;
}