1// Copyright 2020 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 deploymentmanager provides access to the Google Cloud Deployment Manager API V2Beta Methods.
8//
9// For product documentation, see: https://developers.google.com/deployment-manager/
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/deploymentmanager/v2beta"
16//   ...
17//   ctx := context.Background()
18//   deploymentmanagerService, err := deploymentmanager.NewService(ctx)
19//
20// In this example, Google Application Default Credentials are used for authentication.
21//
22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
23//
24// Other authentication options
25//
26// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
27//
28//   deploymentmanagerService, err := deploymentmanager.NewService(ctx, option.WithScopes(deploymentmanager.NdevCloudmanReadonlyScope))
29//
30// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
31//
32//   deploymentmanagerService, err := deploymentmanager.NewService(ctx, option.WithAPIKey("AIza..."))
33//
34// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
35//
36//   config := &oauth2.Config{...}
37//   // ...
38//   token, err := config.Exchange(ctx, ...)
39//   deploymentmanagerService, err := deploymentmanager.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
40//
41// See https://godoc.org/google.golang.org/api/option/ for details on options.
42package deploymentmanager // import "google.golang.org/api/deploymentmanager/v2beta"
43
44import (
45	"bytes"
46	"context"
47	"encoding/json"
48	"errors"
49	"fmt"
50	"io"
51	"net/http"
52	"net/url"
53	"strconv"
54	"strings"
55
56	googleapi "google.golang.org/api/googleapi"
57	gensupport "google.golang.org/api/internal/gensupport"
58	option "google.golang.org/api/option"
59	internaloption "google.golang.org/api/option/internaloption"
60	htransport "google.golang.org/api/transport/http"
61)
62
63// Always reference these packages, just in case the auto-generated code
64// below doesn't.
65var _ = bytes.NewBuffer
66var _ = strconv.Itoa
67var _ = fmt.Sprintf
68var _ = json.NewDecoder
69var _ = io.Copy
70var _ = url.Parse
71var _ = gensupport.MarshalJSON
72var _ = googleapi.Version
73var _ = errors.New
74var _ = strings.Replace
75var _ = context.Canceled
76var _ = internaloption.WithDefaultEndpoint
77
78const apiId = "deploymentmanager:v2beta"
79const apiName = "deploymentmanager"
80const apiVersion = "v2beta"
81const basePath = "https://www.googleapis.com/deploymentmanager/v2beta/projects/"
82
83// OAuth2 scopes used by this API.
84const (
85	// View and manage your data across Google Cloud Platform services
86	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
87
88	// View your data across Google Cloud Platform services
89	CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only"
90
91	// View and manage your Google Cloud Platform management resources and
92	// deployment status information
93	NdevCloudmanScope = "https://www.googleapis.com/auth/ndev.cloudman"
94
95	// View your Google Cloud Platform management resources and deployment
96	// status information
97	NdevCloudmanReadonlyScope = "https://www.googleapis.com/auth/ndev.cloudman.readonly"
98)
99
100// NewService creates a new Service.
101func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
102	scopesOption := option.WithScopes(
103		"https://www.googleapis.com/auth/cloud-platform",
104		"https://www.googleapis.com/auth/cloud-platform.read-only",
105		"https://www.googleapis.com/auth/ndev.cloudman",
106		"https://www.googleapis.com/auth/ndev.cloudman.readonly",
107	)
108	// NOTE: prepend, so we don't override user-specified scopes.
109	opts = append([]option.ClientOption{scopesOption}, opts...)
110	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
111	client, endpoint, err := htransport.NewClient(ctx, opts...)
112	if err != nil {
113		return nil, err
114	}
115	s, err := New(client)
116	if err != nil {
117		return nil, err
118	}
119	if endpoint != "" {
120		s.BasePath = endpoint
121	}
122	return s, nil
123}
124
125// New creates a new Service. It uses the provided http.Client for requests.
126//
127// Deprecated: please use NewService instead.
128// To provide a custom HTTP client, use option.WithHTTPClient.
129// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
130func New(client *http.Client) (*Service, error) {
131	if client == nil {
132		return nil, errors.New("client is nil")
133	}
134	s := &Service{client: client, BasePath: basePath}
135	s.CompositeTypes = NewCompositeTypesService(s)
136	s.Deployments = NewDeploymentsService(s)
137	s.Manifests = NewManifestsService(s)
138	s.Operations = NewOperationsService(s)
139	s.Resources = NewResourcesService(s)
140	s.TypeProviders = NewTypeProvidersService(s)
141	s.Types = NewTypesService(s)
142	return s, nil
143}
144
145type Service struct {
146	client    *http.Client
147	BasePath  string // API endpoint base URL
148	UserAgent string // optional additional User-Agent fragment
149
150	CompositeTypes *CompositeTypesService
151
152	Deployments *DeploymentsService
153
154	Manifests *ManifestsService
155
156	Operations *OperationsService
157
158	Resources *ResourcesService
159
160	TypeProviders *TypeProvidersService
161
162	Types *TypesService
163}
164
165func (s *Service) userAgent() string {
166	if s.UserAgent == "" {
167		return googleapi.UserAgent
168	}
169	return googleapi.UserAgent + " " + s.UserAgent
170}
171
172func NewCompositeTypesService(s *Service) *CompositeTypesService {
173	rs := &CompositeTypesService{s: s}
174	return rs
175}
176
177type CompositeTypesService struct {
178	s *Service
179}
180
181func NewDeploymentsService(s *Service) *DeploymentsService {
182	rs := &DeploymentsService{s: s}
183	return rs
184}
185
186type DeploymentsService struct {
187	s *Service
188}
189
190func NewManifestsService(s *Service) *ManifestsService {
191	rs := &ManifestsService{s: s}
192	return rs
193}
194
195type ManifestsService struct {
196	s *Service
197}
198
199func NewOperationsService(s *Service) *OperationsService {
200	rs := &OperationsService{s: s}
201	return rs
202}
203
204type OperationsService struct {
205	s *Service
206}
207
208func NewResourcesService(s *Service) *ResourcesService {
209	rs := &ResourcesService{s: s}
210	return rs
211}
212
213type ResourcesService struct {
214	s *Service
215}
216
217func NewTypeProvidersService(s *Service) *TypeProvidersService {
218	rs := &TypeProvidersService{s: s}
219	return rs
220}
221
222type TypeProvidersService struct {
223	s *Service
224}
225
226func NewTypesService(s *Service) *TypesService {
227	rs := &TypesService{s: s}
228	return rs
229}
230
231type TypesService struct {
232	s *Service
233}
234
235// AsyncOptions: Async options that determine when a resource should
236// finish.
237type AsyncOptions struct {
238	// MethodMatch: Method regex where this policy will apply.
239	MethodMatch string `json:"methodMatch,omitempty"`
240
241	// PollingOptions: Deployment manager will poll instances for this API
242	// resource setting a RUNNING state, and blocking until polling
243	// conditions tell whether the resource is completed or failed.
244	PollingOptions *PollingOptions `json:"pollingOptions,omitempty"`
245
246	// ForceSendFields is a list of field names (e.g. "MethodMatch") to
247	// unconditionally include in API requests. By default, fields with
248	// empty values are omitted from API requests. However, any non-pointer,
249	// non-interface field appearing in ForceSendFields will be sent to the
250	// server regardless of whether the field is empty or not. This may be
251	// used to include empty fields in Patch requests.
252	ForceSendFields []string `json:"-"`
253
254	// NullFields is a list of field names (e.g. "MethodMatch") to include
255	// in API requests with the JSON null value. By default, fields with
256	// empty values are omitted from API requests. However, any field with
257	// an 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 *AsyncOptions) MarshalJSON() ([]byte, error) {
264	type NoMethod AsyncOptions
265	raw := NoMethod(*s)
266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
267}
268
269// AuditConfig: Specifies the audit configuration for a service. The
270// configuration determines which permission types are logged, and what
271// identities, if any, are exempted from logging. An AuditConfig must
272// have one or more AuditLogConfigs.
273//
274// If there are AuditConfigs for both `allServices` and a specific
275// service, the union of the two AuditConfigs is used for that service:
276// the log_types specified in each AuditConfig are enabled, and the
277// exempted_members in each AuditLogConfig are exempted.
278//
279// Example Policy with multiple AuditConfigs:
280//
281// { "audit_configs": [ { "service": "allServices" "audit_log_configs":
282// [ { "log_type": "DATA_READ", "exempted_members": [
283// "user:jose@example.com" ] }, { "log_type": "DATA_WRITE", }, {
284// "log_type": "ADMIN_READ", } ] }, { "service":
285// "sampleservice.googleapis.com" "audit_log_configs": [ { "log_type":
286// "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [
287// "user:aliya@example.com" ] } ] } ] }
288//
289// For sampleservice, this policy enables DATA_READ, DATA_WRITE and
290// ADMIN_READ logging. It also exempts jose@example.com from DATA_READ
291// logging, and aliya@example.com from DATA_WRITE logging.
292type AuditConfig struct {
293	// AuditLogConfigs: The configuration for logging of each type of
294	// permission.
295	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
296
297	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
298
299	// Service: Specifies a service that will be enabled for audit logging.
300	// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
301	// `allServices` is a special value that covers all services.
302	Service string `json:"service,omitempty"`
303
304	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
305	// unconditionally include in API requests. By default, fields with
306	// empty values are omitted from API requests. However, any non-pointer,
307	// non-interface field appearing in ForceSendFields will be sent to the
308	// server regardless of whether the field is empty or not. This may be
309	// used to include empty fields in Patch requests.
310	ForceSendFields []string `json:"-"`
311
312	// NullFields is a list of field names (e.g. "AuditLogConfigs") to
313	// include in API requests with the JSON null value. By default, fields
314	// with empty values are omitted from API requests. However, any field
315	// with an empty value appearing in NullFields will be sent to the
316	// server as null. It is an error if a field in this list has a
317	// non-empty value. This may be used to include null fields in Patch
318	// requests.
319	NullFields []string `json:"-"`
320}
321
322func (s *AuditConfig) MarshalJSON() ([]byte, error) {
323	type NoMethod AuditConfig
324	raw := NoMethod(*s)
325	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
326}
327
328// AuditLogConfig: Provides the configuration for logging a type of
329// permissions. Example:
330//
331// { "audit_log_configs": [ { "log_type": "DATA_READ",
332// "exempted_members": [ "user:jose@example.com" ] }, { "log_type":
333// "DATA_WRITE", } ] }
334//
335// This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
336// jose@example.com from DATA_READ logging.
337type AuditLogConfig struct {
338	// ExemptedMembers: Specifies the identities that do not cause logging
339	// for this type of permission. Follows the same format of
340	// [Binding.members][].
341	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
342
343	IgnoreChildExemptions bool `json:"ignoreChildExemptions,omitempty"`
344
345	// LogType: The log type that this config enables.
346	LogType string `json:"logType,omitempty"`
347
348	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
349	// unconditionally include in API requests. By default, fields with
350	// empty values are omitted from API requests. However, any non-pointer,
351	// non-interface field appearing in ForceSendFields will be sent to the
352	// server regardless of whether the field is empty or not. This may be
353	// used to include empty fields in Patch requests.
354	ForceSendFields []string `json:"-"`
355
356	// NullFields is a list of field names (e.g. "ExemptedMembers") to
357	// include in API requests with the JSON null value. By default, fields
358	// with empty values are omitted from API requests. However, any field
359	// with an empty value appearing in NullFields will be sent to the
360	// server as null. It is an error if a field in this list has a
361	// non-empty value. This may be used to include null fields in Patch
362	// requests.
363	NullFields []string `json:"-"`
364}
365
366func (s *AuditLogConfig) MarshalJSON() ([]byte, error) {
367	type NoMethod AuditLogConfig
368	raw := NoMethod(*s)
369	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
370}
371
372// AuthorizationLoggingOptions: Authorization-related information used
373// by Cloud Audit Logging.
374type AuthorizationLoggingOptions struct {
375	// PermissionType: The type of the permission that was checked.
376	PermissionType string `json:"permissionType,omitempty"`
377
378	// ForceSendFields is a list of field names (e.g. "PermissionType") to
379	// unconditionally include in API requests. By default, fields with
380	// empty values are omitted from API requests. However, any non-pointer,
381	// non-interface field appearing in ForceSendFields will be sent to the
382	// server regardless of whether the field is empty or not. This may be
383	// used to include empty fields in Patch requests.
384	ForceSendFields []string `json:"-"`
385
386	// NullFields is a list of field names (e.g. "PermissionType") to
387	// include in API requests with the JSON null value. By default, fields
388	// with empty values are omitted from API requests. However, any field
389	// with an empty value appearing in NullFields will be sent to the
390	// server as null. It is an error if a field in this list has a
391	// non-empty value. This may be used to include null fields in Patch
392	// requests.
393	NullFields []string `json:"-"`
394}
395
396func (s *AuthorizationLoggingOptions) MarshalJSON() ([]byte, error) {
397	type NoMethod AuthorizationLoggingOptions
398	raw := NoMethod(*s)
399	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
400}
401
402// BaseType: BaseType that describes a service-backed Type.
403type BaseType struct {
404	// CollectionOverrides: Allows resource handling overrides for specific
405	// collections
406	CollectionOverrides []*CollectionOverride `json:"collectionOverrides,omitempty"`
407
408	// Credential: Credential used when interacting with this type.
409	Credential *Credential `json:"credential,omitempty"`
410
411	// DescriptorUrl: Descriptor Url for the this type.
412	DescriptorUrl string `json:"descriptorUrl,omitempty"`
413
414	// Options: Options to apply when handling any resources in this
415	// service.
416	Options *Options `json:"options,omitempty"`
417
418	// ForceSendFields is a list of field names (e.g. "CollectionOverrides")
419	// to unconditionally include in API requests. By default, fields with
420	// empty values are omitted from API requests. However, any non-pointer,
421	// non-interface field appearing in ForceSendFields will be sent to the
422	// server regardless of whether the field is empty or not. This may be
423	// used to include empty fields in Patch requests.
424	ForceSendFields []string `json:"-"`
425
426	// NullFields is a list of field names (e.g. "CollectionOverrides") to
427	// include in API requests with the JSON null value. By default, fields
428	// with empty values are omitted from API requests. However, any field
429	// with an empty value appearing in NullFields will be sent to the
430	// server as null. It is an error if a field in this list has a
431	// non-empty value. This may be used to include null fields in Patch
432	// requests.
433	NullFields []string `json:"-"`
434}
435
436func (s *BaseType) MarshalJSON() ([]byte, error) {
437	type NoMethod BaseType
438	raw := NoMethod(*s)
439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
440}
441
442// BasicAuth: Basic Auth used as a credential.
443type BasicAuth struct {
444	Password string `json:"password,omitempty"`
445
446	User string `json:"user,omitempty"`
447
448	// ForceSendFields is a list of field names (e.g. "Password") to
449	// unconditionally include in API requests. By default, fields with
450	// empty values are omitted from API requests. However, any non-pointer,
451	// non-interface field appearing in ForceSendFields will be sent to the
452	// server regardless of whether the field is empty or not. This may be
453	// used to include empty fields in Patch requests.
454	ForceSendFields []string `json:"-"`
455
456	// NullFields is a list of field names (e.g. "Password") to include in
457	// API requests with the JSON null value. By default, fields with empty
458	// values are omitted from API requests. However, any field with an
459	// empty value appearing in NullFields will be sent to the server as
460	// null. It is an error if a field in this list has a non-empty value.
461	// This may be used to include null fields in Patch requests.
462	NullFields []string `json:"-"`
463}
464
465func (s *BasicAuth) MarshalJSON() ([]byte, error) {
466	type NoMethod BasicAuth
467	raw := NoMethod(*s)
468	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
469}
470
471// Binding: Associates `members` with a `role`.
472type Binding struct {
473	// Condition: The condition that is associated with this binding.
474	//
475	// If the condition evaluates to `true`, then this binding applies to
476	// the current request.
477	//
478	// If the condition evaluates to `false`, then this binding does not
479	// apply to the current request. However, a different role binding might
480	// grant the same role to one or more of the members in this
481	// binding.
482	//
483	// To learn which resources support conditions in their IAM policies,
484	// see the [IAM
485	// documentation](https://cloud.google.com/iam/help/conditions/resource-p
486	// olicies).
487	Condition *Expr `json:"condition,omitempty"`
488
489	// Members: Specifies the identities requesting access for a Cloud
490	// Platform resource. `members` can have the following values:
491	//
492	// * `allUsers`: A special identifier that represents anyone who is on
493	// the internet; with or without a Google account.
494	//
495	// * `allAuthenticatedUsers`: A special identifier that represents
496	// anyone who is authenticated with a Google account or a service
497	// account.
498	//
499	// * `user:{emailid}`: An email address that represents a specific
500	// Google account. For example, `alice@example.com` .
501	//
502	//
503	//
504	// * `serviceAccount:{emailid}`: An email address that represents a
505	// service account. For example,
506	// `my-other-app@appspot.gserviceaccount.com`.
507	//
508	// * `group:{emailid}`: An email address that represents a Google group.
509	// For example, `admins@example.com`.
510	//
511	// * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus
512	// unique identifier) representing a user that has been recently
513	// deleted. For example, `alice@example.com?uid=123456789012345678901`.
514	// If the user is recovered, this value reverts to `user:{emailid}` and
515	// the recovered user retains the role in the binding.
516	//
517	// * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
518	// (plus unique identifier) representing a service account that has been
519	// recently deleted. For example,
520	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
521	// If the service account is undeleted, this value reverts to
522	// `serviceAccount:{emailid}` and the undeleted service account retains
523	// the role in the binding.
524	//
525	// * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus
526	// unique identifier) representing a Google group that has been recently
527	// deleted. For example, `admins@example.com?uid=123456789012345678901`.
528	// If the group is recovered, this value reverts to `group:{emailid}`
529	// and the recovered group retains the role in the binding.
530	//
531	//
532	//
533	// * `domain:{domain}`: The G Suite domain (primary) that represents all
534	// the users of that domain. For example, `google.com` or `example.com`.
535	Members []string `json:"members,omitempty"`
536
537	// Role: Role that is assigned to `members`. For example,
538	// `roles/viewer`, `roles/editor`, or `roles/owner`.
539	Role string `json:"role,omitempty"`
540
541	// ForceSendFields is a list of field names (e.g. "Condition") to
542	// unconditionally include in API requests. By default, fields with
543	// empty values are omitted from API requests. However, any non-pointer,
544	// non-interface field appearing in ForceSendFields will be sent to the
545	// server regardless of whether the field is empty or not. This may be
546	// used to include empty fields in Patch requests.
547	ForceSendFields []string `json:"-"`
548
549	// NullFields is a list of field names (e.g. "Condition") to include in
550	// API requests with the JSON null value. By default, fields with empty
551	// values are omitted from API requests. However, any field with an
552	// empty value appearing in NullFields will be sent to the server as
553	// null. It is an error if a field in this list has a non-empty value.
554	// This may be used to include null fields in Patch requests.
555	NullFields []string `json:"-"`
556}
557
558func (s *Binding) MarshalJSON() ([]byte, error) {
559	type NoMethod Binding
560	raw := NoMethod(*s)
561	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
562}
563
564// CollectionOverride: CollectionOverride allows resource handling
565// overrides for specific resources within a BaseType
566type CollectionOverride struct {
567	// Collection: The collection that identifies this resource within its
568	// service.
569	Collection string `json:"collection,omitempty"`
570
571	// Options: The options to apply to this resource-level override
572	Options *Options `json:"options,omitempty"`
573
574	// ForceSendFields is a list of field names (e.g. "Collection") to
575	// unconditionally include in API requests. By default, fields with
576	// empty values are omitted from API requests. However, any non-pointer,
577	// non-interface field appearing in ForceSendFields will be sent to the
578	// server regardless of whether the field is empty or not. This may be
579	// used to include empty fields in Patch requests.
580	ForceSendFields []string `json:"-"`
581
582	// NullFields is a list of field names (e.g. "Collection") to include in
583	// API requests with the JSON null value. By default, fields with empty
584	// values are omitted from API requests. However, any field with an
585	// empty value appearing in NullFields will be sent to the server as
586	// null. It is an error if a field in this list has a non-empty value.
587	// This may be used to include null fields in Patch requests.
588	NullFields []string `json:"-"`
589}
590
591func (s *CollectionOverride) MarshalJSON() ([]byte, error) {
592	type NoMethod CollectionOverride
593	raw := NoMethod(*s)
594	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
595}
596
597// CompositeType: Holds the composite type.
598type CompositeType struct {
599	// Description: An optional textual description of the resource;
600	// provided by the client when the resource is created.
601	Description string `json:"description,omitempty"`
602
603	Id uint64 `json:"id,omitempty,string"`
604
605	// InsertTime: Output only. Creation timestamp in RFC3339 text format.
606	InsertTime string `json:"insertTime,omitempty"`
607
608	// Labels: Map of labels; provided by the client when the resource is
609	// created or updated. Specifically: Label keys must be between 1 and 63
610	// characters long and must conform to the following regular expression:
611	// `[a-z]([-a-z0-9]*[a-z0-9])?` Label values must be between 0 and 63
612	// characters long and must conform to the regular expression
613	// `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
614	Labels []*CompositeTypeLabelEntry `json:"labels,omitempty"`
615
616	// Name: Name of the composite type, must follow the expression:
617	// `[a-z]([-a-z0-9_.]{0,61}[a-z0-9])?`.
618	Name string `json:"name,omitempty"`
619
620	// Operation: Output only. The Operation that most recently ran, or is
621	// currently running, on this composite type.
622	Operation *Operation `json:"operation,omitempty"`
623
624	// SelfLink: Output only. Server defined URL for the resource.
625	SelfLink string `json:"selfLink,omitempty"`
626
627	Status string `json:"status,omitempty"`
628
629	// TemplateContents: Files for the template type.
630	TemplateContents *TemplateContents `json:"templateContents,omitempty"`
631
632	// ServerResponse contains the HTTP response code and headers from the
633	// server.
634	googleapi.ServerResponse `json:"-"`
635
636	// ForceSendFields is a list of field names (e.g. "Description") to
637	// unconditionally include in API requests. By default, fields with
638	// empty values are omitted from API requests. However, any non-pointer,
639	// non-interface field appearing in ForceSendFields will be sent to the
640	// server regardless of whether the field is empty or not. This may be
641	// used to include empty fields in Patch requests.
642	ForceSendFields []string `json:"-"`
643
644	// NullFields is a list of field names (e.g. "Description") to include
645	// in API requests with the JSON null value. By default, fields with
646	// empty values are omitted from API requests. However, any field with
647	// an empty value appearing in NullFields will be sent to the server as
648	// null. It is an error if a field in this list has a non-empty value.
649	// This may be used to include null fields in Patch requests.
650	NullFields []string `json:"-"`
651}
652
653func (s *CompositeType) MarshalJSON() ([]byte, error) {
654	type NoMethod CompositeType
655	raw := NoMethod(*s)
656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
657}
658
659type CompositeTypeLabelEntry struct {
660	Key string `json:"key,omitempty"`
661
662	Value string `json:"value,omitempty"`
663
664	// ForceSendFields is a list of field names (e.g. "Key") to
665	// unconditionally include in API requests. By default, fields with
666	// empty values are omitted from API requests. However, any non-pointer,
667	// non-interface field appearing in ForceSendFields will be sent to the
668	// server regardless of whether the field is empty or not. This may be
669	// used to include empty fields in Patch requests.
670	ForceSendFields []string `json:"-"`
671
672	// NullFields is a list of field names (e.g. "Key") to include in API
673	// requests with the JSON null value. By default, fields with empty
674	// values are omitted from API requests. However, any field with an
675	// empty value appearing in NullFields will be sent to the server as
676	// null. It is an error if a field in this list has a non-empty value.
677	// This may be used to include null fields in Patch requests.
678	NullFields []string `json:"-"`
679}
680
681func (s *CompositeTypeLabelEntry) MarshalJSON() ([]byte, error) {
682	type NoMethod CompositeTypeLabelEntry
683	raw := NoMethod(*s)
684	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
685}
686
687// CompositeTypesListResponse: A response that returns all Composite
688// Types supported by Deployment Manager
689type CompositeTypesListResponse struct {
690	// CompositeTypes: Output only. A list of resource composite types
691	// supported by Deployment Manager.
692	CompositeTypes []*CompositeType `json:"compositeTypes,omitempty"`
693
694	// NextPageToken: A token used to continue a truncated list request.
695	NextPageToken string `json:"nextPageToken,omitempty"`
696
697	// ServerResponse contains the HTTP response code and headers from the
698	// server.
699	googleapi.ServerResponse `json:"-"`
700
701	// ForceSendFields is a list of field names (e.g. "CompositeTypes") to
702	// unconditionally include in API requests. By default, fields with
703	// empty values are omitted from API requests. However, any non-pointer,
704	// non-interface field appearing in ForceSendFields will be sent to the
705	// server regardless of whether the field is empty or not. This may be
706	// used to include empty fields in Patch requests.
707	ForceSendFields []string `json:"-"`
708
709	// NullFields is a list of field names (e.g. "CompositeTypes") to
710	// include in API requests with the JSON null value. By default, fields
711	// with empty values are omitted from API requests. However, any field
712	// with an empty value appearing in NullFields will be sent to the
713	// server as null. It is an error if a field in this list has a
714	// non-empty value. This may be used to include null fields in Patch
715	// requests.
716	NullFields []string `json:"-"`
717}
718
719func (s *CompositeTypesListResponse) MarshalJSON() ([]byte, error) {
720	type NoMethod CompositeTypesListResponse
721	raw := NoMethod(*s)
722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
723}
724
725// Condition: A condition to be met.
726type Condition struct {
727	// Iam: Trusted attributes supplied by the IAM system.
728	Iam string `json:"iam,omitempty"`
729
730	// Op: An operator to apply the subject with.
731	Op string `json:"op,omitempty"`
732
733	// Svc: Trusted attributes discharged by the service.
734	Svc string `json:"svc,omitempty"`
735
736	// Sys: Trusted attributes supplied by any service that owns resources
737	// and uses the IAM system for access control.
738	Sys string `json:"sys,omitempty"`
739
740	// Values: The objects of the condition.
741	Values []string `json:"values,omitempty"`
742
743	// ForceSendFields is a list of field names (e.g. "Iam") to
744	// unconditionally include in API requests. By default, fields with
745	// empty values are omitted from API requests. However, any non-pointer,
746	// non-interface field appearing in ForceSendFields will be sent to the
747	// server regardless of whether the field is empty or not. This may be
748	// used to include empty fields in Patch requests.
749	ForceSendFields []string `json:"-"`
750
751	// NullFields is a list of field names (e.g. "Iam") to include in API
752	// requests with the JSON null value. By default, fields with empty
753	// values are omitted from API requests. However, any field with an
754	// empty value appearing in NullFields will be sent to the server as
755	// null. It is an error if a field in this list has a non-empty value.
756	// This may be used to include null fields in Patch requests.
757	NullFields []string `json:"-"`
758}
759
760func (s *Condition) MarshalJSON() ([]byte, error) {
761	type NoMethod Condition
762	raw := NoMethod(*s)
763	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
764}
765
766type ConfigFile struct {
767	// Content: The contents of the file.
768	Content string `json:"content,omitempty"`
769
770	// ForceSendFields is a list of field names (e.g. "Content") to
771	// unconditionally include in API requests. By default, fields with
772	// empty values are omitted from API requests. However, any non-pointer,
773	// non-interface field appearing in ForceSendFields will be sent to the
774	// server regardless of whether the field is empty or not. This may be
775	// used to include empty fields in Patch requests.
776	ForceSendFields []string `json:"-"`
777
778	// NullFields is a list of field names (e.g. "Content") to include in
779	// API requests with the JSON null value. By default, fields with empty
780	// values are omitted from API requests. However, any field with an
781	// empty value appearing in NullFields will be sent to the server as
782	// null. It is an error if a field in this list has a non-empty value.
783	// This may be used to include null fields in Patch requests.
784	NullFields []string `json:"-"`
785}
786
787func (s *ConfigFile) MarshalJSON() ([]byte, error) {
788	type NoMethod ConfigFile
789	raw := NoMethod(*s)
790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
791}
792
793// Credential: The credential used by Deployment Manager and
794// TypeProvider. Only one of the options is permitted.
795type Credential struct {
796	// BasicAuth: Basic Auth Credential, only used by TypeProvider.
797	BasicAuth *BasicAuth `json:"basicAuth,omitempty"`
798
799	// ServiceAccount: Service Account Credential, only used by Deployment.
800	ServiceAccount *ServiceAccount `json:"serviceAccount,omitempty"`
801
802	// UseProjectDefault: Specify to use the project default credential,
803	// only supported by Deployment.
804	UseProjectDefault bool `json:"useProjectDefault,omitempty"`
805
806	// ForceSendFields is a list of field names (e.g. "BasicAuth") to
807	// unconditionally include in API requests. By default, fields with
808	// empty values are omitted from API requests. However, any non-pointer,
809	// non-interface field appearing in ForceSendFields will be sent to the
810	// server regardless of whether the field is empty or not. This may be
811	// used to include empty fields in Patch requests.
812	ForceSendFields []string `json:"-"`
813
814	// NullFields is a list of field names (e.g. "BasicAuth") to include in
815	// API requests with the JSON null value. By default, fields with empty
816	// values are omitted from API requests. However, any field with an
817	// empty value appearing in NullFields will be sent to the server as
818	// null. It is an error if a field in this list has a non-empty value.
819	// This may be used to include null fields in Patch requests.
820	NullFields []string `json:"-"`
821}
822
823func (s *Credential) MarshalJSON() ([]byte, error) {
824	type NoMethod Credential
825	raw := NoMethod(*s)
826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
827}
828
829type Deployment struct {
830	// Description: An optional user-provided description of the deployment.
831	Description string `json:"description,omitempty"`
832
833	// Fingerprint: Provides a fingerprint to use in requests to modify a
834	// deployment, such as `update()`, `stop()`, and `cancelPreview()`
835	// requests. A fingerprint is a randomly generated value that must be
836	// provided with `update()`, `stop()`, and `cancelPreview()` requests to
837	// perform optimistic locking. This ensures optimistic concurrency so
838	// that only one request happens at a time.
839	//
840	// The fingerprint is initially generated by Deployment Manager and
841	// changes after every request to modify data. To get the latest
842	// fingerprint value, perform a `get()` request to a deployment.
843	Fingerprint string `json:"fingerprint,omitempty"`
844
845	Id uint64 `json:"id,omitempty,string"`
846
847	// InsertTime: Output only. Creation timestamp in RFC3339 text format.
848	InsertTime string `json:"insertTime,omitempty"`
849
850	// Labels: Map of labels; provided by the client when the resource is
851	// created or updated. Specifically: Label keys must be between 1 and 63
852	// characters long and must conform to the following regular expression:
853	// `[a-z]([-a-z0-9]*[a-z0-9])?` Label values must be between 0 and 63
854	// characters long and must conform to the regular expression
855	// `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
856	Labels []*DeploymentLabelEntry `json:"labels,omitempty"`
857
858	// Manifest: Output only. URL of the manifest representing the last
859	// manifest that was successfully deployed. If no manifest has been
860	// successfully deployed, this field will be absent.
861	Manifest string `json:"manifest,omitempty"`
862
863	// Name: Name of the resource; provided by the client when the resource
864	// is created. The name must be 1-63 characters long, and comply with
865	// RFC1035. Specifically, the name must be 1-63 characters long and
866	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
867	// the first character must be a lowercase letter, and all following
868	// characters must be a dash, lowercase letter, or digit, except the
869	// last character, which cannot be a dash.
870	Name string `json:"name,omitempty"`
871
872	// Operation: Output only. The Operation that most recently ran, or is
873	// currently running, on this deployment.
874	Operation *Operation `json:"operation,omitempty"`
875
876	// SelfLink: Output only. Server defined URL for the resource.
877	SelfLink string `json:"selfLink,omitempty"`
878
879	// Target: [Input Only] The parameters that define your deployment,
880	// including the deployment configuration and relevant templates.
881	Target *TargetConfiguration `json:"target,omitempty"`
882
883	// Update: Output only. If Deployment Manager is currently updating or
884	// previewing an update to this deployment, the updated configuration
885	// appears here.
886	Update *DeploymentUpdate `json:"update,omitempty"`
887
888	// UpdateTime: Output only. Update timestamp in RFC3339 text format.
889	UpdateTime string `json:"updateTime,omitempty"`
890
891	// ServerResponse contains the HTTP response code and headers from the
892	// server.
893	googleapi.ServerResponse `json:"-"`
894
895	// ForceSendFields is a list of field names (e.g. "Description") to
896	// unconditionally include in API requests. By default, fields with
897	// empty values are omitted from API requests. However, any non-pointer,
898	// non-interface field appearing in ForceSendFields will be sent to the
899	// server regardless of whether the field is empty or not. This may be
900	// used to include empty fields in Patch requests.
901	ForceSendFields []string `json:"-"`
902
903	// NullFields is a list of field names (e.g. "Description") to include
904	// in API requests with the JSON null value. By default, fields with
905	// empty values are omitted from API requests. However, any field with
906	// an empty value appearing in NullFields will be sent to the server as
907	// null. It is an error if a field in this list has a non-empty value.
908	// This may be used to include null fields in Patch requests.
909	NullFields []string `json:"-"`
910}
911
912func (s *Deployment) MarshalJSON() ([]byte, error) {
913	type NoMethod Deployment
914	raw := NoMethod(*s)
915	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
916}
917
918type DeploymentLabelEntry struct {
919	Key string `json:"key,omitempty"`
920
921	Value string `json:"value,omitempty"`
922
923	// ForceSendFields is a list of field names (e.g. "Key") to
924	// unconditionally include in API requests. By default, fields with
925	// empty values are omitted from API requests. However, any non-pointer,
926	// non-interface field appearing in ForceSendFields will be sent to the
927	// server regardless of whether the field is empty or not. This may be
928	// used to include empty fields in Patch requests.
929	ForceSendFields []string `json:"-"`
930
931	// NullFields is a list of field names (e.g. "Key") to include in API
932	// requests with the JSON null value. By default, fields with empty
933	// values are omitted from API requests. However, any field with an
934	// empty value appearing in NullFields will be sent to the server as
935	// null. It is an error if a field in this list has a non-empty value.
936	// This may be used to include null fields in Patch requests.
937	NullFields []string `json:"-"`
938}
939
940func (s *DeploymentLabelEntry) MarshalJSON() ([]byte, error) {
941	type NoMethod DeploymentLabelEntry
942	raw := NoMethod(*s)
943	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
944}
945
946type DeploymentUpdate struct {
947	// Description: Output only. An optional user-provided description of
948	// the deployment after the current update has been applied.
949	Description string `json:"description,omitempty"`
950
951	// Labels: Output only. Map of labels; provided by the client when the
952	// resource is created or updated. Specifically: Label keys must be
953	// between 1 and 63 characters long and must conform to the following
954	// regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?` Label values must be
955	// between 0 and 63 characters long and must conform to the regular
956	// expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
957	Labels []*DeploymentUpdateLabelEntry `json:"labels,omitempty"`
958
959	// Manifest: Output only. URL of the manifest representing the update
960	// configuration of this deployment.
961	Manifest string `json:"manifest,omitempty"`
962
963	// ForceSendFields is a list of field names (e.g. "Description") to
964	// unconditionally include in API requests. By default, fields with
965	// empty values are omitted from API requests. However, any non-pointer,
966	// non-interface field appearing in ForceSendFields will be sent to the
967	// server regardless of whether the field is empty or not. This may be
968	// used to include empty fields in Patch requests.
969	ForceSendFields []string `json:"-"`
970
971	// NullFields is a list of field names (e.g. "Description") to include
972	// in API requests with the JSON null value. By default, fields with
973	// empty values are omitted from API requests. However, any field with
974	// an empty value appearing in NullFields will be sent to the server as
975	// null. It is an error if a field in this list has a non-empty value.
976	// This may be used to include null fields in Patch requests.
977	NullFields []string `json:"-"`
978}
979
980func (s *DeploymentUpdate) MarshalJSON() ([]byte, error) {
981	type NoMethod DeploymentUpdate
982	raw := NoMethod(*s)
983	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
984}
985
986type DeploymentUpdateLabelEntry struct {
987	Key string `json:"key,omitempty"`
988
989	Value string `json:"value,omitempty"`
990
991	// ForceSendFields is a list of field names (e.g. "Key") to
992	// unconditionally include in API requests. By default, fields with
993	// empty values are omitted from API requests. However, any non-pointer,
994	// non-interface field appearing in ForceSendFields will be sent to the
995	// server regardless of whether the field is empty or not. This may be
996	// used to include empty fields in Patch requests.
997	ForceSendFields []string `json:"-"`
998
999	// NullFields is a list of field names (e.g. "Key") to include in API
1000	// requests with the JSON null value. By default, fields with empty
1001	// values are omitted from API requests. However, any field with an
1002	// empty value appearing in NullFields will be sent to the server as
1003	// null. It is an error if a field in this list has a non-empty value.
1004	// This may be used to include null fields in Patch requests.
1005	NullFields []string `json:"-"`
1006}
1007
1008func (s *DeploymentUpdateLabelEntry) MarshalJSON() ([]byte, error) {
1009	type NoMethod DeploymentUpdateLabelEntry
1010	raw := NoMethod(*s)
1011	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1012}
1013
1014type DeploymentsCancelPreviewRequest struct {
1015	// Fingerprint: Specifies a fingerprint for `cancelPreview()` requests.
1016	// A fingerprint is a randomly generated value that must be provided in
1017	// `cancelPreview()` requests to perform optimistic locking. This
1018	// ensures optimistic concurrency so that the deployment does not have
1019	// conflicting requests (e.g. if someone attempts to make a new update
1020	// request while another user attempts to cancel a preview, this would
1021	// prevent one of the requests).
1022	//
1023	// The fingerprint is initially generated by Deployment Manager and
1024	// changes after every request to modify a deployment. To get the latest
1025	// fingerprint value, perform a `get()` request on the deployment.
1026	Fingerprint string `json:"fingerprint,omitempty"`
1027
1028	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
1029	// unconditionally include in API requests. By default, fields with
1030	// empty values are omitted from API requests. However, any non-pointer,
1031	// non-interface field appearing in ForceSendFields will be sent to the
1032	// server regardless of whether the field is empty or not. This may be
1033	// used to include empty fields in Patch requests.
1034	ForceSendFields []string `json:"-"`
1035
1036	// NullFields is a list of field names (e.g. "Fingerprint") to include
1037	// in API requests with the JSON null value. By default, fields with
1038	// empty values are omitted from API requests. However, any field with
1039	// an empty value appearing in NullFields will be sent to the server as
1040	// null. It is an error if a field in this list has a non-empty value.
1041	// This may be used to include null fields in Patch requests.
1042	NullFields []string `json:"-"`
1043}
1044
1045func (s *DeploymentsCancelPreviewRequest) MarshalJSON() ([]byte, error) {
1046	type NoMethod DeploymentsCancelPreviewRequest
1047	raw := NoMethod(*s)
1048	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1049}
1050
1051// DeploymentsListResponse: A response containing a partial list of
1052// deployments and a page token used to build the next request if the
1053// request has been truncated.
1054type DeploymentsListResponse struct {
1055	// Deployments: Output only. The deployments contained in this response.
1056	Deployments []*Deployment `json:"deployments,omitempty"`
1057
1058	// NextPageToken: Output only. A token used to continue a truncated list
1059	// request.
1060	NextPageToken string `json:"nextPageToken,omitempty"`
1061
1062	// ServerResponse contains the HTTP response code and headers from the
1063	// server.
1064	googleapi.ServerResponse `json:"-"`
1065
1066	// ForceSendFields is a list of field names (e.g. "Deployments") to
1067	// unconditionally include in API requests. By default, fields with
1068	// empty values are omitted from API requests. However, any non-pointer,
1069	// non-interface field appearing in ForceSendFields will be sent to the
1070	// server regardless of whether the field is empty or not. This may be
1071	// used to include empty fields in Patch requests.
1072	ForceSendFields []string `json:"-"`
1073
1074	// NullFields is a list of field names (e.g. "Deployments") to include
1075	// in API requests with the JSON null value. By default, fields with
1076	// empty values are omitted from API requests. However, any field with
1077	// an empty value appearing in NullFields will be sent to the server as
1078	// null. It is an error if a field in this list has a non-empty value.
1079	// This may be used to include null fields in Patch requests.
1080	NullFields []string `json:"-"`
1081}
1082
1083func (s *DeploymentsListResponse) MarshalJSON() ([]byte, error) {
1084	type NoMethod DeploymentsListResponse
1085	raw := NoMethod(*s)
1086	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1087}
1088
1089type DeploymentsStopRequest struct {
1090	// Fingerprint: Specifies a fingerprint for `stop()` requests. A
1091	// fingerprint is a randomly generated value that must be provided in
1092	// `stop()` requests to perform optimistic locking. This ensures
1093	// optimistic concurrency so that the deployment does not have
1094	// conflicting requests (e.g. if someone attempts to make a new update
1095	// request while another user attempts to stop an ongoing update
1096	// request, this would prevent a collision).
1097	//
1098	// The fingerprint is initially generated by Deployment Manager and
1099	// changes after every request to modify a deployment. To get the latest
1100	// fingerprint value, perform a `get()` request on the deployment.
1101	Fingerprint string `json:"fingerprint,omitempty"`
1102
1103	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
1104	// unconditionally include in API requests. By default, fields with
1105	// empty values are omitted from API requests. However, any non-pointer,
1106	// non-interface field appearing in ForceSendFields will be sent to the
1107	// server regardless of whether the field is empty or not. This may be
1108	// used to include empty fields in Patch requests.
1109	ForceSendFields []string `json:"-"`
1110
1111	// NullFields is a list of field names (e.g. "Fingerprint") to include
1112	// in API requests with the JSON null value. By default, fields with
1113	// empty values are omitted from API requests. However, any field with
1114	// an empty value appearing in NullFields will be sent to the server as
1115	// null. It is an error if a field in this list has a non-empty value.
1116	// This may be used to include null fields in Patch requests.
1117	NullFields []string `json:"-"`
1118}
1119
1120func (s *DeploymentsStopRequest) MarshalJSON() ([]byte, error) {
1121	type NoMethod DeploymentsStopRequest
1122	raw := NoMethod(*s)
1123	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1124}
1125
1126type Diagnostic struct {
1127	// Field: JsonPath expression on the resource that if non empty,
1128	// indicates that this field needs to be extracted as a diagnostic.
1129	Field string `json:"field,omitempty"`
1130
1131	// Level: Level to record this diagnostic.
1132	Level string `json:"level,omitempty"`
1133
1134	// ForceSendFields is a list of field names (e.g. "Field") to
1135	// unconditionally include in API requests. By default, fields with
1136	// empty values are omitted from API requests. However, any non-pointer,
1137	// non-interface field appearing in ForceSendFields will be sent to the
1138	// server regardless of whether the field is empty or not. This may be
1139	// used to include empty fields in Patch requests.
1140	ForceSendFields []string `json:"-"`
1141
1142	// NullFields is a list of field names (e.g. "Field") to include in API
1143	// requests with the JSON null value. By default, fields with empty
1144	// values are omitted from API requests. However, any field with an
1145	// empty value appearing in NullFields will be sent to the server as
1146	// null. It is an error if a field in this list has a non-empty value.
1147	// This may be used to include null fields in Patch requests.
1148	NullFields []string `json:"-"`
1149}
1150
1151func (s *Diagnostic) MarshalJSON() ([]byte, error) {
1152	type NoMethod Diagnostic
1153	raw := NoMethod(*s)
1154	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1155}
1156
1157// Expr: Represents a textual expression in the Common Expression
1158// Language (CEL) syntax. CEL is a C-like expression language. The
1159// syntax and semantics of CEL are documented at
1160// https://github.com/google/cel-spec.
1161//
1162// Example (Comparison):
1163//
1164// title: "Summary size limit" description: "Determines if a summary is
1165// less than 100 chars" expression: "document.summary.size() <
1166// 100"
1167//
1168// Example (Equality):
1169//
1170// title: "Requestor is owner" description: "Determines if requestor is
1171// the document owner" expression: "document.owner ==
1172// request.auth.claims.email"
1173//
1174// Example (Logic):
1175//
1176// title: "Public documents" description: "Determine whether the
1177// document should be publicly visible" expression: "document.type !=
1178// 'private' && document.type != 'internal'"
1179//
1180// Example (Data Manipulation):
1181//
1182// title: "Notification string" description: "Create a notification
1183// string with a timestamp." expression: "'New message received at ' +
1184// string(document.create_time)"
1185//
1186// The exact variables and functions that may be referenced within an
1187// expression are determined by the service that evaluates it. See the
1188// service documentation for additional information.
1189type Expr struct {
1190	// Description: Optional. Description of the expression. This is a
1191	// longer text which describes the expression, e.g. when hovered over it
1192	// in a UI.
1193	Description string `json:"description,omitempty"`
1194
1195	// Expression: Textual representation of an expression in Common
1196	// Expression Language syntax.
1197	Expression string `json:"expression,omitempty"`
1198
1199	// Location: Optional. String indicating the location of the expression
1200	// for error reporting, e.g. a file name and a position in the file.
1201	Location string `json:"location,omitempty"`
1202
1203	// Title: Optional. Title for the expression, i.e. a short string
1204	// describing its purpose. This can be used e.g. in UIs which allow to
1205	// enter the expression.
1206	Title string `json:"title,omitempty"`
1207
1208	// ForceSendFields is a list of field names (e.g. "Description") to
1209	// unconditionally include in API requests. By default, fields with
1210	// empty values are omitted from API requests. However, any non-pointer,
1211	// non-interface field appearing in ForceSendFields will be sent to the
1212	// server regardless of whether the field is empty or not. This may be
1213	// used to include empty fields in Patch requests.
1214	ForceSendFields []string `json:"-"`
1215
1216	// NullFields is a list of field names (e.g. "Description") to include
1217	// in API requests with the JSON null value. By default, fields with
1218	// empty values are omitted from API requests. However, any field with
1219	// an empty value appearing in NullFields will be sent to the server as
1220	// null. It is an error if a field in this list has a non-empty value.
1221	// This may be used to include null fields in Patch requests.
1222	NullFields []string `json:"-"`
1223}
1224
1225func (s *Expr) MarshalJSON() ([]byte, error) {
1226	type NoMethod Expr
1227	raw := NoMethod(*s)
1228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1229}
1230
1231type GlobalSetPolicyRequest struct {
1232	// Bindings: Flatten Policy to create a backward compatible wire-format.
1233	// Deprecated. Use 'policy' to specify bindings.
1234	Bindings []*Binding `json:"bindings,omitempty"`
1235
1236	// Etag: Flatten Policy to create a backward compatible wire-format.
1237	// Deprecated. Use 'policy' to specify the etag.
1238	Etag string `json:"etag,omitempty"`
1239
1240	// Policy: REQUIRED: The complete policy to be applied to the
1241	// 'resource'. The size of the policy is limited to a few 10s of KB. An
1242	// empty policy is in general a valid policy but certain services (like
1243	// Projects) might reject them.
1244	Policy *Policy `json:"policy,omitempty"`
1245
1246	// ForceSendFields is a list of field names (e.g. "Bindings") to
1247	// unconditionally include in API requests. By default, fields with
1248	// empty values are omitted from API requests. However, any non-pointer,
1249	// non-interface field appearing in ForceSendFields will be sent to the
1250	// server regardless of whether the field is empty or not. This may be
1251	// used to include empty fields in Patch requests.
1252	ForceSendFields []string `json:"-"`
1253
1254	// NullFields is a list of field names (e.g. "Bindings") to include in
1255	// API requests with the JSON null value. By default, fields with empty
1256	// values are omitted from API requests. However, any field with an
1257	// empty value appearing in NullFields will be sent to the server as
1258	// null. It is an error if a field in this list has a non-empty value.
1259	// This may be used to include null fields in Patch requests.
1260	NullFields []string `json:"-"`
1261}
1262
1263func (s *GlobalSetPolicyRequest) MarshalJSON() ([]byte, error) {
1264	type NoMethod GlobalSetPolicyRequest
1265	raw := NoMethod(*s)
1266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1267}
1268
1269type ImportFile struct {
1270	// Content: The contents of the file.
1271	Content string `json:"content,omitempty"`
1272
1273	// Name: The name of the file.
1274	Name string `json:"name,omitempty"`
1275
1276	// ForceSendFields is a list of field names (e.g. "Content") to
1277	// unconditionally include in API requests. By default, fields with
1278	// empty values are omitted from API requests. However, any non-pointer,
1279	// non-interface field appearing in ForceSendFields will be sent to the
1280	// server regardless of whether the field is empty or not. This may be
1281	// used to include empty fields in Patch requests.
1282	ForceSendFields []string `json:"-"`
1283
1284	// NullFields is a list of field names (e.g. "Content") to include in
1285	// API requests with the JSON null value. By default, fields with empty
1286	// values are omitted from API requests. However, any field with an
1287	// empty value appearing in NullFields will be sent to the server as
1288	// null. It is an error if a field in this list has a non-empty value.
1289	// This may be used to include null fields in Patch requests.
1290	NullFields []string `json:"-"`
1291}
1292
1293func (s *ImportFile) MarshalJSON() ([]byte, error) {
1294	type NoMethod ImportFile
1295	raw := NoMethod(*s)
1296	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1297}
1298
1299// InputMapping: InputMapping creates a 'virtual' property that will be
1300// injected into the properties before sending the request to the
1301// underlying API.
1302type InputMapping struct {
1303	// FieldName: The name of the field that is going to be injected.
1304	FieldName string `json:"fieldName,omitempty"`
1305
1306	// Location: The location where this mapping applies.
1307	Location string `json:"location,omitempty"`
1308
1309	// MethodMatch: Regex to evaluate on method to decide if input applies.
1310	MethodMatch string `json:"methodMatch,omitempty"`
1311
1312	// Value: A jsonPath expression to select an element.
1313	Value string `json:"value,omitempty"`
1314
1315	// ForceSendFields is a list of field names (e.g. "FieldName") to
1316	// unconditionally include in API requests. By default, fields with
1317	// empty values are omitted from API requests. However, any non-pointer,
1318	// non-interface field appearing in ForceSendFields will be sent to the
1319	// server regardless of whether the field is empty or not. This may be
1320	// used to include empty fields in Patch requests.
1321	ForceSendFields []string `json:"-"`
1322
1323	// NullFields is a list of field names (e.g. "FieldName") to include in
1324	// API requests with the JSON null value. By default, fields with empty
1325	// values are omitted from API requests. However, any field with an
1326	// empty value appearing in NullFields will be sent to the server as
1327	// null. It is an error if a field in this list has a non-empty value.
1328	// This may be used to include null fields in Patch requests.
1329	NullFields []string `json:"-"`
1330}
1331
1332func (s *InputMapping) MarshalJSON() ([]byte, error) {
1333	type NoMethod InputMapping
1334	raw := NoMethod(*s)
1335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1336}
1337
1338// LogConfig: Specifies what kind of log the caller must write
1339type LogConfig struct {
1340	// CloudAudit: Cloud audit options.
1341	CloudAudit *LogConfigCloudAuditOptions `json:"cloudAudit,omitempty"`
1342
1343	// Counter: Counter options.
1344	Counter *LogConfigCounterOptions `json:"counter,omitempty"`
1345
1346	// DataAccess: Data access options.
1347	DataAccess *LogConfigDataAccessOptions `json:"dataAccess,omitempty"`
1348
1349	// ForceSendFields is a list of field names (e.g. "CloudAudit") to
1350	// unconditionally include in API requests. By default, fields with
1351	// empty values are omitted from API requests. However, any non-pointer,
1352	// non-interface field appearing in ForceSendFields will be sent to the
1353	// server regardless of whether the field is empty or not. This may be
1354	// used to include empty fields in Patch requests.
1355	ForceSendFields []string `json:"-"`
1356
1357	// NullFields is a list of field names (e.g. "CloudAudit") to include in
1358	// API requests with the JSON null value. By default, fields with empty
1359	// values are omitted from API requests. However, any field with an
1360	// empty value appearing in NullFields will be sent to the server as
1361	// null. It is an error if a field in this list has a non-empty value.
1362	// This may be used to include null fields in Patch requests.
1363	NullFields []string `json:"-"`
1364}
1365
1366func (s *LogConfig) MarshalJSON() ([]byte, error) {
1367	type NoMethod LogConfig
1368	raw := NoMethod(*s)
1369	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1370}
1371
1372// LogConfigCloudAuditOptions: Write a Cloud Audit log
1373type LogConfigCloudAuditOptions struct {
1374	// AuthorizationLoggingOptions: Information used by the Cloud Audit
1375	// Logging pipeline.
1376	AuthorizationLoggingOptions *AuthorizationLoggingOptions `json:"authorizationLoggingOptions,omitempty"`
1377
1378	// LogName: The log_name to populate in the Cloud Audit Record.
1379	LogName string `json:"logName,omitempty"`
1380
1381	// ForceSendFields is a list of field names (e.g.
1382	// "AuthorizationLoggingOptions") to unconditionally include in API
1383	// requests. By default, fields with empty values are omitted from API
1384	// requests. However, any non-pointer, non-interface field appearing in
1385	// ForceSendFields will be sent to the server regardless of whether the
1386	// field is empty or not. This may be used to include empty fields in
1387	// Patch requests.
1388	ForceSendFields []string `json:"-"`
1389
1390	// NullFields is a list of field names (e.g.
1391	// "AuthorizationLoggingOptions") to include in API requests with the
1392	// JSON null value. By default, fields with empty values are omitted
1393	// from API requests. However, any field with an empty value appearing
1394	// in NullFields will be sent to the server as null. It is an error if a
1395	// field in this list has a non-empty value. This may be used to include
1396	// null fields in Patch requests.
1397	NullFields []string `json:"-"`
1398}
1399
1400func (s *LogConfigCloudAuditOptions) MarshalJSON() ([]byte, error) {
1401	type NoMethod LogConfigCloudAuditOptions
1402	raw := NoMethod(*s)
1403	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1404}
1405
1406// LogConfigCounterOptions: Increment a streamz counter with the
1407// specified metric and field names.
1408//
1409// Metric names should start with a '/', generally be lowercase-only,
1410// and end in "_count". Field names should not contain an initial slash.
1411// The actual exported metric names will have "/iam/policy"
1412// prepended.
1413//
1414// Field names correspond to IAM request parameters and field values are
1415// their respective values.
1416//
1417// Supported field names: - "authority", which is "[token]" if
1418// IAMContext.token is present, otherwise the value of
1419// IAMContext.authority_selector if present, and otherwise a
1420// representation of IAMContext.principal; or - "iam_principal", a
1421// representation of IAMContext.principal even if a token or authority
1422// selector is present; or - "" (empty string), resulting in a counter
1423// with no fields.
1424//
1425// Examples: counter { metric: "/debug_access_count" field:
1426// "iam_principal" } ==> increment counter
1427// /iam/policy/debug_access_count {iam_principal=[value of
1428// IAMContext.principal]}
1429type LogConfigCounterOptions struct {
1430	// CustomFields: Custom fields.
1431	CustomFields []*LogConfigCounterOptionsCustomField `json:"customFields,omitempty"`
1432
1433	// Field: The field value to attribute.
1434	Field string `json:"field,omitempty"`
1435
1436	// Metric: The metric to update.
1437	Metric string `json:"metric,omitempty"`
1438
1439	// ForceSendFields is a list of field names (e.g. "CustomFields") to
1440	// unconditionally include in API requests. By default, fields with
1441	// empty values are omitted from API requests. However, any non-pointer,
1442	// non-interface field appearing in ForceSendFields will be sent to the
1443	// server regardless of whether the field is empty or not. This may be
1444	// used to include empty fields in Patch requests.
1445	ForceSendFields []string `json:"-"`
1446
1447	// NullFields is a list of field names (e.g. "CustomFields") to include
1448	// in API requests with the JSON null value. By default, fields with
1449	// empty values are omitted from API requests. However, any field with
1450	// an empty value appearing in NullFields will be sent to the server as
1451	// null. It is an error if a field in this list has a non-empty value.
1452	// This may be used to include null fields in Patch requests.
1453	NullFields []string `json:"-"`
1454}
1455
1456func (s *LogConfigCounterOptions) MarshalJSON() ([]byte, error) {
1457	type NoMethod LogConfigCounterOptions
1458	raw := NoMethod(*s)
1459	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1460}
1461
1462// LogConfigCounterOptionsCustomField: Custom fields. These can be used
1463// to create a counter with arbitrary field/value pairs. See:
1464// go/rpcsp-custom-fields.
1465type LogConfigCounterOptionsCustomField struct {
1466	// Name: Name is the field name.
1467	Name string `json:"name,omitempty"`
1468
1469	// Value: Value is the field value. It is important that in contrast to
1470	// the CounterOptions.field, the value here is a constant that is not
1471	// derived from the IAMContext.
1472	Value string `json:"value,omitempty"`
1473
1474	// ForceSendFields is a list of field names (e.g. "Name") to
1475	// unconditionally include in API requests. By default, fields with
1476	// empty values are omitted from API requests. However, any non-pointer,
1477	// non-interface field appearing in ForceSendFields will be sent to the
1478	// server regardless of whether the field is empty or not. This may be
1479	// used to include empty fields in Patch requests.
1480	ForceSendFields []string `json:"-"`
1481
1482	// NullFields is a list of field names (e.g. "Name") to include in API
1483	// requests with the JSON null value. By default, fields with empty
1484	// values are omitted from API requests. However, any field with an
1485	// empty value appearing in NullFields will be sent to the server as
1486	// null. It is an error if a field in this list has a non-empty value.
1487	// This may be used to include null fields in Patch requests.
1488	NullFields []string `json:"-"`
1489}
1490
1491func (s *LogConfigCounterOptionsCustomField) MarshalJSON() ([]byte, error) {
1492	type NoMethod LogConfigCounterOptionsCustomField
1493	raw := NoMethod(*s)
1494	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1495}
1496
1497// LogConfigDataAccessOptions: Write a Data Access (Gin) log
1498type LogConfigDataAccessOptions struct {
1499	LogMode string `json:"logMode,omitempty"`
1500
1501	// ForceSendFields is a list of field names (e.g. "LogMode") to
1502	// unconditionally include in API requests. By default, fields with
1503	// empty values are omitted from API requests. However, any non-pointer,
1504	// non-interface field appearing in ForceSendFields will be sent to the
1505	// server regardless of whether the field is empty or not. This may be
1506	// used to include empty fields in Patch requests.
1507	ForceSendFields []string `json:"-"`
1508
1509	// NullFields is a list of field names (e.g. "LogMode") to include in
1510	// API requests with the JSON null value. By default, fields with empty
1511	// values are omitted from API requests. However, any field with an
1512	// empty value appearing in NullFields will be sent to the server as
1513	// null. It is an error if a field in this list has a non-empty value.
1514	// This may be used to include null fields in Patch requests.
1515	NullFields []string `json:"-"`
1516}
1517
1518func (s *LogConfigDataAccessOptions) MarshalJSON() ([]byte, error) {
1519	type NoMethod LogConfigDataAccessOptions
1520	raw := NoMethod(*s)
1521	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1522}
1523
1524type Manifest struct {
1525	// Config: Output only. The YAML configuration for this manifest.
1526	Config *ConfigFile `json:"config,omitempty"`
1527
1528	// ExpandedConfig: Output only. The fully-expanded configuration file,
1529	// including any templates and references.
1530	ExpandedConfig string `json:"expandedConfig,omitempty"`
1531
1532	Id uint64 `json:"id,omitempty,string"`
1533
1534	// Imports: Output only. The imported files for this manifest.
1535	Imports []*ImportFile `json:"imports,omitempty"`
1536
1537	// InsertTime: Output only. Creation timestamp in RFC3339 text format.
1538	InsertTime string `json:"insertTime,omitempty"`
1539
1540	// Layout: Output only. The YAML layout for this manifest.
1541	Layout string `json:"layout,omitempty"`
1542
1543	// Name: Output only.
1544	//
1545	// The name of the manifest.
1546	Name string `json:"name,omitempty"`
1547
1548	// SelfLink: Output only. Self link for the manifest.
1549	SelfLink string `json:"selfLink,omitempty"`
1550
1551	// ServerResponse contains the HTTP response code and headers from the
1552	// server.
1553	googleapi.ServerResponse `json:"-"`
1554
1555	// ForceSendFields is a list of field names (e.g. "Config") to
1556	// unconditionally include in API requests. By default, fields with
1557	// empty values are omitted from API requests. However, any non-pointer,
1558	// non-interface field appearing in ForceSendFields will be sent to the
1559	// server regardless of whether the field is empty or not. This may be
1560	// used to include empty fields in Patch requests.
1561	ForceSendFields []string `json:"-"`
1562
1563	// NullFields is a list of field names (e.g. "Config") to include in API
1564	// requests with the JSON null value. By default, fields with empty
1565	// values are omitted from API requests. However, any field with an
1566	// empty value appearing in NullFields will be sent to the server as
1567	// null. It is an error if a field in this list has a non-empty value.
1568	// This may be used to include null fields in Patch requests.
1569	NullFields []string `json:"-"`
1570}
1571
1572func (s *Manifest) MarshalJSON() ([]byte, error) {
1573	type NoMethod Manifest
1574	raw := NoMethod(*s)
1575	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1576}
1577
1578// ManifestsListResponse: A response containing a partial list of
1579// manifests and a page token used to build the next request if the
1580// request has been truncated.
1581type ManifestsListResponse struct {
1582	// Manifests: Output only. Manifests contained in this list response.
1583	Manifests []*Manifest `json:"manifests,omitempty"`
1584
1585	// NextPageToken: Output only. A token used to continue a truncated list
1586	// request.
1587	NextPageToken string `json:"nextPageToken,omitempty"`
1588
1589	// ServerResponse contains the HTTP response code and headers from the
1590	// server.
1591	googleapi.ServerResponse `json:"-"`
1592
1593	// ForceSendFields is a list of field names (e.g. "Manifests") to
1594	// unconditionally include in API requests. By default, fields with
1595	// empty values are omitted from API requests. However, any non-pointer,
1596	// non-interface field appearing in ForceSendFields will be sent to the
1597	// server regardless of whether the field is empty or not. This may be
1598	// used to include empty fields in Patch requests.
1599	ForceSendFields []string `json:"-"`
1600
1601	// NullFields is a list of field names (e.g. "Manifests") to include in
1602	// API requests with the JSON null value. By default, fields with empty
1603	// values are omitted from API requests. However, any field with an
1604	// empty value appearing in NullFields will be sent to the server as
1605	// null. It is an error if a field in this list has a non-empty value.
1606	// This may be used to include null fields in Patch requests.
1607	NullFields []string `json:"-"`
1608}
1609
1610func (s *ManifestsListResponse) MarshalJSON() ([]byte, error) {
1611	type NoMethod ManifestsListResponse
1612	raw := NoMethod(*s)
1613	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1614}
1615
1616// Operation: Represents an Operation resource.
1617//
1618// Google Compute Engine has three Operation resources:
1619//
1620// *
1621// [Global](/compute/docs/reference/rest/{$api_version}/globalOperations)
1622//  *
1623// [Regional](/compute/docs/reference/rest/{$api_version}/regionOperation
1624// s) *
1625// [Zonal](/compute/docs/reference/rest/{$api_version}/zoneOperations)
1626//
1627// Y
1628// ou can use an operation resource to manage asynchronous API requests.
1629// For more information, read Handling API responses.
1630//
1631// Operations can be global, regional or zonal.
1632// - For global operations, use the `globalOperations` resource.
1633// - For regional operations, use the `regionOperations` resource.
1634// - For zonal operations, use the `zonalOperations` resource.
1635//
1636// For more information, read  Global, Regional, and Zonal Resources.
1637// (== resource_for {$api_version}.globalOperations ==) (== resource_for
1638// {$api_version}.regionOperations ==) (== resource_for
1639// {$api_version}.zoneOperations ==)
1640type Operation struct {
1641	// ClientOperationId: [Output Only] The value of `requestId` if you
1642	// provided it in the request. Not present otherwise.
1643	ClientOperationId string `json:"clientOperationId,omitempty"`
1644
1645	// CreationTimestamp: [Deprecated] This field is deprecated.
1646	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1647
1648	// Description: [Output Only] A textual description of the operation,
1649	// which is set when the operation is created.
1650	Description string `json:"description,omitempty"`
1651
1652	// EndTime: [Output Only] The time that this operation was completed.
1653	// This value is in RFC3339 text format.
1654	EndTime string `json:"endTime,omitempty"`
1655
1656	// Error: [Output Only] If errors are generated during processing of the
1657	// operation, this field will be populated.
1658	Error *OperationError `json:"error,omitempty"`
1659
1660	// HttpErrorMessage: [Output Only] If the operation fails, this field
1661	// contains the HTTP error message that was returned, such as `NOT
1662	// FOUND`.
1663	HttpErrorMessage string `json:"httpErrorMessage,omitempty"`
1664
1665	// HttpErrorStatusCode: [Output Only] If the operation fails, this field
1666	// contains the HTTP error status code that was returned. For example, a
1667	// `404` means the resource was not found.
1668	HttpErrorStatusCode int64 `json:"httpErrorStatusCode,omitempty"`
1669
1670	// Id: [Output Only] The unique identifier for the operation. This
1671	// identifier is defined by the server.
1672	Id uint64 `json:"id,omitempty,string"`
1673
1674	// InsertTime: [Output Only] The time that this operation was requested.
1675	// This value is in RFC3339 text format.
1676	InsertTime string `json:"insertTime,omitempty"`
1677
1678	// Kind: [Output Only] Type of the resource. Always `compute#operation`
1679	// for Operation resources.
1680	Kind string `json:"kind,omitempty"`
1681
1682	// Name: [Output Only] Name of the operation.
1683	Name string `json:"name,omitempty"`
1684
1685	// OperationType: [Output Only] The type of operation, such as `insert`,
1686	// `update`, or `delete`, and so on.
1687	OperationType string `json:"operationType,omitempty"`
1688
1689	// Progress: [Output Only] An optional progress indicator that ranges
1690	// from 0 to 100. There is no requirement that this be linear or support
1691	// any granularity of operations. This should not be used to guess when
1692	// the operation will be complete. This number should monotonically
1693	// increase as the operation progresses.
1694	Progress int64 `json:"progress,omitempty"`
1695
1696	// Region: [Output Only] The URL of the region where the operation
1697	// resides. Only applicable when performing regional operations.
1698	Region string `json:"region,omitempty"`
1699
1700	// SelfLink: [Output Only] Server-defined URL for the resource.
1701	SelfLink string `json:"selfLink,omitempty"`
1702
1703	// StartTime: [Output Only] The time that this operation was started by
1704	// the server. This value is in RFC3339 text format.
1705	StartTime string `json:"startTime,omitempty"`
1706
1707	// Status: [Output Only] The status of the operation, which can be one
1708	// of the following: `PENDING`, `RUNNING`, or `DONE`.
1709	Status string `json:"status,omitempty"`
1710
1711	// StatusMessage: [Output Only] An optional textual description of the
1712	// current status of the operation.
1713	StatusMessage string `json:"statusMessage,omitempty"`
1714
1715	// TargetId: [Output Only] The unique target ID, which identifies a
1716	// specific incarnation of the target resource.
1717	TargetId uint64 `json:"targetId,omitempty,string"`
1718
1719	// TargetLink: [Output Only] The URL of the resource that the operation
1720	// modifies. For operations related to creating a snapshot, this points
1721	// to the persistent disk that the snapshot was created from.
1722	TargetLink string `json:"targetLink,omitempty"`
1723
1724	// User: [Output Only] User who requested the operation, for example:
1725	// `user@example.com`.
1726	User string `json:"user,omitempty"`
1727
1728	// Warnings: [Output Only] If warning messages are generated during
1729	// processing of the operation, this field will be populated.
1730	Warnings []*OperationWarnings `json:"warnings,omitempty"`
1731
1732	// Zone: [Output Only] The URL of the zone where the operation resides.
1733	// Only applicable when performing per-zone operations.
1734	Zone string `json:"zone,omitempty"`
1735
1736	// ServerResponse contains the HTTP response code and headers from the
1737	// server.
1738	googleapi.ServerResponse `json:"-"`
1739
1740	// ForceSendFields is a list of field names (e.g. "ClientOperationId")
1741	// to unconditionally include in API requests. By default, fields with
1742	// empty values are omitted from API requests. However, any non-pointer,
1743	// non-interface field appearing in ForceSendFields will be sent to the
1744	// server regardless of whether the field is empty or not. This may be
1745	// used to include empty fields in Patch requests.
1746	ForceSendFields []string `json:"-"`
1747
1748	// NullFields is a list of field names (e.g. "ClientOperationId") to
1749	// include in API requests with the JSON null value. By default, fields
1750	// with empty values are omitted from API requests. However, any field
1751	// with an empty value appearing in NullFields will be sent to the
1752	// server as null. It is an error if a field in this list has a
1753	// non-empty value. This may be used to include null fields in Patch
1754	// requests.
1755	NullFields []string `json:"-"`
1756}
1757
1758func (s *Operation) MarshalJSON() ([]byte, error) {
1759	type NoMethod Operation
1760	raw := NoMethod(*s)
1761	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1762}
1763
1764// OperationError: [Output Only] If errors are generated during
1765// processing of the operation, this field will be populated.
1766type OperationError struct {
1767	// Errors: [Output Only] The array of errors encountered while
1768	// processing this operation.
1769	Errors []*OperationErrorErrors `json:"errors,omitempty"`
1770
1771	// ForceSendFields is a list of field names (e.g. "Errors") to
1772	// unconditionally include in API requests. By default, fields with
1773	// empty values are omitted from API requests. However, any non-pointer,
1774	// non-interface field appearing in ForceSendFields will be sent to the
1775	// server regardless of whether the field is empty or not. This may be
1776	// used to include empty fields in Patch requests.
1777	ForceSendFields []string `json:"-"`
1778
1779	// NullFields is a list of field names (e.g. "Errors") to include in API
1780	// requests with the JSON null value. By default, fields with empty
1781	// values are omitted from API requests. However, any field with an
1782	// empty value appearing in NullFields will be sent to the server as
1783	// null. It is an error if a field in this list has a non-empty value.
1784	// This may be used to include null fields in Patch requests.
1785	NullFields []string `json:"-"`
1786}
1787
1788func (s *OperationError) MarshalJSON() ([]byte, error) {
1789	type NoMethod OperationError
1790	raw := NoMethod(*s)
1791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1792}
1793
1794type OperationErrorErrors struct {
1795	// Code: [Output Only] The error type identifier for this error.
1796	Code string `json:"code,omitempty"`
1797
1798	// Location: [Output Only] Indicates the field in the request that
1799	// caused the error. This property is optional.
1800	Location string `json:"location,omitempty"`
1801
1802	// Message: [Output Only] An optional, human-readable error message.
1803	Message string `json:"message,omitempty"`
1804
1805	// ForceSendFields is a list of field names (e.g. "Code") to
1806	// unconditionally include in API requests. By default, fields with
1807	// empty values are omitted from API requests. However, any non-pointer,
1808	// non-interface field appearing in ForceSendFields will be sent to the
1809	// server regardless of whether the field is empty or not. This may be
1810	// used to include empty fields in Patch requests.
1811	ForceSendFields []string `json:"-"`
1812
1813	// NullFields is a list of field names (e.g. "Code") to include in API
1814	// requests with the JSON null value. By default, fields with empty
1815	// values are omitted from API requests. However, any field with an
1816	// empty value appearing in NullFields will be sent to the server as
1817	// null. It is an error if a field in this list has a non-empty value.
1818	// This may be used to include null fields in Patch requests.
1819	NullFields []string `json:"-"`
1820}
1821
1822func (s *OperationErrorErrors) MarshalJSON() ([]byte, error) {
1823	type NoMethod OperationErrorErrors
1824	raw := NoMethod(*s)
1825	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1826}
1827
1828type OperationWarnings struct {
1829	// Code: [Output Only] A warning code, if applicable. For example,
1830	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1831	// the response.
1832	Code string `json:"code,omitempty"`
1833
1834	// Data: [Output Only] Metadata about this warning in key: value format.
1835	// For example:
1836	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1837	Data []*OperationWarningsData `json:"data,omitempty"`
1838
1839	// Message: [Output Only] A human-readable description of the warning
1840	// code.
1841	Message string `json:"message,omitempty"`
1842
1843	// ForceSendFields is a list of field names (e.g. "Code") to
1844	// unconditionally include in API requests. By default, fields with
1845	// empty values are omitted from API requests. However, any non-pointer,
1846	// non-interface field appearing in ForceSendFields will be sent to the
1847	// server regardless of whether the field is empty or not. This may be
1848	// used to include empty fields in Patch requests.
1849	ForceSendFields []string `json:"-"`
1850
1851	// NullFields is a list of field names (e.g. "Code") to include in API
1852	// requests with the JSON null value. By default, fields with empty
1853	// values are omitted from API requests. However, any field with an
1854	// empty value appearing in NullFields will be sent to the server as
1855	// null. It is an error if a field in this list has a non-empty value.
1856	// This may be used to include null fields in Patch requests.
1857	NullFields []string `json:"-"`
1858}
1859
1860func (s *OperationWarnings) MarshalJSON() ([]byte, error) {
1861	type NoMethod OperationWarnings
1862	raw := NoMethod(*s)
1863	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1864}
1865
1866type OperationWarningsData struct {
1867	// Key: [Output Only] A key that provides more detail on the warning
1868	// being returned. For example, for warnings where there are no results
1869	// in a list request for a particular zone, this key might be scope and
1870	// the key value might be the zone name. Other examples might be a key
1871	// indicating a deprecated resource and a suggested replacement, or a
1872	// warning about invalid network settings (for example, if an instance
1873	// attempts to perform IP forwarding but is not enabled for IP
1874	// forwarding).
1875	Key string `json:"key,omitempty"`
1876
1877	// Value: [Output Only] A warning data value corresponding to the key.
1878	Value string `json:"value,omitempty"`
1879
1880	// ForceSendFields is a list of field names (e.g. "Key") to
1881	// unconditionally include in API requests. By default, fields with
1882	// empty values are omitted from API requests. However, any non-pointer,
1883	// non-interface field appearing in ForceSendFields will be sent to the
1884	// server regardless of whether the field is empty or not. This may be
1885	// used to include empty fields in Patch requests.
1886	ForceSendFields []string `json:"-"`
1887
1888	// NullFields is a list of field names (e.g. "Key") to include in API
1889	// requests with the JSON null value. By default, fields with empty
1890	// values are omitted from API requests. However, any field with an
1891	// empty value appearing in NullFields will be sent to the server as
1892	// null. It is an error if a field in this list has a non-empty value.
1893	// This may be used to include null fields in Patch requests.
1894	NullFields []string `json:"-"`
1895}
1896
1897func (s *OperationWarningsData) MarshalJSON() ([]byte, error) {
1898	type NoMethod OperationWarningsData
1899	raw := NoMethod(*s)
1900	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1901}
1902
1903// OperationsListResponse: A response containing a partial list of
1904// operations and a page token used to build the next request if the
1905// request has been truncated.
1906type OperationsListResponse struct {
1907	// NextPageToken: Output only. A token used to continue a truncated list
1908	// request.
1909	NextPageToken string `json:"nextPageToken,omitempty"`
1910
1911	// Operations: Output only. Operations contained in this list response.
1912	Operations []*Operation `json:"operations,omitempty"`
1913
1914	// ServerResponse contains the HTTP response code and headers from the
1915	// server.
1916	googleapi.ServerResponse `json:"-"`
1917
1918	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
1919	// unconditionally include in API requests. By default, fields with
1920	// empty values are omitted from API requests. However, any non-pointer,
1921	// non-interface field appearing in ForceSendFields will be sent to the
1922	// server regardless of whether the field is empty or not. This may be
1923	// used to include empty fields in Patch requests.
1924	ForceSendFields []string `json:"-"`
1925
1926	// NullFields is a list of field names (e.g. "NextPageToken") to include
1927	// in API requests with the JSON null value. By default, fields with
1928	// empty values are omitted from API requests. However, any field with
1929	// an empty value appearing in NullFields will be sent to the server as
1930	// null. It is an error if a field in this list has a non-empty value.
1931	// This may be used to include null fields in Patch requests.
1932	NullFields []string `json:"-"`
1933}
1934
1935func (s *OperationsListResponse) MarshalJSON() ([]byte, error) {
1936	type NoMethod OperationsListResponse
1937	raw := NoMethod(*s)
1938	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1939}
1940
1941// Options: Options allows customized resource handling by Deployment
1942// Manager.
1943type Options struct {
1944	// AsyncOptions: Options regarding how to thread async requests.
1945	AsyncOptions []*AsyncOptions `json:"asyncOptions,omitempty"`
1946
1947	// InputMappings: The mappings that apply for requests.
1948	InputMappings []*InputMapping `json:"inputMappings,omitempty"`
1949
1950	// ValidationOptions: Options for how to validate and process properties
1951	// on a resource.
1952	ValidationOptions *ValidationOptions `json:"validationOptions,omitempty"`
1953
1954	// VirtualProperties: Additional properties block described as a
1955	// jsonSchema, these properties will never be part of the json payload,
1956	// but they can be consumed by InputMappings, this must be a valid json
1957	// schema draft-04. The properties specified here will be decouple in a
1958	// different section. This schema will be merged to the schema
1959	// validation, and properties here will be extracted From the payload
1960	// and consumed explicitly by InputMappings. ex: field1: type: string
1961	// field2: type: number
1962	VirtualProperties string `json:"virtualProperties,omitempty"`
1963
1964	// ForceSendFields is a list of field names (e.g. "AsyncOptions") to
1965	// unconditionally include in API requests. By default, fields with
1966	// empty values are omitted from API requests. However, any non-pointer,
1967	// non-interface field appearing in ForceSendFields will be sent to the
1968	// server regardless of whether the field is empty or not. This may be
1969	// used to include empty fields in Patch requests.
1970	ForceSendFields []string `json:"-"`
1971
1972	// NullFields is a list of field names (e.g. "AsyncOptions") to include
1973	// in API requests with the JSON null value. By default, fields with
1974	// empty values are omitted from API requests. However, any field with
1975	// an empty value appearing in NullFields will be sent to the server as
1976	// null. It is an error if a field in this list has a non-empty value.
1977	// This may be used to include null fields in Patch requests.
1978	NullFields []string `json:"-"`
1979}
1980
1981func (s *Options) MarshalJSON() ([]byte, error) {
1982	type NoMethod Options
1983	raw := NoMethod(*s)
1984	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1985}
1986
1987// Policy: An Identity and Access Management (IAM) policy, which
1988// specifies access controls for Google Cloud resources.
1989//
1990//
1991//
1992// A `Policy` is a collection of `bindings`. A `binding` binds one or
1993// more `members` to a single `role`. Members can be user accounts,
1994// service accounts, Google groups, and domains (such as G Suite). A
1995// `role` is a named list of permissions; each `role` can be an IAM
1996// predefined role or a user-created custom role.
1997//
1998// For some types of Google Cloud resources, a `binding` can also
1999// specify a `condition`, which is a logical expression that allows
2000// access to a resource only if the expression evaluates to `true`. A
2001// condition can add constraints based on attributes of the request, the
2002// resource, or both. To learn which resources support conditions in
2003// their IAM policies, see the [IAM
2004// documentation](https://cloud.google.com/iam/help/conditions/resource-p
2005// olicies).
2006//
2007// **JSON example:**
2008//
2009// { "bindings": [ { "role": "roles/resourcemanager.organizationAdmin",
2010// "members": [ "user:mike@example.com", "group:admins@example.com",
2011// "domain:google.com",
2012// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, {
2013// "role": "roles/resourcemanager.organizationViewer", "members": [
2014// "user:eve@example.com" ], "condition": { "title": "expirable access",
2015// "description": "Does not grant access after Sep 2020", "expression":
2016// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ],
2017// "etag": "BwWWja0YfJA=", "version": 3 }
2018//
2019// **YAML example:**
2020//
2021// bindings: - members: - user:mike@example.com -
2022// group:admins@example.com - domain:google.com -
2023// serviceAccount:my-project-id@appspot.gserviceaccount.com role:
2024// roles/resourcemanager.organizationAdmin - members: -
2025// user:eve@example.com role: roles/resourcemanager.organizationViewer
2026// condition: title: expirable access description: Does not grant access
2027// after Sep 2020 expression: request.time <
2028// timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version:
2029// 3
2030//
2031// For a description of IAM and its features, see the [IAM
2032// documentation](https://cloud.google.com/iam/docs/).
2033type Policy struct {
2034	// AuditConfigs: Specifies cloud audit logging configuration for this
2035	// policy.
2036	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
2037
2038	// Bindings: Associates a list of `members` to a `role`. Optionally, may
2039	// specify a `condition` that determines how and when the `bindings` are
2040	// applied. Each of the `bindings` must contain at least one member.
2041	Bindings []*Binding `json:"bindings,omitempty"`
2042
2043	// Etag: `etag` is used for optimistic concurrency control as a way to
2044	// help prevent simultaneous updates of a policy from overwriting each
2045	// other. It is strongly suggested that systems make use of the `etag`
2046	// in the read-modify-write cycle to perform policy updates in order to
2047	// avoid race conditions: An `etag` is returned in the response to
2048	// `getIamPolicy`, and systems are expected to put that etag in the
2049	// request to `setIamPolicy` to ensure that their change will be applied
2050	// to the same version of the policy.
2051	//
2052	// **Important:** If you use IAM Conditions, you must include the `etag`
2053	// field whenever you call `setIamPolicy`. If you omit this field, then
2054	// IAM allows you to overwrite a version `3` policy with a version `1`
2055	// policy, and all of the conditions in the version `3` policy are lost.
2056	Etag string `json:"etag,omitempty"`
2057
2058	IamOwned bool `json:"iamOwned,omitempty"`
2059
2060	// Rules: If more than one rule is specified, the rules are applied in
2061	// the following manner: - All matching LOG rules are always applied. -
2062	// If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging
2063	// will be applied if one or more matching rule requires logging. -
2064	// Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
2065	// granted. Logging will be applied if one or more matching rule
2066	// requires logging. - Otherwise, if no rule applies, permission is
2067	// denied.
2068	Rules []*Rule `json:"rules,omitempty"`
2069
2070	// Version: Specifies the format of the policy.
2071	//
2072	// Valid values are `0`, `1`, and `3`. Requests that specify an invalid
2073	// value are rejected.
2074	//
2075	// Any operation that affects conditional role bindings must specify
2076	// version `3`. This requirement applies to the following operations:
2077	//
2078	// * Getting a policy that includes a conditional role binding * Adding
2079	// a conditional role binding to a policy * Changing a conditional role
2080	// binding in a policy * Removing any role binding, with or without a
2081	// condition, from a policy that includes conditions
2082	//
2083	// **Important:** If you use IAM Conditions, you must include the `etag`
2084	// field whenever you call `setIamPolicy`. If you omit this field, then
2085	// IAM allows you to overwrite a version `3` policy with a version `1`
2086	// policy, and all of the conditions in the version `3` policy are
2087	// lost.
2088	//
2089	// If a policy does not include any conditions, operations on that
2090	// policy may specify any valid version or leave the field unset.
2091	//
2092	// To learn which resources support conditions in their IAM policies,
2093	// see the [IAM
2094	// documentation](https://cloud.google.com/iam/help/conditions/resource-p
2095	// olicies).
2096	Version int64 `json:"version,omitempty"`
2097
2098	// ServerResponse contains the HTTP response code and headers from the
2099	// server.
2100	googleapi.ServerResponse `json:"-"`
2101
2102	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
2103	// unconditionally include in API requests. By default, fields with
2104	// empty values are omitted from API requests. However, any non-pointer,
2105	// non-interface field appearing in ForceSendFields will be sent to the
2106	// server regardless of whether the field is empty or not. This may be
2107	// used to include empty fields in Patch requests.
2108	ForceSendFields []string `json:"-"`
2109
2110	// NullFields is a list of field names (e.g. "AuditConfigs") to include
2111	// in API requests with the JSON null value. By default, fields with
2112	// empty values are omitted from API requests. However, any field with
2113	// an empty value appearing in NullFields will be sent to the server as
2114	// null. It is an error if a field in this list has a non-empty value.
2115	// This may be used to include null fields in Patch requests.
2116	NullFields []string `json:"-"`
2117}
2118
2119func (s *Policy) MarshalJSON() ([]byte, error) {
2120	type NoMethod Policy
2121	raw := NoMethod(*s)
2122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2123}
2124
2125type PollingOptions struct {
2126	// Diagnostics: An array of diagnostics to be collected by Deployment
2127	// Manager, these diagnostics will be displayed to the user.
2128	Diagnostics []*Diagnostic `json:"diagnostics,omitempty"`
2129
2130	// FailCondition: JsonPath expression that determines if the request
2131	// failed.
2132	FailCondition string `json:"failCondition,omitempty"`
2133
2134	// FinishCondition: JsonPath expression that determines if the request
2135	// is completed.
2136	FinishCondition string `json:"finishCondition,omitempty"`
2137
2138	// PollingLink: JsonPath expression that evaluates to string, it
2139	// indicates where to poll.
2140	PollingLink string `json:"pollingLink,omitempty"`
2141
2142	// TargetLink: JsonPath expression, after polling is completed,
2143	// indicates where to fetch the resource.
2144	TargetLink string `json:"targetLink,omitempty"`
2145
2146	// ForceSendFields is a list of field names (e.g. "Diagnostics") to
2147	// unconditionally include in API requests. By default, fields with
2148	// empty values are omitted from API requests. However, any non-pointer,
2149	// non-interface field appearing in ForceSendFields will be sent to the
2150	// server regardless of whether the field is empty or not. This may be
2151	// used to include empty fields in Patch requests.
2152	ForceSendFields []string `json:"-"`
2153
2154	// NullFields is a list of field names (e.g. "Diagnostics") to include
2155	// in API requests with the JSON null value. By default, fields with
2156	// empty values are omitted from API requests. However, any field with
2157	// an empty value appearing in NullFields will be sent to the server as
2158	// null. It is an error if a field in this list has a non-empty value.
2159	// This may be used to include null fields in Patch requests.
2160	NullFields []string `json:"-"`
2161}
2162
2163func (s *PollingOptions) MarshalJSON() ([]byte, error) {
2164	type NoMethod PollingOptions
2165	raw := NoMethod(*s)
2166	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2167}
2168
2169type Resource struct {
2170	// AccessControl: The Access Control Policy set on this resource.
2171	AccessControl *ResourceAccessControl `json:"accessControl,omitempty"`
2172
2173	// FinalProperties: Output only. The evaluated properties of the
2174	// resource with references expanded. Returned as serialized YAML.
2175	FinalProperties string `json:"finalProperties,omitempty"`
2176
2177	Id uint64 `json:"id,omitempty,string"`
2178
2179	// InsertTime: Output only. Creation timestamp in RFC3339 text format.
2180	InsertTime string `json:"insertTime,omitempty"`
2181
2182	// Manifest: Output only. URL of the manifest representing the current
2183	// configuration of this resource.
2184	Manifest string `json:"manifest,omitempty"`
2185
2186	// Name: Output only. The name of the resource as it appears in the YAML
2187	// config.
2188	Name string `json:"name,omitempty"`
2189
2190	// Properties: Output only. The current properties of the resource
2191	// before any references have been filled in. Returned as serialized
2192	// YAML.
2193	Properties string `json:"properties,omitempty"`
2194
2195	// Type: Output only. The type of the resource, for example
2196	// `compute.v1.instance`, or `cloudfunctions.v1beta1.function`.
2197	Type string `json:"type,omitempty"`
2198
2199	// Update: Output only. If Deployment Manager is currently updating or
2200	// previewing an update to this resource, the updated configuration
2201	// appears here.
2202	Update *ResourceUpdate `json:"update,omitempty"`
2203
2204	// UpdateTime: Output only. Update timestamp in RFC3339 text format.
2205	UpdateTime string `json:"updateTime,omitempty"`
2206
2207	// Url: Output only. The URL of the actual resource.
2208	Url string `json:"url,omitempty"`
2209
2210	// Warnings: Output only. If warning messages are generated during
2211	// processing of this resource, this field will be populated.
2212	Warnings []*ResourceWarnings `json:"warnings,omitempty"`
2213
2214	// ServerResponse contains the HTTP response code and headers from the
2215	// server.
2216	googleapi.ServerResponse `json:"-"`
2217
2218	// ForceSendFields is a list of field names (e.g. "AccessControl") to
2219	// unconditionally include in API requests. By default, fields with
2220	// empty values are omitted from API requests. However, any non-pointer,
2221	// non-interface field appearing in ForceSendFields will be sent to the
2222	// server regardless of whether the field is empty or not. This may be
2223	// used to include empty fields in Patch requests.
2224	ForceSendFields []string `json:"-"`
2225
2226	// NullFields is a list of field names (e.g. "AccessControl") to include
2227	// in API requests with the JSON null value. By default, fields with
2228	// empty values are omitted from API requests. However, any field with
2229	// an empty value appearing in NullFields will be sent to the server as
2230	// null. It is an error if a field in this list has a non-empty value.
2231	// This may be used to include null fields in Patch requests.
2232	NullFields []string `json:"-"`
2233}
2234
2235func (s *Resource) MarshalJSON() ([]byte, error) {
2236	type NoMethod Resource
2237	raw := NoMethod(*s)
2238	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2239}
2240
2241type ResourceWarnings struct {
2242	// Code: [Output Only] A warning code, if applicable. For example,
2243	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2244	// the response.
2245	Code string `json:"code,omitempty"`
2246
2247	// Data: [Output Only] Metadata about this warning in key: value format.
2248	// For example:
2249	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2250	Data []*ResourceWarningsData `json:"data,omitempty"`
2251
2252	// Message: [Output Only] A human-readable description of the warning
2253	// code.
2254	Message string `json:"message,omitempty"`
2255
2256	// ForceSendFields is a list of field names (e.g. "Code") to
2257	// unconditionally include in API requests. By default, fields with
2258	// empty values are omitted from API requests. However, any non-pointer,
2259	// non-interface field appearing in ForceSendFields will be sent to the
2260	// server regardless of whether the field is empty or not. This may be
2261	// used to include empty fields in Patch requests.
2262	ForceSendFields []string `json:"-"`
2263
2264	// NullFields is a list of field names (e.g. "Code") to include in API
2265	// requests with the JSON null value. By default, fields with empty
2266	// values are omitted from API requests. However, any field with an
2267	// empty value appearing in NullFields will be sent to the server as
2268	// null. It is an error if a field in this list has a non-empty value.
2269	// This may be used to include null fields in Patch requests.
2270	NullFields []string `json:"-"`
2271}
2272
2273func (s *ResourceWarnings) MarshalJSON() ([]byte, error) {
2274	type NoMethod ResourceWarnings
2275	raw := NoMethod(*s)
2276	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2277}
2278
2279type ResourceWarningsData struct {
2280	// Key: [Output Only] A key that provides more detail on the warning
2281	// being returned. For example, for warnings where there are no results
2282	// in a list request for a particular zone, this key might be scope and
2283	// the key value might be the zone name. Other examples might be a key
2284	// indicating a deprecated resource and a suggested replacement, or a
2285	// warning about invalid network settings (for example, if an instance
2286	// attempts to perform IP forwarding but is not enabled for IP
2287	// forwarding).
2288	Key string `json:"key,omitempty"`
2289
2290	// Value: [Output Only] A warning data value corresponding to the key.
2291	Value string `json:"value,omitempty"`
2292
2293	// ForceSendFields is a list of field names (e.g. "Key") to
2294	// unconditionally include in API requests. By default, fields with
2295	// empty values are omitted from API requests. However, any non-pointer,
2296	// non-interface field appearing in ForceSendFields will be sent to the
2297	// server regardless of whether the field is empty or not. This may be
2298	// used to include empty fields in Patch requests.
2299	ForceSendFields []string `json:"-"`
2300
2301	// NullFields is a list of field names (e.g. "Key") to include in API
2302	// requests with the JSON null value. By default, fields with empty
2303	// values are omitted from API requests. However, any field with an
2304	// empty value appearing in NullFields will be sent to the server as
2305	// null. It is an error if a field in this list has a non-empty value.
2306	// This may be used to include null fields in Patch requests.
2307	NullFields []string `json:"-"`
2308}
2309
2310func (s *ResourceWarningsData) MarshalJSON() ([]byte, error) {
2311	type NoMethod ResourceWarningsData
2312	raw := NoMethod(*s)
2313	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2314}
2315
2316// ResourceAccessControl: The access controls set on the resource.
2317type ResourceAccessControl struct {
2318	// GcpIamPolicy: The GCP IAM Policy to set on the resource.
2319	GcpIamPolicy string `json:"gcpIamPolicy,omitempty"`
2320
2321	// ForceSendFields is a list of field names (e.g. "GcpIamPolicy") to
2322	// unconditionally include in API requests. By default, fields with
2323	// empty values are omitted from API requests. However, any non-pointer,
2324	// non-interface field appearing in ForceSendFields will be sent to the
2325	// server regardless of whether the field is empty or not. This may be
2326	// used to include empty fields in Patch requests.
2327	ForceSendFields []string `json:"-"`
2328
2329	// NullFields is a list of field names (e.g. "GcpIamPolicy") to include
2330	// in API requests with the JSON null value. By default, fields with
2331	// empty values are omitted from API requests. However, any field with
2332	// an empty value appearing in NullFields will be sent to the server as
2333	// null. It is an error if a field in this list has a non-empty value.
2334	// This may be used to include null fields in Patch requests.
2335	NullFields []string `json:"-"`
2336}
2337
2338func (s *ResourceAccessControl) MarshalJSON() ([]byte, error) {
2339	type NoMethod ResourceAccessControl
2340	raw := NoMethod(*s)
2341	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2342}
2343
2344type ResourceUpdate struct {
2345	// AccessControl: The Access Control Policy to set on this resource
2346	// after updating the resource itself.
2347	AccessControl *ResourceAccessControl `json:"accessControl,omitempty"`
2348
2349	// Error: Output only. If errors are generated during update of the
2350	// resource, this field will be populated.
2351	Error *ResourceUpdateError `json:"error,omitempty"`
2352
2353	// FinalProperties: Output only. The expanded properties of the resource
2354	// with reference values expanded. Returned as serialized YAML.
2355	FinalProperties string `json:"finalProperties,omitempty"`
2356
2357	// Intent: Output only. The intent of the resource: `PREVIEW`, `UPDATE`,
2358	// or `CANCEL`.
2359	Intent string `json:"intent,omitempty"`
2360
2361	// Manifest: Output only. URL of the manifest representing the update
2362	// configuration of this resource.
2363	Manifest string `json:"manifest,omitempty"`
2364
2365	// Properties: Output only. The set of updated properties for this
2366	// resource, before references are expanded. Returned as serialized
2367	// YAML.
2368	Properties string `json:"properties,omitempty"`
2369
2370	// State: Output only. The state of the resource.
2371	State string `json:"state,omitempty"`
2372
2373	// Warnings: Output only. If warning messages are generated during
2374	// processing of this resource, this field will be populated.
2375	Warnings []*ResourceUpdateWarnings `json:"warnings,omitempty"`
2376
2377	// ForceSendFields is a list of field names (e.g. "AccessControl") to
2378	// unconditionally include in API requests. By default, fields with
2379	// empty values are omitted from API requests. However, any non-pointer,
2380	// non-interface field appearing in ForceSendFields will be sent to the
2381	// server regardless of whether the field is empty or not. This may be
2382	// used to include empty fields in Patch requests.
2383	ForceSendFields []string `json:"-"`
2384
2385	// NullFields is a list of field names (e.g. "AccessControl") to include
2386	// in API requests with the JSON null value. By default, fields with
2387	// empty values are omitted from API requests. However, any field with
2388	// an empty value appearing in NullFields will be sent to the server as
2389	// null. It is an error if a field in this list has a non-empty value.
2390	// This may be used to include null fields in Patch requests.
2391	NullFields []string `json:"-"`
2392}
2393
2394func (s *ResourceUpdate) MarshalJSON() ([]byte, error) {
2395	type NoMethod ResourceUpdate
2396	raw := NoMethod(*s)
2397	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2398}
2399
2400// ResourceUpdateError: Output only. If errors are generated during
2401// update of the resource, this field will be populated.
2402type ResourceUpdateError struct {
2403	// Errors: [Output Only] The array of errors encountered while
2404	// processing this operation.
2405	Errors []*ResourceUpdateErrorErrors `json:"errors,omitempty"`
2406
2407	// ForceSendFields is a list of field names (e.g. "Errors") to
2408	// unconditionally include in API requests. By default, fields with
2409	// empty values are omitted from API requests. However, any non-pointer,
2410	// non-interface field appearing in ForceSendFields will be sent to the
2411	// server regardless of whether the field is empty or not. This may be
2412	// used to include empty fields in Patch requests.
2413	ForceSendFields []string `json:"-"`
2414
2415	// NullFields is a list of field names (e.g. "Errors") to include in API
2416	// requests with the JSON null value. By default, fields with empty
2417	// values are omitted from API requests. However, any field with an
2418	// empty value appearing in NullFields will be sent to the server as
2419	// null. It is an error if a field in this list has a non-empty value.
2420	// This may be used to include null fields in Patch requests.
2421	NullFields []string `json:"-"`
2422}
2423
2424func (s *ResourceUpdateError) MarshalJSON() ([]byte, error) {
2425	type NoMethod ResourceUpdateError
2426	raw := NoMethod(*s)
2427	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2428}
2429
2430type ResourceUpdateErrorErrors struct {
2431	// Code: [Output Only] The error type identifier for this error.
2432	Code string `json:"code,omitempty"`
2433
2434	// Location: [Output Only] Indicates the field in the request that
2435	// caused the error. This property is optional.
2436	Location string `json:"location,omitempty"`
2437
2438	// Message: [Output Only] An optional, human-readable error message.
2439	Message string `json:"message,omitempty"`
2440
2441	// ForceSendFields is a list of field names (e.g. "Code") to
2442	// unconditionally include in API requests. By default, fields with
2443	// empty values are omitted from API requests. However, any non-pointer,
2444	// non-interface field appearing in ForceSendFields will be sent to the
2445	// server regardless of whether the field is empty or not. This may be
2446	// used to include empty fields in Patch requests.
2447	ForceSendFields []string `json:"-"`
2448
2449	// NullFields is a list of field names (e.g. "Code") to include in API
2450	// requests with the JSON null value. By default, fields with empty
2451	// values are omitted from API requests. However, any field with an
2452	// empty value appearing in NullFields will be sent to the server as
2453	// null. It is an error if a field in this list has a non-empty value.
2454	// This may be used to include null fields in Patch requests.
2455	NullFields []string `json:"-"`
2456}
2457
2458func (s *ResourceUpdateErrorErrors) MarshalJSON() ([]byte, error) {
2459	type NoMethod ResourceUpdateErrorErrors
2460	raw := NoMethod(*s)
2461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2462}
2463
2464type ResourceUpdateWarnings struct {
2465	// Code: [Output Only] A warning code, if applicable. For example,
2466	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2467	// the response.
2468	Code string `json:"code,omitempty"`
2469
2470	// Data: [Output Only] Metadata about this warning in key: value format.
2471	// For example:
2472	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2473	Data []*ResourceUpdateWarningsData `json:"data,omitempty"`
2474
2475	// Message: [Output Only] A human-readable description of the warning
2476	// code.
2477	Message string `json:"message,omitempty"`
2478
2479	// ForceSendFields is a list of field names (e.g. "Code") to
2480	// unconditionally include in API requests. By default, fields with
2481	// empty values are omitted from API requests. However, any non-pointer,
2482	// non-interface field appearing in ForceSendFields will be sent to the
2483	// server regardless of whether the field is empty or not. This may be
2484	// used to include empty fields in Patch requests.
2485	ForceSendFields []string `json:"-"`
2486
2487	// NullFields is a list of field names (e.g. "Code") to include in API
2488	// requests with the JSON null value. By default, fields with empty
2489	// values are omitted from API requests. However, any field with an
2490	// empty value appearing in NullFields will be sent to the server as
2491	// null. It is an error if a field in this list has a non-empty value.
2492	// This may be used to include null fields in Patch requests.
2493	NullFields []string `json:"-"`
2494}
2495
2496func (s *ResourceUpdateWarnings) MarshalJSON() ([]byte, error) {
2497	type NoMethod ResourceUpdateWarnings
2498	raw := NoMethod(*s)
2499	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2500}
2501
2502type ResourceUpdateWarningsData struct {
2503	// Key: [Output Only] A key that provides more detail on the warning
2504	// being returned. For example, for warnings where there are no results
2505	// in a list request for a particular zone, this key might be scope and
2506	// the key value might be the zone name. Other examples might be a key
2507	// indicating a deprecated resource and a suggested replacement, or a
2508	// warning about invalid network settings (for example, if an instance
2509	// attempts to perform IP forwarding but is not enabled for IP
2510	// forwarding).
2511	Key string `json:"key,omitempty"`
2512
2513	// Value: [Output Only] A warning data value corresponding to the key.
2514	Value string `json:"value,omitempty"`
2515
2516	// ForceSendFields is a list of field names (e.g. "Key") to
2517	// unconditionally include in API requests. By default, fields with
2518	// empty values are omitted from API requests. However, any non-pointer,
2519	// non-interface field appearing in ForceSendFields will be sent to the
2520	// server regardless of whether the field is empty or not. This may be
2521	// used to include empty fields in Patch requests.
2522	ForceSendFields []string `json:"-"`
2523
2524	// NullFields is a list of field names (e.g. "Key") to include in API
2525	// requests with the JSON null value. By default, fields with empty
2526	// values are omitted from API requests. However, any field with an
2527	// empty value appearing in NullFields will be sent to the server as
2528	// null. It is an error if a field in this list has a non-empty value.
2529	// This may be used to include null fields in Patch requests.
2530	NullFields []string `json:"-"`
2531}
2532
2533func (s *ResourceUpdateWarningsData) MarshalJSON() ([]byte, error) {
2534	type NoMethod ResourceUpdateWarningsData
2535	raw := NoMethod(*s)
2536	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2537}
2538
2539// ResourcesListResponse: A response containing a partial list of
2540// resources and a page token used to build the next request if the
2541// request has been truncated.
2542type ResourcesListResponse struct {
2543	// NextPageToken: A token used to continue a truncated list request.
2544	NextPageToken string `json:"nextPageToken,omitempty"`
2545
2546	// Resources: Resources contained in this list response.
2547	Resources []*Resource `json:"resources,omitempty"`
2548
2549	// ServerResponse contains the HTTP response code and headers from the
2550	// server.
2551	googleapi.ServerResponse `json:"-"`
2552
2553	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
2554	// unconditionally include in API requests. By default, fields with
2555	// empty values are omitted from API requests. However, any non-pointer,
2556	// non-interface field appearing in ForceSendFields will be sent to the
2557	// server regardless of whether the field is empty or not. This may be
2558	// used to include empty fields in Patch requests.
2559	ForceSendFields []string `json:"-"`
2560
2561	// NullFields is a list of field names (e.g. "NextPageToken") to include
2562	// in API requests with the JSON null value. By default, fields with
2563	// empty values are omitted from API requests. However, any field with
2564	// an empty value appearing in NullFields will be sent to the server as
2565	// null. It is an error if a field in this list has a non-empty value.
2566	// This may be used to include null fields in Patch requests.
2567	NullFields []string `json:"-"`
2568}
2569
2570func (s *ResourcesListResponse) MarshalJSON() ([]byte, error) {
2571	type NoMethod ResourcesListResponse
2572	raw := NoMethod(*s)
2573	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2574}
2575
2576// Rule: A rule to be applied in a Policy.
2577type Rule struct {
2578	// Action: Required
2579	Action string `json:"action,omitempty"`
2580
2581	// Conditions: Additional restrictions that must be met. All conditions
2582	// must pass for the rule to match.
2583	Conditions []*Condition `json:"conditions,omitempty"`
2584
2585	// Description: Human-readable description of the rule.
2586	Description string `json:"description,omitempty"`
2587
2588	// Ins: If one or more 'in' clauses are specified, the rule matches if
2589	// the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
2590	Ins []string `json:"ins,omitempty"`
2591
2592	// LogConfigs: The config returned to callers of
2593	// tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
2594	LogConfigs []*LogConfig `json:"logConfigs,omitempty"`
2595
2596	// NotIns: If one or more 'not_in' clauses are specified, the rule
2597	// matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the
2598	// entries.
2599	NotIns []string `json:"notIns,omitempty"`
2600
2601	// Permissions: A permission is a string of form '..' (e.g.,
2602	// 'storage.buckets.list'). A value of '*' matches all permissions, and
2603	// a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
2604	Permissions []string `json:"permissions,omitempty"`
2605
2606	// ForceSendFields is a list of field names (e.g. "Action") to
2607	// unconditionally include in API requests. By default, fields with
2608	// empty values are omitted from API requests. However, any non-pointer,
2609	// non-interface field appearing in ForceSendFields will be sent to the
2610	// server regardless of whether the field is empty or not. This may be
2611	// used to include empty fields in Patch requests.
2612	ForceSendFields []string `json:"-"`
2613
2614	// NullFields is a list of field names (e.g. "Action") to include in API
2615	// requests with the JSON null value. By default, fields with empty
2616	// values are omitted from API requests. However, any field with an
2617	// empty value appearing in NullFields will be sent to the server as
2618	// null. It is an error if a field in this list has a non-empty value.
2619	// This may be used to include null fields in Patch requests.
2620	NullFields []string `json:"-"`
2621}
2622
2623func (s *Rule) MarshalJSON() ([]byte, error) {
2624	type NoMethod Rule
2625	raw := NoMethod(*s)
2626	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2627}
2628
2629// ServiceAccount: Service Account used as a credential.
2630type ServiceAccount struct {
2631	// Email: The IAM service account email address like
2632	// test@myproject.iam.gserviceaccount.com
2633	Email string `json:"email,omitempty"`
2634
2635	// ForceSendFields is a list of field names (e.g. "Email") to
2636	// unconditionally include in API requests. By default, fields with
2637	// empty values are omitted from API requests. However, any non-pointer,
2638	// non-interface field appearing in ForceSendFields will be sent to the
2639	// server regardless of whether the field is empty or not. This may be
2640	// used to include empty fields in Patch requests.
2641	ForceSendFields []string `json:"-"`
2642
2643	// NullFields is a list of field names (e.g. "Email") to include in API
2644	// requests with the JSON null value. By default, fields with empty
2645	// values are omitted from API requests. However, any field with an
2646	// empty value appearing in NullFields will be sent to the server as
2647	// null. It is an error if a field in this list has a non-empty value.
2648	// This may be used to include null fields in Patch requests.
2649	NullFields []string `json:"-"`
2650}
2651
2652func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
2653	type NoMethod ServiceAccount
2654	raw := NoMethod(*s)
2655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2656}
2657
2658type TargetConfiguration struct {
2659	// Config: The configuration to use for this deployment.
2660	Config *ConfigFile `json:"config,omitempty"`
2661
2662	// Imports: Specifies any files to import for this configuration. This
2663	// can be used to import templates or other files. For example, you
2664	// might import a text file in order to use the file in a template.
2665	Imports []*ImportFile `json:"imports,omitempty"`
2666
2667	// ForceSendFields is a list of field names (e.g. "Config") to
2668	// unconditionally include in API requests. By default, fields with
2669	// empty values are omitted from API requests. However, any non-pointer,
2670	// non-interface field appearing in ForceSendFields will be sent to the
2671	// server regardless of whether the field is empty or not. This may be
2672	// used to include empty fields in Patch requests.
2673	ForceSendFields []string `json:"-"`
2674
2675	// NullFields is a list of field names (e.g. "Config") to include in API
2676	// requests with the JSON null value. By default, fields with empty
2677	// values are omitted from API requests. However, any field with an
2678	// empty value appearing in NullFields will be sent to the server as
2679	// null. It is an error if a field in this list has a non-empty value.
2680	// This may be used to include null fields in Patch requests.
2681	NullFields []string `json:"-"`
2682}
2683
2684func (s *TargetConfiguration) MarshalJSON() ([]byte, error) {
2685	type NoMethod TargetConfiguration
2686	raw := NoMethod(*s)
2687	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2688}
2689
2690// TemplateContents: Files that make up the template contents of a
2691// template type.
2692type TemplateContents struct {
2693	// Imports: Import files referenced by the main template.
2694	Imports []*ImportFile `json:"imports,omitempty"`
2695
2696	// Interpreter: Which interpreter (python or jinja) should be used
2697	// during expansion.
2698	Interpreter string `json:"interpreter,omitempty"`
2699
2700	// MainTemplate: The filename of the mainTemplate
2701	MainTemplate string `json:"mainTemplate,omitempty"`
2702
2703	// Schema: The contents of the template schema.
2704	Schema string `json:"schema,omitempty"`
2705
2706	// Template: The contents of the main template file.
2707	Template string `json:"template,omitempty"`
2708
2709	// ForceSendFields is a list of field names (e.g. "Imports") to
2710	// unconditionally include in API requests. By default, fields with
2711	// empty values are omitted from API requests. However, any non-pointer,
2712	// non-interface field appearing in ForceSendFields will be sent to the
2713	// server regardless of whether the field is empty or not. This may be
2714	// used to include empty fields in Patch requests.
2715	ForceSendFields []string `json:"-"`
2716
2717	// NullFields is a list of field names (e.g. "Imports") to include in
2718	// API requests with the JSON null value. By default, fields with empty
2719	// values are omitted from API requests. However, any field with an
2720	// empty value appearing in NullFields will be sent to the server as
2721	// null. It is an error if a field in this list has a non-empty value.
2722	// This may be used to include null fields in Patch requests.
2723	NullFields []string `json:"-"`
2724}
2725
2726func (s *TemplateContents) MarshalJSON() ([]byte, error) {
2727	type NoMethod TemplateContents
2728	raw := NoMethod(*s)
2729	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2730}
2731
2732type TestPermissionsRequest struct {
2733	// Permissions: The set of permissions to check for the 'resource'.
2734	// Permissions with wildcards (such as '*' or 'storage.*') are not
2735	// allowed.
2736	Permissions []string `json:"permissions,omitempty"`
2737
2738	// ForceSendFields is a list of field names (e.g. "Permissions") to
2739	// unconditionally include in API requests. By default, fields with
2740	// empty values are omitted from API requests. However, any non-pointer,
2741	// non-interface field appearing in ForceSendFields will be sent to the
2742	// server regardless of whether the field is empty or not. This may be
2743	// used to include empty fields in Patch requests.
2744	ForceSendFields []string `json:"-"`
2745
2746	// NullFields is a list of field names (e.g. "Permissions") to include
2747	// in API requests with the JSON null value. By default, fields with
2748	// empty values are omitted from API requests. However, any field with
2749	// an empty value appearing in NullFields will be sent to the server as
2750	// null. It is an error if a field in this list has a non-empty value.
2751	// This may be used to include null fields in Patch requests.
2752	NullFields []string `json:"-"`
2753}
2754
2755func (s *TestPermissionsRequest) MarshalJSON() ([]byte, error) {
2756	type NoMethod TestPermissionsRequest
2757	raw := NoMethod(*s)
2758	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2759}
2760
2761type TestPermissionsResponse struct {
2762	// Permissions: A subset of `TestPermissionsRequest.permissions` that
2763	// the caller is allowed.
2764	Permissions []string `json:"permissions,omitempty"`
2765
2766	// ServerResponse contains the HTTP response code and headers from the
2767	// server.
2768	googleapi.ServerResponse `json:"-"`
2769
2770	// ForceSendFields is a list of field names (e.g. "Permissions") to
2771	// unconditionally include in API requests. By default, fields with
2772	// empty values are omitted from API requests. However, any non-pointer,
2773	// non-interface field appearing in ForceSendFields will be sent to the
2774	// server regardless of whether the field is empty or not. This may be
2775	// used to include empty fields in Patch requests.
2776	ForceSendFields []string `json:"-"`
2777
2778	// NullFields is a list of field names (e.g. "Permissions") to include
2779	// in API requests with the JSON null value. By default, fields with
2780	// empty values are omitted from API requests. However, any field with
2781	// an empty value appearing in NullFields will be sent to the server as
2782	// null. It is an error if a field in this list has a non-empty value.
2783	// This may be used to include null fields in Patch requests.
2784	NullFields []string `json:"-"`
2785}
2786
2787func (s *TestPermissionsResponse) MarshalJSON() ([]byte, error) {
2788	type NoMethod TestPermissionsResponse
2789	raw := NoMethod(*s)
2790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2791}
2792
2793// Type: A resource type supported by Deployment Manager.
2794type Type struct {
2795	// Base: Base Type (configurable service) that backs this Type.
2796	Base *BaseType `json:"base,omitempty"`
2797
2798	// Description: An optional textual description of the resource;
2799	// provided by the client when the resource is created.
2800	Description string `json:"description,omitempty"`
2801
2802	Id uint64 `json:"id,omitempty,string"`
2803
2804	// InsertTime: Output only. Creation timestamp in RFC3339 text format.
2805	InsertTime string `json:"insertTime,omitempty"`
2806
2807	// Labels: Map of labels; provided by the client when the resource is
2808	// created or updated. Specifically: Label keys must be between 1 and 63
2809	// characters long and must conform to the following regular expression:
2810	// `[a-z]([-a-z0-9]*[a-z0-9])?` Label values must be between 0 and 63
2811	// characters long and must conform to the regular expression
2812	// `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
2813	Labels []*TypeLabelEntry `json:"labels,omitempty"`
2814
2815	// Name: Name of the type.
2816	Name string `json:"name,omitempty"`
2817
2818	// Operation: Output only. The Operation that most recently ran, or is
2819	// currently running, on this type.
2820	Operation *Operation `json:"operation,omitempty"`
2821
2822	// SelfLink: Output only. Server defined URL for the resource.
2823	SelfLink string `json:"selfLink,omitempty"`
2824
2825	// ForceSendFields is a list of field names (e.g. "Base") to
2826	// unconditionally include in API requests. By default, fields with
2827	// empty values are omitted from API requests. However, any non-pointer,
2828	// non-interface field appearing in ForceSendFields will be sent to the
2829	// server regardless of whether the field is empty or not. This may be
2830	// used to include empty fields in Patch requests.
2831	ForceSendFields []string `json:"-"`
2832
2833	// NullFields is a list of field names (e.g. "Base") to include in API
2834	// requests with the JSON null value. By default, fields with empty
2835	// values are omitted from API requests. However, any field with an
2836	// empty value appearing in NullFields will be sent to the server as
2837	// null. It is an error if a field in this list has a non-empty value.
2838	// This may be used to include null fields in Patch requests.
2839	NullFields []string `json:"-"`
2840}
2841
2842func (s *Type) MarshalJSON() ([]byte, error) {
2843	type NoMethod Type
2844	raw := NoMethod(*s)
2845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2846}
2847
2848// TypeInfo: Type Information. Contains detailed information about a
2849// composite type, base type, or base type with specific collection.
2850type TypeInfo struct {
2851	// Description: The description of the type.
2852	Description string `json:"description,omitempty"`
2853
2854	// DocumentationLink: For swagger 2.0 externalDocs field will be used.
2855	// For swagger 1.2 this field will be empty.
2856	DocumentationLink string `json:"documentationLink,omitempty"`
2857
2858	// Kind: Output only. Type of the output. Always
2859	// `deploymentManager#TypeInfo` for TypeInfo.
2860	Kind string `json:"kind,omitempty"`
2861
2862	// Name: The base type or composite type name.
2863	Name string `json:"name,omitempty"`
2864
2865	// Schema: For base types with a collection, we return a schema and
2866	// documentation link For template types, we return only a schema
2867	Schema *TypeInfoSchemaInfo `json:"schema,omitempty"`
2868
2869	// SelfLink: Output only. Self link for the type provider.
2870	SelfLink string `json:"selfLink,omitempty"`
2871
2872	// Title: The title on the API descriptor URL provided.
2873	Title string `json:"title,omitempty"`
2874
2875	// ServerResponse contains the HTTP response code and headers from the
2876	// server.
2877	googleapi.ServerResponse `json:"-"`
2878
2879	// ForceSendFields is a list of field names (e.g. "Description") to
2880	// unconditionally include in API requests. By default, fields with
2881	// empty values are omitted from API requests. However, any non-pointer,
2882	// non-interface field appearing in ForceSendFields will be sent to the
2883	// server regardless of whether the field is empty or not. This may be
2884	// used to include empty fields in Patch requests.
2885	ForceSendFields []string `json:"-"`
2886
2887	// NullFields is a list of field names (e.g. "Description") to include
2888	// in API requests with the JSON null value. By default, fields with
2889	// empty values are omitted from API requests. However, any field with
2890	// an empty value appearing in NullFields will be sent to the server as
2891	// null. It is an error if a field in this list has a non-empty value.
2892	// This may be used to include null fields in Patch requests.
2893	NullFields []string `json:"-"`
2894}
2895
2896func (s *TypeInfo) MarshalJSON() ([]byte, error) {
2897	type NoMethod TypeInfo
2898	raw := NoMethod(*s)
2899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2900}
2901
2902type TypeInfoSchemaInfo struct {
2903	// Input: The properties that this composite type or base type
2904	// collection accept as input, represented as a json blob, format is:
2905	// JSON Schema Draft V4
2906	Input string `json:"input,omitempty"`
2907
2908	// Output: The properties that this composite type or base type
2909	// collection exposes as output, these properties can be used for
2910	// references, represented as json blob, format is: JSON Schema Draft V4
2911	Output string `json:"output,omitempty"`
2912
2913	// ForceSendFields is a list of field names (e.g. "Input") to
2914	// unconditionally include in API requests. By default, fields with
2915	// empty values are omitted from API requests. However, any non-pointer,
2916	// non-interface field appearing in ForceSendFields will be sent to the
2917	// server regardless of whether the field is empty or not. This may be
2918	// used to include empty fields in Patch requests.
2919	ForceSendFields []string `json:"-"`
2920
2921	// NullFields is a list of field names (e.g. "Input") to include in API
2922	// requests with the JSON null value. By default, fields with empty
2923	// values are omitted from API requests. However, any field with an
2924	// empty value appearing in NullFields will be sent to the server as
2925	// null. It is an error if a field in this list has a non-empty value.
2926	// This may be used to include null fields in Patch requests.
2927	NullFields []string `json:"-"`
2928}
2929
2930func (s *TypeInfoSchemaInfo) MarshalJSON() ([]byte, error) {
2931	type NoMethod TypeInfoSchemaInfo
2932	raw := NoMethod(*s)
2933	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2934}
2935
2936type TypeLabelEntry struct {
2937	Key string `json:"key,omitempty"`
2938
2939	Value string `json:"value,omitempty"`
2940
2941	// ForceSendFields is a list of field names (e.g. "Key") to
2942	// unconditionally include in API requests. By default, fields with
2943	// empty values are omitted from API requests. However, any non-pointer,
2944	// non-interface field appearing in ForceSendFields will be sent to the
2945	// server regardless of whether the field is empty or not. This may be
2946	// used to include empty fields in Patch requests.
2947	ForceSendFields []string `json:"-"`
2948
2949	// NullFields is a list of field names (e.g. "Key") to include in API
2950	// requests with the JSON null value. By default, fields with empty
2951	// values are omitted from API requests. However, any field with an
2952	// empty value appearing in NullFields will be sent to the server as
2953	// null. It is an error if a field in this list has a non-empty value.
2954	// This may be used to include null fields in Patch requests.
2955	NullFields []string `json:"-"`
2956}
2957
2958func (s *TypeLabelEntry) MarshalJSON() ([]byte, error) {
2959	type NoMethod TypeLabelEntry
2960	raw := NoMethod(*s)
2961	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2962}
2963
2964// TypeProvider: A type provider that describes a service-backed Type.
2965type TypeProvider struct {
2966	// CollectionOverrides: Allows resource handling overrides for specific
2967	// collections
2968	CollectionOverrides []*CollectionOverride `json:"collectionOverrides,omitempty"`
2969
2970	// Credential: Credential used when interacting with this type.
2971	Credential *Credential `json:"credential,omitempty"`
2972
2973	// CustomCertificateAuthorityRoots: List of up to 2 custom certificate
2974	// authority roots to use for TLS authentication when making calls on
2975	// behalf of this type provider. If set, TLS authentication will
2976	// exclusively use these roots instead of relying on publicly trusted
2977	// certificate authorities when validating TLS certificate authenticity.
2978	// The certificates must be in base64-encoded PEM format. The maximum
2979	// size of each certificate must not exceed 10KB.
2980	CustomCertificateAuthorityRoots []string `json:"customCertificateAuthorityRoots,omitempty"`
2981
2982	// Description: An optional textual description of the resource;
2983	// provided by the client when the resource is created.
2984	Description string `json:"description,omitempty"`
2985
2986	// DescriptorUrl: Descriptor Url for the this type provider.
2987	DescriptorUrl string `json:"descriptorUrl,omitempty"`
2988
2989	// Id: Output only. Unique identifier for the resource defined by the
2990	// server.
2991	Id uint64 `json:"id,omitempty,string"`
2992
2993	// InsertTime: Output only. Creation timestamp in RFC3339 text format.
2994	InsertTime string `json:"insertTime,omitempty"`
2995
2996	// Labels: Map of labels; provided by the client when the resource is
2997	// created or updated. Specifically: Label keys must be between 1 and 63
2998	// characters long and must conform to the following regular expression:
2999	// `[a-z]([-a-z0-9]*[a-z0-9])?` Label values must be between 0 and 63
3000	// characters long and must conform to the regular expression
3001	// `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
3002	Labels []*TypeProviderLabelEntry `json:"labels,omitempty"`
3003
3004	// Name: Name of the resource; provided by the client when the resource
3005	// is created. The name must be 1-63 characters long, and comply with
3006	// RFC1035. Specifically, the name must be 1-63 characters long and
3007	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
3008	// the first character must be a lowercase letter, and all following
3009	// characters must be a dash, lowercase letter, or digit, except the
3010	// last character, which cannot be a dash.
3011	Name string `json:"name,omitempty"`
3012
3013	// Operation: Output only. The Operation that most recently ran, or is
3014	// currently running, on this type provider.
3015	Operation *Operation `json:"operation,omitempty"`
3016
3017	// Options: Options to apply when handling any resources in this
3018	// service.
3019	Options *Options `json:"options,omitempty"`
3020
3021	// SelfLink: Output only. Self link for the type provider.
3022	SelfLink string `json:"selfLink,omitempty"`
3023
3024	// ServerResponse contains the HTTP response code and headers from the
3025	// server.
3026	googleapi.ServerResponse `json:"-"`
3027
3028	// ForceSendFields is a list of field names (e.g. "CollectionOverrides")
3029	// to unconditionally include in API requests. By default, fields with
3030	// empty values are omitted from API requests. However, any non-pointer,
3031	// non-interface field appearing in ForceSendFields will be sent to the
3032	// server regardless of whether the field is empty or not. This may be
3033	// used to include empty fields in Patch requests.
3034	ForceSendFields []string `json:"-"`
3035
3036	// NullFields is a list of field names (e.g. "CollectionOverrides") to
3037	// include in API requests with the JSON null value. By default, fields
3038	// with empty values are omitted from API requests. However, any field
3039	// with an empty value appearing in NullFields will be sent to the
3040	// server as null. It is an error if a field in this list has a
3041	// non-empty value. This may be used to include null fields in Patch
3042	// requests.
3043	NullFields []string `json:"-"`
3044}
3045
3046func (s *TypeProvider) MarshalJSON() ([]byte, error) {
3047	type NoMethod TypeProvider
3048	raw := NoMethod(*s)
3049	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3050}
3051
3052type TypeProviderLabelEntry struct {
3053	Key string `json:"key,omitempty"`
3054
3055	Value string `json:"value,omitempty"`
3056
3057	// ForceSendFields is a list of field names (e.g. "Key") to
3058	// unconditionally include in API requests. By default, fields with
3059	// empty values are omitted from API requests. However, any non-pointer,
3060	// non-interface field appearing in ForceSendFields will be sent to the
3061	// server regardless of whether the field is empty or not. This may be
3062	// used to include empty fields in Patch requests.
3063	ForceSendFields []string `json:"-"`
3064
3065	// NullFields is a list of field names (e.g. "Key") to include in API
3066	// requests with the JSON null value. By default, fields with empty
3067	// values are omitted from API requests. However, any field with an
3068	// empty value appearing in NullFields will be sent to the server as
3069	// null. It is an error if a field in this list has a non-empty value.
3070	// This may be used to include null fields in Patch requests.
3071	NullFields []string `json:"-"`
3072}
3073
3074func (s *TypeProviderLabelEntry) MarshalJSON() ([]byte, error) {
3075	type NoMethod TypeProviderLabelEntry
3076	raw := NoMethod(*s)
3077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3078}
3079
3080// TypeProvidersListResponse: A response that returns all Type Providers
3081// supported by Deployment Manager
3082type TypeProvidersListResponse struct {
3083	// NextPageToken: A token used to continue a truncated list request.
3084	NextPageToken string `json:"nextPageToken,omitempty"`
3085
3086	// TypeProviders: Output only. A list of resource type providers
3087	// supported by Deployment Manager.
3088	TypeProviders []*TypeProvider `json:"typeProviders,omitempty"`
3089
3090	// ServerResponse contains the HTTP response code and headers from the
3091	// server.
3092	googleapi.ServerResponse `json:"-"`
3093
3094	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
3095	// unconditionally include in API requests. By default, fields with
3096	// empty values are omitted from API requests. However, any non-pointer,
3097	// non-interface field appearing in ForceSendFields will be sent to the
3098	// server regardless of whether the field is empty or not. This may be
3099	// used to include empty fields in Patch requests.
3100	ForceSendFields []string `json:"-"`
3101
3102	// NullFields is a list of field names (e.g. "NextPageToken") to include
3103	// in API requests with the JSON null value. By default, fields with
3104	// empty values are omitted from API requests. However, any field with
3105	// an empty value appearing in NullFields will be sent to the server as
3106	// null. It is an error if a field in this list has a non-empty value.
3107	// This may be used to include null fields in Patch requests.
3108	NullFields []string `json:"-"`
3109}
3110
3111func (s *TypeProvidersListResponse) MarshalJSON() ([]byte, error) {
3112	type NoMethod TypeProvidersListResponse
3113	raw := NoMethod(*s)
3114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3115}
3116
3117type TypeProvidersListTypesResponse struct {
3118	// NextPageToken: A token used to continue a truncated list request.
3119	NextPageToken string `json:"nextPageToken,omitempty"`
3120
3121	// Types: Output only. A list of resource type info.
3122	Types []*TypeInfo `json:"types,omitempty"`
3123
3124	// ServerResponse contains the HTTP response code and headers from the
3125	// server.
3126	googleapi.ServerResponse `json:"-"`
3127
3128	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
3129	// unconditionally include in API requests. By default, fields with
3130	// empty values are omitted from API requests. However, any non-pointer,
3131	// non-interface field appearing in ForceSendFields will be sent to the
3132	// server regardless of whether the field is empty or not. This may be
3133	// used to include empty fields in Patch requests.
3134	ForceSendFields []string `json:"-"`
3135
3136	// NullFields is a list of field names (e.g. "NextPageToken") to include
3137	// in API requests with the JSON null value. By default, fields with
3138	// empty values are omitted from API requests. However, any field with
3139	// an empty value appearing in NullFields will be sent to the server as
3140	// null. It is an error if a field in this list has a non-empty value.
3141	// This may be used to include null fields in Patch requests.
3142	NullFields []string `json:"-"`
3143}
3144
3145func (s *TypeProvidersListTypesResponse) MarshalJSON() ([]byte, error) {
3146	type NoMethod TypeProvidersListTypesResponse
3147	raw := NoMethod(*s)
3148	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3149}
3150
3151// TypesListResponse: A response that returns all Types supported by
3152// Deployment Manager
3153type TypesListResponse struct {
3154	// NextPageToken: A token used to continue a truncated list request.
3155	NextPageToken string `json:"nextPageToken,omitempty"`
3156
3157	// Types: Output only. A list of resource types supported by Deployment
3158	// Manager.
3159	Types []*Type `json:"types,omitempty"`
3160
3161	// ServerResponse contains the HTTP response code and headers from the
3162	// server.
3163	googleapi.ServerResponse `json:"-"`
3164
3165	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
3166	// unconditionally include in API requests. By default, fields with
3167	// empty values are omitted from API requests. However, any non-pointer,
3168	// non-interface field appearing in ForceSendFields will be sent to the
3169	// server regardless of whether the field is empty or not. This may be
3170	// used to include empty fields in Patch requests.
3171	ForceSendFields []string `json:"-"`
3172
3173	// NullFields is a list of field names (e.g. "NextPageToken") to include
3174	// in API requests with the JSON null value. By default, fields with
3175	// empty values are omitted from API requests. However, any field with
3176	// an empty value appearing in NullFields will be sent to the server as
3177	// null. It is an error if a field in this list has a non-empty value.
3178	// This may be used to include null fields in Patch requests.
3179	NullFields []string `json:"-"`
3180}
3181
3182func (s *TypesListResponse) MarshalJSON() ([]byte, error) {
3183	type NoMethod TypesListResponse
3184	raw := NoMethod(*s)
3185	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3186}
3187
3188// ValidationOptions: Options for how to validate and process properties
3189// on a resource.
3190type ValidationOptions struct {
3191	// SchemaValidation: Customize how deployment manager will validate the
3192	// resource against schema errors.
3193	SchemaValidation string `json:"schemaValidation,omitempty"`
3194
3195	// UndeclaredProperties: Specify what to do with extra properties when
3196	// executing a request.
3197	UndeclaredProperties string `json:"undeclaredProperties,omitempty"`
3198
3199	// ForceSendFields is a list of field names (e.g. "SchemaValidation") to
3200	// unconditionally include in API requests. By default, fields with
3201	// empty values are omitted from API requests. However, any non-pointer,
3202	// non-interface field appearing in ForceSendFields will be sent to the
3203	// server regardless of whether the field is empty or not. This may be
3204	// used to include empty fields in Patch requests.
3205	ForceSendFields []string `json:"-"`
3206
3207	// NullFields is a list of field names (e.g. "SchemaValidation") to
3208	// include in API requests with the JSON null value. By default, fields
3209	// with empty values are omitted from API requests. However, any field
3210	// with an empty value appearing in NullFields will be sent to the
3211	// server as null. It is an error if a field in this list has a
3212	// non-empty value. This may be used to include null fields in Patch
3213	// requests.
3214	NullFields []string `json:"-"`
3215}
3216
3217func (s *ValidationOptions) MarshalJSON() ([]byte, error) {
3218	type NoMethod ValidationOptions
3219	raw := NoMethod(*s)
3220	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3221}
3222
3223// method id "deploymentmanager.compositeTypes.delete":
3224
3225type CompositeTypesDeleteCall struct {
3226	s             *Service
3227	project       string
3228	compositeType string
3229	urlParams_    gensupport.URLParams
3230	ctx_          context.Context
3231	header_       http.Header
3232}
3233
3234// Delete: Deletes a composite type.
3235func (r *CompositeTypesService) Delete(project string, compositeType string) *CompositeTypesDeleteCall {
3236	c := &CompositeTypesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3237	c.project = project
3238	c.compositeType = compositeType
3239	return c
3240}
3241
3242// Fields allows partial responses to be retrieved. See
3243// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3244// for more information.
3245func (c *CompositeTypesDeleteCall) Fields(s ...googleapi.Field) *CompositeTypesDeleteCall {
3246	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3247	return c
3248}
3249
3250// Context sets the context to be used in this call's Do method. Any
3251// pending HTTP request will be aborted if the provided context is
3252// canceled.
3253func (c *CompositeTypesDeleteCall) Context(ctx context.Context) *CompositeTypesDeleteCall {
3254	c.ctx_ = ctx
3255	return c
3256}
3257
3258// Header returns an http.Header that can be modified by the caller to
3259// add HTTP headers to the request.
3260func (c *CompositeTypesDeleteCall) Header() http.Header {
3261	if c.header_ == nil {
3262		c.header_ = make(http.Header)
3263	}
3264	return c.header_
3265}
3266
3267func (c *CompositeTypesDeleteCall) doRequest(alt string) (*http.Response, error) {
3268	reqHeaders := make(http.Header)
3269	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
3270	for k, v := range c.header_ {
3271		reqHeaders[k] = v
3272	}
3273	reqHeaders.Set("User-Agent", c.s.userAgent())
3274	var body io.Reader = nil
3275	c.urlParams_.Set("alt", alt)
3276	c.urlParams_.Set("prettyPrint", "false")
3277	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/compositeTypes/{compositeType}")
3278	urls += "?" + c.urlParams_.Encode()
3279	req, err := http.NewRequest("DELETE", urls, body)
3280	if err != nil {
3281		return nil, err
3282	}
3283	req.Header = reqHeaders
3284	googleapi.Expand(req.URL, map[string]string{
3285		"project":       c.project,
3286		"compositeType": c.compositeType,
3287	})
3288	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3289}
3290
3291// Do executes the "deploymentmanager.compositeTypes.delete" call.
3292// Exactly one of *Operation or error will be non-nil. Any non-2xx
3293// status code is an error. Response headers are in either
3294// *Operation.ServerResponse.Header or (if a response was returned at
3295// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
3296// to check whether the returned error was because
3297// http.StatusNotModified was returned.
3298func (c *CompositeTypesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
3299	gensupport.SetOptions(c.urlParams_, opts...)
3300	res, err := c.doRequest("json")
3301	if res != nil && res.StatusCode == http.StatusNotModified {
3302		if res.Body != nil {
3303			res.Body.Close()
3304		}
3305		return nil, &googleapi.Error{
3306			Code:   res.StatusCode,
3307			Header: res.Header,
3308		}
3309	}
3310	if err != nil {
3311		return nil, err
3312	}
3313	defer googleapi.CloseBody(res)
3314	if err := googleapi.CheckResponse(res); err != nil {
3315		return nil, err
3316	}
3317	ret := &Operation{
3318		ServerResponse: googleapi.ServerResponse{
3319			Header:         res.Header,
3320			HTTPStatusCode: res.StatusCode,
3321		},
3322	}
3323	target := &ret
3324	if err := gensupport.DecodeResponse(target, res); err != nil {
3325		return nil, err
3326	}
3327	return ret, nil
3328	// {
3329	//   "description": "Deletes a composite type.",
3330	//   "httpMethod": "DELETE",
3331	//   "id": "deploymentmanager.compositeTypes.delete",
3332	//   "parameterOrder": [
3333	//     "project",
3334	//     "compositeType"
3335	//   ],
3336	//   "parameters": {
3337	//     "compositeType": {
3338	//       "description": "The name of the type for this request.",
3339	//       "location": "path",
3340	//       "pattern": "[a-z](?:[-a-z0-9_.]{0,61}[a-z0-9])?",
3341	//       "required": true,
3342	//       "type": "string"
3343	//     },
3344	//     "project": {
3345	//       "description": "The project ID for this request.",
3346	//       "location": "path",
3347	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
3348	//       "required": true,
3349	//       "type": "string"
3350	//     }
3351	//   },
3352	//   "path": "{project}/global/compositeTypes/{compositeType}",
3353	//   "response": {
3354	//     "$ref": "Operation"
3355	//   },
3356	//   "scopes": [
3357	//     "https://www.googleapis.com/auth/cloud-platform",
3358	//     "https://www.googleapis.com/auth/ndev.cloudman"
3359	//   ]
3360	// }
3361
3362}
3363
3364// method id "deploymentmanager.compositeTypes.get":
3365
3366type CompositeTypesGetCall struct {
3367	s             *Service
3368	project       string
3369	compositeType string
3370	urlParams_    gensupport.URLParams
3371	ifNoneMatch_  string
3372	ctx_          context.Context
3373	header_       http.Header
3374}
3375
3376// Get: Gets information about a specific composite type.
3377func (r *CompositeTypesService) Get(project string, compositeType string) *CompositeTypesGetCall {
3378	c := &CompositeTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3379	c.project = project
3380	c.compositeType = compositeType
3381	return c
3382}
3383
3384// Fields allows partial responses to be retrieved. See
3385// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3386// for more information.
3387func (c *CompositeTypesGetCall) Fields(s ...googleapi.Field) *CompositeTypesGetCall {
3388	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3389	return c
3390}
3391
3392// IfNoneMatch sets the optional parameter which makes the operation
3393// fail if the object's ETag matches the given value. This is useful for
3394// getting updates only after the object has changed since the last
3395// request. Use googleapi.IsNotModified to check whether the response
3396// error from Do is the result of In-None-Match.
3397func (c *CompositeTypesGetCall) IfNoneMatch(entityTag string) *CompositeTypesGetCall {
3398	c.ifNoneMatch_ = entityTag
3399	return c
3400}
3401
3402// Context sets the context to be used in this call's Do method. Any
3403// pending HTTP request will be aborted if the provided context is
3404// canceled.
3405func (c *CompositeTypesGetCall) Context(ctx context.Context) *CompositeTypesGetCall {
3406	c.ctx_ = ctx
3407	return c
3408}
3409
3410// Header returns an http.Header that can be modified by the caller to
3411// add HTTP headers to the request.
3412func (c *CompositeTypesGetCall) Header() http.Header {
3413	if c.header_ == nil {
3414		c.header_ = make(http.Header)
3415	}
3416	return c.header_
3417}
3418
3419func (c *CompositeTypesGetCall) doRequest(alt string) (*http.Response, error) {
3420	reqHeaders := make(http.Header)
3421	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
3422	for k, v := range c.header_ {
3423		reqHeaders[k] = v
3424	}
3425	reqHeaders.Set("User-Agent", c.s.userAgent())
3426	if c.ifNoneMatch_ != "" {
3427		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3428	}
3429	var body io.Reader = nil
3430	c.urlParams_.Set("alt", alt)
3431	c.urlParams_.Set("prettyPrint", "false")
3432	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/compositeTypes/{compositeType}")
3433	urls += "?" + c.urlParams_.Encode()
3434	req, err := http.NewRequest("GET", urls, body)
3435	if err != nil {
3436		return nil, err
3437	}
3438	req.Header = reqHeaders
3439	googleapi.Expand(req.URL, map[string]string{
3440		"project":       c.project,
3441		"compositeType": c.compositeType,
3442	})
3443	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3444}
3445
3446// Do executes the "deploymentmanager.compositeTypes.get" call.
3447// Exactly one of *CompositeType or error will be non-nil. Any non-2xx
3448// status code is an error. Response headers are in either
3449// *CompositeType.ServerResponse.Header or (if a response was returned
3450// at all) in error.(*googleapi.Error).Header. Use
3451// googleapi.IsNotModified to check whether the returned error was
3452// because http.StatusNotModified was returned.
3453func (c *CompositeTypesGetCall) Do(opts ...googleapi.CallOption) (*CompositeType, error) {
3454	gensupport.SetOptions(c.urlParams_, opts...)
3455	res, err := c.doRequest("json")
3456	if res != nil && res.StatusCode == http.StatusNotModified {
3457		if res.Body != nil {
3458			res.Body.Close()
3459		}
3460		return nil, &googleapi.Error{
3461			Code:   res.StatusCode,
3462			Header: res.Header,
3463		}
3464	}
3465	if err != nil {
3466		return nil, err
3467	}
3468	defer googleapi.CloseBody(res)
3469	if err := googleapi.CheckResponse(res); err != nil {
3470		return nil, err
3471	}
3472	ret := &CompositeType{
3473		ServerResponse: googleapi.ServerResponse{
3474			Header:         res.Header,
3475			HTTPStatusCode: res.StatusCode,
3476		},
3477	}
3478	target := &ret
3479	if err := gensupport.DecodeResponse(target, res); err != nil {
3480		return nil, err
3481	}
3482	return ret, nil
3483	// {
3484	//   "description": "Gets information about a specific composite type.",
3485	//   "httpMethod": "GET",
3486	//   "id": "deploymentmanager.compositeTypes.get",
3487	//   "parameterOrder": [
3488	//     "project",
3489	//     "compositeType"
3490	//   ],
3491	//   "parameters": {
3492	//     "compositeType": {
3493	//       "description": "The name of the composite type for this request.",
3494	//       "location": "path",
3495	//       "pattern": "[a-z](?:[-a-z0-9_.]{0,61}[a-z0-9])?",
3496	//       "required": true,
3497	//       "type": "string"
3498	//     },
3499	//     "project": {
3500	//       "description": "The project ID for this request.",
3501	//       "location": "path",
3502	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
3503	//       "required": true,
3504	//       "type": "string"
3505	//     }
3506	//   },
3507	//   "path": "{project}/global/compositeTypes/{compositeType}",
3508	//   "response": {
3509	//     "$ref": "CompositeType"
3510	//   },
3511	//   "scopes": [
3512	//     "https://www.googleapis.com/auth/cloud-platform",
3513	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
3514	//     "https://www.googleapis.com/auth/ndev.cloudman",
3515	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
3516	//   ]
3517	// }
3518
3519}
3520
3521// method id "deploymentmanager.compositeTypes.insert":
3522
3523type CompositeTypesInsertCall struct {
3524	s             *Service
3525	project       string
3526	compositetype *CompositeType
3527	urlParams_    gensupport.URLParams
3528	ctx_          context.Context
3529	header_       http.Header
3530}
3531
3532// Insert: Creates a composite type.
3533func (r *CompositeTypesService) Insert(project string, compositetype *CompositeType) *CompositeTypesInsertCall {
3534	c := &CompositeTypesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3535	c.project = project
3536	c.compositetype = compositetype
3537	return c
3538}
3539
3540// Fields allows partial responses to be retrieved. See
3541// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3542// for more information.
3543func (c *CompositeTypesInsertCall) Fields(s ...googleapi.Field) *CompositeTypesInsertCall {
3544	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3545	return c
3546}
3547
3548// Context sets the context to be used in this call's Do method. Any
3549// pending HTTP request will be aborted if the provided context is
3550// canceled.
3551func (c *CompositeTypesInsertCall) Context(ctx context.Context) *CompositeTypesInsertCall {
3552	c.ctx_ = ctx
3553	return c
3554}
3555
3556// Header returns an http.Header that can be modified by the caller to
3557// add HTTP headers to the request.
3558func (c *CompositeTypesInsertCall) Header() http.Header {
3559	if c.header_ == nil {
3560		c.header_ = make(http.Header)
3561	}
3562	return c.header_
3563}
3564
3565func (c *CompositeTypesInsertCall) doRequest(alt string) (*http.Response, error) {
3566	reqHeaders := make(http.Header)
3567	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
3568	for k, v := range c.header_ {
3569		reqHeaders[k] = v
3570	}
3571	reqHeaders.Set("User-Agent", c.s.userAgent())
3572	var body io.Reader = nil
3573	body, err := googleapi.WithoutDataWrapper.JSONReader(c.compositetype)
3574	if err != nil {
3575		return nil, err
3576	}
3577	reqHeaders.Set("Content-Type", "application/json")
3578	c.urlParams_.Set("alt", alt)
3579	c.urlParams_.Set("prettyPrint", "false")
3580	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/compositeTypes")
3581	urls += "?" + c.urlParams_.Encode()
3582	req, err := http.NewRequest("POST", urls, body)
3583	if err != nil {
3584		return nil, err
3585	}
3586	req.Header = reqHeaders
3587	googleapi.Expand(req.URL, map[string]string{
3588		"project": c.project,
3589	})
3590	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3591}
3592
3593// Do executes the "deploymentmanager.compositeTypes.insert" call.
3594// Exactly one of *Operation or error will be non-nil. Any non-2xx
3595// status code is an error. Response headers are in either
3596// *Operation.ServerResponse.Header or (if a response was returned at
3597// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
3598// to check whether the returned error was because
3599// http.StatusNotModified was returned.
3600func (c *CompositeTypesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
3601	gensupport.SetOptions(c.urlParams_, opts...)
3602	res, err := c.doRequest("json")
3603	if res != nil && res.StatusCode == http.StatusNotModified {
3604		if res.Body != nil {
3605			res.Body.Close()
3606		}
3607		return nil, &googleapi.Error{
3608			Code:   res.StatusCode,
3609			Header: res.Header,
3610		}
3611	}
3612	if err != nil {
3613		return nil, err
3614	}
3615	defer googleapi.CloseBody(res)
3616	if err := googleapi.CheckResponse(res); err != nil {
3617		return nil, err
3618	}
3619	ret := &Operation{
3620		ServerResponse: googleapi.ServerResponse{
3621			Header:         res.Header,
3622			HTTPStatusCode: res.StatusCode,
3623		},
3624	}
3625	target := &ret
3626	if err := gensupport.DecodeResponse(target, res); err != nil {
3627		return nil, err
3628	}
3629	return ret, nil
3630	// {
3631	//   "description": "Creates a composite type.",
3632	//   "httpMethod": "POST",
3633	//   "id": "deploymentmanager.compositeTypes.insert",
3634	//   "parameterOrder": [
3635	//     "project"
3636	//   ],
3637	//   "parameters": {
3638	//     "project": {
3639	//       "description": "The project ID for this request.",
3640	//       "location": "path",
3641	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
3642	//       "required": true,
3643	//       "type": "string"
3644	//     }
3645	//   },
3646	//   "path": "{project}/global/compositeTypes",
3647	//   "request": {
3648	//     "$ref": "CompositeType"
3649	//   },
3650	//   "response": {
3651	//     "$ref": "Operation"
3652	//   },
3653	//   "scopes": [
3654	//     "https://www.googleapis.com/auth/cloud-platform",
3655	//     "https://www.googleapis.com/auth/ndev.cloudman"
3656	//   ]
3657	// }
3658
3659}
3660
3661// method id "deploymentmanager.compositeTypes.list":
3662
3663type CompositeTypesListCall struct {
3664	s            *Service
3665	project      string
3666	urlParams_   gensupport.URLParams
3667	ifNoneMatch_ string
3668	ctx_         context.Context
3669	header_      http.Header
3670}
3671
3672// List: Lists all composite types for Deployment Manager.
3673func (r *CompositeTypesService) List(project string) *CompositeTypesListCall {
3674	c := &CompositeTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3675	c.project = project
3676	return c
3677}
3678
3679// Filter sets the optional parameter "filter": A filter expression that
3680// filters resources listed in the response. The expression must specify
3681// the field name, a comparison operator, and the value that you want to
3682// use for filtering. The value must be a string, a number, or a
3683// boolean. The comparison operator must be either `=`, `!=`, `>`, or
3684// `<`.
3685//
3686// For example, if you are filtering Compute Engine instances, you can
3687// exclude instances named `example-instance` by specifying `name !=
3688// example-instance`.
3689//
3690// You can also filter nested fields. For example, you could specify
3691// `scheduling.automaticRestart = false` to include instances only if
3692// they are not scheduled for automatic restarts. You can use filtering
3693// on nested fields to filter based on resource labels.
3694//
3695// To filter on multiple expressions, provide each separate expression
3696// within parentheses. For example: ``` (scheduling.automaticRestart =
3697// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
3698// is an `AND` expression. However, you can include `AND` and `OR`
3699// expressions explicitly. For example: ``` (cpuPlatform = "Intel
3700// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
3701// (scheduling.automaticRestart = true) ```
3702func (c *CompositeTypesListCall) Filter(filter string) *CompositeTypesListCall {
3703	c.urlParams_.Set("filter", filter)
3704	return c
3705}
3706
3707// MaxResults sets the optional parameter "maxResults": The maximum
3708// number of results per page that should be returned. If the number of
3709// available results is larger than `maxResults`, Compute Engine returns
3710// a `nextPageToken` that can be used to get the next page of results in
3711// subsequent list requests. Acceptable values are `0` to `500`,
3712// inclusive. (Default: `500`)
3713func (c *CompositeTypesListCall) MaxResults(maxResults int64) *CompositeTypesListCall {
3714	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
3715	return c
3716}
3717
3718// OrderBy sets the optional parameter "orderBy": Sorts list results by
3719// a certain order. By default, results are returned in alphanumerical
3720// order based on the resource name.
3721//
3722// You can also sort results in descending order based on the creation
3723// timestamp using `orderBy="creationTimestamp desc". This sorts
3724// results based on the `creationTimestamp` field in reverse
3725// chronological order (newest result first). Use this to sort resources
3726// like operations so that the newest operation is returned
3727// first.
3728//
3729// Currently, only sorting by `name` or `creationTimestamp desc` is
3730// supported.
3731func (c *CompositeTypesListCall) OrderBy(orderBy string) *CompositeTypesListCall {
3732	c.urlParams_.Set("orderBy", orderBy)
3733	return c
3734}
3735
3736// PageToken sets the optional parameter "pageToken": Specifies a page
3737// token to use. Set `pageToken` to the `nextPageToken` returned by a
3738// previous list request to get the next page of results.
3739func (c *CompositeTypesListCall) PageToken(pageToken string) *CompositeTypesListCall {
3740	c.urlParams_.Set("pageToken", pageToken)
3741	return c
3742}
3743
3744// Fields allows partial responses to be retrieved. See
3745// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3746// for more information.
3747func (c *CompositeTypesListCall) Fields(s ...googleapi.Field) *CompositeTypesListCall {
3748	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3749	return c
3750}
3751
3752// IfNoneMatch sets the optional parameter which makes the operation
3753// fail if the object's ETag matches the given value. This is useful for
3754// getting updates only after the object has changed since the last
3755// request. Use googleapi.IsNotModified to check whether the response
3756// error from Do is the result of In-None-Match.
3757func (c *CompositeTypesListCall) IfNoneMatch(entityTag string) *CompositeTypesListCall {
3758	c.ifNoneMatch_ = entityTag
3759	return c
3760}
3761
3762// Context sets the context to be used in this call's Do method. Any
3763// pending HTTP request will be aborted if the provided context is
3764// canceled.
3765func (c *CompositeTypesListCall) Context(ctx context.Context) *CompositeTypesListCall {
3766	c.ctx_ = ctx
3767	return c
3768}
3769
3770// Header returns an http.Header that can be modified by the caller to
3771// add HTTP headers to the request.
3772func (c *CompositeTypesListCall) Header() http.Header {
3773	if c.header_ == nil {
3774		c.header_ = make(http.Header)
3775	}
3776	return c.header_
3777}
3778
3779func (c *CompositeTypesListCall) doRequest(alt string) (*http.Response, error) {
3780	reqHeaders := make(http.Header)
3781	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
3782	for k, v := range c.header_ {
3783		reqHeaders[k] = v
3784	}
3785	reqHeaders.Set("User-Agent", c.s.userAgent())
3786	if c.ifNoneMatch_ != "" {
3787		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3788	}
3789	var body io.Reader = nil
3790	c.urlParams_.Set("alt", alt)
3791	c.urlParams_.Set("prettyPrint", "false")
3792	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/compositeTypes")
3793	urls += "?" + c.urlParams_.Encode()
3794	req, err := http.NewRequest("GET", urls, body)
3795	if err != nil {
3796		return nil, err
3797	}
3798	req.Header = reqHeaders
3799	googleapi.Expand(req.URL, map[string]string{
3800		"project": c.project,
3801	})
3802	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3803}
3804
3805// Do executes the "deploymentmanager.compositeTypes.list" call.
3806// Exactly one of *CompositeTypesListResponse or error will be non-nil.
3807// Any non-2xx status code is an error. Response headers are in either
3808// *CompositeTypesListResponse.ServerResponse.Header or (if a response
3809// was returned at all) in error.(*googleapi.Error).Header. Use
3810// googleapi.IsNotModified to check whether the returned error was
3811// because http.StatusNotModified was returned.
3812func (c *CompositeTypesListCall) Do(opts ...googleapi.CallOption) (*CompositeTypesListResponse, error) {
3813	gensupport.SetOptions(c.urlParams_, opts...)
3814	res, err := c.doRequest("json")
3815	if res != nil && res.StatusCode == http.StatusNotModified {
3816		if res.Body != nil {
3817			res.Body.Close()
3818		}
3819		return nil, &googleapi.Error{
3820			Code:   res.StatusCode,
3821			Header: res.Header,
3822		}
3823	}
3824	if err != nil {
3825		return nil, err
3826	}
3827	defer googleapi.CloseBody(res)
3828	if err := googleapi.CheckResponse(res); err != nil {
3829		return nil, err
3830	}
3831	ret := &CompositeTypesListResponse{
3832		ServerResponse: googleapi.ServerResponse{
3833			Header:         res.Header,
3834			HTTPStatusCode: res.StatusCode,
3835		},
3836	}
3837	target := &ret
3838	if err := gensupport.DecodeResponse(target, res); err != nil {
3839		return nil, err
3840	}
3841	return ret, nil
3842	// {
3843	//   "description": "Lists all composite types for Deployment Manager.",
3844	//   "httpMethod": "GET",
3845	//   "id": "deploymentmanager.compositeTypes.list",
3846	//   "parameterOrder": [
3847	//     "project"
3848	//   ],
3849	//   "parameters": {
3850	//     "filter": {
3851	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
3852	//       "location": "query",
3853	//       "type": "string"
3854	//     },
3855	//     "maxResults": {
3856	//       "default": "500",
3857	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
3858	//       "format": "uint32",
3859	//       "location": "query",
3860	//       "minimum": "0",
3861	//       "type": "integer"
3862	//     },
3863	//     "orderBy": {
3864	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
3865	//       "location": "query",
3866	//       "type": "string"
3867	//     },
3868	//     "pageToken": {
3869	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
3870	//       "location": "query",
3871	//       "type": "string"
3872	//     },
3873	//     "project": {
3874	//       "description": "The project ID for this request.",
3875	//       "location": "path",
3876	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
3877	//       "required": true,
3878	//       "type": "string"
3879	//     }
3880	//   },
3881	//   "path": "{project}/global/compositeTypes",
3882	//   "response": {
3883	//     "$ref": "CompositeTypesListResponse"
3884	//   },
3885	//   "scopes": [
3886	//     "https://www.googleapis.com/auth/cloud-platform",
3887	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
3888	//     "https://www.googleapis.com/auth/ndev.cloudman",
3889	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
3890	//   ]
3891	// }
3892
3893}
3894
3895// Pages invokes f for each page of results.
3896// A non-nil error returned from f will halt the iteration.
3897// The provided context supersedes any context provided to the Context method.
3898func (c *CompositeTypesListCall) Pages(ctx context.Context, f func(*CompositeTypesListResponse) error) error {
3899	c.ctx_ = ctx
3900	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
3901	for {
3902		x, err := c.Do()
3903		if err != nil {
3904			return err
3905		}
3906		if err := f(x); err != nil {
3907			return err
3908		}
3909		if x.NextPageToken == "" {
3910			return nil
3911		}
3912		c.PageToken(x.NextPageToken)
3913	}
3914}
3915
3916// method id "deploymentmanager.compositeTypes.patch":
3917
3918type CompositeTypesPatchCall struct {
3919	s             *Service
3920	project       string
3921	compositeType string
3922	compositetype *CompositeType
3923	urlParams_    gensupport.URLParams
3924	ctx_          context.Context
3925	header_       http.Header
3926}
3927
3928// Patch: Patches a composite type.
3929func (r *CompositeTypesService) Patch(project string, compositeType string, compositetype *CompositeType) *CompositeTypesPatchCall {
3930	c := &CompositeTypesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3931	c.project = project
3932	c.compositeType = compositeType
3933	c.compositetype = compositetype
3934	return c
3935}
3936
3937// Fields allows partial responses to be retrieved. See
3938// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3939// for more information.
3940func (c *CompositeTypesPatchCall) Fields(s ...googleapi.Field) *CompositeTypesPatchCall {
3941	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3942	return c
3943}
3944
3945// Context sets the context to be used in this call's Do method. Any
3946// pending HTTP request will be aborted if the provided context is
3947// canceled.
3948func (c *CompositeTypesPatchCall) Context(ctx context.Context) *CompositeTypesPatchCall {
3949	c.ctx_ = ctx
3950	return c
3951}
3952
3953// Header returns an http.Header that can be modified by the caller to
3954// add HTTP headers to the request.
3955func (c *CompositeTypesPatchCall) Header() http.Header {
3956	if c.header_ == nil {
3957		c.header_ = make(http.Header)
3958	}
3959	return c.header_
3960}
3961
3962func (c *CompositeTypesPatchCall) doRequest(alt string) (*http.Response, error) {
3963	reqHeaders := make(http.Header)
3964	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
3965	for k, v := range c.header_ {
3966		reqHeaders[k] = v
3967	}
3968	reqHeaders.Set("User-Agent", c.s.userAgent())
3969	var body io.Reader = nil
3970	body, err := googleapi.WithoutDataWrapper.JSONReader(c.compositetype)
3971	if err != nil {
3972		return nil, err
3973	}
3974	reqHeaders.Set("Content-Type", "application/json")
3975	c.urlParams_.Set("alt", alt)
3976	c.urlParams_.Set("prettyPrint", "false")
3977	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/compositeTypes/{compositeType}")
3978	urls += "?" + c.urlParams_.Encode()
3979	req, err := http.NewRequest("PATCH", urls, body)
3980	if err != nil {
3981		return nil, err
3982	}
3983	req.Header = reqHeaders
3984	googleapi.Expand(req.URL, map[string]string{
3985		"project":       c.project,
3986		"compositeType": c.compositeType,
3987	})
3988	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3989}
3990
3991// Do executes the "deploymentmanager.compositeTypes.patch" call.
3992// Exactly one of *Operation or error will be non-nil. Any non-2xx
3993// status code is an error. Response headers are in either
3994// *Operation.ServerResponse.Header or (if a response was returned at
3995// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
3996// to check whether the returned error was because
3997// http.StatusNotModified was returned.
3998func (c *CompositeTypesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
3999	gensupport.SetOptions(c.urlParams_, opts...)
4000	res, err := c.doRequest("json")
4001	if res != nil && res.StatusCode == http.StatusNotModified {
4002		if res.Body != nil {
4003			res.Body.Close()
4004		}
4005		return nil, &googleapi.Error{
4006			Code:   res.StatusCode,
4007			Header: res.Header,
4008		}
4009	}
4010	if err != nil {
4011		return nil, err
4012	}
4013	defer googleapi.CloseBody(res)
4014	if err := googleapi.CheckResponse(res); err != nil {
4015		return nil, err
4016	}
4017	ret := &Operation{
4018		ServerResponse: googleapi.ServerResponse{
4019			Header:         res.Header,
4020			HTTPStatusCode: res.StatusCode,
4021		},
4022	}
4023	target := &ret
4024	if err := gensupport.DecodeResponse(target, res); err != nil {
4025		return nil, err
4026	}
4027	return ret, nil
4028	// {
4029	//   "description": "Patches a composite type.",
4030	//   "httpMethod": "PATCH",
4031	//   "id": "deploymentmanager.compositeTypes.patch",
4032	//   "parameterOrder": [
4033	//     "project",
4034	//     "compositeType"
4035	//   ],
4036	//   "parameters": {
4037	//     "compositeType": {
4038	//       "description": "The name of the composite type for this request.",
4039	//       "location": "path",
4040	//       "pattern": "[a-z](?:[-a-z0-9_.]{0,61}[a-z0-9])?",
4041	//       "required": true,
4042	//       "type": "string"
4043	//     },
4044	//     "project": {
4045	//       "description": "The project ID for this request.",
4046	//       "location": "path",
4047	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
4048	//       "required": true,
4049	//       "type": "string"
4050	//     }
4051	//   },
4052	//   "path": "{project}/global/compositeTypes/{compositeType}",
4053	//   "request": {
4054	//     "$ref": "CompositeType"
4055	//   },
4056	//   "response": {
4057	//     "$ref": "Operation"
4058	//   },
4059	//   "scopes": [
4060	//     "https://www.googleapis.com/auth/cloud-platform",
4061	//     "https://www.googleapis.com/auth/ndev.cloudman"
4062	//   ]
4063	// }
4064
4065}
4066
4067// method id "deploymentmanager.compositeTypes.update":
4068
4069type CompositeTypesUpdateCall struct {
4070	s             *Service
4071	project       string
4072	compositeType string
4073	compositetype *CompositeType
4074	urlParams_    gensupport.URLParams
4075	ctx_          context.Context
4076	header_       http.Header
4077}
4078
4079// Update: Updates a composite type.
4080func (r *CompositeTypesService) Update(project string, compositeType string, compositetype *CompositeType) *CompositeTypesUpdateCall {
4081	c := &CompositeTypesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4082	c.project = project
4083	c.compositeType = compositeType
4084	c.compositetype = compositetype
4085	return c
4086}
4087
4088// Fields allows partial responses to be retrieved. See
4089// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4090// for more information.
4091func (c *CompositeTypesUpdateCall) Fields(s ...googleapi.Field) *CompositeTypesUpdateCall {
4092	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4093	return c
4094}
4095
4096// Context sets the context to be used in this call's Do method. Any
4097// pending HTTP request will be aborted if the provided context is
4098// canceled.
4099func (c *CompositeTypesUpdateCall) Context(ctx context.Context) *CompositeTypesUpdateCall {
4100	c.ctx_ = ctx
4101	return c
4102}
4103
4104// Header returns an http.Header that can be modified by the caller to
4105// add HTTP headers to the request.
4106func (c *CompositeTypesUpdateCall) Header() http.Header {
4107	if c.header_ == nil {
4108		c.header_ = make(http.Header)
4109	}
4110	return c.header_
4111}
4112
4113func (c *CompositeTypesUpdateCall) doRequest(alt string) (*http.Response, error) {
4114	reqHeaders := make(http.Header)
4115	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
4116	for k, v := range c.header_ {
4117		reqHeaders[k] = v
4118	}
4119	reqHeaders.Set("User-Agent", c.s.userAgent())
4120	var body io.Reader = nil
4121	body, err := googleapi.WithoutDataWrapper.JSONReader(c.compositetype)
4122	if err != nil {
4123		return nil, err
4124	}
4125	reqHeaders.Set("Content-Type", "application/json")
4126	c.urlParams_.Set("alt", alt)
4127	c.urlParams_.Set("prettyPrint", "false")
4128	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/compositeTypes/{compositeType}")
4129	urls += "?" + c.urlParams_.Encode()
4130	req, err := http.NewRequest("PUT", urls, body)
4131	if err != nil {
4132		return nil, err
4133	}
4134	req.Header = reqHeaders
4135	googleapi.Expand(req.URL, map[string]string{
4136		"project":       c.project,
4137		"compositeType": c.compositeType,
4138	})
4139	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4140}
4141
4142// Do executes the "deploymentmanager.compositeTypes.update" call.
4143// Exactly one of *Operation or error will be non-nil. Any non-2xx
4144// status code is an error. Response headers are in either
4145// *Operation.ServerResponse.Header or (if a response was returned at
4146// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4147// to check whether the returned error was because
4148// http.StatusNotModified was returned.
4149func (c *CompositeTypesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
4150	gensupport.SetOptions(c.urlParams_, opts...)
4151	res, err := c.doRequest("json")
4152	if res != nil && res.StatusCode == http.StatusNotModified {
4153		if res.Body != nil {
4154			res.Body.Close()
4155		}
4156		return nil, &googleapi.Error{
4157			Code:   res.StatusCode,
4158			Header: res.Header,
4159		}
4160	}
4161	if err != nil {
4162		return nil, err
4163	}
4164	defer googleapi.CloseBody(res)
4165	if err := googleapi.CheckResponse(res); err != nil {
4166		return nil, err
4167	}
4168	ret := &Operation{
4169		ServerResponse: googleapi.ServerResponse{
4170			Header:         res.Header,
4171			HTTPStatusCode: res.StatusCode,
4172		},
4173	}
4174	target := &ret
4175	if err := gensupport.DecodeResponse(target, res); err != nil {
4176		return nil, err
4177	}
4178	return ret, nil
4179	// {
4180	//   "description": "Updates a composite type.",
4181	//   "httpMethod": "PUT",
4182	//   "id": "deploymentmanager.compositeTypes.update",
4183	//   "parameterOrder": [
4184	//     "project",
4185	//     "compositeType"
4186	//   ],
4187	//   "parameters": {
4188	//     "compositeType": {
4189	//       "description": "The name of the composite type for this request.",
4190	//       "location": "path",
4191	//       "pattern": "[a-z](?:[-a-z0-9_.]{0,61}[a-z0-9])?",
4192	//       "required": true,
4193	//       "type": "string"
4194	//     },
4195	//     "project": {
4196	//       "description": "The project ID for this request.",
4197	//       "location": "path",
4198	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
4199	//       "required": true,
4200	//       "type": "string"
4201	//     }
4202	//   },
4203	//   "path": "{project}/global/compositeTypes/{compositeType}",
4204	//   "request": {
4205	//     "$ref": "CompositeType"
4206	//   },
4207	//   "response": {
4208	//     "$ref": "Operation"
4209	//   },
4210	//   "scopes": [
4211	//     "https://www.googleapis.com/auth/cloud-platform",
4212	//     "https://www.googleapis.com/auth/ndev.cloudman"
4213	//   ]
4214	// }
4215
4216}
4217
4218// method id "deploymentmanager.deployments.cancelPreview":
4219
4220type DeploymentsCancelPreviewCall struct {
4221	s                               *Service
4222	project                         string
4223	deployment                      string
4224	deploymentscancelpreviewrequest *DeploymentsCancelPreviewRequest
4225	urlParams_                      gensupport.URLParams
4226	ctx_                            context.Context
4227	header_                         http.Header
4228}
4229
4230// CancelPreview: Cancels and removes the preview currently associated
4231// with the deployment.
4232func (r *DeploymentsService) CancelPreview(project string, deployment string, deploymentscancelpreviewrequest *DeploymentsCancelPreviewRequest) *DeploymentsCancelPreviewCall {
4233	c := &DeploymentsCancelPreviewCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4234	c.project = project
4235	c.deployment = deployment
4236	c.deploymentscancelpreviewrequest = deploymentscancelpreviewrequest
4237	return c
4238}
4239
4240// Fields allows partial responses to be retrieved. See
4241// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4242// for more information.
4243func (c *DeploymentsCancelPreviewCall) Fields(s ...googleapi.Field) *DeploymentsCancelPreviewCall {
4244	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4245	return c
4246}
4247
4248// Context sets the context to be used in this call's Do method. Any
4249// pending HTTP request will be aborted if the provided context is
4250// canceled.
4251func (c *DeploymentsCancelPreviewCall) Context(ctx context.Context) *DeploymentsCancelPreviewCall {
4252	c.ctx_ = ctx
4253	return c
4254}
4255
4256// Header returns an http.Header that can be modified by the caller to
4257// add HTTP headers to the request.
4258func (c *DeploymentsCancelPreviewCall) Header() http.Header {
4259	if c.header_ == nil {
4260		c.header_ = make(http.Header)
4261	}
4262	return c.header_
4263}
4264
4265func (c *DeploymentsCancelPreviewCall) doRequest(alt string) (*http.Response, error) {
4266	reqHeaders := make(http.Header)
4267	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
4268	for k, v := range c.header_ {
4269		reqHeaders[k] = v
4270	}
4271	reqHeaders.Set("User-Agent", c.s.userAgent())
4272	var body io.Reader = nil
4273	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deploymentscancelpreviewrequest)
4274	if err != nil {
4275		return nil, err
4276	}
4277	reqHeaders.Set("Content-Type", "application/json")
4278	c.urlParams_.Set("alt", alt)
4279	c.urlParams_.Set("prettyPrint", "false")
4280	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/deployments/{deployment}/cancelPreview")
4281	urls += "?" + c.urlParams_.Encode()
4282	req, err := http.NewRequest("POST", urls, body)
4283	if err != nil {
4284		return nil, err
4285	}
4286	req.Header = reqHeaders
4287	googleapi.Expand(req.URL, map[string]string{
4288		"project":    c.project,
4289		"deployment": c.deployment,
4290	})
4291	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4292}
4293
4294// Do executes the "deploymentmanager.deployments.cancelPreview" call.
4295// Exactly one of *Operation or error will be non-nil. Any non-2xx
4296// status code is an error. Response headers are in either
4297// *Operation.ServerResponse.Header or (if a response was returned at
4298// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4299// to check whether the returned error was because
4300// http.StatusNotModified was returned.
4301func (c *DeploymentsCancelPreviewCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
4302	gensupport.SetOptions(c.urlParams_, opts...)
4303	res, err := c.doRequest("json")
4304	if res != nil && res.StatusCode == http.StatusNotModified {
4305		if res.Body != nil {
4306			res.Body.Close()
4307		}
4308		return nil, &googleapi.Error{
4309			Code:   res.StatusCode,
4310			Header: res.Header,
4311		}
4312	}
4313	if err != nil {
4314		return nil, err
4315	}
4316	defer googleapi.CloseBody(res)
4317	if err := googleapi.CheckResponse(res); err != nil {
4318		return nil, err
4319	}
4320	ret := &Operation{
4321		ServerResponse: googleapi.ServerResponse{
4322			Header:         res.Header,
4323			HTTPStatusCode: res.StatusCode,
4324		},
4325	}
4326	target := &ret
4327	if err := gensupport.DecodeResponse(target, res); err != nil {
4328		return nil, err
4329	}
4330	return ret, nil
4331	// {
4332	//   "description": "Cancels and removes the preview currently associated with the deployment.",
4333	//   "httpMethod": "POST",
4334	//   "id": "deploymentmanager.deployments.cancelPreview",
4335	//   "parameterOrder": [
4336	//     "project",
4337	//     "deployment"
4338	//   ],
4339	//   "parameters": {
4340	//     "deployment": {
4341	//       "description": "The name of the deployment for this request.",
4342	//       "location": "path",
4343	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
4344	//       "required": true,
4345	//       "type": "string"
4346	//     },
4347	//     "project": {
4348	//       "description": "The project ID for this request.",
4349	//       "location": "path",
4350	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
4351	//       "required": true,
4352	//       "type": "string"
4353	//     }
4354	//   },
4355	//   "path": "{project}/global/deployments/{deployment}/cancelPreview",
4356	//   "request": {
4357	//     "$ref": "DeploymentsCancelPreviewRequest"
4358	//   },
4359	//   "response": {
4360	//     "$ref": "Operation"
4361	//   },
4362	//   "scopes": [
4363	//     "https://www.googleapis.com/auth/cloud-platform",
4364	//     "https://www.googleapis.com/auth/ndev.cloudman"
4365	//   ]
4366	// }
4367
4368}
4369
4370// method id "deploymentmanager.deployments.delete":
4371
4372type DeploymentsDeleteCall struct {
4373	s          *Service
4374	project    string
4375	deployment string
4376	urlParams_ gensupport.URLParams
4377	ctx_       context.Context
4378	header_    http.Header
4379}
4380
4381// Delete: Deletes a deployment and all of the resources in the
4382// deployment.
4383func (r *DeploymentsService) Delete(project string, deployment string) *DeploymentsDeleteCall {
4384	c := &DeploymentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4385	c.project = project
4386	c.deployment = deployment
4387	return c
4388}
4389
4390// DeletePolicy sets the optional parameter "deletePolicy": Sets the
4391// policy to use for deleting resources.
4392//
4393// Possible values:
4394//   "ABANDON"
4395//   "DELETE" (default)
4396func (c *DeploymentsDeleteCall) DeletePolicy(deletePolicy string) *DeploymentsDeleteCall {
4397	c.urlParams_.Set("deletePolicy", deletePolicy)
4398	return c
4399}
4400
4401// Fields allows partial responses to be retrieved. See
4402// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4403// for more information.
4404func (c *DeploymentsDeleteCall) Fields(s ...googleapi.Field) *DeploymentsDeleteCall {
4405	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4406	return c
4407}
4408
4409// Context sets the context to be used in this call's Do method. Any
4410// pending HTTP request will be aborted if the provided context is
4411// canceled.
4412func (c *DeploymentsDeleteCall) Context(ctx context.Context) *DeploymentsDeleteCall {
4413	c.ctx_ = ctx
4414	return c
4415}
4416
4417// Header returns an http.Header that can be modified by the caller to
4418// add HTTP headers to the request.
4419func (c *DeploymentsDeleteCall) Header() http.Header {
4420	if c.header_ == nil {
4421		c.header_ = make(http.Header)
4422	}
4423	return c.header_
4424}
4425
4426func (c *DeploymentsDeleteCall) doRequest(alt string) (*http.Response, error) {
4427	reqHeaders := make(http.Header)
4428	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
4429	for k, v := range c.header_ {
4430		reqHeaders[k] = v
4431	}
4432	reqHeaders.Set("User-Agent", c.s.userAgent())
4433	var body io.Reader = nil
4434	c.urlParams_.Set("alt", alt)
4435	c.urlParams_.Set("prettyPrint", "false")
4436	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/deployments/{deployment}")
4437	urls += "?" + c.urlParams_.Encode()
4438	req, err := http.NewRequest("DELETE", urls, body)
4439	if err != nil {
4440		return nil, err
4441	}
4442	req.Header = reqHeaders
4443	googleapi.Expand(req.URL, map[string]string{
4444		"project":    c.project,
4445		"deployment": c.deployment,
4446	})
4447	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4448}
4449
4450// Do executes the "deploymentmanager.deployments.delete" call.
4451// Exactly one of *Operation or error will be non-nil. Any non-2xx
4452// status code is an error. Response headers are in either
4453// *Operation.ServerResponse.Header or (if a response was returned at
4454// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4455// to check whether the returned error was because
4456// http.StatusNotModified was returned.
4457func (c *DeploymentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
4458	gensupport.SetOptions(c.urlParams_, opts...)
4459	res, err := c.doRequest("json")
4460	if res != nil && res.StatusCode == http.StatusNotModified {
4461		if res.Body != nil {
4462			res.Body.Close()
4463		}
4464		return nil, &googleapi.Error{
4465			Code:   res.StatusCode,
4466			Header: res.Header,
4467		}
4468	}
4469	if err != nil {
4470		return nil, err
4471	}
4472	defer googleapi.CloseBody(res)
4473	if err := googleapi.CheckResponse(res); err != nil {
4474		return nil, err
4475	}
4476	ret := &Operation{
4477		ServerResponse: googleapi.ServerResponse{
4478			Header:         res.Header,
4479			HTTPStatusCode: res.StatusCode,
4480		},
4481	}
4482	target := &ret
4483	if err := gensupport.DecodeResponse(target, res); err != nil {
4484		return nil, err
4485	}
4486	return ret, nil
4487	// {
4488	//   "description": "Deletes a deployment and all of the resources in the deployment.",
4489	//   "httpMethod": "DELETE",
4490	//   "id": "deploymentmanager.deployments.delete",
4491	//   "parameterOrder": [
4492	//     "project",
4493	//     "deployment"
4494	//   ],
4495	//   "parameters": {
4496	//     "deletePolicy": {
4497	//       "default": "DELETE",
4498	//       "description": "Sets the policy to use for deleting resources.",
4499	//       "enum": [
4500	//         "ABANDON",
4501	//         "DELETE"
4502	//       ],
4503	//       "enumDescriptions": [
4504	//         "",
4505	//         ""
4506	//       ],
4507	//       "location": "query",
4508	//       "type": "string"
4509	//     },
4510	//     "deployment": {
4511	//       "description": "The name of the deployment for this request.",
4512	//       "location": "path",
4513	//       "required": true,
4514	//       "type": "string"
4515	//     },
4516	//     "project": {
4517	//       "description": "The project ID for this request.",
4518	//       "location": "path",
4519	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
4520	//       "required": true,
4521	//       "type": "string"
4522	//     }
4523	//   },
4524	//   "path": "{project}/global/deployments/{deployment}",
4525	//   "response": {
4526	//     "$ref": "Operation"
4527	//   },
4528	//   "scopes": [
4529	//     "https://www.googleapis.com/auth/cloud-platform",
4530	//     "https://www.googleapis.com/auth/ndev.cloudman"
4531	//   ]
4532	// }
4533
4534}
4535
4536// method id "deploymentmanager.deployments.get":
4537
4538type DeploymentsGetCall struct {
4539	s            *Service
4540	project      string
4541	deployment   string
4542	urlParams_   gensupport.URLParams
4543	ifNoneMatch_ string
4544	ctx_         context.Context
4545	header_      http.Header
4546}
4547
4548// Get: Gets information about a specific deployment.
4549func (r *DeploymentsService) Get(project string, deployment string) *DeploymentsGetCall {
4550	c := &DeploymentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4551	c.project = project
4552	c.deployment = deployment
4553	return c
4554}
4555
4556// Fields allows partial responses to be retrieved. See
4557// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4558// for more information.
4559func (c *DeploymentsGetCall) Fields(s ...googleapi.Field) *DeploymentsGetCall {
4560	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4561	return c
4562}
4563
4564// IfNoneMatch sets the optional parameter which makes the operation
4565// fail if the object's ETag matches the given value. This is useful for
4566// getting updates only after the object has changed since the last
4567// request. Use googleapi.IsNotModified to check whether the response
4568// error from Do is the result of In-None-Match.
4569func (c *DeploymentsGetCall) IfNoneMatch(entityTag string) *DeploymentsGetCall {
4570	c.ifNoneMatch_ = entityTag
4571	return c
4572}
4573
4574// Context sets the context to be used in this call's Do method. Any
4575// pending HTTP request will be aborted if the provided context is
4576// canceled.
4577func (c *DeploymentsGetCall) Context(ctx context.Context) *DeploymentsGetCall {
4578	c.ctx_ = ctx
4579	return c
4580}
4581
4582// Header returns an http.Header that can be modified by the caller to
4583// add HTTP headers to the request.
4584func (c *DeploymentsGetCall) Header() http.Header {
4585	if c.header_ == nil {
4586		c.header_ = make(http.Header)
4587	}
4588	return c.header_
4589}
4590
4591func (c *DeploymentsGetCall) doRequest(alt string) (*http.Response, error) {
4592	reqHeaders := make(http.Header)
4593	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
4594	for k, v := range c.header_ {
4595		reqHeaders[k] = v
4596	}
4597	reqHeaders.Set("User-Agent", c.s.userAgent())
4598	if c.ifNoneMatch_ != "" {
4599		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4600	}
4601	var body io.Reader = nil
4602	c.urlParams_.Set("alt", alt)
4603	c.urlParams_.Set("prettyPrint", "false")
4604	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/deployments/{deployment}")
4605	urls += "?" + c.urlParams_.Encode()
4606	req, err := http.NewRequest("GET", urls, body)
4607	if err != nil {
4608		return nil, err
4609	}
4610	req.Header = reqHeaders
4611	googleapi.Expand(req.URL, map[string]string{
4612		"project":    c.project,
4613		"deployment": c.deployment,
4614	})
4615	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4616}
4617
4618// Do executes the "deploymentmanager.deployments.get" call.
4619// Exactly one of *Deployment or error will be non-nil. Any non-2xx
4620// status code is an error. Response headers are in either
4621// *Deployment.ServerResponse.Header or (if a response was returned at
4622// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4623// to check whether the returned error was because
4624// http.StatusNotModified was returned.
4625func (c *DeploymentsGetCall) Do(opts ...googleapi.CallOption) (*Deployment, error) {
4626	gensupport.SetOptions(c.urlParams_, opts...)
4627	res, err := c.doRequest("json")
4628	if res != nil && res.StatusCode == http.StatusNotModified {
4629		if res.Body != nil {
4630			res.Body.Close()
4631		}
4632		return nil, &googleapi.Error{
4633			Code:   res.StatusCode,
4634			Header: res.Header,
4635		}
4636	}
4637	if err != nil {
4638		return nil, err
4639	}
4640	defer googleapi.CloseBody(res)
4641	if err := googleapi.CheckResponse(res); err != nil {
4642		return nil, err
4643	}
4644	ret := &Deployment{
4645		ServerResponse: googleapi.ServerResponse{
4646			Header:         res.Header,
4647			HTTPStatusCode: res.StatusCode,
4648		},
4649	}
4650	target := &ret
4651	if err := gensupport.DecodeResponse(target, res); err != nil {
4652		return nil, err
4653	}
4654	return ret, nil
4655	// {
4656	//   "description": "Gets information about a specific deployment.",
4657	//   "httpMethod": "GET",
4658	//   "id": "deploymentmanager.deployments.get",
4659	//   "parameterOrder": [
4660	//     "project",
4661	//     "deployment"
4662	//   ],
4663	//   "parameters": {
4664	//     "deployment": {
4665	//       "description": "The name of the deployment for this request.",
4666	//       "location": "path",
4667	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
4668	//       "required": true,
4669	//       "type": "string"
4670	//     },
4671	//     "project": {
4672	//       "description": "The project ID for this request.",
4673	//       "location": "path",
4674	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
4675	//       "required": true,
4676	//       "type": "string"
4677	//     }
4678	//   },
4679	//   "path": "{project}/global/deployments/{deployment}",
4680	//   "response": {
4681	//     "$ref": "Deployment"
4682	//   },
4683	//   "scopes": [
4684	//     "https://www.googleapis.com/auth/cloud-platform",
4685	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
4686	//     "https://www.googleapis.com/auth/ndev.cloudman",
4687	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
4688	//   ]
4689	// }
4690
4691}
4692
4693// method id "deploymentmanager.deployments.getIamPolicy":
4694
4695type DeploymentsGetIamPolicyCall struct {
4696	s            *Service
4697	project      string
4698	resource     string
4699	urlParams_   gensupport.URLParams
4700	ifNoneMatch_ string
4701	ctx_         context.Context
4702	header_      http.Header
4703}
4704
4705// GetIamPolicy: Gets the access control policy for a resource. May be
4706// empty if no such policy or resource exists.
4707func (r *DeploymentsService) GetIamPolicy(project string, resource string) *DeploymentsGetIamPolicyCall {
4708	c := &DeploymentsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4709	c.project = project
4710	c.resource = resource
4711	return c
4712}
4713
4714// Fields allows partial responses to be retrieved. See
4715// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4716// for more information.
4717func (c *DeploymentsGetIamPolicyCall) Fields(s ...googleapi.Field) *DeploymentsGetIamPolicyCall {
4718	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4719	return c
4720}
4721
4722// IfNoneMatch sets the optional parameter which makes the operation
4723// fail if the object's ETag matches the given value. This is useful for
4724// getting updates only after the object has changed since the last
4725// request. Use googleapi.IsNotModified to check whether the response
4726// error from Do is the result of In-None-Match.
4727func (c *DeploymentsGetIamPolicyCall) IfNoneMatch(entityTag string) *DeploymentsGetIamPolicyCall {
4728	c.ifNoneMatch_ = entityTag
4729	return c
4730}
4731
4732// Context sets the context to be used in this call's Do method. Any
4733// pending HTTP request will be aborted if the provided context is
4734// canceled.
4735func (c *DeploymentsGetIamPolicyCall) Context(ctx context.Context) *DeploymentsGetIamPolicyCall {
4736	c.ctx_ = ctx
4737	return c
4738}
4739
4740// Header returns an http.Header that can be modified by the caller to
4741// add HTTP headers to the request.
4742func (c *DeploymentsGetIamPolicyCall) Header() http.Header {
4743	if c.header_ == nil {
4744		c.header_ = make(http.Header)
4745	}
4746	return c.header_
4747}
4748
4749func (c *DeploymentsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
4750	reqHeaders := make(http.Header)
4751	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
4752	for k, v := range c.header_ {
4753		reqHeaders[k] = v
4754	}
4755	reqHeaders.Set("User-Agent", c.s.userAgent())
4756	if c.ifNoneMatch_ != "" {
4757		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4758	}
4759	var body io.Reader = nil
4760	c.urlParams_.Set("alt", alt)
4761	c.urlParams_.Set("prettyPrint", "false")
4762	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/deployments/{resource}/getIamPolicy")
4763	urls += "?" + c.urlParams_.Encode()
4764	req, err := http.NewRequest("GET", urls, body)
4765	if err != nil {
4766		return nil, err
4767	}
4768	req.Header = reqHeaders
4769	googleapi.Expand(req.URL, map[string]string{
4770		"project":  c.project,
4771		"resource": c.resource,
4772	})
4773	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4774}
4775
4776// Do executes the "deploymentmanager.deployments.getIamPolicy" call.
4777// Exactly one of *Policy or error will be non-nil. Any non-2xx status
4778// code is an error. Response headers are in either
4779// *Policy.ServerResponse.Header or (if a response was returned at all)
4780// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
4781// check whether the returned error was because http.StatusNotModified
4782// was returned.
4783func (c *DeploymentsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
4784	gensupport.SetOptions(c.urlParams_, opts...)
4785	res, err := c.doRequest("json")
4786	if res != nil && res.StatusCode == http.StatusNotModified {
4787		if res.Body != nil {
4788			res.Body.Close()
4789		}
4790		return nil, &googleapi.Error{
4791			Code:   res.StatusCode,
4792			Header: res.Header,
4793		}
4794	}
4795	if err != nil {
4796		return nil, err
4797	}
4798	defer googleapi.CloseBody(res)
4799	if err := googleapi.CheckResponse(res); err != nil {
4800		return nil, err
4801	}
4802	ret := &Policy{
4803		ServerResponse: googleapi.ServerResponse{
4804			Header:         res.Header,
4805			HTTPStatusCode: res.StatusCode,
4806		},
4807	}
4808	target := &ret
4809	if err := gensupport.DecodeResponse(target, res); err != nil {
4810		return nil, err
4811	}
4812	return ret, nil
4813	// {
4814	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
4815	//   "httpMethod": "GET",
4816	//   "id": "deploymentmanager.deployments.getIamPolicy",
4817	//   "parameterOrder": [
4818	//     "project",
4819	//     "resource"
4820	//   ],
4821	//   "parameters": {
4822	//     "project": {
4823	//       "description": "Project ID for this request.",
4824	//       "location": "path",
4825	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
4826	//       "required": true,
4827	//       "type": "string"
4828	//     },
4829	//     "resource": {
4830	//       "description": "Name or id of the resource for this request.",
4831	//       "location": "path",
4832	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
4833	//       "required": true,
4834	//       "type": "string"
4835	//     }
4836	//   },
4837	//   "path": "{project}/global/deployments/{resource}/getIamPolicy",
4838	//   "response": {
4839	//     "$ref": "Policy"
4840	//   },
4841	//   "scopes": [
4842	//     "https://www.googleapis.com/auth/cloud-platform",
4843	//     "https://www.googleapis.com/auth/ndev.cloudman"
4844	//   ]
4845	// }
4846
4847}
4848
4849// method id "deploymentmanager.deployments.insert":
4850
4851type DeploymentsInsertCall struct {
4852	s          *Service
4853	project    string
4854	deployment *Deployment
4855	urlParams_ gensupport.URLParams
4856	ctx_       context.Context
4857	header_    http.Header
4858}
4859
4860// Insert: Creates a deployment and all of the resources described by
4861// the deployment manifest.
4862func (r *DeploymentsService) Insert(project string, deployment *Deployment) *DeploymentsInsertCall {
4863	c := &DeploymentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4864	c.project = project
4865	c.deployment = deployment
4866	return c
4867}
4868
4869// CreatePolicy sets the optional parameter "createPolicy": Sets the
4870// policy to use for creating new resources.
4871//
4872// Possible values:
4873//   "ACQUIRE"
4874//   "CREATE"
4875//   "CREATE_OR_ACQUIRE" (default)
4876func (c *DeploymentsInsertCall) CreatePolicy(createPolicy string) *DeploymentsInsertCall {
4877	c.urlParams_.Set("createPolicy", createPolicy)
4878	return c
4879}
4880
4881// Preview sets the optional parameter "preview": If set to true,
4882// creates a deployment and creates "shell" resources but does not
4883// actually instantiate these resources. This allows you to preview what
4884// your deployment looks like. After previewing a deployment, you can
4885// deploy your resources by making a request with the `update()` method
4886// or you can use the `cancelPreview()` method to cancel the preview
4887// altogether. Note that the deployment will still exist after you
4888// cancel the preview and you must separately delete this deployment if
4889// you want to remove it.
4890func (c *DeploymentsInsertCall) Preview(preview bool) *DeploymentsInsertCall {
4891	c.urlParams_.Set("preview", fmt.Sprint(preview))
4892	return c
4893}
4894
4895// Fields allows partial responses to be retrieved. See
4896// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4897// for more information.
4898func (c *DeploymentsInsertCall) Fields(s ...googleapi.Field) *DeploymentsInsertCall {
4899	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4900	return c
4901}
4902
4903// Context sets the context to be used in this call's Do method. Any
4904// pending HTTP request will be aborted if the provided context is
4905// canceled.
4906func (c *DeploymentsInsertCall) Context(ctx context.Context) *DeploymentsInsertCall {
4907	c.ctx_ = ctx
4908	return c
4909}
4910
4911// Header returns an http.Header that can be modified by the caller to
4912// add HTTP headers to the request.
4913func (c *DeploymentsInsertCall) Header() http.Header {
4914	if c.header_ == nil {
4915		c.header_ = make(http.Header)
4916	}
4917	return c.header_
4918}
4919
4920func (c *DeploymentsInsertCall) doRequest(alt string) (*http.Response, error) {
4921	reqHeaders := make(http.Header)
4922	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
4923	for k, v := range c.header_ {
4924		reqHeaders[k] = v
4925	}
4926	reqHeaders.Set("User-Agent", c.s.userAgent())
4927	var body io.Reader = nil
4928	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deployment)
4929	if err != nil {
4930		return nil, err
4931	}
4932	reqHeaders.Set("Content-Type", "application/json")
4933	c.urlParams_.Set("alt", alt)
4934	c.urlParams_.Set("prettyPrint", "false")
4935	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/deployments")
4936	urls += "?" + c.urlParams_.Encode()
4937	req, err := http.NewRequest("POST", urls, body)
4938	if err != nil {
4939		return nil, err
4940	}
4941	req.Header = reqHeaders
4942	googleapi.Expand(req.URL, map[string]string{
4943		"project": c.project,
4944	})
4945	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4946}
4947
4948// Do executes the "deploymentmanager.deployments.insert" call.
4949// Exactly one of *Operation or error will be non-nil. Any non-2xx
4950// status code is an error. Response headers are in either
4951// *Operation.ServerResponse.Header or (if a response was returned at
4952// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4953// to check whether the returned error was because
4954// http.StatusNotModified was returned.
4955func (c *DeploymentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
4956	gensupport.SetOptions(c.urlParams_, opts...)
4957	res, err := c.doRequest("json")
4958	if res != nil && res.StatusCode == http.StatusNotModified {
4959		if res.Body != nil {
4960			res.Body.Close()
4961		}
4962		return nil, &googleapi.Error{
4963			Code:   res.StatusCode,
4964			Header: res.Header,
4965		}
4966	}
4967	if err != nil {
4968		return nil, err
4969	}
4970	defer googleapi.CloseBody(res)
4971	if err := googleapi.CheckResponse(res); err != nil {
4972		return nil, err
4973	}
4974	ret := &Operation{
4975		ServerResponse: googleapi.ServerResponse{
4976			Header:         res.Header,
4977			HTTPStatusCode: res.StatusCode,
4978		},
4979	}
4980	target := &ret
4981	if err := gensupport.DecodeResponse(target, res); err != nil {
4982		return nil, err
4983	}
4984	return ret, nil
4985	// {
4986	//   "description": "Creates a deployment and all of the resources described by the deployment manifest.",
4987	//   "httpMethod": "POST",
4988	//   "id": "deploymentmanager.deployments.insert",
4989	//   "parameterOrder": [
4990	//     "project"
4991	//   ],
4992	//   "parameters": {
4993	//     "createPolicy": {
4994	//       "default": "CREATE_OR_ACQUIRE",
4995	//       "description": "Sets the policy to use for creating new resources.",
4996	//       "enum": [
4997	//         "ACQUIRE",
4998	//         "CREATE",
4999	//         "CREATE_OR_ACQUIRE"
5000	//       ],
5001	//       "enumDescriptions": [
5002	//         "",
5003	//         "",
5004	//         ""
5005	//       ],
5006	//       "location": "query",
5007	//       "type": "string"
5008	//     },
5009	//     "preview": {
5010	//       "description": "If set to true, creates a deployment and creates \"shell\" resources but does not actually instantiate these resources. This allows you to preview what your deployment looks like. After previewing a deployment, you can deploy your resources by making a request with the `update()` method or you can use the `cancelPreview()` method to cancel the preview altogether. Note that the deployment will still exist after you cancel the preview and you must separately delete this deployment if you want to remove it.",
5011	//       "location": "query",
5012	//       "type": "boolean"
5013	//     },
5014	//     "project": {
5015	//       "description": "The project ID for this request.",
5016	//       "location": "path",
5017	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
5018	//       "required": true,
5019	//       "type": "string"
5020	//     }
5021	//   },
5022	//   "path": "{project}/global/deployments",
5023	//   "request": {
5024	//     "$ref": "Deployment"
5025	//   },
5026	//   "response": {
5027	//     "$ref": "Operation"
5028	//   },
5029	//   "scopes": [
5030	//     "https://www.googleapis.com/auth/cloud-platform",
5031	//     "https://www.googleapis.com/auth/ndev.cloudman"
5032	//   ]
5033	// }
5034
5035}
5036
5037// method id "deploymentmanager.deployments.list":
5038
5039type DeploymentsListCall struct {
5040	s            *Service
5041	project      string
5042	urlParams_   gensupport.URLParams
5043	ifNoneMatch_ string
5044	ctx_         context.Context
5045	header_      http.Header
5046}
5047
5048// List: Lists all deployments for a given project.
5049func (r *DeploymentsService) List(project string) *DeploymentsListCall {
5050	c := &DeploymentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5051	c.project = project
5052	return c
5053}
5054
5055// Filter sets the optional parameter "filter": A filter expression that
5056// filters resources listed in the response. The expression must specify
5057// the field name, a comparison operator, and the value that you want to
5058// use for filtering. The value must be a string, a number, or a
5059// boolean. The comparison operator must be either `=`, `!=`, `>`, or
5060// `<`.
5061//
5062// For example, if you are filtering Compute Engine instances, you can
5063// exclude instances named `example-instance` by specifying `name !=
5064// example-instance`.
5065//
5066// You can also filter nested fields. For example, you could specify
5067// `scheduling.automaticRestart = false` to include instances only if
5068// they are not scheduled for automatic restarts. You can use filtering
5069// on nested fields to filter based on resource labels.
5070//
5071// To filter on multiple expressions, provide each separate expression
5072// within parentheses. For example: ``` (scheduling.automaticRestart =
5073// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
5074// is an `AND` expression. However, you can include `AND` and `OR`
5075// expressions explicitly. For example: ``` (cpuPlatform = "Intel
5076// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
5077// (scheduling.automaticRestart = true) ```
5078func (c *DeploymentsListCall) Filter(filter string) *DeploymentsListCall {
5079	c.urlParams_.Set("filter", filter)
5080	return c
5081}
5082
5083// MaxResults sets the optional parameter "maxResults": The maximum
5084// number of results per page that should be returned. If the number of
5085// available results is larger than `maxResults`, Compute Engine returns
5086// a `nextPageToken` that can be used to get the next page of results in
5087// subsequent list requests. Acceptable values are `0` to `500`,
5088// inclusive. (Default: `500`)
5089func (c *DeploymentsListCall) MaxResults(maxResults int64) *DeploymentsListCall {
5090	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
5091	return c
5092}
5093
5094// OrderBy sets the optional parameter "orderBy": Sorts list results by
5095// a certain order. By default, results are returned in alphanumerical
5096// order based on the resource name.
5097//
5098// You can also sort results in descending order based on the creation
5099// timestamp using `orderBy="creationTimestamp desc". This sorts
5100// results based on the `creationTimestamp` field in reverse
5101// chronological order (newest result first). Use this to sort resources
5102// like operations so that the newest operation is returned
5103// first.
5104//
5105// Currently, only sorting by `name` or `creationTimestamp desc` is
5106// supported.
5107func (c *DeploymentsListCall) OrderBy(orderBy string) *DeploymentsListCall {
5108	c.urlParams_.Set("orderBy", orderBy)
5109	return c
5110}
5111
5112// PageToken sets the optional parameter "pageToken": Specifies a page
5113// token to use. Set `pageToken` to the `nextPageToken` returned by a
5114// previous list request to get the next page of results.
5115func (c *DeploymentsListCall) PageToken(pageToken string) *DeploymentsListCall {
5116	c.urlParams_.Set("pageToken", pageToken)
5117	return c
5118}
5119
5120// Fields allows partial responses to be retrieved. See
5121// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5122// for more information.
5123func (c *DeploymentsListCall) Fields(s ...googleapi.Field) *DeploymentsListCall {
5124	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5125	return c
5126}
5127
5128// IfNoneMatch sets the optional parameter which makes the operation
5129// fail if the object's ETag matches the given value. This is useful for
5130// getting updates only after the object has changed since the last
5131// request. Use googleapi.IsNotModified to check whether the response
5132// error from Do is the result of In-None-Match.
5133func (c *DeploymentsListCall) IfNoneMatch(entityTag string) *DeploymentsListCall {
5134	c.ifNoneMatch_ = entityTag
5135	return c
5136}
5137
5138// Context sets the context to be used in this call's Do method. Any
5139// pending HTTP request will be aborted if the provided context is
5140// canceled.
5141func (c *DeploymentsListCall) Context(ctx context.Context) *DeploymentsListCall {
5142	c.ctx_ = ctx
5143	return c
5144}
5145
5146// Header returns an http.Header that can be modified by the caller to
5147// add HTTP headers to the request.
5148func (c *DeploymentsListCall) Header() http.Header {
5149	if c.header_ == nil {
5150		c.header_ = make(http.Header)
5151	}
5152	return c.header_
5153}
5154
5155func (c *DeploymentsListCall) doRequest(alt string) (*http.Response, error) {
5156	reqHeaders := make(http.Header)
5157	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
5158	for k, v := range c.header_ {
5159		reqHeaders[k] = v
5160	}
5161	reqHeaders.Set("User-Agent", c.s.userAgent())
5162	if c.ifNoneMatch_ != "" {
5163		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5164	}
5165	var body io.Reader = nil
5166	c.urlParams_.Set("alt", alt)
5167	c.urlParams_.Set("prettyPrint", "false")
5168	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/deployments")
5169	urls += "?" + c.urlParams_.Encode()
5170	req, err := http.NewRequest("GET", urls, body)
5171	if err != nil {
5172		return nil, err
5173	}
5174	req.Header = reqHeaders
5175	googleapi.Expand(req.URL, map[string]string{
5176		"project": c.project,
5177	})
5178	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5179}
5180
5181// Do executes the "deploymentmanager.deployments.list" call.
5182// Exactly one of *DeploymentsListResponse or error will be non-nil. Any
5183// non-2xx status code is an error. Response headers are in either
5184// *DeploymentsListResponse.ServerResponse.Header or (if a response was
5185// returned at all) in error.(*googleapi.Error).Header. Use
5186// googleapi.IsNotModified to check whether the returned error was
5187// because http.StatusNotModified was returned.
5188func (c *DeploymentsListCall) Do(opts ...googleapi.CallOption) (*DeploymentsListResponse, error) {
5189	gensupport.SetOptions(c.urlParams_, opts...)
5190	res, err := c.doRequest("json")
5191	if res != nil && res.StatusCode == http.StatusNotModified {
5192		if res.Body != nil {
5193			res.Body.Close()
5194		}
5195		return nil, &googleapi.Error{
5196			Code:   res.StatusCode,
5197			Header: res.Header,
5198		}
5199	}
5200	if err != nil {
5201		return nil, err
5202	}
5203	defer googleapi.CloseBody(res)
5204	if err := googleapi.CheckResponse(res); err != nil {
5205		return nil, err
5206	}
5207	ret := &DeploymentsListResponse{
5208		ServerResponse: googleapi.ServerResponse{
5209			Header:         res.Header,
5210			HTTPStatusCode: res.StatusCode,
5211		},
5212	}
5213	target := &ret
5214	if err := gensupport.DecodeResponse(target, res); err != nil {
5215		return nil, err
5216	}
5217	return ret, nil
5218	// {
5219	//   "description": "Lists all deployments for a given project.",
5220	//   "httpMethod": "GET",
5221	//   "id": "deploymentmanager.deployments.list",
5222	//   "parameterOrder": [
5223	//     "project"
5224	//   ],
5225	//   "parameters": {
5226	//     "filter": {
5227	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
5228	//       "location": "query",
5229	//       "type": "string"
5230	//     },
5231	//     "maxResults": {
5232	//       "default": "500",
5233	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
5234	//       "format": "uint32",
5235	//       "location": "query",
5236	//       "minimum": "0",
5237	//       "type": "integer"
5238	//     },
5239	//     "orderBy": {
5240	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
5241	//       "location": "query",
5242	//       "type": "string"
5243	//     },
5244	//     "pageToken": {
5245	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
5246	//       "location": "query",
5247	//       "type": "string"
5248	//     },
5249	//     "project": {
5250	//       "description": "The project ID for this request.",
5251	//       "location": "path",
5252	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
5253	//       "required": true,
5254	//       "type": "string"
5255	//     }
5256	//   },
5257	//   "path": "{project}/global/deployments",
5258	//   "response": {
5259	//     "$ref": "DeploymentsListResponse"
5260	//   },
5261	//   "scopes": [
5262	//     "https://www.googleapis.com/auth/cloud-platform",
5263	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
5264	//     "https://www.googleapis.com/auth/ndev.cloudman",
5265	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
5266	//   ]
5267	// }
5268
5269}
5270
5271// Pages invokes f for each page of results.
5272// A non-nil error returned from f will halt the iteration.
5273// The provided context supersedes any context provided to the Context method.
5274func (c *DeploymentsListCall) Pages(ctx context.Context, f func(*DeploymentsListResponse) error) error {
5275	c.ctx_ = ctx
5276	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
5277	for {
5278		x, err := c.Do()
5279		if err != nil {
5280			return err
5281		}
5282		if err := f(x); err != nil {
5283			return err
5284		}
5285		if x.NextPageToken == "" {
5286			return nil
5287		}
5288		c.PageToken(x.NextPageToken)
5289	}
5290}
5291
5292// method id "deploymentmanager.deployments.patch":
5293
5294type DeploymentsPatchCall struct {
5295	s           *Service
5296	project     string
5297	deployment  string
5298	deployment2 *Deployment
5299	urlParams_  gensupport.URLParams
5300	ctx_        context.Context
5301	header_     http.Header
5302}
5303
5304// Patch: Patches a deployment and all of the resources described by the
5305// deployment manifest.
5306func (r *DeploymentsService) Patch(project string, deployment string, deployment2 *Deployment) *DeploymentsPatchCall {
5307	c := &DeploymentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5308	c.project = project
5309	c.deployment = deployment
5310	c.deployment2 = deployment2
5311	return c
5312}
5313
5314// CreatePolicy sets the optional parameter "createPolicy": Sets the
5315// policy to use for creating new resources.
5316//
5317// Possible values:
5318//   "ACQUIRE"
5319//   "CREATE"
5320//   "CREATE_OR_ACQUIRE" (default)
5321func (c *DeploymentsPatchCall) CreatePolicy(createPolicy string) *DeploymentsPatchCall {
5322	c.urlParams_.Set("createPolicy", createPolicy)
5323	return c
5324}
5325
5326// DeletePolicy sets the optional parameter "deletePolicy": Sets the
5327// policy to use for deleting resources.
5328//
5329// Possible values:
5330//   "ABANDON"
5331//   "DELETE" (default)
5332func (c *DeploymentsPatchCall) DeletePolicy(deletePolicy string) *DeploymentsPatchCall {
5333	c.urlParams_.Set("deletePolicy", deletePolicy)
5334	return c
5335}
5336
5337// Preview sets the optional parameter "preview": If set to true,
5338// updates the deployment and creates and updates the "shell" resources
5339// but does not actually alter or instantiate these resources. This
5340// allows you to preview what your deployment will look like. You can
5341// use this intent to preview how an update would affect your
5342// deployment. You must provide a `target.config` with a configuration
5343// if this is set to true. After previewing a deployment, you can deploy
5344// your resources by making a request with the `update()` or you can
5345// `cancelPreview()` to remove the preview altogether. Note that the
5346// deployment will still exist after you cancel the preview and you must
5347// separately delete this deployment if you want to remove it.
5348func (c *DeploymentsPatchCall) Preview(preview bool) *DeploymentsPatchCall {
5349	c.urlParams_.Set("preview", fmt.Sprint(preview))
5350	return c
5351}
5352
5353// Fields allows partial responses to be retrieved. See
5354// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5355// for more information.
5356func (c *DeploymentsPatchCall) Fields(s ...googleapi.Field) *DeploymentsPatchCall {
5357	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5358	return c
5359}
5360
5361// Context sets the context to be used in this call's Do method. Any
5362// pending HTTP request will be aborted if the provided context is
5363// canceled.
5364func (c *DeploymentsPatchCall) Context(ctx context.Context) *DeploymentsPatchCall {
5365	c.ctx_ = ctx
5366	return c
5367}
5368
5369// Header returns an http.Header that can be modified by the caller to
5370// add HTTP headers to the request.
5371func (c *DeploymentsPatchCall) Header() http.Header {
5372	if c.header_ == nil {
5373		c.header_ = make(http.Header)
5374	}
5375	return c.header_
5376}
5377
5378func (c *DeploymentsPatchCall) doRequest(alt string) (*http.Response, error) {
5379	reqHeaders := make(http.Header)
5380	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
5381	for k, v := range c.header_ {
5382		reqHeaders[k] = v
5383	}
5384	reqHeaders.Set("User-Agent", c.s.userAgent())
5385	var body io.Reader = nil
5386	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deployment2)
5387	if err != nil {
5388		return nil, err
5389	}
5390	reqHeaders.Set("Content-Type", "application/json")
5391	c.urlParams_.Set("alt", alt)
5392	c.urlParams_.Set("prettyPrint", "false")
5393	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/deployments/{deployment}")
5394	urls += "?" + c.urlParams_.Encode()
5395	req, err := http.NewRequest("PATCH", urls, body)
5396	if err != nil {
5397		return nil, err
5398	}
5399	req.Header = reqHeaders
5400	googleapi.Expand(req.URL, map[string]string{
5401		"project":    c.project,
5402		"deployment": c.deployment,
5403	})
5404	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5405}
5406
5407// Do executes the "deploymentmanager.deployments.patch" call.
5408// Exactly one of *Operation or error will be non-nil. Any non-2xx
5409// status code is an error. Response headers are in either
5410// *Operation.ServerResponse.Header or (if a response was returned at
5411// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5412// to check whether the returned error was because
5413// http.StatusNotModified was returned.
5414func (c *DeploymentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
5415	gensupport.SetOptions(c.urlParams_, opts...)
5416	res, err := c.doRequest("json")
5417	if res != nil && res.StatusCode == http.StatusNotModified {
5418		if res.Body != nil {
5419			res.Body.Close()
5420		}
5421		return nil, &googleapi.Error{
5422			Code:   res.StatusCode,
5423			Header: res.Header,
5424		}
5425	}
5426	if err != nil {
5427		return nil, err
5428	}
5429	defer googleapi.CloseBody(res)
5430	if err := googleapi.CheckResponse(res); err != nil {
5431		return nil, err
5432	}
5433	ret := &Operation{
5434		ServerResponse: googleapi.ServerResponse{
5435			Header:         res.Header,
5436			HTTPStatusCode: res.StatusCode,
5437		},
5438	}
5439	target := &ret
5440	if err := gensupport.DecodeResponse(target, res); err != nil {
5441		return nil, err
5442	}
5443	return ret, nil
5444	// {
5445	//   "description": "Patches a deployment and all of the resources described by the deployment manifest.",
5446	//   "httpMethod": "PATCH",
5447	//   "id": "deploymentmanager.deployments.patch",
5448	//   "parameterOrder": [
5449	//     "project",
5450	//     "deployment"
5451	//   ],
5452	//   "parameters": {
5453	//     "createPolicy": {
5454	//       "default": "CREATE_OR_ACQUIRE",
5455	//       "description": "Sets the policy to use for creating new resources.",
5456	//       "enum": [
5457	//         "ACQUIRE",
5458	//         "CREATE",
5459	//         "CREATE_OR_ACQUIRE"
5460	//       ],
5461	//       "enumDescriptions": [
5462	//         "",
5463	//         "",
5464	//         ""
5465	//       ],
5466	//       "location": "query",
5467	//       "type": "string"
5468	//     },
5469	//     "deletePolicy": {
5470	//       "default": "DELETE",
5471	//       "description": "Sets the policy to use for deleting resources.",
5472	//       "enum": [
5473	//         "ABANDON",
5474	//         "DELETE"
5475	//       ],
5476	//       "enumDescriptions": [
5477	//         "",
5478	//         ""
5479	//       ],
5480	//       "location": "query",
5481	//       "type": "string"
5482	//     },
5483	//     "deployment": {
5484	//       "description": "The name of the deployment for this request.",
5485	//       "location": "path",
5486	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
5487	//       "required": true,
5488	//       "type": "string"
5489	//     },
5490	//     "preview": {
5491	//       "default": "false",
5492	//       "description": "If set to true, updates the deployment and creates and updates the \"shell\" resources but does not actually alter or instantiate these resources. This allows you to preview what your deployment will look like. You can use this intent to preview how an update would affect your deployment. You must provide a `target.config` with a configuration if this is set to true. After previewing a deployment, you can deploy your resources by making a request with the `update()` or you can `cancelPreview()` to remove the preview altogether. Note that the deployment will still exist after you cancel the preview and you must separately delete this deployment if you want to remove it.",
5493	//       "location": "query",
5494	//       "type": "boolean"
5495	//     },
5496	//     "project": {
5497	//       "description": "The project ID for this request.",
5498	//       "location": "path",
5499	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
5500	//       "required": true,
5501	//       "type": "string"
5502	//     }
5503	//   },
5504	//   "path": "{project}/global/deployments/{deployment}",
5505	//   "request": {
5506	//     "$ref": "Deployment"
5507	//   },
5508	//   "response": {
5509	//     "$ref": "Operation"
5510	//   },
5511	//   "scopes": [
5512	//     "https://www.googleapis.com/auth/cloud-platform",
5513	//     "https://www.googleapis.com/auth/ndev.cloudman"
5514	//   ]
5515	// }
5516
5517}
5518
5519// method id "deploymentmanager.deployments.setIamPolicy":
5520
5521type DeploymentsSetIamPolicyCall struct {
5522	s                      *Service
5523	project                string
5524	resource               string
5525	globalsetpolicyrequest *GlobalSetPolicyRequest
5526	urlParams_             gensupport.URLParams
5527	ctx_                   context.Context
5528	header_                http.Header
5529}
5530
5531// SetIamPolicy: Sets the access control policy on the specified
5532// resource. Replaces any existing policy.
5533func (r *DeploymentsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *DeploymentsSetIamPolicyCall {
5534	c := &DeploymentsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5535	c.project = project
5536	c.resource = resource
5537	c.globalsetpolicyrequest = globalsetpolicyrequest
5538	return c
5539}
5540
5541// Fields allows partial responses to be retrieved. See
5542// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5543// for more information.
5544func (c *DeploymentsSetIamPolicyCall) Fields(s ...googleapi.Field) *DeploymentsSetIamPolicyCall {
5545	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5546	return c
5547}
5548
5549// Context sets the context to be used in this call's Do method. Any
5550// pending HTTP request will be aborted if the provided context is
5551// canceled.
5552func (c *DeploymentsSetIamPolicyCall) Context(ctx context.Context) *DeploymentsSetIamPolicyCall {
5553	c.ctx_ = ctx
5554	return c
5555}
5556
5557// Header returns an http.Header that can be modified by the caller to
5558// add HTTP headers to the request.
5559func (c *DeploymentsSetIamPolicyCall) Header() http.Header {
5560	if c.header_ == nil {
5561		c.header_ = make(http.Header)
5562	}
5563	return c.header_
5564}
5565
5566func (c *DeploymentsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
5567	reqHeaders := make(http.Header)
5568	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
5569	for k, v := range c.header_ {
5570		reqHeaders[k] = v
5571	}
5572	reqHeaders.Set("User-Agent", c.s.userAgent())
5573	var body io.Reader = nil
5574	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
5575	if err != nil {
5576		return nil, err
5577	}
5578	reqHeaders.Set("Content-Type", "application/json")
5579	c.urlParams_.Set("alt", alt)
5580	c.urlParams_.Set("prettyPrint", "false")
5581	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/deployments/{resource}/setIamPolicy")
5582	urls += "?" + c.urlParams_.Encode()
5583	req, err := http.NewRequest("POST", urls, body)
5584	if err != nil {
5585		return nil, err
5586	}
5587	req.Header = reqHeaders
5588	googleapi.Expand(req.URL, map[string]string{
5589		"project":  c.project,
5590		"resource": c.resource,
5591	})
5592	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5593}
5594
5595// Do executes the "deploymentmanager.deployments.setIamPolicy" call.
5596// Exactly one of *Policy or error will be non-nil. Any non-2xx status
5597// code is an error. Response headers are in either
5598// *Policy.ServerResponse.Header or (if a response was returned at all)
5599// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
5600// check whether the returned error was because http.StatusNotModified
5601// was returned.
5602func (c *DeploymentsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
5603	gensupport.SetOptions(c.urlParams_, opts...)
5604	res, err := c.doRequest("json")
5605	if res != nil && res.StatusCode == http.StatusNotModified {
5606		if res.Body != nil {
5607			res.Body.Close()
5608		}
5609		return nil, &googleapi.Error{
5610			Code:   res.StatusCode,
5611			Header: res.Header,
5612		}
5613	}
5614	if err != nil {
5615		return nil, err
5616	}
5617	defer googleapi.CloseBody(res)
5618	if err := googleapi.CheckResponse(res); err != nil {
5619		return nil, err
5620	}
5621	ret := &Policy{
5622		ServerResponse: googleapi.ServerResponse{
5623			Header:         res.Header,
5624			HTTPStatusCode: res.StatusCode,
5625		},
5626	}
5627	target := &ret
5628	if err := gensupport.DecodeResponse(target, res); err != nil {
5629		return nil, err
5630	}
5631	return ret, nil
5632	// {
5633	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
5634	//   "httpMethod": "POST",
5635	//   "id": "deploymentmanager.deployments.setIamPolicy",
5636	//   "parameterOrder": [
5637	//     "project",
5638	//     "resource"
5639	//   ],
5640	//   "parameters": {
5641	//     "project": {
5642	//       "description": "Project ID for this request.",
5643	//       "location": "path",
5644	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
5645	//       "required": true,
5646	//       "type": "string"
5647	//     },
5648	//     "resource": {
5649	//       "description": "Name or id of the resource for this request.",
5650	//       "location": "path",
5651	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
5652	//       "required": true,
5653	//       "type": "string"
5654	//     }
5655	//   },
5656	//   "path": "{project}/global/deployments/{resource}/setIamPolicy",
5657	//   "request": {
5658	//     "$ref": "GlobalSetPolicyRequest"
5659	//   },
5660	//   "response": {
5661	//     "$ref": "Policy"
5662	//   },
5663	//   "scopes": [
5664	//     "https://www.googleapis.com/auth/cloud-platform",
5665	//     "https://www.googleapis.com/auth/ndev.cloudman"
5666	//   ]
5667	// }
5668
5669}
5670
5671// method id "deploymentmanager.deployments.stop":
5672
5673type DeploymentsStopCall struct {
5674	s                      *Service
5675	project                string
5676	deployment             string
5677	deploymentsstoprequest *DeploymentsStopRequest
5678	urlParams_             gensupport.URLParams
5679	ctx_                   context.Context
5680	header_                http.Header
5681}
5682
5683// Stop: Stops an ongoing operation. This does not roll back any work
5684// that has already been completed, but prevents any new work from being
5685// started.
5686func (r *DeploymentsService) Stop(project string, deployment string, deploymentsstoprequest *DeploymentsStopRequest) *DeploymentsStopCall {
5687	c := &DeploymentsStopCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5688	c.project = project
5689	c.deployment = deployment
5690	c.deploymentsstoprequest = deploymentsstoprequest
5691	return c
5692}
5693
5694// Fields allows partial responses to be retrieved. See
5695// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5696// for more information.
5697func (c *DeploymentsStopCall) Fields(s ...googleapi.Field) *DeploymentsStopCall {
5698	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5699	return c
5700}
5701
5702// Context sets the context to be used in this call's Do method. Any
5703// pending HTTP request will be aborted if the provided context is
5704// canceled.
5705func (c *DeploymentsStopCall) Context(ctx context.Context) *DeploymentsStopCall {
5706	c.ctx_ = ctx
5707	return c
5708}
5709
5710// Header returns an http.Header that can be modified by the caller to
5711// add HTTP headers to the request.
5712func (c *DeploymentsStopCall) Header() http.Header {
5713	if c.header_ == nil {
5714		c.header_ = make(http.Header)
5715	}
5716	return c.header_
5717}
5718
5719func (c *DeploymentsStopCall) doRequest(alt string) (*http.Response, error) {
5720	reqHeaders := make(http.Header)
5721	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
5722	for k, v := range c.header_ {
5723		reqHeaders[k] = v
5724	}
5725	reqHeaders.Set("User-Agent", c.s.userAgent())
5726	var body io.Reader = nil
5727	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deploymentsstoprequest)
5728	if err != nil {
5729		return nil, err
5730	}
5731	reqHeaders.Set("Content-Type", "application/json")
5732	c.urlParams_.Set("alt", alt)
5733	c.urlParams_.Set("prettyPrint", "false")
5734	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/deployments/{deployment}/stop")
5735	urls += "?" + c.urlParams_.Encode()
5736	req, err := http.NewRequest("POST", urls, body)
5737	if err != nil {
5738		return nil, err
5739	}
5740	req.Header = reqHeaders
5741	googleapi.Expand(req.URL, map[string]string{
5742		"project":    c.project,
5743		"deployment": c.deployment,
5744	})
5745	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5746}
5747
5748// Do executes the "deploymentmanager.deployments.stop" call.
5749// Exactly one of *Operation or error will be non-nil. Any non-2xx
5750// status code is an error. Response headers are in either
5751// *Operation.ServerResponse.Header or (if a response was returned at
5752// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5753// to check whether the returned error was because
5754// http.StatusNotModified was returned.
5755func (c *DeploymentsStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
5756	gensupport.SetOptions(c.urlParams_, opts...)
5757	res, err := c.doRequest("json")
5758	if res != nil && res.StatusCode == http.StatusNotModified {
5759		if res.Body != nil {
5760			res.Body.Close()
5761		}
5762		return nil, &googleapi.Error{
5763			Code:   res.StatusCode,
5764			Header: res.Header,
5765		}
5766	}
5767	if err != nil {
5768		return nil, err
5769	}
5770	defer googleapi.CloseBody(res)
5771	if err := googleapi.CheckResponse(res); err != nil {
5772		return nil, err
5773	}
5774	ret := &Operation{
5775		ServerResponse: googleapi.ServerResponse{
5776			Header:         res.Header,
5777			HTTPStatusCode: res.StatusCode,
5778		},
5779	}
5780	target := &ret
5781	if err := gensupport.DecodeResponse(target, res); err != nil {
5782		return nil, err
5783	}
5784	return ret, nil
5785	// {
5786	//   "description": "Stops an ongoing operation. This does not roll back any work that has already been completed, but prevents any new work from being started.",
5787	//   "httpMethod": "POST",
5788	//   "id": "deploymentmanager.deployments.stop",
5789	//   "parameterOrder": [
5790	//     "project",
5791	//     "deployment"
5792	//   ],
5793	//   "parameters": {
5794	//     "deployment": {
5795	//       "description": "The name of the deployment for this request.",
5796	//       "location": "path",
5797	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
5798	//       "required": true,
5799	//       "type": "string"
5800	//     },
5801	//     "project": {
5802	//       "description": "The project ID for this request.",
5803	//       "location": "path",
5804	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
5805	//       "required": true,
5806	//       "type": "string"
5807	//     }
5808	//   },
5809	//   "path": "{project}/global/deployments/{deployment}/stop",
5810	//   "request": {
5811	//     "$ref": "DeploymentsStopRequest"
5812	//   },
5813	//   "response": {
5814	//     "$ref": "Operation"
5815	//   },
5816	//   "scopes": [
5817	//     "https://www.googleapis.com/auth/cloud-platform",
5818	//     "https://www.googleapis.com/auth/ndev.cloudman"
5819	//   ]
5820	// }
5821
5822}
5823
5824// method id "deploymentmanager.deployments.testIamPermissions":
5825
5826type DeploymentsTestIamPermissionsCall struct {
5827	s                      *Service
5828	project                string
5829	resource               string
5830	testpermissionsrequest *TestPermissionsRequest
5831	urlParams_             gensupport.URLParams
5832	ctx_                   context.Context
5833	header_                http.Header
5834}
5835
5836// TestIamPermissions: Returns permissions that a caller has on the
5837// specified resource.
5838func (r *DeploymentsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *DeploymentsTestIamPermissionsCall {
5839	c := &DeploymentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5840	c.project = project
5841	c.resource = resource
5842	c.testpermissionsrequest = testpermissionsrequest
5843	return c
5844}
5845
5846// Fields allows partial responses to be retrieved. See
5847// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5848// for more information.
5849func (c *DeploymentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *DeploymentsTestIamPermissionsCall {
5850	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5851	return c
5852}
5853
5854// Context sets the context to be used in this call's Do method. Any
5855// pending HTTP request will be aborted if the provided context is
5856// canceled.
5857func (c *DeploymentsTestIamPermissionsCall) Context(ctx context.Context) *DeploymentsTestIamPermissionsCall {
5858	c.ctx_ = ctx
5859	return c
5860}
5861
5862// Header returns an http.Header that can be modified by the caller to
5863// add HTTP headers to the request.
5864func (c *DeploymentsTestIamPermissionsCall) Header() http.Header {
5865	if c.header_ == nil {
5866		c.header_ = make(http.Header)
5867	}
5868	return c.header_
5869}
5870
5871func (c *DeploymentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
5872	reqHeaders := make(http.Header)
5873	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
5874	for k, v := range c.header_ {
5875		reqHeaders[k] = v
5876	}
5877	reqHeaders.Set("User-Agent", c.s.userAgent())
5878	var body io.Reader = nil
5879	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
5880	if err != nil {
5881		return nil, err
5882	}
5883	reqHeaders.Set("Content-Type", "application/json")
5884	c.urlParams_.Set("alt", alt)
5885	c.urlParams_.Set("prettyPrint", "false")
5886	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/deployments/{resource}/testIamPermissions")
5887	urls += "?" + c.urlParams_.Encode()
5888	req, err := http.NewRequest("POST", urls, body)
5889	if err != nil {
5890		return nil, err
5891	}
5892	req.Header = reqHeaders
5893	googleapi.Expand(req.URL, map[string]string{
5894		"project":  c.project,
5895		"resource": c.resource,
5896	})
5897	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5898}
5899
5900// Do executes the "deploymentmanager.deployments.testIamPermissions" call.
5901// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
5902// non-2xx status code is an error. Response headers are in either
5903// *TestPermissionsResponse.ServerResponse.Header or (if a response was
5904// returned at all) in error.(*googleapi.Error).Header. Use
5905// googleapi.IsNotModified to check whether the returned error was
5906// because http.StatusNotModified was returned.
5907func (c *DeploymentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
5908	gensupport.SetOptions(c.urlParams_, opts...)
5909	res, err := c.doRequest("json")
5910	if res != nil && res.StatusCode == http.StatusNotModified {
5911		if res.Body != nil {
5912			res.Body.Close()
5913		}
5914		return nil, &googleapi.Error{
5915			Code:   res.StatusCode,
5916			Header: res.Header,
5917		}
5918	}
5919	if err != nil {
5920		return nil, err
5921	}
5922	defer googleapi.CloseBody(res)
5923	if err := googleapi.CheckResponse(res); err != nil {
5924		return nil, err
5925	}
5926	ret := &TestPermissionsResponse{
5927		ServerResponse: googleapi.ServerResponse{
5928			Header:         res.Header,
5929			HTTPStatusCode: res.StatusCode,
5930		},
5931	}
5932	target := &ret
5933	if err := gensupport.DecodeResponse(target, res); err != nil {
5934		return nil, err
5935	}
5936	return ret, nil
5937	// {
5938	//   "description": "Returns permissions that a caller has on the specified resource.",
5939	//   "httpMethod": "POST",
5940	//   "id": "deploymentmanager.deployments.testIamPermissions",
5941	//   "parameterOrder": [
5942	//     "project",
5943	//     "resource"
5944	//   ],
5945	//   "parameters": {
5946	//     "project": {
5947	//       "description": "Project ID for this request.",
5948	//       "location": "path",
5949	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
5950	//       "required": true,
5951	//       "type": "string"
5952	//     },
5953	//     "resource": {
5954	//       "description": "Name or id of the resource for this request.",
5955	//       "location": "path",
5956	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
5957	//       "required": true,
5958	//       "type": "string"
5959	//     }
5960	//   },
5961	//   "path": "{project}/global/deployments/{resource}/testIamPermissions",
5962	//   "request": {
5963	//     "$ref": "TestPermissionsRequest"
5964	//   },
5965	//   "response": {
5966	//     "$ref": "TestPermissionsResponse"
5967	//   },
5968	//   "scopes": [
5969	//     "https://www.googleapis.com/auth/cloud-platform",
5970	//     "https://www.googleapis.com/auth/ndev.cloudman"
5971	//   ]
5972	// }
5973
5974}
5975
5976// method id "deploymentmanager.deployments.update":
5977
5978type DeploymentsUpdateCall struct {
5979	s           *Service
5980	project     string
5981	deployment  string
5982	deployment2 *Deployment
5983	urlParams_  gensupport.URLParams
5984	ctx_        context.Context
5985	header_     http.Header
5986}
5987
5988// Update: Updates a deployment and all of the resources described by
5989// the deployment manifest.
5990func (r *DeploymentsService) Update(project string, deployment string, deployment2 *Deployment) *DeploymentsUpdateCall {
5991	c := &DeploymentsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5992	c.project = project
5993	c.deployment = deployment
5994	c.deployment2 = deployment2
5995	return c
5996}
5997
5998// CreatePolicy sets the optional parameter "createPolicy": Sets the
5999// policy to use for creating new resources.
6000//
6001// Possible values:
6002//   "ACQUIRE"
6003//   "CREATE"
6004//   "CREATE_OR_ACQUIRE" (default)
6005func (c *DeploymentsUpdateCall) CreatePolicy(createPolicy string) *DeploymentsUpdateCall {
6006	c.urlParams_.Set("createPolicy", createPolicy)
6007	return c
6008}
6009
6010// DeletePolicy sets the optional parameter "deletePolicy": Sets the
6011// policy to use for deleting resources.
6012//
6013// Possible values:
6014//   "ABANDON"
6015//   "DELETE" (default)
6016func (c *DeploymentsUpdateCall) DeletePolicy(deletePolicy string) *DeploymentsUpdateCall {
6017	c.urlParams_.Set("deletePolicy", deletePolicy)
6018	return c
6019}
6020
6021// Preview sets the optional parameter "preview": If set to true,
6022// updates the deployment and creates and updates the "shell" resources
6023// but does not actually alter or instantiate these resources. This
6024// allows you to preview what your deployment will look like. You can
6025// use this intent to preview how an update would affect your
6026// deployment. You must provide a `target.config` with a configuration
6027// if this is set to true. After previewing a deployment, you can deploy
6028// your resources by making a request with the `update()` or you can
6029// `cancelPreview()` to remove the preview altogether. Note that the
6030// deployment will still exist after you cancel the preview and you must
6031// separately delete this deployment if you want to remove it.
6032func (c *DeploymentsUpdateCall) Preview(preview bool) *DeploymentsUpdateCall {
6033	c.urlParams_.Set("preview", fmt.Sprint(preview))
6034	return c
6035}
6036
6037// Fields allows partial responses to be retrieved. See
6038// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6039// for more information.
6040func (c *DeploymentsUpdateCall) Fields(s ...googleapi.Field) *DeploymentsUpdateCall {
6041	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6042	return c
6043}
6044
6045// Context sets the context to be used in this call's Do method. Any
6046// pending HTTP request will be aborted if the provided context is
6047// canceled.
6048func (c *DeploymentsUpdateCall) Context(ctx context.Context) *DeploymentsUpdateCall {
6049	c.ctx_ = ctx
6050	return c
6051}
6052
6053// Header returns an http.Header that can be modified by the caller to
6054// add HTTP headers to the request.
6055func (c *DeploymentsUpdateCall) Header() http.Header {
6056	if c.header_ == nil {
6057		c.header_ = make(http.Header)
6058	}
6059	return c.header_
6060}
6061
6062func (c *DeploymentsUpdateCall) doRequest(alt string) (*http.Response, error) {
6063	reqHeaders := make(http.Header)
6064	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
6065	for k, v := range c.header_ {
6066		reqHeaders[k] = v
6067	}
6068	reqHeaders.Set("User-Agent", c.s.userAgent())
6069	var body io.Reader = nil
6070	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deployment2)
6071	if err != nil {
6072		return nil, err
6073	}
6074	reqHeaders.Set("Content-Type", "application/json")
6075	c.urlParams_.Set("alt", alt)
6076	c.urlParams_.Set("prettyPrint", "false")
6077	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/deployments/{deployment}")
6078	urls += "?" + c.urlParams_.Encode()
6079	req, err := http.NewRequest("PUT", urls, body)
6080	if err != nil {
6081		return nil, err
6082	}
6083	req.Header = reqHeaders
6084	googleapi.Expand(req.URL, map[string]string{
6085		"project":    c.project,
6086		"deployment": c.deployment,
6087	})
6088	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6089}
6090
6091// Do executes the "deploymentmanager.deployments.update" call.
6092// Exactly one of *Operation or error will be non-nil. Any non-2xx
6093// status code is an error. Response headers are in either
6094// *Operation.ServerResponse.Header or (if a response was returned at
6095// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6096// to check whether the returned error was because
6097// http.StatusNotModified was returned.
6098func (c *DeploymentsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
6099	gensupport.SetOptions(c.urlParams_, opts...)
6100	res, err := c.doRequest("json")
6101	if res != nil && res.StatusCode == http.StatusNotModified {
6102		if res.Body != nil {
6103			res.Body.Close()
6104		}
6105		return nil, &googleapi.Error{
6106			Code:   res.StatusCode,
6107			Header: res.Header,
6108		}
6109	}
6110	if err != nil {
6111		return nil, err
6112	}
6113	defer googleapi.CloseBody(res)
6114	if err := googleapi.CheckResponse(res); err != nil {
6115		return nil, err
6116	}
6117	ret := &Operation{
6118		ServerResponse: googleapi.ServerResponse{
6119			Header:         res.Header,
6120			HTTPStatusCode: res.StatusCode,
6121		},
6122	}
6123	target := &ret
6124	if err := gensupport.DecodeResponse(target, res); err != nil {
6125		return nil, err
6126	}
6127	return ret, nil
6128	// {
6129	//   "description": "Updates a deployment and all of the resources described by the deployment manifest.",
6130	//   "httpMethod": "PUT",
6131	//   "id": "deploymentmanager.deployments.update",
6132	//   "parameterOrder": [
6133	//     "project",
6134	//     "deployment"
6135	//   ],
6136	//   "parameters": {
6137	//     "createPolicy": {
6138	//       "default": "CREATE_OR_ACQUIRE",
6139	//       "description": "Sets the policy to use for creating new resources.",
6140	//       "enum": [
6141	//         "ACQUIRE",
6142	//         "CREATE",
6143	//         "CREATE_OR_ACQUIRE"
6144	//       ],
6145	//       "enumDescriptions": [
6146	//         "",
6147	//         "",
6148	//         ""
6149	//       ],
6150	//       "location": "query",
6151	//       "type": "string"
6152	//     },
6153	//     "deletePolicy": {
6154	//       "default": "DELETE",
6155	//       "description": "Sets the policy to use for deleting resources.",
6156	//       "enum": [
6157	//         "ABANDON",
6158	//         "DELETE"
6159	//       ],
6160	//       "enumDescriptions": [
6161	//         "",
6162	//         ""
6163	//       ],
6164	//       "location": "query",
6165	//       "type": "string"
6166	//     },
6167	//     "deployment": {
6168	//       "description": "The name of the deployment for this request.",
6169	//       "location": "path",
6170	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
6171	//       "required": true,
6172	//       "type": "string"
6173	//     },
6174	//     "preview": {
6175	//       "default": "false",
6176	//       "description": "If set to true, updates the deployment and creates and updates the \"shell\" resources but does not actually alter or instantiate these resources. This allows you to preview what your deployment will look like. You can use this intent to preview how an update would affect your deployment. You must provide a `target.config` with a configuration if this is set to true. After previewing a deployment, you can deploy your resources by making a request with the `update()` or you can `cancelPreview()` to remove the preview altogether. Note that the deployment will still exist after you cancel the preview and you must separately delete this deployment if you want to remove it.",
6177	//       "location": "query",
6178	//       "type": "boolean"
6179	//     },
6180	//     "project": {
6181	//       "description": "The project ID for this request.",
6182	//       "location": "path",
6183	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
6184	//       "required": true,
6185	//       "type": "string"
6186	//     }
6187	//   },
6188	//   "path": "{project}/global/deployments/{deployment}",
6189	//   "request": {
6190	//     "$ref": "Deployment"
6191	//   },
6192	//   "response": {
6193	//     "$ref": "Operation"
6194	//   },
6195	//   "scopes": [
6196	//     "https://www.googleapis.com/auth/cloud-platform",
6197	//     "https://www.googleapis.com/auth/ndev.cloudman"
6198	//   ]
6199	// }
6200
6201}
6202
6203// method id "deploymentmanager.manifests.get":
6204
6205type ManifestsGetCall struct {
6206	s            *Service
6207	project      string
6208	deployment   string
6209	manifest     string
6210	urlParams_   gensupport.URLParams
6211	ifNoneMatch_ string
6212	ctx_         context.Context
6213	header_      http.Header
6214}
6215
6216// Get: Gets information about a specific manifest.
6217func (r *ManifestsService) Get(project string, deployment string, manifest string) *ManifestsGetCall {
6218	c := &ManifestsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6219	c.project = project
6220	c.deployment = deployment
6221	c.manifest = manifest
6222	return c
6223}
6224
6225// Fields allows partial responses to be retrieved. See
6226// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6227// for more information.
6228func (c *ManifestsGetCall) Fields(s ...googleapi.Field) *ManifestsGetCall {
6229	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6230	return c
6231}
6232
6233// IfNoneMatch sets the optional parameter which makes the operation
6234// fail if the object's ETag matches the given value. This is useful for
6235// getting updates only after the object has changed since the last
6236// request. Use googleapi.IsNotModified to check whether the response
6237// error from Do is the result of In-None-Match.
6238func (c *ManifestsGetCall) IfNoneMatch(entityTag string) *ManifestsGetCall {
6239	c.ifNoneMatch_ = entityTag
6240	return c
6241}
6242
6243// Context sets the context to be used in this call's Do method. Any
6244// pending HTTP request will be aborted if the provided context is
6245// canceled.
6246func (c *ManifestsGetCall) Context(ctx context.Context) *ManifestsGetCall {
6247	c.ctx_ = ctx
6248	return c
6249}
6250
6251// Header returns an http.Header that can be modified by the caller to
6252// add HTTP headers to the request.
6253func (c *ManifestsGetCall) Header() http.Header {
6254	if c.header_ == nil {
6255		c.header_ = make(http.Header)
6256	}
6257	return c.header_
6258}
6259
6260func (c *ManifestsGetCall) doRequest(alt string) (*http.Response, error) {
6261	reqHeaders := make(http.Header)
6262	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
6263	for k, v := range c.header_ {
6264		reqHeaders[k] = v
6265	}
6266	reqHeaders.Set("User-Agent", c.s.userAgent())
6267	if c.ifNoneMatch_ != "" {
6268		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6269	}
6270	var body io.Reader = nil
6271	c.urlParams_.Set("alt", alt)
6272	c.urlParams_.Set("prettyPrint", "false")
6273	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/deployments/{deployment}/manifests/{manifest}")
6274	urls += "?" + c.urlParams_.Encode()
6275	req, err := http.NewRequest("GET", urls, body)
6276	if err != nil {
6277		return nil, err
6278	}
6279	req.Header = reqHeaders
6280	googleapi.Expand(req.URL, map[string]string{
6281		"project":    c.project,
6282		"deployment": c.deployment,
6283		"manifest":   c.manifest,
6284	})
6285	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6286}
6287
6288// Do executes the "deploymentmanager.manifests.get" call.
6289// Exactly one of *Manifest or error will be non-nil. Any non-2xx status
6290// code is an error. Response headers are in either
6291// *Manifest.ServerResponse.Header or (if a response was returned at
6292// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6293// to check whether the returned error was because
6294// http.StatusNotModified was returned.
6295func (c *ManifestsGetCall) Do(opts ...googleapi.CallOption) (*Manifest, error) {
6296	gensupport.SetOptions(c.urlParams_, opts...)
6297	res, err := c.doRequest("json")
6298	if res != nil && res.StatusCode == http.StatusNotModified {
6299		if res.Body != nil {
6300			res.Body.Close()
6301		}
6302		return nil, &googleapi.Error{
6303			Code:   res.StatusCode,
6304			Header: res.Header,
6305		}
6306	}
6307	if err != nil {
6308		return nil, err
6309	}
6310	defer googleapi.CloseBody(res)
6311	if err := googleapi.CheckResponse(res); err != nil {
6312		return nil, err
6313	}
6314	ret := &Manifest{
6315		ServerResponse: googleapi.ServerResponse{
6316			Header:         res.Header,
6317			HTTPStatusCode: res.StatusCode,
6318		},
6319	}
6320	target := &ret
6321	if err := gensupport.DecodeResponse(target, res); err != nil {
6322		return nil, err
6323	}
6324	return ret, nil
6325	// {
6326	//   "description": "Gets information about a specific manifest.",
6327	//   "httpMethod": "GET",
6328	//   "id": "deploymentmanager.manifests.get",
6329	//   "parameterOrder": [
6330	//     "project",
6331	//     "deployment",
6332	//     "manifest"
6333	//   ],
6334	//   "parameters": {
6335	//     "deployment": {
6336	//       "description": "The name of the deployment for this request.",
6337	//       "location": "path",
6338	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
6339	//       "required": true,
6340	//       "type": "string"
6341	//     },
6342	//     "manifest": {
6343	//       "description": "The name of the manifest for this request.",
6344	//       "location": "path",
6345	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
6346	//       "required": true,
6347	//       "type": "string"
6348	//     },
6349	//     "project": {
6350	//       "description": "The project ID for this request.",
6351	//       "location": "path",
6352	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
6353	//       "required": true,
6354	//       "type": "string"
6355	//     }
6356	//   },
6357	//   "path": "{project}/global/deployments/{deployment}/manifests/{manifest}",
6358	//   "response": {
6359	//     "$ref": "Manifest"
6360	//   },
6361	//   "scopes": [
6362	//     "https://www.googleapis.com/auth/cloud-platform",
6363	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
6364	//     "https://www.googleapis.com/auth/ndev.cloudman",
6365	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
6366	//   ]
6367	// }
6368
6369}
6370
6371// method id "deploymentmanager.manifests.list":
6372
6373type ManifestsListCall struct {
6374	s            *Service
6375	project      string
6376	deployment   string
6377	urlParams_   gensupport.URLParams
6378	ifNoneMatch_ string
6379	ctx_         context.Context
6380	header_      http.Header
6381}
6382
6383// List: Lists all manifests for a given deployment.
6384func (r *ManifestsService) List(project string, deployment string) *ManifestsListCall {
6385	c := &ManifestsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6386	c.project = project
6387	c.deployment = deployment
6388	return c
6389}
6390
6391// Filter sets the optional parameter "filter": A filter expression that
6392// filters resources listed in the response. The expression must specify
6393// the field name, a comparison operator, and the value that you want to
6394// use for filtering. The value must be a string, a number, or a
6395// boolean. The comparison operator must be either `=`, `!=`, `>`, or
6396// `<`.
6397//
6398// For example, if you are filtering Compute Engine instances, you can
6399// exclude instances named `example-instance` by specifying `name !=
6400// example-instance`.
6401//
6402// You can also filter nested fields. For example, you could specify
6403// `scheduling.automaticRestart = false` to include instances only if
6404// they are not scheduled for automatic restarts. You can use filtering
6405// on nested fields to filter based on resource labels.
6406//
6407// To filter on multiple expressions, provide each separate expression
6408// within parentheses. For example: ``` (scheduling.automaticRestart =
6409// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
6410// is an `AND` expression. However, you can include `AND` and `OR`
6411// expressions explicitly. For example: ``` (cpuPlatform = "Intel
6412// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
6413// (scheduling.automaticRestart = true) ```
6414func (c *ManifestsListCall) Filter(filter string) *ManifestsListCall {
6415	c.urlParams_.Set("filter", filter)
6416	return c
6417}
6418
6419// MaxResults sets the optional parameter "maxResults": The maximum
6420// number of results per page that should be returned. If the number of
6421// available results is larger than `maxResults`, Compute Engine returns
6422// a `nextPageToken` that can be used to get the next page of results in
6423// subsequent list requests. Acceptable values are `0` to `500`,
6424// inclusive. (Default: `500`)
6425func (c *ManifestsListCall) MaxResults(maxResults int64) *ManifestsListCall {
6426	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
6427	return c
6428}
6429
6430// OrderBy sets the optional parameter "orderBy": Sorts list results by
6431// a certain order. By default, results are returned in alphanumerical
6432// order based on the resource name.
6433//
6434// You can also sort results in descending order based on the creation
6435// timestamp using `orderBy="creationTimestamp desc". This sorts
6436// results based on the `creationTimestamp` field in reverse
6437// chronological order (newest result first). Use this to sort resources
6438// like operations so that the newest operation is returned
6439// first.
6440//
6441// Currently, only sorting by `name` or `creationTimestamp desc` is
6442// supported.
6443func (c *ManifestsListCall) OrderBy(orderBy string) *ManifestsListCall {
6444	c.urlParams_.Set("orderBy", orderBy)
6445	return c
6446}
6447
6448// PageToken sets the optional parameter "pageToken": Specifies a page
6449// token to use. Set `pageToken` to the `nextPageToken` returned by a
6450// previous list request to get the next page of results.
6451func (c *ManifestsListCall) PageToken(pageToken string) *ManifestsListCall {
6452	c.urlParams_.Set("pageToken", pageToken)
6453	return c
6454}
6455
6456// Fields allows partial responses to be retrieved. See
6457// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6458// for more information.
6459func (c *ManifestsListCall) Fields(s ...googleapi.Field) *ManifestsListCall {
6460	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6461	return c
6462}
6463
6464// IfNoneMatch sets the optional parameter which makes the operation
6465// fail if the object's ETag matches the given value. This is useful for
6466// getting updates only after the object has changed since the last
6467// request. Use googleapi.IsNotModified to check whether the response
6468// error from Do is the result of In-None-Match.
6469func (c *ManifestsListCall) IfNoneMatch(entityTag string) *ManifestsListCall {
6470	c.ifNoneMatch_ = entityTag
6471	return c
6472}
6473
6474// Context sets the context to be used in this call's Do method. Any
6475// pending HTTP request will be aborted if the provided context is
6476// canceled.
6477func (c *ManifestsListCall) Context(ctx context.Context) *ManifestsListCall {
6478	c.ctx_ = ctx
6479	return c
6480}
6481
6482// Header returns an http.Header that can be modified by the caller to
6483// add HTTP headers to the request.
6484func (c *ManifestsListCall) Header() http.Header {
6485	if c.header_ == nil {
6486		c.header_ = make(http.Header)
6487	}
6488	return c.header_
6489}
6490
6491func (c *ManifestsListCall) doRequest(alt string) (*http.Response, error) {
6492	reqHeaders := make(http.Header)
6493	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
6494	for k, v := range c.header_ {
6495		reqHeaders[k] = v
6496	}
6497	reqHeaders.Set("User-Agent", c.s.userAgent())
6498	if c.ifNoneMatch_ != "" {
6499		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6500	}
6501	var body io.Reader = nil
6502	c.urlParams_.Set("alt", alt)
6503	c.urlParams_.Set("prettyPrint", "false")
6504	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/deployments/{deployment}/manifests")
6505	urls += "?" + c.urlParams_.Encode()
6506	req, err := http.NewRequest("GET", urls, body)
6507	if err != nil {
6508		return nil, err
6509	}
6510	req.Header = reqHeaders
6511	googleapi.Expand(req.URL, map[string]string{
6512		"project":    c.project,
6513		"deployment": c.deployment,
6514	})
6515	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6516}
6517
6518// Do executes the "deploymentmanager.manifests.list" call.
6519// Exactly one of *ManifestsListResponse or error will be non-nil. Any
6520// non-2xx status code is an error. Response headers are in either
6521// *ManifestsListResponse.ServerResponse.Header or (if a response was
6522// returned at all) in error.(*googleapi.Error).Header. Use
6523// googleapi.IsNotModified to check whether the returned error was
6524// because http.StatusNotModified was returned.
6525func (c *ManifestsListCall) Do(opts ...googleapi.CallOption) (*ManifestsListResponse, error) {
6526	gensupport.SetOptions(c.urlParams_, opts...)
6527	res, err := c.doRequest("json")
6528	if res != nil && res.StatusCode == http.StatusNotModified {
6529		if res.Body != nil {
6530			res.Body.Close()
6531		}
6532		return nil, &googleapi.Error{
6533			Code:   res.StatusCode,
6534			Header: res.Header,
6535		}
6536	}
6537	if err != nil {
6538		return nil, err
6539	}
6540	defer googleapi.CloseBody(res)
6541	if err := googleapi.CheckResponse(res); err != nil {
6542		return nil, err
6543	}
6544	ret := &ManifestsListResponse{
6545		ServerResponse: googleapi.ServerResponse{
6546			Header:         res.Header,
6547			HTTPStatusCode: res.StatusCode,
6548		},
6549	}
6550	target := &ret
6551	if err := gensupport.DecodeResponse(target, res); err != nil {
6552		return nil, err
6553	}
6554	return ret, nil
6555	// {
6556	//   "description": "Lists all manifests for a given deployment.",
6557	//   "httpMethod": "GET",
6558	//   "id": "deploymentmanager.manifests.list",
6559	//   "parameterOrder": [
6560	//     "project",
6561	//     "deployment"
6562	//   ],
6563	//   "parameters": {
6564	//     "deployment": {
6565	//       "description": "The name of the deployment for this request.",
6566	//       "location": "path",
6567	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
6568	//       "required": true,
6569	//       "type": "string"
6570	//     },
6571	//     "filter": {
6572	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
6573	//       "location": "query",
6574	//       "type": "string"
6575	//     },
6576	//     "maxResults": {
6577	//       "default": "500",
6578	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
6579	//       "format": "uint32",
6580	//       "location": "query",
6581	//       "minimum": "0",
6582	//       "type": "integer"
6583	//     },
6584	//     "orderBy": {
6585	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
6586	//       "location": "query",
6587	//       "type": "string"
6588	//     },
6589	//     "pageToken": {
6590	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
6591	//       "location": "query",
6592	//       "type": "string"
6593	//     },
6594	//     "project": {
6595	//       "description": "The project ID for this request.",
6596	//       "location": "path",
6597	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
6598	//       "required": true,
6599	//       "type": "string"
6600	//     }
6601	//   },
6602	//   "path": "{project}/global/deployments/{deployment}/manifests",
6603	//   "response": {
6604	//     "$ref": "ManifestsListResponse"
6605	//   },
6606	//   "scopes": [
6607	//     "https://www.googleapis.com/auth/cloud-platform",
6608	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
6609	//     "https://www.googleapis.com/auth/ndev.cloudman",
6610	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
6611	//   ]
6612	// }
6613
6614}
6615
6616// Pages invokes f for each page of results.
6617// A non-nil error returned from f will halt the iteration.
6618// The provided context supersedes any context provided to the Context method.
6619func (c *ManifestsListCall) Pages(ctx context.Context, f func(*ManifestsListResponse) error) error {
6620	c.ctx_ = ctx
6621	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
6622	for {
6623		x, err := c.Do()
6624		if err != nil {
6625			return err
6626		}
6627		if err := f(x); err != nil {
6628			return err
6629		}
6630		if x.NextPageToken == "" {
6631			return nil
6632		}
6633		c.PageToken(x.NextPageToken)
6634	}
6635}
6636
6637// method id "deploymentmanager.operations.get":
6638
6639type OperationsGetCall struct {
6640	s            *Service
6641	project      string
6642	operation    string
6643	urlParams_   gensupport.URLParams
6644	ifNoneMatch_ string
6645	ctx_         context.Context
6646	header_      http.Header
6647}
6648
6649// Get: Gets information about a specific operation.
6650func (r *OperationsService) Get(project string, operation string) *OperationsGetCall {
6651	c := &OperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6652	c.project = project
6653	c.operation = operation
6654	return c
6655}
6656
6657// Fields allows partial responses to be retrieved. See
6658// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6659// for more information.
6660func (c *OperationsGetCall) Fields(s ...googleapi.Field) *OperationsGetCall {
6661	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6662	return c
6663}
6664
6665// IfNoneMatch sets the optional parameter which makes the operation
6666// fail if the object's ETag matches the given value. This is useful for
6667// getting updates only after the object has changed since the last
6668// request. Use googleapi.IsNotModified to check whether the response
6669// error from Do is the result of In-None-Match.
6670func (c *OperationsGetCall) IfNoneMatch(entityTag string) *OperationsGetCall {
6671	c.ifNoneMatch_ = entityTag
6672	return c
6673}
6674
6675// Context sets the context to be used in this call's Do method. Any
6676// pending HTTP request will be aborted if the provided context is
6677// canceled.
6678func (c *OperationsGetCall) Context(ctx context.Context) *OperationsGetCall {
6679	c.ctx_ = ctx
6680	return c
6681}
6682
6683// Header returns an http.Header that can be modified by the caller to
6684// add HTTP headers to the request.
6685func (c *OperationsGetCall) Header() http.Header {
6686	if c.header_ == nil {
6687		c.header_ = make(http.Header)
6688	}
6689	return c.header_
6690}
6691
6692func (c *OperationsGetCall) doRequest(alt string) (*http.Response, error) {
6693	reqHeaders := make(http.Header)
6694	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
6695	for k, v := range c.header_ {
6696		reqHeaders[k] = v
6697	}
6698	reqHeaders.Set("User-Agent", c.s.userAgent())
6699	if c.ifNoneMatch_ != "" {
6700		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6701	}
6702	var body io.Reader = nil
6703	c.urlParams_.Set("alt", alt)
6704	c.urlParams_.Set("prettyPrint", "false")
6705	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}")
6706	urls += "?" + c.urlParams_.Encode()
6707	req, err := http.NewRequest("GET", urls, body)
6708	if err != nil {
6709		return nil, err
6710	}
6711	req.Header = reqHeaders
6712	googleapi.Expand(req.URL, map[string]string{
6713		"project":   c.project,
6714		"operation": c.operation,
6715	})
6716	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6717}
6718
6719// Do executes the "deploymentmanager.operations.get" call.
6720// Exactly one of *Operation or error will be non-nil. Any non-2xx
6721// status code is an error. Response headers are in either
6722// *Operation.ServerResponse.Header or (if a response was returned at
6723// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6724// to check whether the returned error was because
6725// http.StatusNotModified was returned.
6726func (c *OperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
6727	gensupport.SetOptions(c.urlParams_, opts...)
6728	res, err := c.doRequest("json")
6729	if res != nil && res.StatusCode == http.StatusNotModified {
6730		if res.Body != nil {
6731			res.Body.Close()
6732		}
6733		return nil, &googleapi.Error{
6734			Code:   res.StatusCode,
6735			Header: res.Header,
6736		}
6737	}
6738	if err != nil {
6739		return nil, err
6740	}
6741	defer googleapi.CloseBody(res)
6742	if err := googleapi.CheckResponse(res); err != nil {
6743		return nil, err
6744	}
6745	ret := &Operation{
6746		ServerResponse: googleapi.ServerResponse{
6747			Header:         res.Header,
6748			HTTPStatusCode: res.StatusCode,
6749		},
6750	}
6751	target := &ret
6752	if err := gensupport.DecodeResponse(target, res); err != nil {
6753		return nil, err
6754	}
6755	return ret, nil
6756	// {
6757	//   "description": "Gets information about a specific operation.",
6758	//   "httpMethod": "GET",
6759	//   "id": "deploymentmanager.operations.get",
6760	//   "parameterOrder": [
6761	//     "project",
6762	//     "operation"
6763	//   ],
6764	//   "parameters": {
6765	//     "operation": {
6766	//       "description": "The name of the operation for this request.",
6767	//       "location": "path",
6768	//       "required": true,
6769	//       "type": "string"
6770	//     },
6771	//     "project": {
6772	//       "description": "The project ID for this request.",
6773	//       "location": "path",
6774	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
6775	//       "required": true,
6776	//       "type": "string"
6777	//     }
6778	//   },
6779	//   "path": "{project}/global/operations/{operation}",
6780	//   "response": {
6781	//     "$ref": "Operation"
6782	//   },
6783	//   "scopes": [
6784	//     "https://www.googleapis.com/auth/cloud-platform",
6785	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
6786	//     "https://www.googleapis.com/auth/ndev.cloudman",
6787	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
6788	//   ]
6789	// }
6790
6791}
6792
6793// method id "deploymentmanager.operations.list":
6794
6795type OperationsListCall struct {
6796	s            *Service
6797	project      string
6798	urlParams_   gensupport.URLParams
6799	ifNoneMatch_ string
6800	ctx_         context.Context
6801	header_      http.Header
6802}
6803
6804// List: Lists all operations for a project.
6805func (r *OperationsService) List(project string) *OperationsListCall {
6806	c := &OperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6807	c.project = project
6808	return c
6809}
6810
6811// Filter sets the optional parameter "filter": A filter expression that
6812// filters resources listed in the response. The expression must specify
6813// the field name, a comparison operator, and the value that you want to
6814// use for filtering. The value must be a string, a number, or a
6815// boolean. The comparison operator must be either `=`, `!=`, `>`, or
6816// `<`.
6817//
6818// For example, if you are filtering Compute Engine instances, you can
6819// exclude instances named `example-instance` by specifying `name !=
6820// example-instance`.
6821//
6822// You can also filter nested fields. For example, you could specify
6823// `scheduling.automaticRestart = false` to include instances only if
6824// they are not scheduled for automatic restarts. You can use filtering
6825// on nested fields to filter based on resource labels.
6826//
6827// To filter on multiple expressions, provide each separate expression
6828// within parentheses. For example: ``` (scheduling.automaticRestart =
6829// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
6830// is an `AND` expression. However, you can include `AND` and `OR`
6831// expressions explicitly. For example: ``` (cpuPlatform = "Intel
6832// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
6833// (scheduling.automaticRestart = true) ```
6834func (c *OperationsListCall) Filter(filter string) *OperationsListCall {
6835	c.urlParams_.Set("filter", filter)
6836	return c
6837}
6838
6839// MaxResults sets the optional parameter "maxResults": The maximum
6840// number of results per page that should be returned. If the number of
6841// available results is larger than `maxResults`, Compute Engine returns
6842// a `nextPageToken` that can be used to get the next page of results in
6843// subsequent list requests. Acceptable values are `0` to `500`,
6844// inclusive. (Default: `500`)
6845func (c *OperationsListCall) MaxResults(maxResults int64) *OperationsListCall {
6846	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
6847	return c
6848}
6849
6850// OrderBy sets the optional parameter "orderBy": Sorts list results by
6851// a certain order. By default, results are returned in alphanumerical
6852// order based on the resource name.
6853//
6854// You can also sort results in descending order based on the creation
6855// timestamp using `orderBy="creationTimestamp desc". This sorts
6856// results based on the `creationTimestamp` field in reverse
6857// chronological order (newest result first). Use this to sort resources
6858// like operations so that the newest operation is returned
6859// first.
6860//
6861// Currently, only sorting by `name` or `creationTimestamp desc` is
6862// supported.
6863func (c *OperationsListCall) OrderBy(orderBy string) *OperationsListCall {
6864	c.urlParams_.Set("orderBy", orderBy)
6865	return c
6866}
6867
6868// PageToken sets the optional parameter "pageToken": Specifies a page
6869// token to use. Set `pageToken` to the `nextPageToken` returned by a
6870// previous list request to get the next page of results.
6871func (c *OperationsListCall) PageToken(pageToken string) *OperationsListCall {
6872	c.urlParams_.Set("pageToken", pageToken)
6873	return c
6874}
6875
6876// Fields allows partial responses to be retrieved. See
6877// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6878// for more information.
6879func (c *OperationsListCall) Fields(s ...googleapi.Field) *OperationsListCall {
6880	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6881	return c
6882}
6883
6884// IfNoneMatch sets the optional parameter which makes the operation
6885// fail if the object's ETag matches the given value. This is useful for
6886// getting updates only after the object has changed since the last
6887// request. Use googleapi.IsNotModified to check whether the response
6888// error from Do is the result of In-None-Match.
6889func (c *OperationsListCall) IfNoneMatch(entityTag string) *OperationsListCall {
6890	c.ifNoneMatch_ = entityTag
6891	return c
6892}
6893
6894// Context sets the context to be used in this call's Do method. Any
6895// pending HTTP request will be aborted if the provided context is
6896// canceled.
6897func (c *OperationsListCall) Context(ctx context.Context) *OperationsListCall {
6898	c.ctx_ = ctx
6899	return c
6900}
6901
6902// Header returns an http.Header that can be modified by the caller to
6903// add HTTP headers to the request.
6904func (c *OperationsListCall) Header() http.Header {
6905	if c.header_ == nil {
6906		c.header_ = make(http.Header)
6907	}
6908	return c.header_
6909}
6910
6911func (c *OperationsListCall) doRequest(alt string) (*http.Response, error) {
6912	reqHeaders := make(http.Header)
6913	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
6914	for k, v := range c.header_ {
6915		reqHeaders[k] = v
6916	}
6917	reqHeaders.Set("User-Agent", c.s.userAgent())
6918	if c.ifNoneMatch_ != "" {
6919		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6920	}
6921	var body io.Reader = nil
6922	c.urlParams_.Set("alt", alt)
6923	c.urlParams_.Set("prettyPrint", "false")
6924	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations")
6925	urls += "?" + c.urlParams_.Encode()
6926	req, err := http.NewRequest("GET", urls, body)
6927	if err != nil {
6928		return nil, err
6929	}
6930	req.Header = reqHeaders
6931	googleapi.Expand(req.URL, map[string]string{
6932		"project": c.project,
6933	})
6934	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6935}
6936
6937// Do executes the "deploymentmanager.operations.list" call.
6938// Exactly one of *OperationsListResponse or error will be non-nil. Any
6939// non-2xx status code is an error. Response headers are in either
6940// *OperationsListResponse.ServerResponse.Header or (if a response was
6941// returned at all) in error.(*googleapi.Error).Header. Use
6942// googleapi.IsNotModified to check whether the returned error was
6943// because http.StatusNotModified was returned.
6944func (c *OperationsListCall) Do(opts ...googleapi.CallOption) (*OperationsListResponse, error) {
6945	gensupport.SetOptions(c.urlParams_, opts...)
6946	res, err := c.doRequest("json")
6947	if res != nil && res.StatusCode == http.StatusNotModified {
6948		if res.Body != nil {
6949			res.Body.Close()
6950		}
6951		return nil, &googleapi.Error{
6952			Code:   res.StatusCode,
6953			Header: res.Header,
6954		}
6955	}
6956	if err != nil {
6957		return nil, err
6958	}
6959	defer googleapi.CloseBody(res)
6960	if err := googleapi.CheckResponse(res); err != nil {
6961		return nil, err
6962	}
6963	ret := &OperationsListResponse{
6964		ServerResponse: googleapi.ServerResponse{
6965			Header:         res.Header,
6966			HTTPStatusCode: res.StatusCode,
6967		},
6968	}
6969	target := &ret
6970	if err := gensupport.DecodeResponse(target, res); err != nil {
6971		return nil, err
6972	}
6973	return ret, nil
6974	// {
6975	//   "description": "Lists all operations for a project.",
6976	//   "httpMethod": "GET",
6977	//   "id": "deploymentmanager.operations.list",
6978	//   "parameterOrder": [
6979	//     "project"
6980	//   ],
6981	//   "parameters": {
6982	//     "filter": {
6983	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
6984	//       "location": "query",
6985	//       "type": "string"
6986	//     },
6987	//     "maxResults": {
6988	//       "default": "500",
6989	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
6990	//       "format": "uint32",
6991	//       "location": "query",
6992	//       "minimum": "0",
6993	//       "type": "integer"
6994	//     },
6995	//     "orderBy": {
6996	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
6997	//       "location": "query",
6998	//       "type": "string"
6999	//     },
7000	//     "pageToken": {
7001	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
7002	//       "location": "query",
7003	//       "type": "string"
7004	//     },
7005	//     "project": {
7006	//       "description": "The project ID for this request.",
7007	//       "location": "path",
7008	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
7009	//       "required": true,
7010	//       "type": "string"
7011	//     }
7012	//   },
7013	//   "path": "{project}/global/operations",
7014	//   "response": {
7015	//     "$ref": "OperationsListResponse"
7016	//   },
7017	//   "scopes": [
7018	//     "https://www.googleapis.com/auth/cloud-platform",
7019	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
7020	//     "https://www.googleapis.com/auth/ndev.cloudman",
7021	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
7022	//   ]
7023	// }
7024
7025}
7026
7027// Pages invokes f for each page of results.
7028// A non-nil error returned from f will halt the iteration.
7029// The provided context supersedes any context provided to the Context method.
7030func (c *OperationsListCall) Pages(ctx context.Context, f func(*OperationsListResponse) error) error {
7031	c.ctx_ = ctx
7032	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
7033	for {
7034		x, err := c.Do()
7035		if err != nil {
7036			return err
7037		}
7038		if err := f(x); err != nil {
7039			return err
7040		}
7041		if x.NextPageToken == "" {
7042			return nil
7043		}
7044		c.PageToken(x.NextPageToken)
7045	}
7046}
7047
7048// method id "deploymentmanager.resources.get":
7049
7050type ResourcesGetCall struct {
7051	s            *Service
7052	project      string
7053	deployment   string
7054	resource     string
7055	urlParams_   gensupport.URLParams
7056	ifNoneMatch_ string
7057	ctx_         context.Context
7058	header_      http.Header
7059}
7060
7061// Get: Gets information about a single resource.
7062func (r *ResourcesService) Get(project string, deployment string, resource string) *ResourcesGetCall {
7063	c := &ResourcesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7064	c.project = project
7065	c.deployment = deployment
7066	c.resource = resource
7067	return c
7068}
7069
7070// Fields allows partial responses to be retrieved. See
7071// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7072// for more information.
7073func (c *ResourcesGetCall) Fields(s ...googleapi.Field) *ResourcesGetCall {
7074	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7075	return c
7076}
7077
7078// IfNoneMatch sets the optional parameter which makes the operation
7079// fail if the object's ETag matches the given value. This is useful for
7080// getting updates only after the object has changed since the last
7081// request. Use googleapi.IsNotModified to check whether the response
7082// error from Do is the result of In-None-Match.
7083func (c *ResourcesGetCall) IfNoneMatch(entityTag string) *ResourcesGetCall {
7084	c.ifNoneMatch_ = entityTag
7085	return c
7086}
7087
7088// Context sets the context to be used in this call's Do method. Any
7089// pending HTTP request will be aborted if the provided context is
7090// canceled.
7091func (c *ResourcesGetCall) Context(ctx context.Context) *ResourcesGetCall {
7092	c.ctx_ = ctx
7093	return c
7094}
7095
7096// Header returns an http.Header that can be modified by the caller to
7097// add HTTP headers to the request.
7098func (c *ResourcesGetCall) Header() http.Header {
7099	if c.header_ == nil {
7100		c.header_ = make(http.Header)
7101	}
7102	return c.header_
7103}
7104
7105func (c *ResourcesGetCall) doRequest(alt string) (*http.Response, error) {
7106	reqHeaders := make(http.Header)
7107	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
7108	for k, v := range c.header_ {
7109		reqHeaders[k] = v
7110	}
7111	reqHeaders.Set("User-Agent", c.s.userAgent())
7112	if c.ifNoneMatch_ != "" {
7113		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7114	}
7115	var body io.Reader = nil
7116	c.urlParams_.Set("alt", alt)
7117	c.urlParams_.Set("prettyPrint", "false")
7118	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/deployments/{deployment}/resources/{resource}")
7119	urls += "?" + c.urlParams_.Encode()
7120	req, err := http.NewRequest("GET", urls, body)
7121	if err != nil {
7122		return nil, err
7123	}
7124	req.Header = reqHeaders
7125	googleapi.Expand(req.URL, map[string]string{
7126		"project":    c.project,
7127		"deployment": c.deployment,
7128		"resource":   c.resource,
7129	})
7130	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7131}
7132
7133// Do executes the "deploymentmanager.resources.get" call.
7134// Exactly one of *Resource or error will be non-nil. Any non-2xx status
7135// code is an error. Response headers are in either
7136// *Resource.ServerResponse.Header or (if a response was returned at
7137// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
7138// to check whether the returned error was because
7139// http.StatusNotModified was returned.
7140func (c *ResourcesGetCall) Do(opts ...googleapi.CallOption) (*Resource, error) {
7141	gensupport.SetOptions(c.urlParams_, opts...)
7142	res, err := c.doRequest("json")
7143	if res != nil && res.StatusCode == http.StatusNotModified {
7144		if res.Body != nil {
7145			res.Body.Close()
7146		}
7147		return nil, &googleapi.Error{
7148			Code:   res.StatusCode,
7149			Header: res.Header,
7150		}
7151	}
7152	if err != nil {
7153		return nil, err
7154	}
7155	defer googleapi.CloseBody(res)
7156	if err := googleapi.CheckResponse(res); err != nil {
7157		return nil, err
7158	}
7159	ret := &Resource{
7160		ServerResponse: googleapi.ServerResponse{
7161			Header:         res.Header,
7162			HTTPStatusCode: res.StatusCode,
7163		},
7164	}
7165	target := &ret
7166	if err := gensupport.DecodeResponse(target, res); err != nil {
7167		return nil, err
7168	}
7169	return ret, nil
7170	// {
7171	//   "description": "Gets information about a single resource.",
7172	//   "httpMethod": "GET",
7173	//   "id": "deploymentmanager.resources.get",
7174	//   "parameterOrder": [
7175	//     "project",
7176	//     "deployment",
7177	//     "resource"
7178	//   ],
7179	//   "parameters": {
7180	//     "deployment": {
7181	//       "description": "The name of the deployment for this request.",
7182	//       "location": "path",
7183	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
7184	//       "required": true,
7185	//       "type": "string"
7186	//     },
7187	//     "project": {
7188	//       "description": "The project ID for this request.",
7189	//       "location": "path",
7190	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
7191	//       "required": true,
7192	//       "type": "string"
7193	//     },
7194	//     "resource": {
7195	//       "description": "The name of the resource for this request.",
7196	//       "location": "path",
7197	//       "required": true,
7198	//       "type": "string"
7199	//     }
7200	//   },
7201	//   "path": "{project}/global/deployments/{deployment}/resources/{resource}",
7202	//   "response": {
7203	//     "$ref": "Resource"
7204	//   },
7205	//   "scopes": [
7206	//     "https://www.googleapis.com/auth/cloud-platform",
7207	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
7208	//     "https://www.googleapis.com/auth/ndev.cloudman",
7209	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
7210	//   ]
7211	// }
7212
7213}
7214
7215// method id "deploymentmanager.resources.list":
7216
7217type ResourcesListCall struct {
7218	s            *Service
7219	project      string
7220	deployment   string
7221	urlParams_   gensupport.URLParams
7222	ifNoneMatch_ string
7223	ctx_         context.Context
7224	header_      http.Header
7225}
7226
7227// List: Lists all resources in a given deployment.
7228func (r *ResourcesService) List(project string, deployment string) *ResourcesListCall {
7229	c := &ResourcesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7230	c.project = project
7231	c.deployment = deployment
7232	return c
7233}
7234
7235// Filter sets the optional parameter "filter": A filter expression that
7236// filters resources listed in the response. The expression must specify
7237// the field name, a comparison operator, and the value that you want to
7238// use for filtering. The value must be a string, a number, or a
7239// boolean. The comparison operator must be either `=`, `!=`, `>`, or
7240// `<`.
7241//
7242// For example, if you are filtering Compute Engine instances, you can
7243// exclude instances named `example-instance` by specifying `name !=
7244// example-instance`.
7245//
7246// You can also filter nested fields. For example, you could specify
7247// `scheduling.automaticRestart = false` to include instances only if
7248// they are not scheduled for automatic restarts. You can use filtering
7249// on nested fields to filter based on resource labels.
7250//
7251// To filter on multiple expressions, provide each separate expression
7252// within parentheses. For example: ``` (scheduling.automaticRestart =
7253// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
7254// is an `AND` expression. However, you can include `AND` and `OR`
7255// expressions explicitly. For example: ``` (cpuPlatform = "Intel
7256// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
7257// (scheduling.automaticRestart = true) ```
7258func (c *ResourcesListCall) Filter(filter string) *ResourcesListCall {
7259	c.urlParams_.Set("filter", filter)
7260	return c
7261}
7262
7263// MaxResults sets the optional parameter "maxResults": The maximum
7264// number of results per page that should be returned. If the number of
7265// available results is larger than `maxResults`, Compute Engine returns
7266// a `nextPageToken` that can be used to get the next page of results in
7267// subsequent list requests. Acceptable values are `0` to `500`,
7268// inclusive. (Default: `500`)
7269func (c *ResourcesListCall) MaxResults(maxResults int64) *ResourcesListCall {
7270	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
7271	return c
7272}
7273
7274// OrderBy sets the optional parameter "orderBy": Sorts list results by
7275// a certain order. By default, results are returned in alphanumerical
7276// order based on the resource name.
7277//
7278// You can also sort results in descending order based on the creation
7279// timestamp using `orderBy="creationTimestamp desc". This sorts
7280// results based on the `creationTimestamp` field in reverse
7281// chronological order (newest result first). Use this to sort resources
7282// like operations so that the newest operation is returned
7283// first.
7284//
7285// Currently, only sorting by `name` or `creationTimestamp desc` is
7286// supported.
7287func (c *ResourcesListCall) OrderBy(orderBy string) *ResourcesListCall {
7288	c.urlParams_.Set("orderBy", orderBy)
7289	return c
7290}
7291
7292// PageToken sets the optional parameter "pageToken": Specifies a page
7293// token to use. Set `pageToken` to the `nextPageToken` returned by a
7294// previous list request to get the next page of results.
7295func (c *ResourcesListCall) PageToken(pageToken string) *ResourcesListCall {
7296	c.urlParams_.Set("pageToken", pageToken)
7297	return c
7298}
7299
7300// Fields allows partial responses to be retrieved. See
7301// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7302// for more information.
7303func (c *ResourcesListCall) Fields(s ...googleapi.Field) *ResourcesListCall {
7304	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7305	return c
7306}
7307
7308// IfNoneMatch sets the optional parameter which makes the operation
7309// fail if the object's ETag matches the given value. This is useful for
7310// getting updates only after the object has changed since the last
7311// request. Use googleapi.IsNotModified to check whether the response
7312// error from Do is the result of In-None-Match.
7313func (c *ResourcesListCall) IfNoneMatch(entityTag string) *ResourcesListCall {
7314	c.ifNoneMatch_ = entityTag
7315	return c
7316}
7317
7318// Context sets the context to be used in this call's Do method. Any
7319// pending HTTP request will be aborted if the provided context is
7320// canceled.
7321func (c *ResourcesListCall) Context(ctx context.Context) *ResourcesListCall {
7322	c.ctx_ = ctx
7323	return c
7324}
7325
7326// Header returns an http.Header that can be modified by the caller to
7327// add HTTP headers to the request.
7328func (c *ResourcesListCall) Header() http.Header {
7329	if c.header_ == nil {
7330		c.header_ = make(http.Header)
7331	}
7332	return c.header_
7333}
7334
7335func (c *ResourcesListCall) doRequest(alt string) (*http.Response, error) {
7336	reqHeaders := make(http.Header)
7337	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
7338	for k, v := range c.header_ {
7339		reqHeaders[k] = v
7340	}
7341	reqHeaders.Set("User-Agent", c.s.userAgent())
7342	if c.ifNoneMatch_ != "" {
7343		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7344	}
7345	var body io.Reader = nil
7346	c.urlParams_.Set("alt", alt)
7347	c.urlParams_.Set("prettyPrint", "false")
7348	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/deployments/{deployment}/resources")
7349	urls += "?" + c.urlParams_.Encode()
7350	req, err := http.NewRequest("GET", urls, body)
7351	if err != nil {
7352		return nil, err
7353	}
7354	req.Header = reqHeaders
7355	googleapi.Expand(req.URL, map[string]string{
7356		"project":    c.project,
7357		"deployment": c.deployment,
7358	})
7359	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7360}
7361
7362// Do executes the "deploymentmanager.resources.list" call.
7363// Exactly one of *ResourcesListResponse or error will be non-nil. Any
7364// non-2xx status code is an error. Response headers are in either
7365// *ResourcesListResponse.ServerResponse.Header or (if a response was
7366// returned at all) in error.(*googleapi.Error).Header. Use
7367// googleapi.IsNotModified to check whether the returned error was
7368// because http.StatusNotModified was returned.
7369func (c *ResourcesListCall) Do(opts ...googleapi.CallOption) (*ResourcesListResponse, error) {
7370	gensupport.SetOptions(c.urlParams_, opts...)
7371	res, err := c.doRequest("json")
7372	if res != nil && res.StatusCode == http.StatusNotModified {
7373		if res.Body != nil {
7374			res.Body.Close()
7375		}
7376		return nil, &googleapi.Error{
7377			Code:   res.StatusCode,
7378			Header: res.Header,
7379		}
7380	}
7381	if err != nil {
7382		return nil, err
7383	}
7384	defer googleapi.CloseBody(res)
7385	if err := googleapi.CheckResponse(res); err != nil {
7386		return nil, err
7387	}
7388	ret := &ResourcesListResponse{
7389		ServerResponse: googleapi.ServerResponse{
7390			Header:         res.Header,
7391			HTTPStatusCode: res.StatusCode,
7392		},
7393	}
7394	target := &ret
7395	if err := gensupport.DecodeResponse(target, res); err != nil {
7396		return nil, err
7397	}
7398	return ret, nil
7399	// {
7400	//   "description": "Lists all resources in a given deployment.",
7401	//   "httpMethod": "GET",
7402	//   "id": "deploymentmanager.resources.list",
7403	//   "parameterOrder": [
7404	//     "project",
7405	//     "deployment"
7406	//   ],
7407	//   "parameters": {
7408	//     "deployment": {
7409	//       "description": "The name of the deployment for this request.",
7410	//       "location": "path",
7411	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
7412	//       "required": true,
7413	//       "type": "string"
7414	//     },
7415	//     "filter": {
7416	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
7417	//       "location": "query",
7418	//       "type": "string"
7419	//     },
7420	//     "maxResults": {
7421	//       "default": "500",
7422	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
7423	//       "format": "uint32",
7424	//       "location": "query",
7425	//       "minimum": "0",
7426	//       "type": "integer"
7427	//     },
7428	//     "orderBy": {
7429	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
7430	//       "location": "query",
7431	//       "type": "string"
7432	//     },
7433	//     "pageToken": {
7434	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
7435	//       "location": "query",
7436	//       "type": "string"
7437	//     },
7438	//     "project": {
7439	//       "description": "The project ID for this request.",
7440	//       "location": "path",
7441	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
7442	//       "required": true,
7443	//       "type": "string"
7444	//     }
7445	//   },
7446	//   "path": "{project}/global/deployments/{deployment}/resources",
7447	//   "response": {
7448	//     "$ref": "ResourcesListResponse"
7449	//   },
7450	//   "scopes": [
7451	//     "https://www.googleapis.com/auth/cloud-platform",
7452	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
7453	//     "https://www.googleapis.com/auth/ndev.cloudman",
7454	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
7455	//   ]
7456	// }
7457
7458}
7459
7460// Pages invokes f for each page of results.
7461// A non-nil error returned from f will halt the iteration.
7462// The provided context supersedes any context provided to the Context method.
7463func (c *ResourcesListCall) Pages(ctx context.Context, f func(*ResourcesListResponse) error) error {
7464	c.ctx_ = ctx
7465	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
7466	for {
7467		x, err := c.Do()
7468		if err != nil {
7469			return err
7470		}
7471		if err := f(x); err != nil {
7472			return err
7473		}
7474		if x.NextPageToken == "" {
7475			return nil
7476		}
7477		c.PageToken(x.NextPageToken)
7478	}
7479}
7480
7481// method id "deploymentmanager.typeProviders.delete":
7482
7483type TypeProvidersDeleteCall struct {
7484	s            *Service
7485	project      string
7486	typeProvider string
7487	urlParams_   gensupport.URLParams
7488	ctx_         context.Context
7489	header_      http.Header
7490}
7491
7492// Delete: Deletes a type provider.
7493func (r *TypeProvidersService) Delete(project string, typeProvider string) *TypeProvidersDeleteCall {
7494	c := &TypeProvidersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7495	c.project = project
7496	c.typeProvider = typeProvider
7497	return c
7498}
7499
7500// Fields allows partial responses to be retrieved. See
7501// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7502// for more information.
7503func (c *TypeProvidersDeleteCall) Fields(s ...googleapi.Field) *TypeProvidersDeleteCall {
7504	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7505	return c
7506}
7507
7508// Context sets the context to be used in this call's Do method. Any
7509// pending HTTP request will be aborted if the provided context is
7510// canceled.
7511func (c *TypeProvidersDeleteCall) Context(ctx context.Context) *TypeProvidersDeleteCall {
7512	c.ctx_ = ctx
7513	return c
7514}
7515
7516// Header returns an http.Header that can be modified by the caller to
7517// add HTTP headers to the request.
7518func (c *TypeProvidersDeleteCall) Header() http.Header {
7519	if c.header_ == nil {
7520		c.header_ = make(http.Header)
7521	}
7522	return c.header_
7523}
7524
7525func (c *TypeProvidersDeleteCall) doRequest(alt string) (*http.Response, error) {
7526	reqHeaders := make(http.Header)
7527	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
7528	for k, v := range c.header_ {
7529		reqHeaders[k] = v
7530	}
7531	reqHeaders.Set("User-Agent", c.s.userAgent())
7532	var body io.Reader = nil
7533	c.urlParams_.Set("alt", alt)
7534	c.urlParams_.Set("prettyPrint", "false")
7535	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/typeProviders/{typeProvider}")
7536	urls += "?" + c.urlParams_.Encode()
7537	req, err := http.NewRequest("DELETE", urls, body)
7538	if err != nil {
7539		return nil, err
7540	}
7541	req.Header = reqHeaders
7542	googleapi.Expand(req.URL, map[string]string{
7543		"project":      c.project,
7544		"typeProvider": c.typeProvider,
7545	})
7546	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7547}
7548
7549// Do executes the "deploymentmanager.typeProviders.delete" call.
7550// Exactly one of *Operation or error will be non-nil. Any non-2xx
7551// status code is an error. Response headers are in either
7552// *Operation.ServerResponse.Header or (if a response was returned at
7553// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
7554// to check whether the returned error was because
7555// http.StatusNotModified was returned.
7556func (c *TypeProvidersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
7557	gensupport.SetOptions(c.urlParams_, opts...)
7558	res, err := c.doRequest("json")
7559	if res != nil && res.StatusCode == http.StatusNotModified {
7560		if res.Body != nil {
7561			res.Body.Close()
7562		}
7563		return nil, &googleapi.Error{
7564			Code:   res.StatusCode,
7565			Header: res.Header,
7566		}
7567	}
7568	if err != nil {
7569		return nil, err
7570	}
7571	defer googleapi.CloseBody(res)
7572	if err := googleapi.CheckResponse(res); err != nil {
7573		return nil, err
7574	}
7575	ret := &Operation{
7576		ServerResponse: googleapi.ServerResponse{
7577			Header:         res.Header,
7578			HTTPStatusCode: res.StatusCode,
7579		},
7580	}
7581	target := &ret
7582	if err := gensupport.DecodeResponse(target, res); err != nil {
7583		return nil, err
7584	}
7585	return ret, nil
7586	// {
7587	//   "description": "Deletes a type provider.",
7588	//   "httpMethod": "DELETE",
7589	//   "id": "deploymentmanager.typeProviders.delete",
7590	//   "parameterOrder": [
7591	//     "project",
7592	//     "typeProvider"
7593	//   ],
7594	//   "parameters": {
7595	//     "project": {
7596	//       "description": "The project ID for this request.",
7597	//       "location": "path",
7598	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
7599	//       "required": true,
7600	//       "type": "string"
7601	//     },
7602	//     "typeProvider": {
7603	//       "description": "The name of the type provider for this request.",
7604	//       "location": "path",
7605	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
7606	//       "required": true,
7607	//       "type": "string"
7608	//     }
7609	//   },
7610	//   "path": "{project}/global/typeProviders/{typeProvider}",
7611	//   "response": {
7612	//     "$ref": "Operation"
7613	//   },
7614	//   "scopes": [
7615	//     "https://www.googleapis.com/auth/cloud-platform",
7616	//     "https://www.googleapis.com/auth/ndev.cloudman"
7617	//   ]
7618	// }
7619
7620}
7621
7622// method id "deploymentmanager.typeProviders.get":
7623
7624type TypeProvidersGetCall struct {
7625	s            *Service
7626	project      string
7627	typeProvider string
7628	urlParams_   gensupport.URLParams
7629	ifNoneMatch_ string
7630	ctx_         context.Context
7631	header_      http.Header
7632}
7633
7634// Get: Gets information about a specific type provider.
7635func (r *TypeProvidersService) Get(project string, typeProvider string) *TypeProvidersGetCall {
7636	c := &TypeProvidersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7637	c.project = project
7638	c.typeProvider = typeProvider
7639	return c
7640}
7641
7642// Fields allows partial responses to be retrieved. See
7643// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7644// for more information.
7645func (c *TypeProvidersGetCall) Fields(s ...googleapi.Field) *TypeProvidersGetCall {
7646	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7647	return c
7648}
7649
7650// IfNoneMatch sets the optional parameter which makes the operation
7651// fail if the object's ETag matches the given value. This is useful for
7652// getting updates only after the object has changed since the last
7653// request. Use googleapi.IsNotModified to check whether the response
7654// error from Do is the result of In-None-Match.
7655func (c *TypeProvidersGetCall) IfNoneMatch(entityTag string) *TypeProvidersGetCall {
7656	c.ifNoneMatch_ = entityTag
7657	return c
7658}
7659
7660// Context sets the context to be used in this call's Do method. Any
7661// pending HTTP request will be aborted if the provided context is
7662// canceled.
7663func (c *TypeProvidersGetCall) Context(ctx context.Context) *TypeProvidersGetCall {
7664	c.ctx_ = ctx
7665	return c
7666}
7667
7668// Header returns an http.Header that can be modified by the caller to
7669// add HTTP headers to the request.
7670func (c *TypeProvidersGetCall) Header() http.Header {
7671	if c.header_ == nil {
7672		c.header_ = make(http.Header)
7673	}
7674	return c.header_
7675}
7676
7677func (c *TypeProvidersGetCall) doRequest(alt string) (*http.Response, error) {
7678	reqHeaders := make(http.Header)
7679	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
7680	for k, v := range c.header_ {
7681		reqHeaders[k] = v
7682	}
7683	reqHeaders.Set("User-Agent", c.s.userAgent())
7684	if c.ifNoneMatch_ != "" {
7685		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7686	}
7687	var body io.Reader = nil
7688	c.urlParams_.Set("alt", alt)
7689	c.urlParams_.Set("prettyPrint", "false")
7690	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/typeProviders/{typeProvider}")
7691	urls += "?" + c.urlParams_.Encode()
7692	req, err := http.NewRequest("GET", urls, body)
7693	if err != nil {
7694		return nil, err
7695	}
7696	req.Header = reqHeaders
7697	googleapi.Expand(req.URL, map[string]string{
7698		"project":      c.project,
7699		"typeProvider": c.typeProvider,
7700	})
7701	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7702}
7703
7704// Do executes the "deploymentmanager.typeProviders.get" call.
7705// Exactly one of *TypeProvider or error will be non-nil. Any non-2xx
7706// status code is an error. Response headers are in either
7707// *TypeProvider.ServerResponse.Header or (if a response was returned at
7708// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
7709// to check whether the returned error was because
7710// http.StatusNotModified was returned.
7711func (c *TypeProvidersGetCall) Do(opts ...googleapi.CallOption) (*TypeProvider, error) {
7712	gensupport.SetOptions(c.urlParams_, opts...)
7713	res, err := c.doRequest("json")
7714	if res != nil && res.StatusCode == http.StatusNotModified {
7715		if res.Body != nil {
7716			res.Body.Close()
7717		}
7718		return nil, &googleapi.Error{
7719			Code:   res.StatusCode,
7720			Header: res.Header,
7721		}
7722	}
7723	if err != nil {
7724		return nil, err
7725	}
7726	defer googleapi.CloseBody(res)
7727	if err := googleapi.CheckResponse(res); err != nil {
7728		return nil, err
7729	}
7730	ret := &TypeProvider{
7731		ServerResponse: googleapi.ServerResponse{
7732			Header:         res.Header,
7733			HTTPStatusCode: res.StatusCode,
7734		},
7735	}
7736	target := &ret
7737	if err := gensupport.DecodeResponse(target, res); err != nil {
7738		return nil, err
7739	}
7740	return ret, nil
7741	// {
7742	//   "description": "Gets information about a specific type provider.",
7743	//   "httpMethod": "GET",
7744	//   "id": "deploymentmanager.typeProviders.get",
7745	//   "parameterOrder": [
7746	//     "project",
7747	//     "typeProvider"
7748	//   ],
7749	//   "parameters": {
7750	//     "project": {
7751	//       "description": "The project ID for this request.",
7752	//       "location": "path",
7753	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
7754	//       "required": true,
7755	//       "type": "string"
7756	//     },
7757	//     "typeProvider": {
7758	//       "description": "The name of the type provider for this request.",
7759	//       "location": "path",
7760	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
7761	//       "required": true,
7762	//       "type": "string"
7763	//     }
7764	//   },
7765	//   "path": "{project}/global/typeProviders/{typeProvider}",
7766	//   "response": {
7767	//     "$ref": "TypeProvider"
7768	//   },
7769	//   "scopes": [
7770	//     "https://www.googleapis.com/auth/cloud-platform",
7771	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
7772	//     "https://www.googleapis.com/auth/ndev.cloudman",
7773	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
7774	//   ]
7775	// }
7776
7777}
7778
7779// method id "deploymentmanager.typeProviders.getType":
7780
7781type TypeProvidersGetTypeCall struct {
7782	s            *Service
7783	project      string
7784	typeProvider string
7785	type_        string
7786	urlParams_   gensupport.URLParams
7787	ifNoneMatch_ string
7788	ctx_         context.Context
7789	header_      http.Header
7790}
7791
7792// GetType: Gets a type info for a type provided by a TypeProvider.
7793func (r *TypeProvidersService) GetType(project string, typeProvider string, type_ string) *TypeProvidersGetTypeCall {
7794	c := &TypeProvidersGetTypeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7795	c.project = project
7796	c.typeProvider = typeProvider
7797	c.type_ = type_
7798	return c
7799}
7800
7801// Fields allows partial responses to be retrieved. See
7802// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7803// for more information.
7804func (c *TypeProvidersGetTypeCall) Fields(s ...googleapi.Field) *TypeProvidersGetTypeCall {
7805	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7806	return c
7807}
7808
7809// IfNoneMatch sets the optional parameter which makes the operation
7810// fail if the object's ETag matches the given value. This is useful for
7811// getting updates only after the object has changed since the last
7812// request. Use googleapi.IsNotModified to check whether the response
7813// error from Do is the result of In-None-Match.
7814func (c *TypeProvidersGetTypeCall) IfNoneMatch(entityTag string) *TypeProvidersGetTypeCall {
7815	c.ifNoneMatch_ = entityTag
7816	return c
7817}
7818
7819// Context sets the context to be used in this call's Do method. Any
7820// pending HTTP request will be aborted if the provided context is
7821// canceled.
7822func (c *TypeProvidersGetTypeCall) Context(ctx context.Context) *TypeProvidersGetTypeCall {
7823	c.ctx_ = ctx
7824	return c
7825}
7826
7827// Header returns an http.Header that can be modified by the caller to
7828// add HTTP headers to the request.
7829func (c *TypeProvidersGetTypeCall) Header() http.Header {
7830	if c.header_ == nil {
7831		c.header_ = make(http.Header)
7832	}
7833	return c.header_
7834}
7835
7836func (c *TypeProvidersGetTypeCall) doRequest(alt string) (*http.Response, error) {
7837	reqHeaders := make(http.Header)
7838	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
7839	for k, v := range c.header_ {
7840		reqHeaders[k] = v
7841	}
7842	reqHeaders.Set("User-Agent", c.s.userAgent())
7843	if c.ifNoneMatch_ != "" {
7844		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7845	}
7846	var body io.Reader = nil
7847	c.urlParams_.Set("alt", alt)
7848	c.urlParams_.Set("prettyPrint", "false")
7849	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/typeProviders/{typeProvider}/types/{type}")
7850	urls += "?" + c.urlParams_.Encode()
7851	req, err := http.NewRequest("GET", urls, body)
7852	if err != nil {
7853		return nil, err
7854	}
7855	req.Header = reqHeaders
7856	googleapi.Expand(req.URL, map[string]string{
7857		"project":      c.project,
7858		"typeProvider": c.typeProvider,
7859		"type":         c.type_,
7860	})
7861	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7862}
7863
7864// Do executes the "deploymentmanager.typeProviders.getType" call.
7865// Exactly one of *TypeInfo or error will be non-nil. Any non-2xx status
7866// code is an error. Response headers are in either
7867// *TypeInfo.ServerResponse.Header or (if a response was returned at
7868// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
7869// to check whether the returned error was because
7870// http.StatusNotModified was returned.
7871func (c *TypeProvidersGetTypeCall) Do(opts ...googleapi.CallOption) (*TypeInfo, error) {
7872	gensupport.SetOptions(c.urlParams_, opts...)
7873	res, err := c.doRequest("json")
7874	if res != nil && res.StatusCode == http.StatusNotModified {
7875		if res.Body != nil {
7876			res.Body.Close()
7877		}
7878		return nil, &googleapi.Error{
7879			Code:   res.StatusCode,
7880			Header: res.Header,
7881		}
7882	}
7883	if err != nil {
7884		return nil, err
7885	}
7886	defer googleapi.CloseBody(res)
7887	if err := googleapi.CheckResponse(res); err != nil {
7888		return nil, err
7889	}
7890	ret := &TypeInfo{
7891		ServerResponse: googleapi.ServerResponse{
7892			Header:         res.Header,
7893			HTTPStatusCode: res.StatusCode,
7894		},
7895	}
7896	target := &ret
7897	if err := gensupport.DecodeResponse(target, res); err != nil {
7898		return nil, err
7899	}
7900	return ret, nil
7901	// {
7902	//   "description": "Gets a type info for a type provided by a TypeProvider.",
7903	//   "httpMethod": "GET",
7904	//   "id": "deploymentmanager.typeProviders.getType",
7905	//   "parameterOrder": [
7906	//     "project",
7907	//     "typeProvider",
7908	//     "type"
7909	//   ],
7910	//   "parameters": {
7911	//     "project": {
7912	//       "description": "The project ID for this request.",
7913	//       "location": "path",
7914	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
7915	//       "required": true,
7916	//       "type": "string"
7917	//     },
7918	//     "type": {
7919	//       "description": "The name of the type provider type for this request.",
7920	//       "location": "path",
7921	//       "required": true,
7922	//       "type": "string"
7923	//     },
7924	//     "typeProvider": {
7925	//       "description": "The name of the type provider for this request.",
7926	//       "location": "path",
7927	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
7928	//       "required": true,
7929	//       "type": "string"
7930	//     }
7931	//   },
7932	//   "path": "{project}/global/typeProviders/{typeProvider}/types/{type}",
7933	//   "response": {
7934	//     "$ref": "TypeInfo"
7935	//   },
7936	//   "scopes": [
7937	//     "https://www.googleapis.com/auth/cloud-platform",
7938	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
7939	//     "https://www.googleapis.com/auth/ndev.cloudman",
7940	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
7941	//   ]
7942	// }
7943
7944}
7945
7946// method id "deploymentmanager.typeProviders.insert":
7947
7948type TypeProvidersInsertCall struct {
7949	s            *Service
7950	project      string
7951	typeprovider *TypeProvider
7952	urlParams_   gensupport.URLParams
7953	ctx_         context.Context
7954	header_      http.Header
7955}
7956
7957// Insert: Creates a type provider.
7958func (r *TypeProvidersService) Insert(project string, typeprovider *TypeProvider) *TypeProvidersInsertCall {
7959	c := &TypeProvidersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7960	c.project = project
7961	c.typeprovider = typeprovider
7962	return c
7963}
7964
7965// Fields allows partial responses to be retrieved. See
7966// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7967// for more information.
7968func (c *TypeProvidersInsertCall) Fields(s ...googleapi.Field) *TypeProvidersInsertCall {
7969	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7970	return c
7971}
7972
7973// Context sets the context to be used in this call's Do method. Any
7974// pending HTTP request will be aborted if the provided context is
7975// canceled.
7976func (c *TypeProvidersInsertCall) Context(ctx context.Context) *TypeProvidersInsertCall {
7977	c.ctx_ = ctx
7978	return c
7979}
7980
7981// Header returns an http.Header that can be modified by the caller to
7982// add HTTP headers to the request.
7983func (c *TypeProvidersInsertCall) Header() http.Header {
7984	if c.header_ == nil {
7985		c.header_ = make(http.Header)
7986	}
7987	return c.header_
7988}
7989
7990func (c *TypeProvidersInsertCall) doRequest(alt string) (*http.Response, error) {
7991	reqHeaders := make(http.Header)
7992	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
7993	for k, v := range c.header_ {
7994		reqHeaders[k] = v
7995	}
7996	reqHeaders.Set("User-Agent", c.s.userAgent())
7997	var body io.Reader = nil
7998	body, err := googleapi.WithoutDataWrapper.JSONReader(c.typeprovider)
7999	if err != nil {
8000		return nil, err
8001	}
8002	reqHeaders.Set("Content-Type", "application/json")
8003	c.urlParams_.Set("alt", alt)
8004	c.urlParams_.Set("prettyPrint", "false")
8005	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/typeProviders")
8006	urls += "?" + c.urlParams_.Encode()
8007	req, err := http.NewRequest("POST", urls, body)
8008	if err != nil {
8009		return nil, err
8010	}
8011	req.Header = reqHeaders
8012	googleapi.Expand(req.URL, map[string]string{
8013		"project": c.project,
8014	})
8015	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8016}
8017
8018// Do executes the "deploymentmanager.typeProviders.insert" call.
8019// Exactly one of *Operation or error will be non-nil. Any non-2xx
8020// status code is an error. Response headers are in either
8021// *Operation.ServerResponse.Header or (if a response was returned at
8022// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8023// to check whether the returned error was because
8024// http.StatusNotModified was returned.
8025func (c *TypeProvidersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
8026	gensupport.SetOptions(c.urlParams_, opts...)
8027	res, err := c.doRequest("json")
8028	if res != nil && res.StatusCode == http.StatusNotModified {
8029		if res.Body != nil {
8030			res.Body.Close()
8031		}
8032		return nil, &googleapi.Error{
8033			Code:   res.StatusCode,
8034			Header: res.Header,
8035		}
8036	}
8037	if err != nil {
8038		return nil, err
8039	}
8040	defer googleapi.CloseBody(res)
8041	if err := googleapi.CheckResponse(res); err != nil {
8042		return nil, err
8043	}
8044	ret := &Operation{
8045		ServerResponse: googleapi.ServerResponse{
8046			Header:         res.Header,
8047			HTTPStatusCode: res.StatusCode,
8048		},
8049	}
8050	target := &ret
8051	if err := gensupport.DecodeResponse(target, res); err != nil {
8052		return nil, err
8053	}
8054	return ret, nil
8055	// {
8056	//   "description": "Creates a type provider.",
8057	//   "httpMethod": "POST",
8058	//   "id": "deploymentmanager.typeProviders.insert",
8059	//   "parameterOrder": [
8060	//     "project"
8061	//   ],
8062	//   "parameters": {
8063	//     "project": {
8064	//       "description": "The project ID for this request.",
8065	//       "location": "path",
8066	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
8067	//       "required": true,
8068	//       "type": "string"
8069	//     }
8070	//   },
8071	//   "path": "{project}/global/typeProviders",
8072	//   "request": {
8073	//     "$ref": "TypeProvider"
8074	//   },
8075	//   "response": {
8076	//     "$ref": "Operation"
8077	//   },
8078	//   "scopes": [
8079	//     "https://www.googleapis.com/auth/cloud-platform",
8080	//     "https://www.googleapis.com/auth/ndev.cloudman"
8081	//   ]
8082	// }
8083
8084}
8085
8086// method id "deploymentmanager.typeProviders.list":
8087
8088type TypeProvidersListCall struct {
8089	s            *Service
8090	project      string
8091	urlParams_   gensupport.URLParams
8092	ifNoneMatch_ string
8093	ctx_         context.Context
8094	header_      http.Header
8095}
8096
8097// List: Lists all resource type providers for Deployment Manager.
8098func (r *TypeProvidersService) List(project string) *TypeProvidersListCall {
8099	c := &TypeProvidersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8100	c.project = project
8101	return c
8102}
8103
8104// Filter sets the optional parameter "filter": A filter expression that
8105// filters resources listed in the response. The expression must specify
8106// the field name, a comparison operator, and the value that you want to
8107// use for filtering. The value must be a string, a number, or a
8108// boolean. The comparison operator must be either `=`, `!=`, `>`, or
8109// `<`.
8110//
8111// For example, if you are filtering Compute Engine instances, you can
8112// exclude instances named `example-instance` by specifying `name !=
8113// example-instance`.
8114//
8115// You can also filter nested fields. For example, you could specify
8116// `scheduling.automaticRestart = false` to include instances only if
8117// they are not scheduled for automatic restarts. You can use filtering
8118// on nested fields to filter based on resource labels.
8119//
8120// To filter on multiple expressions, provide each separate expression
8121// within parentheses. For example: ``` (scheduling.automaticRestart =
8122// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
8123// is an `AND` expression. However, you can include `AND` and `OR`
8124// expressions explicitly. For example: ``` (cpuPlatform = "Intel
8125// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
8126// (scheduling.automaticRestart = true) ```
8127func (c *TypeProvidersListCall) Filter(filter string) *TypeProvidersListCall {
8128	c.urlParams_.Set("filter", filter)
8129	return c
8130}
8131
8132// MaxResults sets the optional parameter "maxResults": The maximum
8133// number of results per page that should be returned. If the number of
8134// available results is larger than `maxResults`, Compute Engine returns
8135// a `nextPageToken` that can be used to get the next page of results in
8136// subsequent list requests. Acceptable values are `0` to `500`,
8137// inclusive. (Default: `500`)
8138func (c *TypeProvidersListCall) MaxResults(maxResults int64) *TypeProvidersListCall {
8139	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
8140	return c
8141}
8142
8143// OrderBy sets the optional parameter "orderBy": Sorts list results by
8144// a certain order. By default, results are returned in alphanumerical
8145// order based on the resource name.
8146//
8147// You can also sort results in descending order based on the creation
8148// timestamp using `orderBy="creationTimestamp desc". This sorts
8149// results based on the `creationTimestamp` field in reverse
8150// chronological order (newest result first). Use this to sort resources
8151// like operations so that the newest operation is returned
8152// first.
8153//
8154// Currently, only sorting by `name` or `creationTimestamp desc` is
8155// supported.
8156func (c *TypeProvidersListCall) OrderBy(orderBy string) *TypeProvidersListCall {
8157	c.urlParams_.Set("orderBy", orderBy)
8158	return c
8159}
8160
8161// PageToken sets the optional parameter "pageToken": Specifies a page
8162// token to use. Set `pageToken` to the `nextPageToken` returned by a
8163// previous list request to get the next page of results.
8164func (c *TypeProvidersListCall) PageToken(pageToken string) *TypeProvidersListCall {
8165	c.urlParams_.Set("pageToken", pageToken)
8166	return c
8167}
8168
8169// Fields allows partial responses to be retrieved. See
8170// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8171// for more information.
8172func (c *TypeProvidersListCall) Fields(s ...googleapi.Field) *TypeProvidersListCall {
8173	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8174	return c
8175}
8176
8177// IfNoneMatch sets the optional parameter which makes the operation
8178// fail if the object's ETag matches the given value. This is useful for
8179// getting updates only after the object has changed since the last
8180// request. Use googleapi.IsNotModified to check whether the response
8181// error from Do is the result of In-None-Match.
8182func (c *TypeProvidersListCall) IfNoneMatch(entityTag string) *TypeProvidersListCall {
8183	c.ifNoneMatch_ = entityTag
8184	return c
8185}
8186
8187// Context sets the context to be used in this call's Do method. Any
8188// pending HTTP request will be aborted if the provided context is
8189// canceled.
8190func (c *TypeProvidersListCall) Context(ctx context.Context) *TypeProvidersListCall {
8191	c.ctx_ = ctx
8192	return c
8193}
8194
8195// Header returns an http.Header that can be modified by the caller to
8196// add HTTP headers to the request.
8197func (c *TypeProvidersListCall) Header() http.Header {
8198	if c.header_ == nil {
8199		c.header_ = make(http.Header)
8200	}
8201	return c.header_
8202}
8203
8204func (c *TypeProvidersListCall) doRequest(alt string) (*http.Response, error) {
8205	reqHeaders := make(http.Header)
8206	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
8207	for k, v := range c.header_ {
8208		reqHeaders[k] = v
8209	}
8210	reqHeaders.Set("User-Agent", c.s.userAgent())
8211	if c.ifNoneMatch_ != "" {
8212		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8213	}
8214	var body io.Reader = nil
8215	c.urlParams_.Set("alt", alt)
8216	c.urlParams_.Set("prettyPrint", "false")
8217	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/typeProviders")
8218	urls += "?" + c.urlParams_.Encode()
8219	req, err := http.NewRequest("GET", urls, body)
8220	if err != nil {
8221		return nil, err
8222	}
8223	req.Header = reqHeaders
8224	googleapi.Expand(req.URL, map[string]string{
8225		"project": c.project,
8226	})
8227	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8228}
8229
8230// Do executes the "deploymentmanager.typeProviders.list" call.
8231// Exactly one of *TypeProvidersListResponse or error will be non-nil.
8232// Any non-2xx status code is an error. Response headers are in either
8233// *TypeProvidersListResponse.ServerResponse.Header or (if a response
8234// was returned at all) in error.(*googleapi.Error).Header. Use
8235// googleapi.IsNotModified to check whether the returned error was
8236// because http.StatusNotModified was returned.
8237func (c *TypeProvidersListCall) Do(opts ...googleapi.CallOption) (*TypeProvidersListResponse, error) {
8238	gensupport.SetOptions(c.urlParams_, opts...)
8239	res, err := c.doRequest("json")
8240	if res != nil && res.StatusCode == http.StatusNotModified {
8241		if res.Body != nil {
8242			res.Body.Close()
8243		}
8244		return nil, &googleapi.Error{
8245			Code:   res.StatusCode,
8246			Header: res.Header,
8247		}
8248	}
8249	if err != nil {
8250		return nil, err
8251	}
8252	defer googleapi.CloseBody(res)
8253	if err := googleapi.CheckResponse(res); err != nil {
8254		return nil, err
8255	}
8256	ret := &TypeProvidersListResponse{
8257		ServerResponse: googleapi.ServerResponse{
8258			Header:         res.Header,
8259			HTTPStatusCode: res.StatusCode,
8260		},
8261	}
8262	target := &ret
8263	if err := gensupport.DecodeResponse(target, res); err != nil {
8264		return nil, err
8265	}
8266	return ret, nil
8267	// {
8268	//   "description": "Lists all resource type providers for Deployment Manager.",
8269	//   "httpMethod": "GET",
8270	//   "id": "deploymentmanager.typeProviders.list",
8271	//   "parameterOrder": [
8272	//     "project"
8273	//   ],
8274	//   "parameters": {
8275	//     "filter": {
8276	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
8277	//       "location": "query",
8278	//       "type": "string"
8279	//     },
8280	//     "maxResults": {
8281	//       "default": "500",
8282	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
8283	//       "format": "uint32",
8284	//       "location": "query",
8285	//       "minimum": "0",
8286	//       "type": "integer"
8287	//     },
8288	//     "orderBy": {
8289	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
8290	//       "location": "query",
8291	//       "type": "string"
8292	//     },
8293	//     "pageToken": {
8294	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
8295	//       "location": "query",
8296	//       "type": "string"
8297	//     },
8298	//     "project": {
8299	//       "description": "The project ID for this request.",
8300	//       "location": "path",
8301	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
8302	//       "required": true,
8303	//       "type": "string"
8304	//     }
8305	//   },
8306	//   "path": "{project}/global/typeProviders",
8307	//   "response": {
8308	//     "$ref": "TypeProvidersListResponse"
8309	//   },
8310	//   "scopes": [
8311	//     "https://www.googleapis.com/auth/cloud-platform",
8312	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
8313	//     "https://www.googleapis.com/auth/ndev.cloudman",
8314	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
8315	//   ]
8316	// }
8317
8318}
8319
8320// Pages invokes f for each page of results.
8321// A non-nil error returned from f will halt the iteration.
8322// The provided context supersedes any context provided to the Context method.
8323func (c *TypeProvidersListCall) Pages(ctx context.Context, f func(*TypeProvidersListResponse) error) error {
8324	c.ctx_ = ctx
8325	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
8326	for {
8327		x, err := c.Do()
8328		if err != nil {
8329			return err
8330		}
8331		if err := f(x); err != nil {
8332			return err
8333		}
8334		if x.NextPageToken == "" {
8335			return nil
8336		}
8337		c.PageToken(x.NextPageToken)
8338	}
8339}
8340
8341// method id "deploymentmanager.typeProviders.listTypes":
8342
8343type TypeProvidersListTypesCall struct {
8344	s            *Service
8345	project      string
8346	typeProvider string
8347	urlParams_   gensupport.URLParams
8348	ifNoneMatch_ string
8349	ctx_         context.Context
8350	header_      http.Header
8351}
8352
8353// ListTypes: Lists all the type info for a TypeProvider.
8354func (r *TypeProvidersService) ListTypes(project string, typeProvider string) *TypeProvidersListTypesCall {
8355	c := &TypeProvidersListTypesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8356	c.project = project
8357	c.typeProvider = typeProvider
8358	return c
8359}
8360
8361// Filter sets the optional parameter "filter": A filter expression that
8362// filters resources listed in the response. The expression must specify
8363// the field name, a comparison operator, and the value that you want to
8364// use for filtering. The value must be a string, a number, or a
8365// boolean. The comparison operator must be either `=`, `!=`, `>`, or
8366// `<`.
8367//
8368// For example, if you are filtering Compute Engine instances, you can
8369// exclude instances named `example-instance` by specifying `name !=
8370// example-instance`.
8371//
8372// You can also filter nested fields. For example, you could specify
8373// `scheduling.automaticRestart = false` to include instances only if
8374// they are not scheduled for automatic restarts. You can use filtering
8375// on nested fields to filter based on resource labels.
8376//
8377// To filter on multiple expressions, provide each separate expression
8378// within parentheses. For example: ``` (scheduling.automaticRestart =
8379// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
8380// is an `AND` expression. However, you can include `AND` and `OR`
8381// expressions explicitly. For example: ``` (cpuPlatform = "Intel
8382// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
8383// (scheduling.automaticRestart = true) ```
8384func (c *TypeProvidersListTypesCall) Filter(filter string) *TypeProvidersListTypesCall {
8385	c.urlParams_.Set("filter", filter)
8386	return c
8387}
8388
8389// MaxResults sets the optional parameter "maxResults": The maximum
8390// number of results per page that should be returned. If the number of
8391// available results is larger than `maxResults`, Compute Engine returns
8392// a `nextPageToken` that can be used to get the next page of results in
8393// subsequent list requests. Acceptable values are `0` to `500`,
8394// inclusive. (Default: `500`)
8395func (c *TypeProvidersListTypesCall) MaxResults(maxResults int64) *TypeProvidersListTypesCall {
8396	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
8397	return c
8398}
8399
8400// OrderBy sets the optional parameter "orderBy": Sorts list results by
8401// a certain order. By default, results are returned in alphanumerical
8402// order based on the resource name.
8403//
8404// You can also sort results in descending order based on the creation
8405// timestamp using `orderBy="creationTimestamp desc". This sorts
8406// results based on the `creationTimestamp` field in reverse
8407// chronological order (newest result first). Use this to sort resources
8408// like operations so that the newest operation is returned
8409// first.
8410//
8411// Currently, only sorting by `name` or `creationTimestamp desc` is
8412// supported.
8413func (c *TypeProvidersListTypesCall) OrderBy(orderBy string) *TypeProvidersListTypesCall {
8414	c.urlParams_.Set("orderBy", orderBy)
8415	return c
8416}
8417
8418// PageToken sets the optional parameter "pageToken": Specifies a page
8419// token to use. Set `pageToken` to the `nextPageToken` returned by a
8420// previous list request to get the next page of results.
8421func (c *TypeProvidersListTypesCall) PageToken(pageToken string) *TypeProvidersListTypesCall {
8422	c.urlParams_.Set("pageToken", pageToken)
8423	return c
8424}
8425
8426// Fields allows partial responses to be retrieved. See
8427// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8428// for more information.
8429func (c *TypeProvidersListTypesCall) Fields(s ...googleapi.Field) *TypeProvidersListTypesCall {
8430	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8431	return c
8432}
8433
8434// IfNoneMatch sets the optional parameter which makes the operation
8435// fail if the object's ETag matches the given value. This is useful for
8436// getting updates only after the object has changed since the last
8437// request. Use googleapi.IsNotModified to check whether the response
8438// error from Do is the result of In-None-Match.
8439func (c *TypeProvidersListTypesCall) IfNoneMatch(entityTag string) *TypeProvidersListTypesCall {
8440	c.ifNoneMatch_ = entityTag
8441	return c
8442}
8443
8444// Context sets the context to be used in this call's Do method. Any
8445// pending HTTP request will be aborted if the provided context is
8446// canceled.
8447func (c *TypeProvidersListTypesCall) Context(ctx context.Context) *TypeProvidersListTypesCall {
8448	c.ctx_ = ctx
8449	return c
8450}
8451
8452// Header returns an http.Header that can be modified by the caller to
8453// add HTTP headers to the request.
8454func (c *TypeProvidersListTypesCall) Header() http.Header {
8455	if c.header_ == nil {
8456		c.header_ = make(http.Header)
8457	}
8458	return c.header_
8459}
8460
8461func (c *TypeProvidersListTypesCall) doRequest(alt string) (*http.Response, error) {
8462	reqHeaders := make(http.Header)
8463	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
8464	for k, v := range c.header_ {
8465		reqHeaders[k] = v
8466	}
8467	reqHeaders.Set("User-Agent", c.s.userAgent())
8468	if c.ifNoneMatch_ != "" {
8469		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8470	}
8471	var body io.Reader = nil
8472	c.urlParams_.Set("alt", alt)
8473	c.urlParams_.Set("prettyPrint", "false")
8474	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/typeProviders/{typeProvider}/types")
8475	urls += "?" + c.urlParams_.Encode()
8476	req, err := http.NewRequest("GET", urls, body)
8477	if err != nil {
8478		return nil, err
8479	}
8480	req.Header = reqHeaders
8481	googleapi.Expand(req.URL, map[string]string{
8482		"project":      c.project,
8483		"typeProvider": c.typeProvider,
8484	})
8485	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8486}
8487
8488// Do executes the "deploymentmanager.typeProviders.listTypes" call.
8489// Exactly one of *TypeProvidersListTypesResponse or error will be
8490// non-nil. Any non-2xx status code is an error. Response headers are in
8491// either *TypeProvidersListTypesResponse.ServerResponse.Header or (if a
8492// response was returned at all) in error.(*googleapi.Error).Header. Use
8493// googleapi.IsNotModified to check whether the returned error was
8494// because http.StatusNotModified was returned.
8495func (c *TypeProvidersListTypesCall) Do(opts ...googleapi.CallOption) (*TypeProvidersListTypesResponse, error) {
8496	gensupport.SetOptions(c.urlParams_, opts...)
8497	res, err := c.doRequest("json")
8498	if res != nil && res.StatusCode == http.StatusNotModified {
8499		if res.Body != nil {
8500			res.Body.Close()
8501		}
8502		return nil, &googleapi.Error{
8503			Code:   res.StatusCode,
8504			Header: res.Header,
8505		}
8506	}
8507	if err != nil {
8508		return nil, err
8509	}
8510	defer googleapi.CloseBody(res)
8511	if err := googleapi.CheckResponse(res); err != nil {
8512		return nil, err
8513	}
8514	ret := &TypeProvidersListTypesResponse{
8515		ServerResponse: googleapi.ServerResponse{
8516			Header:         res.Header,
8517			HTTPStatusCode: res.StatusCode,
8518		},
8519	}
8520	target := &ret
8521	if err := gensupport.DecodeResponse(target, res); err != nil {
8522		return nil, err
8523	}
8524	return ret, nil
8525	// {
8526	//   "description": "Lists all the type info for a TypeProvider.",
8527	//   "httpMethod": "GET",
8528	//   "id": "deploymentmanager.typeProviders.listTypes",
8529	//   "parameterOrder": [
8530	//     "project",
8531	//     "typeProvider"
8532	//   ],
8533	//   "parameters": {
8534	//     "filter": {
8535	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
8536	//       "location": "query",
8537	//       "type": "string"
8538	//     },
8539	//     "maxResults": {
8540	//       "default": "500",
8541	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
8542	//       "format": "uint32",
8543	//       "location": "query",
8544	//       "minimum": "0",
8545	//       "type": "integer"
8546	//     },
8547	//     "orderBy": {
8548	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
8549	//       "location": "query",
8550	//       "type": "string"
8551	//     },
8552	//     "pageToken": {
8553	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
8554	//       "location": "query",
8555	//       "type": "string"
8556	//     },
8557	//     "project": {
8558	//       "description": "The project ID for this request.",
8559	//       "location": "path",
8560	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
8561	//       "required": true,
8562	//       "type": "string"
8563	//     },
8564	//     "typeProvider": {
8565	//       "description": "The name of the type provider for this request.",
8566	//       "location": "path",
8567	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
8568	//       "required": true,
8569	//       "type": "string"
8570	//     }
8571	//   },
8572	//   "path": "{project}/global/typeProviders/{typeProvider}/types",
8573	//   "response": {
8574	//     "$ref": "TypeProvidersListTypesResponse"
8575	//   },
8576	//   "scopes": [
8577	//     "https://www.googleapis.com/auth/cloud-platform",
8578	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
8579	//     "https://www.googleapis.com/auth/ndev.cloudman",
8580	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
8581	//   ]
8582	// }
8583
8584}
8585
8586// Pages invokes f for each page of results.
8587// A non-nil error returned from f will halt the iteration.
8588// The provided context supersedes any context provided to the Context method.
8589func (c *TypeProvidersListTypesCall) Pages(ctx context.Context, f func(*TypeProvidersListTypesResponse) error) error {
8590	c.ctx_ = ctx
8591	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
8592	for {
8593		x, err := c.Do()
8594		if err != nil {
8595			return err
8596		}
8597		if err := f(x); err != nil {
8598			return err
8599		}
8600		if x.NextPageToken == "" {
8601			return nil
8602		}
8603		c.PageToken(x.NextPageToken)
8604	}
8605}
8606
8607// method id "deploymentmanager.typeProviders.patch":
8608
8609type TypeProvidersPatchCall struct {
8610	s            *Service
8611	project      string
8612	typeProvider string
8613	typeprovider *TypeProvider
8614	urlParams_   gensupport.URLParams
8615	ctx_         context.Context
8616	header_      http.Header
8617}
8618
8619// Patch: Patches a type provider.
8620func (r *TypeProvidersService) Patch(project string, typeProvider string, typeprovider *TypeProvider) *TypeProvidersPatchCall {
8621	c := &TypeProvidersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8622	c.project = project
8623	c.typeProvider = typeProvider
8624	c.typeprovider = typeprovider
8625	return c
8626}
8627
8628// Fields allows partial responses to be retrieved. See
8629// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8630// for more information.
8631func (c *TypeProvidersPatchCall) Fields(s ...googleapi.Field) *TypeProvidersPatchCall {
8632	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8633	return c
8634}
8635
8636// Context sets the context to be used in this call's Do method. Any
8637// pending HTTP request will be aborted if the provided context is
8638// canceled.
8639func (c *TypeProvidersPatchCall) Context(ctx context.Context) *TypeProvidersPatchCall {
8640	c.ctx_ = ctx
8641	return c
8642}
8643
8644// Header returns an http.Header that can be modified by the caller to
8645// add HTTP headers to the request.
8646func (c *TypeProvidersPatchCall) Header() http.Header {
8647	if c.header_ == nil {
8648		c.header_ = make(http.Header)
8649	}
8650	return c.header_
8651}
8652
8653func (c *TypeProvidersPatchCall) doRequest(alt string) (*http.Response, error) {
8654	reqHeaders := make(http.Header)
8655	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
8656	for k, v := range c.header_ {
8657		reqHeaders[k] = v
8658	}
8659	reqHeaders.Set("User-Agent", c.s.userAgent())
8660	var body io.Reader = nil
8661	body, err := googleapi.WithoutDataWrapper.JSONReader(c.typeprovider)
8662	if err != nil {
8663		return nil, err
8664	}
8665	reqHeaders.Set("Content-Type", "application/json")
8666	c.urlParams_.Set("alt", alt)
8667	c.urlParams_.Set("prettyPrint", "false")
8668	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/typeProviders/{typeProvider}")
8669	urls += "?" + c.urlParams_.Encode()
8670	req, err := http.NewRequest("PATCH", urls, body)
8671	if err != nil {
8672		return nil, err
8673	}
8674	req.Header = reqHeaders
8675	googleapi.Expand(req.URL, map[string]string{
8676		"project":      c.project,
8677		"typeProvider": c.typeProvider,
8678	})
8679	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8680}
8681
8682// Do executes the "deploymentmanager.typeProviders.patch" call.
8683// Exactly one of *Operation or error will be non-nil. Any non-2xx
8684// status code is an error. Response headers are in either
8685// *Operation.ServerResponse.Header or (if a response was returned at
8686// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8687// to check whether the returned error was because
8688// http.StatusNotModified was returned.
8689func (c *TypeProvidersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
8690	gensupport.SetOptions(c.urlParams_, opts...)
8691	res, err := c.doRequest("json")
8692	if res != nil && res.StatusCode == http.StatusNotModified {
8693		if res.Body != nil {
8694			res.Body.Close()
8695		}
8696		return nil, &googleapi.Error{
8697			Code:   res.StatusCode,
8698			Header: res.Header,
8699		}
8700	}
8701	if err != nil {
8702		return nil, err
8703	}
8704	defer googleapi.CloseBody(res)
8705	if err := googleapi.CheckResponse(res); err != nil {
8706		return nil, err
8707	}
8708	ret := &Operation{
8709		ServerResponse: googleapi.ServerResponse{
8710			Header:         res.Header,
8711			HTTPStatusCode: res.StatusCode,
8712		},
8713	}
8714	target := &ret
8715	if err := gensupport.DecodeResponse(target, res); err != nil {
8716		return nil, err
8717	}
8718	return ret, nil
8719	// {
8720	//   "description": "Patches a type provider.",
8721	//   "httpMethod": "PATCH",
8722	//   "id": "deploymentmanager.typeProviders.patch",
8723	//   "parameterOrder": [
8724	//     "project",
8725	//     "typeProvider"
8726	//   ],
8727	//   "parameters": {
8728	//     "project": {
8729	//       "description": "The project ID for this request.",
8730	//       "location": "path",
8731	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
8732	//       "required": true,
8733	//       "type": "string"
8734	//     },
8735	//     "typeProvider": {
8736	//       "description": "The name of the type provider for this request.",
8737	//       "location": "path",
8738	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
8739	//       "required": true,
8740	//       "type": "string"
8741	//     }
8742	//   },
8743	//   "path": "{project}/global/typeProviders/{typeProvider}",
8744	//   "request": {
8745	//     "$ref": "TypeProvider"
8746	//   },
8747	//   "response": {
8748	//     "$ref": "Operation"
8749	//   },
8750	//   "scopes": [
8751	//     "https://www.googleapis.com/auth/cloud-platform",
8752	//     "https://www.googleapis.com/auth/ndev.cloudman"
8753	//   ]
8754	// }
8755
8756}
8757
8758// method id "deploymentmanager.typeProviders.update":
8759
8760type TypeProvidersUpdateCall struct {
8761	s            *Service
8762	project      string
8763	typeProvider string
8764	typeprovider *TypeProvider
8765	urlParams_   gensupport.URLParams
8766	ctx_         context.Context
8767	header_      http.Header
8768}
8769
8770// Update: Updates a type provider.
8771func (r *TypeProvidersService) Update(project string, typeProvider string, typeprovider *TypeProvider) *TypeProvidersUpdateCall {
8772	c := &TypeProvidersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8773	c.project = project
8774	c.typeProvider = typeProvider
8775	c.typeprovider = typeprovider
8776	return c
8777}
8778
8779// Fields allows partial responses to be retrieved. See
8780// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8781// for more information.
8782func (c *TypeProvidersUpdateCall) Fields(s ...googleapi.Field) *TypeProvidersUpdateCall {
8783	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8784	return c
8785}
8786
8787// Context sets the context to be used in this call's Do method. Any
8788// pending HTTP request will be aborted if the provided context is
8789// canceled.
8790func (c *TypeProvidersUpdateCall) Context(ctx context.Context) *TypeProvidersUpdateCall {
8791	c.ctx_ = ctx
8792	return c
8793}
8794
8795// Header returns an http.Header that can be modified by the caller to
8796// add HTTP headers to the request.
8797func (c *TypeProvidersUpdateCall) Header() http.Header {
8798	if c.header_ == nil {
8799		c.header_ = make(http.Header)
8800	}
8801	return c.header_
8802}
8803
8804func (c *TypeProvidersUpdateCall) doRequest(alt string) (*http.Response, error) {
8805	reqHeaders := make(http.Header)
8806	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
8807	for k, v := range c.header_ {
8808		reqHeaders[k] = v
8809	}
8810	reqHeaders.Set("User-Agent", c.s.userAgent())
8811	var body io.Reader = nil
8812	body, err := googleapi.WithoutDataWrapper.JSONReader(c.typeprovider)
8813	if err != nil {
8814		return nil, err
8815	}
8816	reqHeaders.Set("Content-Type", "application/json")
8817	c.urlParams_.Set("alt", alt)
8818	c.urlParams_.Set("prettyPrint", "false")
8819	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/typeProviders/{typeProvider}")
8820	urls += "?" + c.urlParams_.Encode()
8821	req, err := http.NewRequest("PUT", urls, body)
8822	if err != nil {
8823		return nil, err
8824	}
8825	req.Header = reqHeaders
8826	googleapi.Expand(req.URL, map[string]string{
8827		"project":      c.project,
8828		"typeProvider": c.typeProvider,
8829	})
8830	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8831}
8832
8833// Do executes the "deploymentmanager.typeProviders.update" call.
8834// Exactly one of *Operation or error will be non-nil. Any non-2xx
8835// status code is an error. Response headers are in either
8836// *Operation.ServerResponse.Header or (if a response was returned at
8837// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8838// to check whether the returned error was because
8839// http.StatusNotModified was returned.
8840func (c *TypeProvidersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
8841	gensupport.SetOptions(c.urlParams_, opts...)
8842	res, err := c.doRequest("json")
8843	if res != nil && res.StatusCode == http.StatusNotModified {
8844		if res.Body != nil {
8845			res.Body.Close()
8846		}
8847		return nil, &googleapi.Error{
8848			Code:   res.StatusCode,
8849			Header: res.Header,
8850		}
8851	}
8852	if err != nil {
8853		return nil, err
8854	}
8855	defer googleapi.CloseBody(res)
8856	if err := googleapi.CheckResponse(res); err != nil {
8857		return nil, err
8858	}
8859	ret := &Operation{
8860		ServerResponse: googleapi.ServerResponse{
8861			Header:         res.Header,
8862			HTTPStatusCode: res.StatusCode,
8863		},
8864	}
8865	target := &ret
8866	if err := gensupport.DecodeResponse(target, res); err != nil {
8867		return nil, err
8868	}
8869	return ret, nil
8870	// {
8871	//   "description": "Updates a type provider.",
8872	//   "httpMethod": "PUT",
8873	//   "id": "deploymentmanager.typeProviders.update",
8874	//   "parameterOrder": [
8875	//     "project",
8876	//     "typeProvider"
8877	//   ],
8878	//   "parameters": {
8879	//     "project": {
8880	//       "description": "The project ID for this request.",
8881	//       "location": "path",
8882	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
8883	//       "required": true,
8884	//       "type": "string"
8885	//     },
8886	//     "typeProvider": {
8887	//       "description": "The name of the type provider for this request.",
8888	//       "location": "path",
8889	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
8890	//       "required": true,
8891	//       "type": "string"
8892	//     }
8893	//   },
8894	//   "path": "{project}/global/typeProviders/{typeProvider}",
8895	//   "request": {
8896	//     "$ref": "TypeProvider"
8897	//   },
8898	//   "response": {
8899	//     "$ref": "Operation"
8900	//   },
8901	//   "scopes": [
8902	//     "https://www.googleapis.com/auth/cloud-platform",
8903	//     "https://www.googleapis.com/auth/ndev.cloudman"
8904	//   ]
8905	// }
8906
8907}
8908
8909// method id "deploymentmanager.types.list":
8910
8911type TypesListCall struct {
8912	s            *Service
8913	project      string
8914	urlParams_   gensupport.URLParams
8915	ifNoneMatch_ string
8916	ctx_         context.Context
8917	header_      http.Header
8918}
8919
8920// List: Lists all resource types for Deployment Manager.
8921func (r *TypesService) List(project string) *TypesListCall {
8922	c := &TypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8923	c.project = project
8924	return c
8925}
8926
8927// Filter sets the optional parameter "filter": A filter expression that
8928// filters resources listed in the response. The expression must specify
8929// the field name, a comparison operator, and the value that you want to
8930// use for filtering. The value must be a string, a number, or a
8931// boolean. The comparison operator must be either `=`, `!=`, `>`, or
8932// `<`.
8933//
8934// For example, if you are filtering Compute Engine instances, you can
8935// exclude instances named `example-instance` by specifying `name !=
8936// example-instance`.
8937//
8938// You can also filter nested fields. For example, you could specify
8939// `scheduling.automaticRestart = false` to include instances only if
8940// they are not scheduled for automatic restarts. You can use filtering
8941// on nested fields to filter based on resource labels.
8942//
8943// To filter on multiple expressions, provide each separate expression
8944// within parentheses. For example: ``` (scheduling.automaticRestart =
8945// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
8946// is an `AND` expression. However, you can include `AND` and `OR`
8947// expressions explicitly. For example: ``` (cpuPlatform = "Intel
8948// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
8949// (scheduling.automaticRestart = true) ```
8950func (c *TypesListCall) Filter(filter string) *TypesListCall {
8951	c.urlParams_.Set("filter", filter)
8952	return c
8953}
8954
8955// MaxResults sets the optional parameter "maxResults": The maximum
8956// number of results per page that should be returned. If the number of
8957// available results is larger than `maxResults`, Compute Engine returns
8958// a `nextPageToken` that can be used to get the next page of results in
8959// subsequent list requests. Acceptable values are `0` to `500`,
8960// inclusive. (Default: `500`)
8961func (c *TypesListCall) MaxResults(maxResults int64) *TypesListCall {
8962	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
8963	return c
8964}
8965
8966// OrderBy sets the optional parameter "orderBy": Sorts list results by
8967// a certain order. By default, results are returned in alphanumerical
8968// order based on the resource name.
8969//
8970// You can also sort results in descending order based on the creation
8971// timestamp using `orderBy="creationTimestamp desc". This sorts
8972// results based on the `creationTimestamp` field in reverse
8973// chronological order (newest result first). Use this to sort resources
8974// like operations so that the newest operation is returned
8975// first.
8976//
8977// Currently, only sorting by `name` or `creationTimestamp desc` is
8978// supported.
8979func (c *TypesListCall) OrderBy(orderBy string) *TypesListCall {
8980	c.urlParams_.Set("orderBy", orderBy)
8981	return c
8982}
8983
8984// PageToken sets the optional parameter "pageToken": Specifies a page
8985// token to use. Set `pageToken` to the `nextPageToken` returned by a
8986// previous list request to get the next page of results.
8987func (c *TypesListCall) PageToken(pageToken string) *TypesListCall {
8988	c.urlParams_.Set("pageToken", pageToken)
8989	return c
8990}
8991
8992// Fields allows partial responses to be retrieved. See
8993// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8994// for more information.
8995func (c *TypesListCall) Fields(s ...googleapi.Field) *TypesListCall {
8996	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8997	return c
8998}
8999
9000// IfNoneMatch sets the optional parameter which makes the operation
9001// fail if the object's ETag matches the given value. This is useful for
9002// getting updates only after the object has changed since the last
9003// request. Use googleapi.IsNotModified to check whether the response
9004// error from Do is the result of In-None-Match.
9005func (c *TypesListCall) IfNoneMatch(entityTag string) *TypesListCall {
9006	c.ifNoneMatch_ = entityTag
9007	return c
9008}
9009
9010// Context sets the context to be used in this call's Do method. Any
9011// pending HTTP request will be aborted if the provided context is
9012// canceled.
9013func (c *TypesListCall) Context(ctx context.Context) *TypesListCall {
9014	c.ctx_ = ctx
9015	return c
9016}
9017
9018// Header returns an http.Header that can be modified by the caller to
9019// add HTTP headers to the request.
9020func (c *TypesListCall) Header() http.Header {
9021	if c.header_ == nil {
9022		c.header_ = make(http.Header)
9023	}
9024	return c.header_
9025}
9026
9027func (c *TypesListCall) doRequest(alt string) (*http.Response, error) {
9028	reqHeaders := make(http.Header)
9029	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
9030	for k, v := range c.header_ {
9031		reqHeaders[k] = v
9032	}
9033	reqHeaders.Set("User-Agent", c.s.userAgent())
9034	if c.ifNoneMatch_ != "" {
9035		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9036	}
9037	var body io.Reader = nil
9038	c.urlParams_.Set("alt", alt)
9039	c.urlParams_.Set("prettyPrint", "false")
9040	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/types")
9041	urls += "?" + c.urlParams_.Encode()
9042	req, err := http.NewRequest("GET", urls, body)
9043	if err != nil {
9044		return nil, err
9045	}
9046	req.Header = reqHeaders
9047	googleapi.Expand(req.URL, map[string]string{
9048		"project": c.project,
9049	})
9050	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9051}
9052
9053// Do executes the "deploymentmanager.types.list" call.
9054// Exactly one of *TypesListResponse or error will be non-nil. Any
9055// non-2xx status code is an error. Response headers are in either
9056// *TypesListResponse.ServerResponse.Header or (if a response was
9057// returned at all) in error.(*googleapi.Error).Header. Use
9058// googleapi.IsNotModified to check whether the returned error was
9059// because http.StatusNotModified was returned.
9060func (c *TypesListCall) Do(opts ...googleapi.CallOption) (*TypesListResponse, error) {
9061	gensupport.SetOptions(c.urlParams_, opts...)
9062	res, err := c.doRequest("json")
9063	if res != nil && res.StatusCode == http.StatusNotModified {
9064		if res.Body != nil {
9065			res.Body.Close()
9066		}
9067		return nil, &googleapi.Error{
9068			Code:   res.StatusCode,
9069			Header: res.Header,
9070		}
9071	}
9072	if err != nil {
9073		return nil, err
9074	}
9075	defer googleapi.CloseBody(res)
9076	if err := googleapi.CheckResponse(res); err != nil {
9077		return nil, err
9078	}
9079	ret := &TypesListResponse{
9080		ServerResponse: googleapi.ServerResponse{
9081			Header:         res.Header,
9082			HTTPStatusCode: res.StatusCode,
9083		},
9084	}
9085	target := &ret
9086	if err := gensupport.DecodeResponse(target, res); err != nil {
9087		return nil, err
9088	}
9089	return ret, nil
9090	// {
9091	//   "description": "Lists all resource types for Deployment Manager.",
9092	//   "httpMethod": "GET",
9093	//   "id": "deploymentmanager.types.list",
9094	//   "parameterOrder": [
9095	//     "project"
9096	//   ],
9097	//   "parameters": {
9098	//     "filter": {
9099	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
9100	//       "location": "query",
9101	//       "type": "string"
9102	//     },
9103	//     "maxResults": {
9104	//       "default": "500",
9105	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
9106	//       "format": "uint32",
9107	//       "location": "query",
9108	//       "minimum": "0",
9109	//       "type": "integer"
9110	//     },
9111	//     "orderBy": {
9112	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
9113	//       "location": "query",
9114	//       "type": "string"
9115	//     },
9116	//     "pageToken": {
9117	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
9118	//       "location": "query",
9119	//       "type": "string"
9120	//     },
9121	//     "project": {
9122	//       "description": "The project ID for this request.",
9123	//       "location": "path",
9124	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))",
9125	//       "required": true,
9126	//       "type": "string"
9127	//     }
9128	//   },
9129	//   "path": "{project}/global/types",
9130	//   "response": {
9131	//     "$ref": "TypesListResponse"
9132	//   },
9133	//   "scopes": [
9134	//     "https://www.googleapis.com/auth/cloud-platform",
9135	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
9136	//     "https://www.googleapis.com/auth/ndev.cloudman",
9137	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
9138	//   ]
9139	// }
9140
9141}
9142
9143// Pages invokes f for each page of results.
9144// A non-nil error returned from f will halt the iteration.
9145// The provided context supersedes any context provided to the Context method.
9146func (c *TypesListCall) Pages(ctx context.Context, f func(*TypesListResponse) error) error {
9147	c.ctx_ = ctx
9148	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
9149	for {
9150		x, err := c.Do()
9151		if err != nil {
9152			return err
9153		}
9154		if err := f(x); err != nil {
9155			return err
9156		}
9157		if x.NextPageToken == "" {
9158			return nil
9159		}
9160		c.PageToken(x.NextPageToken)
9161	}
9162}
9163