1// Copyright 2021 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package oslogin provides access to the Cloud OS Login API.
8//
9// This package is DEPRECATED. Use package cloud.google.com/go/oslogin/apiv1 instead.
10//
11// For product documentation, see: https://cloud.google.com/compute/docs/oslogin/
12//
13// Creating a client
14//
15// Usage example:
16//
17//   import "google.golang.org/api/oslogin/v1"
18//   ...
19//   ctx := context.Background()
20//   osloginService, err := oslogin.NewService(ctx)
21//
22// In this example, Google Application Default Credentials are used for authentication.
23//
24// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
25//
26// Other authentication options
27//
28// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
29//
30//   osloginService, err := oslogin.NewService(ctx, option.WithScopes(oslogin.ComputeScope))
31//
32// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
33//
34//   osloginService, err := oslogin.NewService(ctx, option.WithAPIKey("AIza..."))
35//
36// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
37//
38//   config := &oauth2.Config{...}
39//   // ...
40//   token, err := config.Exchange(ctx, ...)
41//   osloginService, err := oslogin.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
42//
43// See https://godoc.org/google.golang.org/api/option/ for details on options.
44package oslogin // import "google.golang.org/api/oslogin/v1"
45
46import (
47	"bytes"
48	"context"
49	"encoding/json"
50	"errors"
51	"fmt"
52	"io"
53	"net/http"
54	"net/url"
55	"strconv"
56	"strings"
57
58	googleapi "google.golang.org/api/googleapi"
59	gensupport "google.golang.org/api/internal/gensupport"
60	option "google.golang.org/api/option"
61	internaloption "google.golang.org/api/option/internaloption"
62	htransport "google.golang.org/api/transport/http"
63)
64
65// Always reference these packages, just in case the auto-generated code
66// below doesn't.
67var _ = bytes.NewBuffer
68var _ = strconv.Itoa
69var _ = fmt.Sprintf
70var _ = json.NewDecoder
71var _ = io.Copy
72var _ = url.Parse
73var _ = gensupport.MarshalJSON
74var _ = googleapi.Version
75var _ = errors.New
76var _ = strings.Replace
77var _ = context.Canceled
78var _ = internaloption.WithDefaultEndpoint
79
80const apiId = "oslogin:v1"
81const apiName = "oslogin"
82const apiVersion = "v1"
83const basePath = "https://oslogin.googleapis.com/"
84const mtlsBasePath = "https://oslogin.mtls.googleapis.com/"
85
86// OAuth2 scopes used by this API.
87const (
88	// See, edit, configure, and delete your Google Cloud Platform data
89	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
90
91	// View and manage your Google Compute Engine resources
92	ComputeScope = "https://www.googleapis.com/auth/compute"
93)
94
95// NewService creates a new Service.
96func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
97	scopesOption := option.WithScopes(
98		"https://www.googleapis.com/auth/cloud-platform",
99		"https://www.googleapis.com/auth/compute",
100	)
101	// NOTE: prepend, so we don't override user-specified scopes.
102	opts = append([]option.ClientOption{scopesOption}, opts...)
103	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
104	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
105	client, endpoint, err := htransport.NewClient(ctx, opts...)
106	if err != nil {
107		return nil, err
108	}
109	s, err := New(client)
110	if err != nil {
111		return nil, err
112	}
113	if endpoint != "" {
114		s.BasePath = endpoint
115	}
116	return s, nil
117}
118
119// New creates a new Service. It uses the provided http.Client for requests.
120//
121// Deprecated: please use NewService instead.
122// To provide a custom HTTP client, use option.WithHTTPClient.
123// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
124func New(client *http.Client) (*Service, error) {
125	if client == nil {
126		return nil, errors.New("client is nil")
127	}
128	s := &Service{client: client, BasePath: basePath}
129	s.Users = NewUsersService(s)
130	return s, nil
131}
132
133type Service struct {
134	client    *http.Client
135	BasePath  string // API endpoint base URL
136	UserAgent string // optional additional User-Agent fragment
137
138	Users *UsersService
139}
140
141func (s *Service) userAgent() string {
142	if s.UserAgent == "" {
143		return googleapi.UserAgent
144	}
145	return googleapi.UserAgent + " " + s.UserAgent
146}
147
148func NewUsersService(s *Service) *UsersService {
149	rs := &UsersService{s: s}
150	rs.Projects = NewUsersProjectsService(s)
151	rs.SshPublicKeys = NewUsersSshPublicKeysService(s)
152	return rs
153}
154
155type UsersService struct {
156	s *Service
157
158	Projects *UsersProjectsService
159
160	SshPublicKeys *UsersSshPublicKeysService
161}
162
163func NewUsersProjectsService(s *Service) *UsersProjectsService {
164	rs := &UsersProjectsService{s: s}
165	return rs
166}
167
168type UsersProjectsService struct {
169	s *Service
170}
171
172func NewUsersSshPublicKeysService(s *Service) *UsersSshPublicKeysService {
173	rs := &UsersSshPublicKeysService{s: s}
174	return rs
175}
176
177type UsersSshPublicKeysService struct {
178	s *Service
179}
180
181// Empty: A generic empty message that you can re-use to avoid defining
182// duplicated empty messages in your APIs. A typical example is to use
183// it as the request or the response type of an API method. For
184// instance: service Foo { rpc Bar(google.protobuf.Empty) returns
185// (google.protobuf.Empty); } The JSON representation for `Empty` is
186// empty JSON object `{}`.
187type Empty struct {
188	// ServerResponse contains the HTTP response code and headers from the
189	// server.
190	googleapi.ServerResponse `json:"-"`
191}
192
193// ImportSshPublicKeyResponse: A response message for importing an SSH
194// public key.
195type ImportSshPublicKeyResponse struct {
196	// Details: Detailed information about import results.
197	Details string `json:"details,omitempty"`
198
199	// LoginProfile: The login profile information for the user.
200	LoginProfile *LoginProfile `json:"loginProfile,omitempty"`
201
202	// ServerResponse contains the HTTP response code and headers from the
203	// server.
204	googleapi.ServerResponse `json:"-"`
205
206	// ForceSendFields is a list of field names (e.g. "Details") to
207	// unconditionally include in API requests. By default, fields with
208	// empty or default values are omitted from API requests. However, any
209	// non-pointer, non-interface field appearing in ForceSendFields will be
210	// sent to the server regardless of whether the field is empty or not.
211	// This may be used to include empty fields in Patch requests.
212	ForceSendFields []string `json:"-"`
213
214	// NullFields is a list of field names (e.g. "Details") to include in
215	// API requests with the JSON null value. By default, fields with empty
216	// values are omitted from API requests. However, any field with an
217	// empty value appearing in NullFields will be sent to the server as
218	// null. It is an error if a field in this list has a non-empty value.
219	// This may be used to include null fields in Patch requests.
220	NullFields []string `json:"-"`
221}
222
223func (s *ImportSshPublicKeyResponse) MarshalJSON() ([]byte, error) {
224	type NoMethod ImportSshPublicKeyResponse
225	raw := NoMethod(*s)
226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
227}
228
229// LoginProfile: The user profile information used for logging in to a
230// virtual machine on Google Compute Engine.
231type LoginProfile struct {
232	// Name: Required. A unique user ID.
233	Name string `json:"name,omitempty"`
234
235	// PosixAccounts: The list of POSIX accounts associated with the user.
236	PosixAccounts []*PosixAccount `json:"posixAccounts,omitempty"`
237
238	// SshPublicKeys: A map from SSH public key fingerprint to the
239	// associated key object.
240	SshPublicKeys map[string]SshPublicKey `json:"sshPublicKeys,omitempty"`
241
242	// ServerResponse contains the HTTP response code and headers from the
243	// server.
244	googleapi.ServerResponse `json:"-"`
245
246	// ForceSendFields is a list of field names (e.g. "Name") to
247	// unconditionally include in API requests. By default, fields with
248	// empty or default values are omitted from API requests. However, any
249	// non-pointer, non-interface field appearing in ForceSendFields will be
250	// sent to the server regardless of whether the field is empty or not.
251	// This may be used to include empty fields in Patch requests.
252	ForceSendFields []string `json:"-"`
253
254	// NullFields is a list of field names (e.g. "Name") to include in API
255	// requests with the JSON null value. By default, fields with empty
256	// values are omitted from API requests. However, any field with an
257	// empty value appearing in NullFields will be sent to the server as
258	// null. It is an error if a field in this list has a non-empty value.
259	// This may be used to include null fields in Patch requests.
260	NullFields []string `json:"-"`
261}
262
263func (s *LoginProfile) MarshalJSON() ([]byte, error) {
264	type NoMethod LoginProfile
265	raw := NoMethod(*s)
266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
267}
268
269// PosixAccount: The POSIX account information associated with a Google
270// account.
271type PosixAccount struct {
272	// AccountId: Output only. A POSIX account identifier.
273	AccountId string `json:"accountId,omitempty"`
274
275	// Gecos: The GECOS (user information) entry for this account.
276	Gecos string `json:"gecos,omitempty"`
277
278	// Gid: The default group ID.
279	Gid int64 `json:"gid,omitempty,string"`
280
281	// HomeDirectory: The path to the home directory for this account.
282	HomeDirectory string `json:"homeDirectory,omitempty"`
283
284	// Name: Output only. The canonical resource name.
285	Name string `json:"name,omitempty"`
286
287	// OperatingSystemType: The operating system type where this account
288	// applies.
289	//
290	// Possible values:
291	//   "OPERATING_SYSTEM_TYPE_UNSPECIFIED" - The operating system type
292	// associated with the user account information is unspecified.
293	//   "LINUX" - Linux user account information.
294	//   "WINDOWS" - Windows user account information.
295	OperatingSystemType string `json:"operatingSystemType,omitempty"`
296
297	// Primary: Only one POSIX account can be marked as primary.
298	Primary bool `json:"primary,omitempty"`
299
300	// Shell: The path to the logic shell for this account.
301	Shell string `json:"shell,omitempty"`
302
303	// SystemId: System identifier for which account the username or uid
304	// applies to. By default, the empty value is used.
305	SystemId string `json:"systemId,omitempty"`
306
307	// Uid: The user ID.
308	Uid int64 `json:"uid,omitempty,string"`
309
310	// Username: The username of the POSIX account.
311	Username string `json:"username,omitempty"`
312
313	// ForceSendFields is a list of field names (e.g. "AccountId") to
314	// unconditionally include in API requests. By default, fields with
315	// empty or default values are omitted from API requests. However, any
316	// non-pointer, non-interface field appearing in ForceSendFields will be
317	// sent to the server regardless of whether the field is empty or not.
318	// This may be used to include empty fields in Patch requests.
319	ForceSendFields []string `json:"-"`
320
321	// NullFields is a list of field names (e.g. "AccountId") to include in
322	// API requests with the JSON null value. By default, fields with empty
323	// values are omitted from API requests. However, any field with an
324	// empty value appearing in NullFields will be sent to the server as
325	// null. It is an error if a field in this list has a non-empty value.
326	// This may be used to include null fields in Patch requests.
327	NullFields []string `json:"-"`
328}
329
330func (s *PosixAccount) MarshalJSON() ([]byte, error) {
331	type NoMethod PosixAccount
332	raw := NoMethod(*s)
333	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
334}
335
336// SshPublicKey: The SSH public key information associated with a Google
337// account.
338type SshPublicKey struct {
339	// ExpirationTimeUsec: An expiration time in microseconds since epoch.
340	ExpirationTimeUsec int64 `json:"expirationTimeUsec,omitempty,string"`
341
342	// Fingerprint: Output only. The SHA-256 fingerprint of the SSH public
343	// key.
344	Fingerprint string `json:"fingerprint,omitempty"`
345
346	// Key: Public key text in SSH format, defined by RFC4253 section 6.6.
347	Key string `json:"key,omitempty"`
348
349	// Name: Output only. The canonical resource name.
350	Name string `json:"name,omitempty"`
351
352	// ServerResponse contains the HTTP response code and headers from the
353	// server.
354	googleapi.ServerResponse `json:"-"`
355
356	// ForceSendFields is a list of field names (e.g. "ExpirationTimeUsec")
357	// to unconditionally include in API requests. By default, fields with
358	// empty or default values are omitted from API requests. However, any
359	// non-pointer, non-interface field appearing in ForceSendFields will be
360	// sent to the server regardless of whether the field is empty or not.
361	// This may be used to include empty fields in Patch requests.
362	ForceSendFields []string `json:"-"`
363
364	// NullFields is a list of field names (e.g. "ExpirationTimeUsec") to
365	// include in API requests with the JSON null value. By default, fields
366	// with empty values are omitted from API requests. However, any field
367	// with an empty value appearing in NullFields will be sent to the
368	// server as null. It is an error if a field in this list has a
369	// non-empty value. This may be used to include null fields in Patch
370	// requests.
371	NullFields []string `json:"-"`
372}
373
374func (s *SshPublicKey) MarshalJSON() ([]byte, error) {
375	type NoMethod SshPublicKey
376	raw := NoMethod(*s)
377	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
378}
379
380// method id "oslogin.users.getLoginProfile":
381
382type UsersGetLoginProfileCall struct {
383	s            *Service
384	name         string
385	urlParams_   gensupport.URLParams
386	ifNoneMatch_ string
387	ctx_         context.Context
388	header_      http.Header
389}
390
391// GetLoginProfile: Retrieves the profile information used for logging
392// in to a virtual machine on Google Compute Engine.
393//
394// - name: The unique ID for the user in format `users/{user}`.
395func (r *UsersService) GetLoginProfile(name string) *UsersGetLoginProfileCall {
396	c := &UsersGetLoginProfileCall{s: r.s, urlParams_: make(gensupport.URLParams)}
397	c.name = name
398	return c
399}
400
401// ProjectId sets the optional parameter "projectId": The project ID of
402// the Google Cloud Platform project.
403func (c *UsersGetLoginProfileCall) ProjectId(projectId string) *UsersGetLoginProfileCall {
404	c.urlParams_.Set("projectId", projectId)
405	return c
406}
407
408// SystemId sets the optional parameter "systemId": A system ID for
409// filtering the results of the request.
410func (c *UsersGetLoginProfileCall) SystemId(systemId string) *UsersGetLoginProfileCall {
411	c.urlParams_.Set("systemId", systemId)
412	return c
413}
414
415// Fields allows partial responses to be retrieved. See
416// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
417// for more information.
418func (c *UsersGetLoginProfileCall) Fields(s ...googleapi.Field) *UsersGetLoginProfileCall {
419	c.urlParams_.Set("fields", googleapi.CombineFields(s))
420	return c
421}
422
423// IfNoneMatch sets the optional parameter which makes the operation
424// fail if the object's ETag matches the given value. This is useful for
425// getting updates only after the object has changed since the last
426// request. Use googleapi.IsNotModified to check whether the response
427// error from Do is the result of In-None-Match.
428func (c *UsersGetLoginProfileCall) IfNoneMatch(entityTag string) *UsersGetLoginProfileCall {
429	c.ifNoneMatch_ = entityTag
430	return c
431}
432
433// Context sets the context to be used in this call's Do method. Any
434// pending HTTP request will be aborted if the provided context is
435// canceled.
436func (c *UsersGetLoginProfileCall) Context(ctx context.Context) *UsersGetLoginProfileCall {
437	c.ctx_ = ctx
438	return c
439}
440
441// Header returns an http.Header that can be modified by the caller to
442// add HTTP headers to the request.
443func (c *UsersGetLoginProfileCall) Header() http.Header {
444	if c.header_ == nil {
445		c.header_ = make(http.Header)
446	}
447	return c.header_
448}
449
450func (c *UsersGetLoginProfileCall) doRequest(alt string) (*http.Response, error) {
451	reqHeaders := make(http.Header)
452	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
453	for k, v := range c.header_ {
454		reqHeaders[k] = v
455	}
456	reqHeaders.Set("User-Agent", c.s.userAgent())
457	if c.ifNoneMatch_ != "" {
458		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
459	}
460	var body io.Reader = nil
461	c.urlParams_.Set("alt", alt)
462	c.urlParams_.Set("prettyPrint", "false")
463	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/loginProfile")
464	urls += "?" + c.urlParams_.Encode()
465	req, err := http.NewRequest("GET", urls, body)
466	if err != nil {
467		return nil, err
468	}
469	req.Header = reqHeaders
470	googleapi.Expand(req.URL, map[string]string{
471		"name": c.name,
472	})
473	return gensupport.SendRequest(c.ctx_, c.s.client, req)
474}
475
476// Do executes the "oslogin.users.getLoginProfile" call.
477// Exactly one of *LoginProfile or error will be non-nil. Any non-2xx
478// status code is an error. Response headers are in either
479// *LoginProfile.ServerResponse.Header or (if a response was returned at
480// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
481// to check whether the returned error was because
482// http.StatusNotModified was returned.
483func (c *UsersGetLoginProfileCall) Do(opts ...googleapi.CallOption) (*LoginProfile, error) {
484	gensupport.SetOptions(c.urlParams_, opts...)
485	res, err := c.doRequest("json")
486	if res != nil && res.StatusCode == http.StatusNotModified {
487		if res.Body != nil {
488			res.Body.Close()
489		}
490		return nil, &googleapi.Error{
491			Code:   res.StatusCode,
492			Header: res.Header,
493		}
494	}
495	if err != nil {
496		return nil, err
497	}
498	defer googleapi.CloseBody(res)
499	if err := googleapi.CheckResponse(res); err != nil {
500		return nil, err
501	}
502	ret := &LoginProfile{
503		ServerResponse: googleapi.ServerResponse{
504			Header:         res.Header,
505			HTTPStatusCode: res.StatusCode,
506		},
507	}
508	target := &ret
509	if err := gensupport.DecodeResponse(target, res); err != nil {
510		return nil, err
511	}
512	return ret, nil
513	// {
514	//   "description": "Retrieves the profile information used for logging in to a virtual machine on Google Compute Engine.",
515	//   "flatPath": "v1/users/{usersId}/loginProfile",
516	//   "httpMethod": "GET",
517	//   "id": "oslogin.users.getLoginProfile",
518	//   "parameterOrder": [
519	//     "name"
520	//   ],
521	//   "parameters": {
522	//     "name": {
523	//       "description": "Required. The unique ID for the user in format `users/{user}`.",
524	//       "location": "path",
525	//       "pattern": "^users/[^/]+$",
526	//       "required": true,
527	//       "type": "string"
528	//     },
529	//     "projectId": {
530	//       "description": "The project ID of the Google Cloud Platform project.",
531	//       "location": "query",
532	//       "type": "string"
533	//     },
534	//     "systemId": {
535	//       "description": "A system ID for filtering the results of the request.",
536	//       "location": "query",
537	//       "type": "string"
538	//     }
539	//   },
540	//   "path": "v1/{+name}/loginProfile",
541	//   "response": {
542	//     "$ref": "LoginProfile"
543	//   },
544	//   "scopes": [
545	//     "https://www.googleapis.com/auth/cloud-platform",
546	//     "https://www.googleapis.com/auth/compute"
547	//   ]
548	// }
549
550}
551
552// method id "oslogin.users.importSshPublicKey":
553
554type UsersImportSshPublicKeyCall struct {
555	s            *Service
556	parent       string
557	sshpublickey *SshPublicKey
558	urlParams_   gensupport.URLParams
559	ctx_         context.Context
560	header_      http.Header
561}
562
563// ImportSshPublicKey: Adds an SSH public key and returns the profile
564// information. Default POSIX account information is set when no
565// username and UID exist as part of the login profile.
566//
567// - parent: The unique ID for the user in format `users/{user}`.
568func (r *UsersService) ImportSshPublicKey(parent string, sshpublickey *SshPublicKey) *UsersImportSshPublicKeyCall {
569	c := &UsersImportSshPublicKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
570	c.parent = parent
571	c.sshpublickey = sshpublickey
572	return c
573}
574
575// ProjectId sets the optional parameter "projectId": The project ID of
576// the Google Cloud Platform project.
577func (c *UsersImportSshPublicKeyCall) ProjectId(projectId string) *UsersImportSshPublicKeyCall {
578	c.urlParams_.Set("projectId", projectId)
579	return c
580}
581
582// Fields allows partial responses to be retrieved. See
583// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
584// for more information.
585func (c *UsersImportSshPublicKeyCall) Fields(s ...googleapi.Field) *UsersImportSshPublicKeyCall {
586	c.urlParams_.Set("fields", googleapi.CombineFields(s))
587	return c
588}
589
590// Context sets the context to be used in this call's Do method. Any
591// pending HTTP request will be aborted if the provided context is
592// canceled.
593func (c *UsersImportSshPublicKeyCall) Context(ctx context.Context) *UsersImportSshPublicKeyCall {
594	c.ctx_ = ctx
595	return c
596}
597
598// Header returns an http.Header that can be modified by the caller to
599// add HTTP headers to the request.
600func (c *UsersImportSshPublicKeyCall) Header() http.Header {
601	if c.header_ == nil {
602		c.header_ = make(http.Header)
603	}
604	return c.header_
605}
606
607func (c *UsersImportSshPublicKeyCall) doRequest(alt string) (*http.Response, error) {
608	reqHeaders := make(http.Header)
609	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
610	for k, v := range c.header_ {
611		reqHeaders[k] = v
612	}
613	reqHeaders.Set("User-Agent", c.s.userAgent())
614	var body io.Reader = nil
615	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sshpublickey)
616	if err != nil {
617		return nil, err
618	}
619	reqHeaders.Set("Content-Type", "application/json")
620	c.urlParams_.Set("alt", alt)
621	c.urlParams_.Set("prettyPrint", "false")
622	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}:importSshPublicKey")
623	urls += "?" + c.urlParams_.Encode()
624	req, err := http.NewRequest("POST", urls, body)
625	if err != nil {
626		return nil, err
627	}
628	req.Header = reqHeaders
629	googleapi.Expand(req.URL, map[string]string{
630		"parent": c.parent,
631	})
632	return gensupport.SendRequest(c.ctx_, c.s.client, req)
633}
634
635// Do executes the "oslogin.users.importSshPublicKey" call.
636// Exactly one of *ImportSshPublicKeyResponse or error will be non-nil.
637// Any non-2xx status code is an error. Response headers are in either
638// *ImportSshPublicKeyResponse.ServerResponse.Header or (if a response
639// was returned at all) in error.(*googleapi.Error).Header. Use
640// googleapi.IsNotModified to check whether the returned error was
641// because http.StatusNotModified was returned.
642func (c *UsersImportSshPublicKeyCall) Do(opts ...googleapi.CallOption) (*ImportSshPublicKeyResponse, error) {
643	gensupport.SetOptions(c.urlParams_, opts...)
644	res, err := c.doRequest("json")
645	if res != nil && res.StatusCode == http.StatusNotModified {
646		if res.Body != nil {
647			res.Body.Close()
648		}
649		return nil, &googleapi.Error{
650			Code:   res.StatusCode,
651			Header: res.Header,
652		}
653	}
654	if err != nil {
655		return nil, err
656	}
657	defer googleapi.CloseBody(res)
658	if err := googleapi.CheckResponse(res); err != nil {
659		return nil, err
660	}
661	ret := &ImportSshPublicKeyResponse{
662		ServerResponse: googleapi.ServerResponse{
663			Header:         res.Header,
664			HTTPStatusCode: res.StatusCode,
665		},
666	}
667	target := &ret
668	if err := gensupport.DecodeResponse(target, res); err != nil {
669		return nil, err
670	}
671	return ret, nil
672	// {
673	//   "description": "Adds an SSH public key and returns the profile information. Default POSIX account information is set when no username and UID exist as part of the login profile.",
674	//   "flatPath": "v1/users/{usersId}:importSshPublicKey",
675	//   "httpMethod": "POST",
676	//   "id": "oslogin.users.importSshPublicKey",
677	//   "parameterOrder": [
678	//     "parent"
679	//   ],
680	//   "parameters": {
681	//     "parent": {
682	//       "description": "Required. The unique ID for the user in format `users/{user}`.",
683	//       "location": "path",
684	//       "pattern": "^users/[^/]+$",
685	//       "required": true,
686	//       "type": "string"
687	//     },
688	//     "projectId": {
689	//       "description": "The project ID of the Google Cloud Platform project.",
690	//       "location": "query",
691	//       "type": "string"
692	//     }
693	//   },
694	//   "path": "v1/{+parent}:importSshPublicKey",
695	//   "request": {
696	//     "$ref": "SshPublicKey"
697	//   },
698	//   "response": {
699	//     "$ref": "ImportSshPublicKeyResponse"
700	//   },
701	//   "scopes": [
702	//     "https://www.googleapis.com/auth/cloud-platform",
703	//     "https://www.googleapis.com/auth/compute"
704	//   ]
705	// }
706
707}
708
709// method id "oslogin.users.projects.delete":
710
711type UsersProjectsDeleteCall struct {
712	s          *Service
713	name       string
714	urlParams_ gensupport.URLParams
715	ctx_       context.Context
716	header_    http.Header
717}
718
719// Delete: Deletes a POSIX account.
720//
721// - name: A reference to the POSIX account to update. POSIX accounts
722//   are identified by the project ID they are associated with. A
723//   reference to the POSIX account is in format
724//   `users/{user}/projects/{project}`.
725func (r *UsersProjectsService) Delete(name string) *UsersProjectsDeleteCall {
726	c := &UsersProjectsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
727	c.name = name
728	return c
729}
730
731// Fields allows partial responses to be retrieved. See
732// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
733// for more information.
734func (c *UsersProjectsDeleteCall) Fields(s ...googleapi.Field) *UsersProjectsDeleteCall {
735	c.urlParams_.Set("fields", googleapi.CombineFields(s))
736	return c
737}
738
739// Context sets the context to be used in this call's Do method. Any
740// pending HTTP request will be aborted if the provided context is
741// canceled.
742func (c *UsersProjectsDeleteCall) Context(ctx context.Context) *UsersProjectsDeleteCall {
743	c.ctx_ = ctx
744	return c
745}
746
747// Header returns an http.Header that can be modified by the caller to
748// add HTTP headers to the request.
749func (c *UsersProjectsDeleteCall) Header() http.Header {
750	if c.header_ == nil {
751		c.header_ = make(http.Header)
752	}
753	return c.header_
754}
755
756func (c *UsersProjectsDeleteCall) doRequest(alt string) (*http.Response, error) {
757	reqHeaders := make(http.Header)
758	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
759	for k, v := range c.header_ {
760		reqHeaders[k] = v
761	}
762	reqHeaders.Set("User-Agent", c.s.userAgent())
763	var body io.Reader = nil
764	c.urlParams_.Set("alt", alt)
765	c.urlParams_.Set("prettyPrint", "false")
766	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
767	urls += "?" + c.urlParams_.Encode()
768	req, err := http.NewRequest("DELETE", urls, body)
769	if err != nil {
770		return nil, err
771	}
772	req.Header = reqHeaders
773	googleapi.Expand(req.URL, map[string]string{
774		"name": c.name,
775	})
776	return gensupport.SendRequest(c.ctx_, c.s.client, req)
777}
778
779// Do executes the "oslogin.users.projects.delete" call.
780// Exactly one of *Empty or error will be non-nil. Any non-2xx status
781// code is an error. Response headers are in either
782// *Empty.ServerResponse.Header or (if a response was returned at all)
783// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
784// check whether the returned error was because http.StatusNotModified
785// was returned.
786func (c *UsersProjectsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
787	gensupport.SetOptions(c.urlParams_, opts...)
788	res, err := c.doRequest("json")
789	if res != nil && res.StatusCode == http.StatusNotModified {
790		if res.Body != nil {
791			res.Body.Close()
792		}
793		return nil, &googleapi.Error{
794			Code:   res.StatusCode,
795			Header: res.Header,
796		}
797	}
798	if err != nil {
799		return nil, err
800	}
801	defer googleapi.CloseBody(res)
802	if err := googleapi.CheckResponse(res); err != nil {
803		return nil, err
804	}
805	ret := &Empty{
806		ServerResponse: googleapi.ServerResponse{
807			Header:         res.Header,
808			HTTPStatusCode: res.StatusCode,
809		},
810	}
811	target := &ret
812	if err := gensupport.DecodeResponse(target, res); err != nil {
813		return nil, err
814	}
815	return ret, nil
816	// {
817	//   "description": "Deletes a POSIX account.",
818	//   "flatPath": "v1/users/{usersId}/projects/{projectsId}",
819	//   "httpMethod": "DELETE",
820	//   "id": "oslogin.users.projects.delete",
821	//   "parameterOrder": [
822	//     "name"
823	//   ],
824	//   "parameters": {
825	//     "name": {
826	//       "description": "Required. A reference to the POSIX account to update. POSIX accounts are identified by the project ID they are associated with. A reference to the POSIX account is in format `users/{user}/projects/{project}`.",
827	//       "location": "path",
828	//       "pattern": "^users/[^/]+/projects/[^/]+$",
829	//       "required": true,
830	//       "type": "string"
831	//     }
832	//   },
833	//   "path": "v1/{+name}",
834	//   "response": {
835	//     "$ref": "Empty"
836	//   },
837	//   "scopes": [
838	//     "https://www.googleapis.com/auth/cloud-platform",
839	//     "https://www.googleapis.com/auth/compute"
840	//   ]
841	// }
842
843}
844
845// method id "oslogin.users.sshPublicKeys.delete":
846
847type UsersSshPublicKeysDeleteCall struct {
848	s          *Service
849	name       string
850	urlParams_ gensupport.URLParams
851	ctx_       context.Context
852	header_    http.Header
853}
854
855// Delete: Deletes an SSH public key.
856//
857// - name: The fingerprint of the public key to update. Public keys are
858//   identified by their SHA-256 fingerprint. The fingerprint of the
859//   public key is in format `users/{user}/sshPublicKeys/{fingerprint}`.
860func (r *UsersSshPublicKeysService) Delete(name string) *UsersSshPublicKeysDeleteCall {
861	c := &UsersSshPublicKeysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
862	c.name = name
863	return c
864}
865
866// Fields allows partial responses to be retrieved. See
867// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
868// for more information.
869func (c *UsersSshPublicKeysDeleteCall) Fields(s ...googleapi.Field) *UsersSshPublicKeysDeleteCall {
870	c.urlParams_.Set("fields", googleapi.CombineFields(s))
871	return c
872}
873
874// Context sets the context to be used in this call's Do method. Any
875// pending HTTP request will be aborted if the provided context is
876// canceled.
877func (c *UsersSshPublicKeysDeleteCall) Context(ctx context.Context) *UsersSshPublicKeysDeleteCall {
878	c.ctx_ = ctx
879	return c
880}
881
882// Header returns an http.Header that can be modified by the caller to
883// add HTTP headers to the request.
884func (c *UsersSshPublicKeysDeleteCall) Header() http.Header {
885	if c.header_ == nil {
886		c.header_ = make(http.Header)
887	}
888	return c.header_
889}
890
891func (c *UsersSshPublicKeysDeleteCall) doRequest(alt string) (*http.Response, error) {
892	reqHeaders := make(http.Header)
893	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
894	for k, v := range c.header_ {
895		reqHeaders[k] = v
896	}
897	reqHeaders.Set("User-Agent", c.s.userAgent())
898	var body io.Reader = nil
899	c.urlParams_.Set("alt", alt)
900	c.urlParams_.Set("prettyPrint", "false")
901	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
902	urls += "?" + c.urlParams_.Encode()
903	req, err := http.NewRequest("DELETE", urls, body)
904	if err != nil {
905		return nil, err
906	}
907	req.Header = reqHeaders
908	googleapi.Expand(req.URL, map[string]string{
909		"name": c.name,
910	})
911	return gensupport.SendRequest(c.ctx_, c.s.client, req)
912}
913
914// Do executes the "oslogin.users.sshPublicKeys.delete" call.
915// Exactly one of *Empty or error will be non-nil. Any non-2xx status
916// code is an error. Response headers are in either
917// *Empty.ServerResponse.Header or (if a response was returned at all)
918// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
919// check whether the returned error was because http.StatusNotModified
920// was returned.
921func (c *UsersSshPublicKeysDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
922	gensupport.SetOptions(c.urlParams_, opts...)
923	res, err := c.doRequest("json")
924	if res != nil && res.StatusCode == http.StatusNotModified {
925		if res.Body != nil {
926			res.Body.Close()
927		}
928		return nil, &googleapi.Error{
929			Code:   res.StatusCode,
930			Header: res.Header,
931		}
932	}
933	if err != nil {
934		return nil, err
935	}
936	defer googleapi.CloseBody(res)
937	if err := googleapi.CheckResponse(res); err != nil {
938		return nil, err
939	}
940	ret := &Empty{
941		ServerResponse: googleapi.ServerResponse{
942			Header:         res.Header,
943			HTTPStatusCode: res.StatusCode,
944		},
945	}
946	target := &ret
947	if err := gensupport.DecodeResponse(target, res); err != nil {
948		return nil, err
949	}
950	return ret, nil
951	// {
952	//   "description": "Deletes an SSH public key.",
953	//   "flatPath": "v1/users/{usersId}/sshPublicKeys/{sshPublicKeysId}",
954	//   "httpMethod": "DELETE",
955	//   "id": "oslogin.users.sshPublicKeys.delete",
956	//   "parameterOrder": [
957	//     "name"
958	//   ],
959	//   "parameters": {
960	//     "name": {
961	//       "description": "Required. The fingerprint of the public key to update. Public keys are identified by their SHA-256 fingerprint. The fingerprint of the public key is in format `users/{user}/sshPublicKeys/{fingerprint}`.",
962	//       "location": "path",
963	//       "pattern": "^users/[^/]+/sshPublicKeys/[^/]+$",
964	//       "required": true,
965	//       "type": "string"
966	//     }
967	//   },
968	//   "path": "v1/{+name}",
969	//   "response": {
970	//     "$ref": "Empty"
971	//   },
972	//   "scopes": [
973	//     "https://www.googleapis.com/auth/cloud-platform",
974	//     "https://www.googleapis.com/auth/compute"
975	//   ]
976	// }
977
978}
979
980// method id "oslogin.users.sshPublicKeys.get":
981
982type UsersSshPublicKeysGetCall struct {
983	s            *Service
984	name         string
985	urlParams_   gensupport.URLParams
986	ifNoneMatch_ string
987	ctx_         context.Context
988	header_      http.Header
989}
990
991// Get: Retrieves an SSH public key.
992//
993// - name: The fingerprint of the public key to retrieve. Public keys
994//   are identified by their SHA-256 fingerprint. The fingerprint of the
995//   public key is in format `users/{user}/sshPublicKeys/{fingerprint}`.
996func (r *UsersSshPublicKeysService) Get(name string) *UsersSshPublicKeysGetCall {
997	c := &UsersSshPublicKeysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
998	c.name = name
999	return c
1000}
1001
1002// Fields allows partial responses to be retrieved. See
1003// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1004// for more information.
1005func (c *UsersSshPublicKeysGetCall) Fields(s ...googleapi.Field) *UsersSshPublicKeysGetCall {
1006	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1007	return c
1008}
1009
1010// IfNoneMatch sets the optional parameter which makes the operation
1011// fail if the object's ETag matches the given value. This is useful for
1012// getting updates only after the object has changed since the last
1013// request. Use googleapi.IsNotModified to check whether the response
1014// error from Do is the result of In-None-Match.
1015func (c *UsersSshPublicKeysGetCall) IfNoneMatch(entityTag string) *UsersSshPublicKeysGetCall {
1016	c.ifNoneMatch_ = entityTag
1017	return c
1018}
1019
1020// Context sets the context to be used in this call's Do method. Any
1021// pending HTTP request will be aborted if the provided context is
1022// canceled.
1023func (c *UsersSshPublicKeysGetCall) Context(ctx context.Context) *UsersSshPublicKeysGetCall {
1024	c.ctx_ = ctx
1025	return c
1026}
1027
1028// Header returns an http.Header that can be modified by the caller to
1029// add HTTP headers to the request.
1030func (c *UsersSshPublicKeysGetCall) Header() http.Header {
1031	if c.header_ == nil {
1032		c.header_ = make(http.Header)
1033	}
1034	return c.header_
1035}
1036
1037func (c *UsersSshPublicKeysGetCall) doRequest(alt string) (*http.Response, error) {
1038	reqHeaders := make(http.Header)
1039	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
1040	for k, v := range c.header_ {
1041		reqHeaders[k] = v
1042	}
1043	reqHeaders.Set("User-Agent", c.s.userAgent())
1044	if c.ifNoneMatch_ != "" {
1045		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
1046	}
1047	var body io.Reader = nil
1048	c.urlParams_.Set("alt", alt)
1049	c.urlParams_.Set("prettyPrint", "false")
1050	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
1051	urls += "?" + c.urlParams_.Encode()
1052	req, err := http.NewRequest("GET", urls, body)
1053	if err != nil {
1054		return nil, err
1055	}
1056	req.Header = reqHeaders
1057	googleapi.Expand(req.URL, map[string]string{
1058		"name": c.name,
1059	})
1060	return gensupport.SendRequest(c.ctx_, c.s.client, req)
1061}
1062
1063// Do executes the "oslogin.users.sshPublicKeys.get" call.
1064// Exactly one of *SshPublicKey or error will be non-nil. Any non-2xx
1065// status code is an error. Response headers are in either
1066// *SshPublicKey.ServerResponse.Header or (if a response was returned at
1067// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
1068// to check whether the returned error was because
1069// http.StatusNotModified was returned.
1070func (c *UsersSshPublicKeysGetCall) Do(opts ...googleapi.CallOption) (*SshPublicKey, error) {
1071	gensupport.SetOptions(c.urlParams_, opts...)
1072	res, err := c.doRequest("json")
1073	if res != nil && res.StatusCode == http.StatusNotModified {
1074		if res.Body != nil {
1075			res.Body.Close()
1076		}
1077		return nil, &googleapi.Error{
1078			Code:   res.StatusCode,
1079			Header: res.Header,
1080		}
1081	}
1082	if err != nil {
1083		return nil, err
1084	}
1085	defer googleapi.CloseBody(res)
1086	if err := googleapi.CheckResponse(res); err != nil {
1087		return nil, err
1088	}
1089	ret := &SshPublicKey{
1090		ServerResponse: googleapi.ServerResponse{
1091			Header:         res.Header,
1092			HTTPStatusCode: res.StatusCode,
1093		},
1094	}
1095	target := &ret
1096	if err := gensupport.DecodeResponse(target, res); err != nil {
1097		return nil, err
1098	}
1099	return ret, nil
1100	// {
1101	//   "description": "Retrieves an SSH public key.",
1102	//   "flatPath": "v1/users/{usersId}/sshPublicKeys/{sshPublicKeysId}",
1103	//   "httpMethod": "GET",
1104	//   "id": "oslogin.users.sshPublicKeys.get",
1105	//   "parameterOrder": [
1106	//     "name"
1107	//   ],
1108	//   "parameters": {
1109	//     "name": {
1110	//       "description": "Required. The fingerprint of the public key to retrieve. Public keys are identified by their SHA-256 fingerprint. The fingerprint of the public key is in format `users/{user}/sshPublicKeys/{fingerprint}`.",
1111	//       "location": "path",
1112	//       "pattern": "^users/[^/]+/sshPublicKeys/[^/]+$",
1113	//       "required": true,
1114	//       "type": "string"
1115	//     }
1116	//   },
1117	//   "path": "v1/{+name}",
1118	//   "response": {
1119	//     "$ref": "SshPublicKey"
1120	//   },
1121	//   "scopes": [
1122	//     "https://www.googleapis.com/auth/cloud-platform",
1123	//     "https://www.googleapis.com/auth/compute"
1124	//   ]
1125	// }
1126
1127}
1128
1129// method id "oslogin.users.sshPublicKeys.patch":
1130
1131type UsersSshPublicKeysPatchCall struct {
1132	s            *Service
1133	name         string
1134	sshpublickey *SshPublicKey
1135	urlParams_   gensupport.URLParams
1136	ctx_         context.Context
1137	header_      http.Header
1138}
1139
1140// Patch: Updates an SSH public key and returns the profile information.
1141// This method supports patch semantics.
1142//
1143// - name: The fingerprint of the public key to update. Public keys are
1144//   identified by their SHA-256 fingerprint. The fingerprint of the
1145//   public key is in format `users/{user}/sshPublicKeys/{fingerprint}`.
1146func (r *UsersSshPublicKeysService) Patch(name string, sshpublickey *SshPublicKey) *UsersSshPublicKeysPatchCall {
1147	c := &UsersSshPublicKeysPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1148	c.name = name
1149	c.sshpublickey = sshpublickey
1150	return c
1151}
1152
1153// UpdateMask sets the optional parameter "updateMask": Mask to control
1154// which fields get updated. Updates all if not present.
1155func (c *UsersSshPublicKeysPatchCall) UpdateMask(updateMask string) *UsersSshPublicKeysPatchCall {
1156	c.urlParams_.Set("updateMask", updateMask)
1157	return c
1158}
1159
1160// Fields allows partial responses to be retrieved. See
1161// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
1162// for more information.
1163func (c *UsersSshPublicKeysPatchCall) Fields(s ...googleapi.Field) *UsersSshPublicKeysPatchCall {
1164	c.urlParams_.Set("fields", googleapi.CombineFields(s))
1165	return c
1166}
1167
1168// Context sets the context to be used in this call's Do method. Any
1169// pending HTTP request will be aborted if the provided context is
1170// canceled.
1171func (c *UsersSshPublicKeysPatchCall) Context(ctx context.Context) *UsersSshPublicKeysPatchCall {
1172	c.ctx_ = ctx
1173	return c
1174}
1175
1176// Header returns an http.Header that can be modified by the caller to
1177// add HTTP headers to the request.
1178func (c *UsersSshPublicKeysPatchCall) Header() http.Header {
1179	if c.header_ == nil {
1180		c.header_ = make(http.Header)
1181	}
1182	return c.header_
1183}
1184
1185func (c *UsersSshPublicKeysPatchCall) doRequest(alt string) (*http.Response, error) {
1186	reqHeaders := make(http.Header)
1187	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
1188	for k, v := range c.header_ {
1189		reqHeaders[k] = v
1190	}
1191	reqHeaders.Set("User-Agent", c.s.userAgent())
1192	var body io.Reader = nil
1193	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sshpublickey)
1194	if err != nil {
1195		return nil, err
1196	}
1197	reqHeaders.Set("Content-Type", "application/json")
1198	c.urlParams_.Set("alt", alt)
1199	c.urlParams_.Set("prettyPrint", "false")
1200	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
1201	urls += "?" + c.urlParams_.Encode()
1202	req, err := http.NewRequest("PATCH", urls, body)
1203	if err != nil {
1204		return nil, err
1205	}
1206	req.Header = reqHeaders
1207	googleapi.Expand(req.URL, map[string]string{
1208		"name": c.name,
1209	})
1210	return gensupport.SendRequest(c.ctx_, c.s.client, req)
1211}
1212
1213// Do executes the "oslogin.users.sshPublicKeys.patch" call.
1214// Exactly one of *SshPublicKey or error will be non-nil. Any non-2xx
1215// status code is an error. Response headers are in either
1216// *SshPublicKey.ServerResponse.Header or (if a response was returned at
1217// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
1218// to check whether the returned error was because
1219// http.StatusNotModified was returned.
1220func (c *UsersSshPublicKeysPatchCall) Do(opts ...googleapi.CallOption) (*SshPublicKey, error) {
1221	gensupport.SetOptions(c.urlParams_, opts...)
1222	res, err := c.doRequest("json")
1223	if res != nil && res.StatusCode == http.StatusNotModified {
1224		if res.Body != nil {
1225			res.Body.Close()
1226		}
1227		return nil, &googleapi.Error{
1228			Code:   res.StatusCode,
1229			Header: res.Header,
1230		}
1231	}
1232	if err != nil {
1233		return nil, err
1234	}
1235	defer googleapi.CloseBody(res)
1236	if err := googleapi.CheckResponse(res); err != nil {
1237		return nil, err
1238	}
1239	ret := &SshPublicKey{
1240		ServerResponse: googleapi.ServerResponse{
1241			Header:         res.Header,
1242			HTTPStatusCode: res.StatusCode,
1243		},
1244	}
1245	target := &ret
1246	if err := gensupport.DecodeResponse(target, res); err != nil {
1247		return nil, err
1248	}
1249	return ret, nil
1250	// {
1251	//   "description": "Updates an SSH public key and returns the profile information. This method supports patch semantics.",
1252	//   "flatPath": "v1/users/{usersId}/sshPublicKeys/{sshPublicKeysId}",
1253	//   "httpMethod": "PATCH",
1254	//   "id": "oslogin.users.sshPublicKeys.patch",
1255	//   "parameterOrder": [
1256	//     "name"
1257	//   ],
1258	//   "parameters": {
1259	//     "name": {
1260	//       "description": "Required. The fingerprint of the public key to update. Public keys are identified by their SHA-256 fingerprint. The fingerprint of the public key is in format `users/{user}/sshPublicKeys/{fingerprint}`.",
1261	//       "location": "path",
1262	//       "pattern": "^users/[^/]+/sshPublicKeys/[^/]+$",
1263	//       "required": true,
1264	//       "type": "string"
1265	//     },
1266	//     "updateMask": {
1267	//       "description": "Mask to control which fields get updated. Updates all if not present.",
1268	//       "format": "google-fieldmask",
1269	//       "location": "query",
1270	//       "type": "string"
1271	//     }
1272	//   },
1273	//   "path": "v1/{+name}",
1274	//   "request": {
1275	//     "$ref": "SshPublicKey"
1276	//   },
1277	//   "response": {
1278	//     "$ref": "SshPublicKey"
1279	//   },
1280	//   "scopes": [
1281	//     "https://www.googleapis.com/auth/cloud-platform",
1282	//     "https://www.googleapis.com/auth/compute"
1283	//   ]
1284	// }
1285
1286}
1287