1*d5c09012SAndroid Build Coastguard Worker// Copyright 2017 Google Inc. 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.v1alpha; 18*d5c09012SAndroid Build Coastguard Worker 19*d5c09012SAndroid Build Coastguard Workerimport "google/api/annotations.proto"; 20*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/oslogin/common/common.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto"; 22*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto"; 23*d5c09012SAndroid Build Coastguard Worker 24*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.OsLogin.V1Alpha"; 25*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/oslogin/apiv1alpha/osloginpb;osloginpb"; 26*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 27*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "OsLoginProto"; 28*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.oslogin.v1alpha"; 29*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\OsLogin\\V1alpha"; 30*d5c09012SAndroid Build Coastguard Worker 31*d5c09012SAndroid Build Coastguard Worker// Cloud OS Login API 32*d5c09012SAndroid Build Coastguard Worker// 33*d5c09012SAndroid Build Coastguard Worker// The Cloud OS Login API allows you to manage users and their associated SSH 34*d5c09012SAndroid Build Coastguard Worker// public keys for logging into virtual machines on Google Cloud Platform. 35*d5c09012SAndroid Build Coastguard Workerservice OsLoginService { 36*d5c09012SAndroid Build Coastguard Worker // Deletes a POSIX account. 37*d5c09012SAndroid Build Coastguard Worker rpc DeletePosixAccount(DeletePosixAccountRequest) 38*d5c09012SAndroid Build Coastguard Worker returns (google.protobuf.Empty) { 39*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 40*d5c09012SAndroid Build Coastguard Worker delete: "/v1alpha/{name=users/*/projects/*}" 41*d5c09012SAndroid Build Coastguard Worker }; 42*d5c09012SAndroid Build Coastguard Worker } 43*d5c09012SAndroid Build Coastguard Worker 44*d5c09012SAndroid Build Coastguard Worker // Deletes an SSH public key. 45*d5c09012SAndroid Build Coastguard Worker rpc DeleteSshPublicKey(DeleteSshPublicKeyRequest) 46*d5c09012SAndroid Build Coastguard Worker returns (google.protobuf.Empty) { 47*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 48*d5c09012SAndroid Build Coastguard Worker delete: "/v1alpha/{name=users/*/sshPublicKeys/*}" 49*d5c09012SAndroid Build Coastguard Worker }; 50*d5c09012SAndroid Build Coastguard Worker } 51*d5c09012SAndroid Build Coastguard Worker 52*d5c09012SAndroid Build Coastguard Worker // Retrieves the profile information used for logging in to a virtual machine 53*d5c09012SAndroid Build Coastguard Worker // on Google Compute Engine. 54*d5c09012SAndroid Build Coastguard Worker rpc GetLoginProfile(GetLoginProfileRequest) returns (LoginProfile) { 55*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 56*d5c09012SAndroid Build Coastguard Worker get: "/v1alpha/{name=users/*}/loginProfile" 57*d5c09012SAndroid Build Coastguard Worker }; 58*d5c09012SAndroid Build Coastguard Worker } 59*d5c09012SAndroid Build Coastguard Worker 60*d5c09012SAndroid Build Coastguard Worker // Retrieves an SSH public key. 61*d5c09012SAndroid Build Coastguard Worker rpc GetSshPublicKey(GetSshPublicKeyRequest) 62*d5c09012SAndroid Build Coastguard Worker returns (google.cloud.oslogin.common.SshPublicKey) { 63*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 64*d5c09012SAndroid Build Coastguard Worker get: "/v1alpha/{name=users/*/sshPublicKeys/*}" 65*d5c09012SAndroid Build Coastguard Worker }; 66*d5c09012SAndroid Build Coastguard Worker } 67*d5c09012SAndroid Build Coastguard Worker 68*d5c09012SAndroid Build Coastguard Worker // Adds an SSH public key and returns the profile information. Default POSIX 69*d5c09012SAndroid Build Coastguard Worker // account information is set when no username and UID exist as part of the 70*d5c09012SAndroid Build Coastguard Worker // login profile. 71*d5c09012SAndroid Build Coastguard Worker rpc ImportSshPublicKey(ImportSshPublicKeyRequest) 72*d5c09012SAndroid Build Coastguard Worker returns (ImportSshPublicKeyResponse) { 73*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 74*d5c09012SAndroid Build Coastguard Worker post: "/v1alpha/{parent=users/*}:importSshPublicKey" 75*d5c09012SAndroid Build Coastguard Worker body: "ssh_public_key" 76*d5c09012SAndroid Build Coastguard Worker }; 77*d5c09012SAndroid Build Coastguard Worker } 78*d5c09012SAndroid Build Coastguard Worker 79*d5c09012SAndroid Build Coastguard Worker // Updates an SSH public key and returns the profile information. This method 80*d5c09012SAndroid Build Coastguard Worker // supports patch semantics. 81*d5c09012SAndroid Build Coastguard Worker rpc UpdateSshPublicKey(UpdateSshPublicKeyRequest) 82*d5c09012SAndroid Build Coastguard Worker returns (google.cloud.oslogin.common.SshPublicKey) { 83*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 84*d5c09012SAndroid Build Coastguard Worker patch: "/v1alpha/{name=users/*/sshPublicKeys/*}" 85*d5c09012SAndroid Build Coastguard Worker body: "ssh_public_key" 86*d5c09012SAndroid Build Coastguard Worker }; 87*d5c09012SAndroid Build Coastguard Worker } 88*d5c09012SAndroid Build Coastguard Worker} 89*d5c09012SAndroid Build Coastguard Worker 90*d5c09012SAndroid Build Coastguard Worker// The user profile information used for logging in to a virtual machine on 91*d5c09012SAndroid Build Coastguard Worker// Google Compute Engine. 92*d5c09012SAndroid Build Coastguard Workermessage LoginProfile { 93*d5c09012SAndroid Build Coastguard Worker // A unique user ID for identifying the user. 94*d5c09012SAndroid Build Coastguard Worker string name = 1; 95*d5c09012SAndroid Build Coastguard Worker 96*d5c09012SAndroid Build Coastguard Worker // The list of POSIX accounts associated with the Directory API user. 97*d5c09012SAndroid Build Coastguard Worker repeated google.cloud.oslogin.common.PosixAccount posix_accounts = 2; 98*d5c09012SAndroid Build Coastguard Worker 99*d5c09012SAndroid Build Coastguard Worker // A map from SSH public key fingerprint to the associated key object. 100*d5c09012SAndroid Build Coastguard Worker map<string, google.cloud.oslogin.common.SshPublicKey> ssh_public_keys = 3; 101*d5c09012SAndroid Build Coastguard Worker 102*d5c09012SAndroid Build Coastguard Worker // Indicates if the user is suspended. 103*d5c09012SAndroid Build Coastguard Worker bool suspended = 4; 104*d5c09012SAndroid Build Coastguard Worker} 105*d5c09012SAndroid Build Coastguard Worker 106*d5c09012SAndroid Build Coastguard Worker// A request message for deleting a POSIX account entry. 107*d5c09012SAndroid Build Coastguard Workermessage DeletePosixAccountRequest { 108*d5c09012SAndroid Build Coastguard Worker // A reference to the POSIX account to update. POSIX accounts are identified 109*d5c09012SAndroid Build Coastguard Worker // by the project ID they are associated with. A reference to the POSIX 110*d5c09012SAndroid Build Coastguard Worker // account is in format `users/{user}/projects/{project}`. 111*d5c09012SAndroid Build Coastguard Worker string name = 1; 112*d5c09012SAndroid Build Coastguard Worker} 113*d5c09012SAndroid Build Coastguard Worker 114*d5c09012SAndroid Build Coastguard Worker// A request message for deleting an SSH public key. 115*d5c09012SAndroid Build Coastguard Workermessage DeleteSshPublicKeyRequest { 116*d5c09012SAndroid Build Coastguard Worker // The fingerprint of the public key to update. Public keys are identified by 117*d5c09012SAndroid Build Coastguard Worker // their SHA-256 fingerprint. The fingerprint of the public key is in format 118*d5c09012SAndroid Build Coastguard Worker // `users/{user}/sshPublicKeys/{fingerprint}`. 119*d5c09012SAndroid Build Coastguard Worker string name = 1; 120*d5c09012SAndroid Build Coastguard Worker} 121*d5c09012SAndroid Build Coastguard Worker 122*d5c09012SAndroid Build Coastguard Worker// A request message for retrieving the login profile information for a user. 123*d5c09012SAndroid Build Coastguard Workermessage GetLoginProfileRequest { 124*d5c09012SAndroid Build Coastguard Worker // The unique ID for the user in format `users/{user}`. 125*d5c09012SAndroid Build Coastguard Worker string name = 1; 126*d5c09012SAndroid Build Coastguard Worker} 127*d5c09012SAndroid Build Coastguard Worker 128*d5c09012SAndroid Build Coastguard Worker// A request message for retrieving an SSH public key. 129*d5c09012SAndroid Build Coastguard Workermessage GetSshPublicKeyRequest { 130*d5c09012SAndroid Build Coastguard Worker // The fingerprint of the public key to retrieve. Public keys are identified 131*d5c09012SAndroid Build Coastguard Worker // by their SHA-256 fingerprint. The fingerprint of the public key is in 132*d5c09012SAndroid Build Coastguard Worker // format `users/{user}/sshPublicKeys/{fingerprint}`. 133*d5c09012SAndroid Build Coastguard Worker string name = 1; 134*d5c09012SAndroid Build Coastguard Worker} 135*d5c09012SAndroid Build Coastguard Worker 136*d5c09012SAndroid Build Coastguard Worker// A request message for importing an SSH public key. 137*d5c09012SAndroid Build Coastguard Workermessage ImportSshPublicKeyRequest { 138*d5c09012SAndroid Build Coastguard Worker // The unique ID for the user in format `users/{user}`. 139*d5c09012SAndroid Build Coastguard Worker string parent = 1; 140*d5c09012SAndroid Build Coastguard Worker 141*d5c09012SAndroid Build Coastguard Worker // The SSH public key and expiration time. 142*d5c09012SAndroid Build Coastguard Worker google.cloud.oslogin.common.SshPublicKey ssh_public_key = 2; 143*d5c09012SAndroid Build Coastguard Worker 144*d5c09012SAndroid Build Coastguard Worker // The project ID of the Google Cloud Platform project. 145*d5c09012SAndroid Build Coastguard Worker string project_id = 3; 146*d5c09012SAndroid Build Coastguard Worker} 147*d5c09012SAndroid Build Coastguard Worker 148*d5c09012SAndroid Build Coastguard Worker// A response message for importing an SSH public key. 149*d5c09012SAndroid Build Coastguard Workermessage ImportSshPublicKeyResponse { 150*d5c09012SAndroid Build Coastguard Worker // The login profile information for the user. 151*d5c09012SAndroid Build Coastguard Worker LoginProfile login_profile = 1; 152*d5c09012SAndroid Build Coastguard Worker} 153*d5c09012SAndroid Build Coastguard Worker 154*d5c09012SAndroid Build Coastguard Worker// A request message for updating an SSH public key. 155*d5c09012SAndroid Build Coastguard Workermessage UpdateSshPublicKeyRequest { 156*d5c09012SAndroid Build Coastguard Worker // The fingerprint of the public key to update. Public keys are identified by 157*d5c09012SAndroid Build Coastguard Worker // their SHA-256 fingerprint. The fingerprint of the public key is in format 158*d5c09012SAndroid Build Coastguard Worker // `users/{user}/sshPublicKeys/{fingerprint}`. 159*d5c09012SAndroid Build Coastguard Worker string name = 1; 160*d5c09012SAndroid Build Coastguard Worker 161*d5c09012SAndroid Build Coastguard Worker // The SSH public key and expiration time. 162*d5c09012SAndroid Build Coastguard Worker google.cloud.oslogin.common.SshPublicKey ssh_public_key = 2; 163*d5c09012SAndroid Build Coastguard Worker 164*d5c09012SAndroid Build Coastguard Worker // Mask to control which fields get updated. Updates all if not present. 165*d5c09012SAndroid Build Coastguard Worker google.protobuf.FieldMask update_mask = 3; 166*d5c09012SAndroid Build Coastguard Worker} 167