xref: /aosp_15_r20/external/googleapis/google/cloud/oslogin/v1beta/oslogin.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 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.cloud.oslogin.v1beta;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/annotations.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/oslogin/common/common.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto";
25*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto";
26*d5c09012SAndroid Build Coastguard Worker
27*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.OsLogin.V1Beta";
28*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/oslogin/apiv1beta/osloginpb;osloginpb";
29*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
30*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "OsLoginProto";
31*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.oslogin.v1beta";
32*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\OsLogin\\V1beta";
33*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::OsLogin::V1beta";
34*d5c09012SAndroid Build Coastguard Worker
35*d5c09012SAndroid Build Coastguard Worker// Cloud OS Login API
36*d5c09012SAndroid Build Coastguard Worker//
37*d5c09012SAndroid Build Coastguard Worker// The Cloud OS Login API allows you to manage users and their associated SSH
38*d5c09012SAndroid Build Coastguard Worker// public keys for logging into virtual machines on Google Cloud Platform.
39*d5c09012SAndroid Build Coastguard Workerservice OsLoginService {
40*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "oslogin.googleapis.com";
41*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
42*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform,"
43*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform.read-only,"
44*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/compute,"
45*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/compute.readonly";
46*d5c09012SAndroid Build Coastguard Worker
47*d5c09012SAndroid Build Coastguard Worker  // Create an SSH public key
48*d5c09012SAndroid Build Coastguard Worker  rpc CreateSshPublicKey(CreateSshPublicKeyRequest)
49*d5c09012SAndroid Build Coastguard Worker      returns (google.cloud.oslogin.common.SshPublicKey) {
50*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
51*d5c09012SAndroid Build Coastguard Worker      post: "/v1beta/{parent=users/*}/sshPublicKeys"
52*d5c09012SAndroid Build Coastguard Worker      body: "ssh_public_key"
53*d5c09012SAndroid Build Coastguard Worker    };
54*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,ssh_public_key";
55*d5c09012SAndroid Build Coastguard Worker  }
56*d5c09012SAndroid Build Coastguard Worker
57*d5c09012SAndroid Build Coastguard Worker  // Deletes a POSIX account.
58*d5c09012SAndroid Build Coastguard Worker  rpc DeletePosixAccount(DeletePosixAccountRequest)
59*d5c09012SAndroid Build Coastguard Worker      returns (google.protobuf.Empty) {
60*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
61*d5c09012SAndroid Build Coastguard Worker      delete: "/v1beta/{name=users/*/projects/*}"
62*d5c09012SAndroid Build Coastguard Worker    };
63*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
64*d5c09012SAndroid Build Coastguard Worker  }
65*d5c09012SAndroid Build Coastguard Worker
66*d5c09012SAndroid Build Coastguard Worker  // Deletes an SSH public key.
67*d5c09012SAndroid Build Coastguard Worker  rpc DeleteSshPublicKey(DeleteSshPublicKeyRequest)
68*d5c09012SAndroid Build Coastguard Worker      returns (google.protobuf.Empty) {
69*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
70*d5c09012SAndroid Build Coastguard Worker      delete: "/v1beta/{name=users/*/sshPublicKeys/*}"
71*d5c09012SAndroid Build Coastguard Worker    };
72*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
73*d5c09012SAndroid Build Coastguard Worker  }
74*d5c09012SAndroid Build Coastguard Worker
75*d5c09012SAndroid Build Coastguard Worker  // Retrieves the profile information used for logging in to a virtual machine
76*d5c09012SAndroid Build Coastguard Worker  // on Google Compute Engine.
77*d5c09012SAndroid Build Coastguard Worker  rpc GetLoginProfile(GetLoginProfileRequest) returns (LoginProfile) {
78*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
79*d5c09012SAndroid Build Coastguard Worker      get: "/v1beta/{name=users/*}/loginProfile"
80*d5c09012SAndroid Build Coastguard Worker    };
81*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
82*d5c09012SAndroid Build Coastguard Worker  }
83*d5c09012SAndroid Build Coastguard Worker
84*d5c09012SAndroid Build Coastguard Worker  // Retrieves an SSH public key.
85*d5c09012SAndroid Build Coastguard Worker  rpc GetSshPublicKey(GetSshPublicKeyRequest)
86*d5c09012SAndroid Build Coastguard Worker      returns (google.cloud.oslogin.common.SshPublicKey) {
87*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
88*d5c09012SAndroid Build Coastguard Worker      get: "/v1beta/{name=users/*/sshPublicKeys/*}"
89*d5c09012SAndroid Build Coastguard Worker    };
90*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
91*d5c09012SAndroid Build Coastguard Worker  }
92*d5c09012SAndroid Build Coastguard Worker
93*d5c09012SAndroid Build Coastguard Worker  // Adds an SSH public key and returns the profile information. Default POSIX
94*d5c09012SAndroid Build Coastguard Worker  // account information is set when no username and UID exist as part of the
95*d5c09012SAndroid Build Coastguard Worker  // login profile.
96*d5c09012SAndroid Build Coastguard Worker  rpc ImportSshPublicKey(ImportSshPublicKeyRequest)
97*d5c09012SAndroid Build Coastguard Worker      returns (ImportSshPublicKeyResponse) {
98*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
99*d5c09012SAndroid Build Coastguard Worker      post: "/v1beta/{parent=users/*}:importSshPublicKey"
100*d5c09012SAndroid Build Coastguard Worker      body: "ssh_public_key"
101*d5c09012SAndroid Build Coastguard Worker    };
102*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,ssh_public_key";
103*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,ssh_public_key,project_id";
104*d5c09012SAndroid Build Coastguard Worker  }
105*d5c09012SAndroid Build Coastguard Worker
106*d5c09012SAndroid Build Coastguard Worker  // Updates an SSH public key and returns the profile information. This method
107*d5c09012SAndroid Build Coastguard Worker  // supports patch semantics.
108*d5c09012SAndroid Build Coastguard Worker  rpc UpdateSshPublicKey(UpdateSshPublicKeyRequest)
109*d5c09012SAndroid Build Coastguard Worker      returns (google.cloud.oslogin.common.SshPublicKey) {
110*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
111*d5c09012SAndroid Build Coastguard Worker      patch: "/v1beta/{name=users/*/sshPublicKeys/*}"
112*d5c09012SAndroid Build Coastguard Worker      body: "ssh_public_key"
113*d5c09012SAndroid Build Coastguard Worker    };
114*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name,ssh_public_key";
115*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name,ssh_public_key,update_mask";
116*d5c09012SAndroid Build Coastguard Worker  }
117*d5c09012SAndroid Build Coastguard Worker
118*d5c09012SAndroid Build Coastguard Worker  // Signs an SSH public key for a user to authenticate to an instance.
119*d5c09012SAndroid Build Coastguard Worker  rpc SignSshPublicKey(SignSshPublicKeyRequest)
120*d5c09012SAndroid Build Coastguard Worker      returns (SignSshPublicKeyResponse) {
121*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
122*d5c09012SAndroid Build Coastguard Worker      post: "/v1beta/{parent=users/*/projects/*/zones/*}:signSshPublicKey"
123*d5c09012SAndroid Build Coastguard Worker      body: "*"
124*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
125*d5c09012SAndroid Build Coastguard Worker        post: "/v1beta/{parent=users/*/projects/*/locations/*}:signSshPublicKey"
126*d5c09012SAndroid Build Coastguard Worker        body: "*"
127*d5c09012SAndroid Build Coastguard Worker      }
128*d5c09012SAndroid Build Coastguard Worker    };
129*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,ssh_public_key";
130*d5c09012SAndroid Build Coastguard Worker  }
131*d5c09012SAndroid Build Coastguard Worker}
132*d5c09012SAndroid Build Coastguard Worker
133*d5c09012SAndroid Build Coastguard Worker// The user profile information used for logging in to a virtual machine on
134*d5c09012SAndroid Build Coastguard Worker// Google Compute Engine.
135*d5c09012SAndroid Build Coastguard Workermessage LoginProfile {
136*d5c09012SAndroid Build Coastguard Worker  // Required. A unique user ID.
137*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = REQUIRED];
138*d5c09012SAndroid Build Coastguard Worker
139*d5c09012SAndroid Build Coastguard Worker  // The list of POSIX accounts associated with the user.
140*d5c09012SAndroid Build Coastguard Worker  repeated google.cloud.oslogin.common.PosixAccount posix_accounts = 2;
141*d5c09012SAndroid Build Coastguard Worker
142*d5c09012SAndroid Build Coastguard Worker  // A map from SSH public key fingerprint to the associated key object.
143*d5c09012SAndroid Build Coastguard Worker  map<string, google.cloud.oslogin.common.SshPublicKey> ssh_public_keys = 3;
144*d5c09012SAndroid Build Coastguard Worker
145*d5c09012SAndroid Build Coastguard Worker  // The registered security key credentials for a user.
146*d5c09012SAndroid Build Coastguard Worker  repeated SecurityKey security_keys = 5;
147*d5c09012SAndroid Build Coastguard Worker}
148*d5c09012SAndroid Build Coastguard Worker
149*d5c09012SAndroid Build Coastguard Worker// A request message for creating an SSH public key.
150*d5c09012SAndroid Build Coastguard Workermessage CreateSshPublicKeyRequest {
151*d5c09012SAndroid Build Coastguard Worker  // Required. The unique ID for the user in format `users/{user}`.
152*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
153*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
154*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
155*d5c09012SAndroid Build Coastguard Worker      child_type: "oslogin.googleapis.com/SshPublicKey"
156*d5c09012SAndroid Build Coastguard Worker    }
157*d5c09012SAndroid Build Coastguard Worker  ];
158*d5c09012SAndroid Build Coastguard Worker
159*d5c09012SAndroid Build Coastguard Worker  // Required. The SSH public key and expiration time.
160*d5c09012SAndroid Build Coastguard Worker  google.cloud.oslogin.common.SshPublicKey ssh_public_key = 2
161*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = REQUIRED];
162*d5c09012SAndroid Build Coastguard Worker}
163*d5c09012SAndroid Build Coastguard Worker
164*d5c09012SAndroid Build Coastguard Worker// A request message for deleting a POSIX account entry.
165*d5c09012SAndroid Build Coastguard Workermessage DeletePosixAccountRequest {
166*d5c09012SAndroid Build Coastguard Worker  // Required. A reference to the POSIX account to update. POSIX accounts are
167*d5c09012SAndroid Build Coastguard Worker  // identified by the project ID they are associated with. A reference to the
168*d5c09012SAndroid Build Coastguard Worker  // POSIX account is in format `users/{user}/projects/{project}`.
169*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
170*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
171*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
172*d5c09012SAndroid Build Coastguard Worker      type: "oslogin.googleapis.com/PosixAccount"
173*d5c09012SAndroid Build Coastguard Worker    }
174*d5c09012SAndroid Build Coastguard Worker  ];
175*d5c09012SAndroid Build Coastguard Worker}
176*d5c09012SAndroid Build Coastguard Worker
177*d5c09012SAndroid Build Coastguard Worker// A request message for deleting an SSH public key.
178*d5c09012SAndroid Build Coastguard Workermessage DeleteSshPublicKeyRequest {
179*d5c09012SAndroid Build Coastguard Worker  // Required. The fingerprint of the public key to update. Public keys are
180*d5c09012SAndroid Build Coastguard Worker  // identified by their SHA-256 fingerprint. The fingerprint of the public key
181*d5c09012SAndroid Build Coastguard Worker  // is in format `users/{user}/sshPublicKeys/{fingerprint}`.
182*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
183*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
184*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
185*d5c09012SAndroid Build Coastguard Worker      type: "oslogin.googleapis.com/SshPublicKey"
186*d5c09012SAndroid Build Coastguard Worker    }
187*d5c09012SAndroid Build Coastguard Worker  ];
188*d5c09012SAndroid Build Coastguard Worker}
189*d5c09012SAndroid Build Coastguard Worker
190*d5c09012SAndroid Build Coastguard Worker// A request message for retrieving the login profile information for a user.
191*d5c09012SAndroid Build Coastguard Workermessage GetLoginProfileRequest {
192*d5c09012SAndroid Build Coastguard Worker  // Required. The unique ID for the user in format `users/{user}`.
193*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
194*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
195*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "oslogin.googleapis.com/User" }
196*d5c09012SAndroid Build Coastguard Worker  ];
197*d5c09012SAndroid Build Coastguard Worker
198*d5c09012SAndroid Build Coastguard Worker  // The project ID of the Google Cloud Platform project.
199*d5c09012SAndroid Build Coastguard Worker  string project_id = 2;
200*d5c09012SAndroid Build Coastguard Worker
201*d5c09012SAndroid Build Coastguard Worker  // A system ID for filtering the results of the request.
202*d5c09012SAndroid Build Coastguard Worker  string system_id = 3;
203*d5c09012SAndroid Build Coastguard Worker
204*d5c09012SAndroid Build Coastguard Worker  // The view configures whether to retrieve security keys information.
205*d5c09012SAndroid Build Coastguard Worker  LoginProfileView view = 4;
206*d5c09012SAndroid Build Coastguard Worker}
207*d5c09012SAndroid Build Coastguard Worker
208*d5c09012SAndroid Build Coastguard Worker// A request message for retrieving an SSH public key.
209*d5c09012SAndroid Build Coastguard Workermessage GetSshPublicKeyRequest {
210*d5c09012SAndroid Build Coastguard Worker  // Required. The fingerprint of the public key to retrieve. Public keys are
211*d5c09012SAndroid Build Coastguard Worker  // identified by their SHA-256 fingerprint. The fingerprint of the public key
212*d5c09012SAndroid Build Coastguard Worker  // is in format `users/{user}/sshPublicKeys/{fingerprint}`.
213*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
214*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
215*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
216*d5c09012SAndroid Build Coastguard Worker      type: "oslogin.googleapis.com/SshPublicKey"
217*d5c09012SAndroid Build Coastguard Worker    }
218*d5c09012SAndroid Build Coastguard Worker  ];
219*d5c09012SAndroid Build Coastguard Worker}
220*d5c09012SAndroid Build Coastguard Worker
221*d5c09012SAndroid Build Coastguard Worker// A request message for importing an SSH public key.
222*d5c09012SAndroid Build Coastguard Workermessage ImportSshPublicKeyRequest {
223*d5c09012SAndroid Build Coastguard Worker  // The unique ID for the user in format `users/{user}`.
224*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [(google.api.resource_reference) = {
225*d5c09012SAndroid Build Coastguard Worker    child_type: "oslogin.googleapis.com/SshPublicKey"
226*d5c09012SAndroid Build Coastguard Worker  }];
227*d5c09012SAndroid Build Coastguard Worker
228*d5c09012SAndroid Build Coastguard Worker  // Required. The SSH public key and expiration time.
229*d5c09012SAndroid Build Coastguard Worker  google.cloud.oslogin.common.SshPublicKey ssh_public_key = 2
230*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = REQUIRED];
231*d5c09012SAndroid Build Coastguard Worker
232*d5c09012SAndroid Build Coastguard Worker  // The project ID of the Google Cloud Platform project.
233*d5c09012SAndroid Build Coastguard Worker  string project_id = 3;
234*d5c09012SAndroid Build Coastguard Worker
235*d5c09012SAndroid Build Coastguard Worker  // The view configures whether to retrieve security keys information.
236*d5c09012SAndroid Build Coastguard Worker  LoginProfileView view = 4;
237*d5c09012SAndroid Build Coastguard Worker
238*d5c09012SAndroid Build Coastguard Worker  // Optional. The regions to which to assert that the key was written.
239*d5c09012SAndroid Build Coastguard Worker  // If unspecified, defaults to all regions.
240*d5c09012SAndroid Build Coastguard Worker  // Regions are listed at https://cloud.google.com/about/locations#region.
241*d5c09012SAndroid Build Coastguard Worker  repeated string regions = 5 [(google.api.field_behavior) = OPTIONAL];
242*d5c09012SAndroid Build Coastguard Worker}
243*d5c09012SAndroid Build Coastguard Worker
244*d5c09012SAndroid Build Coastguard Worker// A response message for importing an SSH public key.
245*d5c09012SAndroid Build Coastguard Workermessage ImportSshPublicKeyResponse {
246*d5c09012SAndroid Build Coastguard Worker  // The login profile information for the user.
247*d5c09012SAndroid Build Coastguard Worker  LoginProfile login_profile = 1;
248*d5c09012SAndroid Build Coastguard Worker
249*d5c09012SAndroid Build Coastguard Worker  // Detailed information about import results.
250*d5c09012SAndroid Build Coastguard Worker  string details = 2;
251*d5c09012SAndroid Build Coastguard Worker}
252*d5c09012SAndroid Build Coastguard Worker
253*d5c09012SAndroid Build Coastguard Worker// A request message for updating an SSH public key.
254*d5c09012SAndroid Build Coastguard Workermessage UpdateSshPublicKeyRequest {
255*d5c09012SAndroid Build Coastguard Worker  // Required. The fingerprint of the public key to update. Public keys are
256*d5c09012SAndroid Build Coastguard Worker  // identified by their SHA-256 fingerprint. The fingerprint of the public key
257*d5c09012SAndroid Build Coastguard Worker  // is in format `users/{user}/sshPublicKeys/{fingerprint}`.
258*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
259*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
260*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
261*d5c09012SAndroid Build Coastguard Worker      type: "oslogin.googleapis.com/SshPublicKey"
262*d5c09012SAndroid Build Coastguard Worker    }
263*d5c09012SAndroid Build Coastguard Worker  ];
264*d5c09012SAndroid Build Coastguard Worker
265*d5c09012SAndroid Build Coastguard Worker  // Required. The SSH public key and expiration time.
266*d5c09012SAndroid Build Coastguard Worker  google.cloud.oslogin.common.SshPublicKey ssh_public_key = 2
267*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = REQUIRED];
268*d5c09012SAndroid Build Coastguard Worker
269*d5c09012SAndroid Build Coastguard Worker  // Mask to control which fields get updated. Updates all if not present.
270*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 3;
271*d5c09012SAndroid Build Coastguard Worker}
272*d5c09012SAndroid Build Coastguard Worker
273*d5c09012SAndroid Build Coastguard Worker// The credential information for a Google registered security key.
274*d5c09012SAndroid Build Coastguard Workermessage SecurityKey {
275*d5c09012SAndroid Build Coastguard Worker  // Public key text in SSH format, defined by
276*d5c09012SAndroid Build Coastguard Worker  // [RFC4253]("https://www.ietf.org/rfc/rfc4253.txt") section 6.6.
277*d5c09012SAndroid Build Coastguard Worker  string public_key = 1;
278*d5c09012SAndroid Build Coastguard Worker
279*d5c09012SAndroid Build Coastguard Worker  // Hardware-backed private key text in SSH format.
280*d5c09012SAndroid Build Coastguard Worker  string private_key = 2;
281*d5c09012SAndroid Build Coastguard Worker
282*d5c09012SAndroid Build Coastguard Worker  // The FIDO protocol type used to register this credential.
283*d5c09012SAndroid Build Coastguard Worker  oneof protocol_type {
284*d5c09012SAndroid Build Coastguard Worker    // The U2F protocol type.
285*d5c09012SAndroid Build Coastguard Worker    UniversalTwoFactor universal_two_factor = 3;
286*d5c09012SAndroid Build Coastguard Worker
287*d5c09012SAndroid Build Coastguard Worker    // The Web Authentication protocol type.
288*d5c09012SAndroid Build Coastguard Worker    WebAuthn web_authn = 4;
289*d5c09012SAndroid Build Coastguard Worker  }
290*d5c09012SAndroid Build Coastguard Worker
291*d5c09012SAndroid Build Coastguard Worker  // The security key nickname explicitly set by the user.
292*d5c09012SAndroid Build Coastguard Worker  optional string device_nickname = 5;
293*d5c09012SAndroid Build Coastguard Worker}
294*d5c09012SAndroid Build Coastguard Worker
295*d5c09012SAndroid Build Coastguard Worker// Security key information specific to the U2F protocol.
296*d5c09012SAndroid Build Coastguard Workermessage UniversalTwoFactor {
297*d5c09012SAndroid Build Coastguard Worker  // Application ID for the U2F protocol.
298*d5c09012SAndroid Build Coastguard Worker  string app_id = 1;
299*d5c09012SAndroid Build Coastguard Worker}
300*d5c09012SAndroid Build Coastguard Worker
301*d5c09012SAndroid Build Coastguard Worker// Security key information specific to the Web Authentication protocol.
302*d5c09012SAndroid Build Coastguard Workermessage WebAuthn {
303*d5c09012SAndroid Build Coastguard Worker  // Relying party ID for Web Authentication.
304*d5c09012SAndroid Build Coastguard Worker  string rp_id = 1;
305*d5c09012SAndroid Build Coastguard Worker}
306*d5c09012SAndroid Build Coastguard Worker
307*d5c09012SAndroid Build Coastguard Workermessage SignSshPublicKeyRequest {
308*d5c09012SAndroid Build Coastguard Worker  // The SSH public key to sign.
309*d5c09012SAndroid Build Coastguard Worker  string ssh_public_key = 1;
310*d5c09012SAndroid Build Coastguard Worker
311*d5c09012SAndroid Build Coastguard Worker  // The parent project and zone for the signing request. This is needed to
312*d5c09012SAndroid Build Coastguard Worker  // properly ensure per-organization ISS processing and potentially to provide
313*d5c09012SAndroid Build Coastguard Worker  // for the possibility of zone-specific certificates used in the signing
314*d5c09012SAndroid Build Coastguard Worker  // process.
315*d5c09012SAndroid Build Coastguard Worker  string parent = 2;
316*d5c09012SAndroid Build Coastguard Worker}
317*d5c09012SAndroid Build Coastguard Worker
318*d5c09012SAndroid Build Coastguard Workermessage SignSshPublicKeyResponse {
319*d5c09012SAndroid Build Coastguard Worker  // The signed SSH public key to use in the SSH handshake.
320*d5c09012SAndroid Build Coastguard Worker  string signed_ssh_public_key = 1;
321*d5c09012SAndroid Build Coastguard Worker}
322*d5c09012SAndroid Build Coastguard Worker
323*d5c09012SAndroid Build Coastguard Worker// The login profile view limits the user content retrieved.
324*d5c09012SAndroid Build Coastguard Workerenum LoginProfileView {
325*d5c09012SAndroid Build Coastguard Worker  // The default login profile view. The API defaults to the BASIC view.
326*d5c09012SAndroid Build Coastguard Worker  LOGIN_PROFILE_VIEW_UNSPECIFIED = 0;
327*d5c09012SAndroid Build Coastguard Worker
328*d5c09012SAndroid Build Coastguard Worker  // Includes POSIX and SSH key information.
329*d5c09012SAndroid Build Coastguard Worker  BASIC = 1;
330*d5c09012SAndroid Build Coastguard Worker
331*d5c09012SAndroid Build Coastguard Worker  // Include security key information for the user.
332*d5c09012SAndroid Build Coastguard Worker  SECURITY_KEY = 2;
333*d5c09012SAndroid Build Coastguard Worker}
334