1// Copyright 2023 The ChromiumOS Authors 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5syntax = "proto3"; 6 7package chromiumos.test.api; 8 9option go_package = "go.chromium.org/chromiumos/config/go/test/api"; 10 11import "google/protobuf/duration.proto"; 12import "google/protobuf/timestamp.proto"; 13 14// NEXT TAG: 13 15message VMRequirements { 16 string gce_image = 1; 17 string gce_region = 2; 18 string gce_project = 3; 19 20 // Networking-related params 21 string gce_network = 4; 22 string gce_subnet = 5; 23 bool subnet_mode_network_enabled = 11; 24 25 string gce_machine_type = 6; 26 string gce_scope = 7; 27 // Specified IP address for VM. If not, use ephemeral IP. 28 string gce_ip_address = 8; 29 int64 gce_disk_size = 10; 30 string gce_min_cpu_platform = 12; 31 32 VMType type = 9; 33} 34 35// VMType specifies the type of VM that is requested and will be created. 36enum VMType { 37 VM_TYPE_UNSPECIFIED = 0; 38 VM_TYPE_DUT = 1; 39 VM_TYPE_DRONE = 2; 40} 41 42message HardwareRequirements { 43 message LabelValues { 44 repeated string values = 1; 45 } 46 47 // A map for schedulable labels used to request a matching device. 48 map<string, LabelValues> schedulable_labels = 1; 49} 50 51message ExtendLeaseRequest { 52 // Original lease_id obtained when the lease was created. 53 string lease_id = 1; 54 55 // Important to configure a good lifetime max for leases can not be extended 56 // indefinitely. It is also important to ensure same limits as those for 57 // LeaseDeviceRequest.duration or LeaseVMRequest.duration. 58 google.protobuf.Duration extend_duration = 2; 59 60 // Generated on the client side, shared across retries but pseudo-unique 61 // across different logical requests. Requests with the same key will be 62 // treated as duplicate of original request, return the same response. 63 string idempotency_key = 3; 64} 65 66message ExtendLeaseResponse { 67 string lease_id = 1; 68 google.protobuf.Timestamp expiration_time = 2; 69} 70