chromium/remoting/proto/google/internal/remoting/cloud/v1alpha/remote_access_service.proto

// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto3";

option optimize_for = LITE_RUNTIME;

package google.internal.remoting.cloud.v1alpha;

import "service_account_info.proto";

// Creates a new remote access host instance in the Directory.
message ProvisionGceInstanceRequest {
  // The email address of the user to associate the new remote access host
  // instance with. This value is also used to determine if the user has
  // permission to access the Instance remotely based on the GCP Project
  // metadata associated with it.
  string owner_email = 1;

  // This value is used to provide the initial 'display_name' value which is
  // shown in the website client UI.
  string display_name = 2;

  // Public key for the host. Must be a 2048-bit RSA key encoded with Base64.
  bytes public_key = 3;

  // Version of the start-host utility being used for provisioning.
  string version = 4;

  // An optional value which, if provided, is used to remove a previous host
  // instance from the machine. Prior to deleting `existing_directory_id`, the
  // backend will validate the other fields in the request and ensure
  // `owner_email` owns the previous instance as well.
  optional string existing_directory_id = 5;
}

// The response to a ProvisionGceInstanceRequest.
message ProvisionGceInstanceResponse {
  // The UUID of the new remote access host instance in the Directory.
  string directory_id = 1;

  // The email address and authorization_code for the service account created
  // for the new remote access host instance.
  ServiceAccountInfo service_account_info = 2;
}