1// Copyright 2021 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package deploymentmanager provides access to the Cloud Deployment Manager V2 API.
8//
9// For product documentation, see: https://cloud.google.com/deployment-manager
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/deploymentmanager/v0.alpha"
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/v0.alpha"
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:alpha"
79const apiName = "deploymentmanager"
80const apiVersion = "alpha"
81const basePath = "https://deploymentmanager.googleapis.com/"
82const mtlsBasePath = "https://deploymentmanager.mtls.googleapis.com/"
83
84// OAuth2 scopes used by this API.
85const (
86	// See, edit, configure, and delete your Google Cloud data and see the
87	// email address for your Google Account.
88	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
89
90	// View your data across Google Cloud services and see the email address
91	// of your Google Account
92	CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only"
93
94	// View and manage your Google Cloud Platform management resources and
95	// deployment status information
96	NdevCloudmanScope = "https://www.googleapis.com/auth/ndev.cloudman"
97
98	// View your Google Cloud Platform management resources and deployment
99	// status information
100	NdevCloudmanReadonlyScope = "https://www.googleapis.com/auth/ndev.cloudman.readonly"
101)
102
103// NewService creates a new Service.
104func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
105	scopesOption := option.WithScopes(
106		"https://www.googleapis.com/auth/cloud-platform",
107		"https://www.googleapis.com/auth/cloud-platform.read-only",
108		"https://www.googleapis.com/auth/ndev.cloudman",
109		"https://www.googleapis.com/auth/ndev.cloudman.readonly",
110	)
111	// NOTE: prepend, so we don't override user-specified scopes.
112	opts = append([]option.ClientOption{scopesOption}, opts...)
113	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
114	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
115	client, endpoint, err := htransport.NewClient(ctx, opts...)
116	if err != nil {
117		return nil, err
118	}
119	s, err := New(client)
120	if err != nil {
121		return nil, err
122	}
123	if endpoint != "" {
124		s.BasePath = endpoint
125	}
126	return s, nil
127}
128
129// New creates a new Service. It uses the provided http.Client for requests.
130//
131// Deprecated: please use NewService instead.
132// To provide a custom HTTP client, use option.WithHTTPClient.
133// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
134func New(client *http.Client) (*Service, error) {
135	if client == nil {
136		return nil, errors.New("client is nil")
137	}
138	s := &Service{client: client, BasePath: basePath}
139	s.CompositeTypes = NewCompositeTypesService(s)
140	s.Deployments = NewDeploymentsService(s)
141	s.Manifests = NewManifestsService(s)
142	s.Operations = NewOperationsService(s)
143	s.Resources = NewResourcesService(s)
144	s.TypeProviders = NewTypeProvidersService(s)
145	s.Types = NewTypesService(s)
146	return s, nil
147}
148
149type Service struct {
150	client    *http.Client
151	BasePath  string // API endpoint base URL
152	UserAgent string // optional additional User-Agent fragment
153
154	CompositeTypes *CompositeTypesService
155
156	Deployments *DeploymentsService
157
158	Manifests *ManifestsService
159
160	Operations *OperationsService
161
162	Resources *ResourcesService
163
164	TypeProviders *TypeProvidersService
165
166	Types *TypesService
167}
168
169func (s *Service) userAgent() string {
170	if s.UserAgent == "" {
171		return googleapi.UserAgent
172	}
173	return googleapi.UserAgent + " " + s.UserAgent
174}
175
176func NewCompositeTypesService(s *Service) *CompositeTypesService {
177	rs := &CompositeTypesService{s: s}
178	return rs
179}
180
181type CompositeTypesService struct {
182	s *Service
183}
184
185func NewDeploymentsService(s *Service) *DeploymentsService {
186	rs := &DeploymentsService{s: s}
187	return rs
188}
189
190type DeploymentsService struct {
191	s *Service
192}
193
194func NewManifestsService(s *Service) *ManifestsService {
195	rs := &ManifestsService{s: s}
196	return rs
197}
198
199type ManifestsService struct {
200	s *Service
201}
202
203func NewOperationsService(s *Service) *OperationsService {
204	rs := &OperationsService{s: s}
205	return rs
206}
207
208type OperationsService struct {
209	s *Service
210}
211
212func NewResourcesService(s *Service) *ResourcesService {
213	rs := &ResourcesService{s: s}
214	return rs
215}
216
217type ResourcesService struct {
218	s *Service
219}
220
221func NewTypeProvidersService(s *Service) *TypeProvidersService {
222	rs := &TypeProvidersService{s: s}
223	return rs
224}
225
226type TypeProvidersService struct {
227	s *Service
228}
229
230func NewTypesService(s *Service) *TypesService {
231	rs := &TypesService{s: s}
232	return rs
233}
234
235type TypesService struct {
236	s *Service
237}
238
239// AsyncOptions: Async options that determine when a resource should
240// finish.
241type AsyncOptions struct {
242	// MethodMatch: Method regex where this policy will apply.
243	MethodMatch string `json:"methodMatch,omitempty"`
244
245	// PollingOptions: Deployment manager will poll instances for this API
246	// resource setting a RUNNING state, and blocking until polling
247	// conditions tell whether the resource is completed or failed.
248	PollingOptions *PollingOptions `json:"pollingOptions,omitempty"`
249
250	// ForceSendFields is a list of field names (e.g. "MethodMatch") to
251	// unconditionally include in API requests. By default, fields with
252	// empty or default values are omitted from API requests. However, any
253	// non-pointer, non-interface field appearing in ForceSendFields will be
254	// sent to the server regardless of whether the field is empty or not.
255	// This may be used to include empty fields in Patch requests.
256	ForceSendFields []string `json:"-"`
257
258	// NullFields is a list of field names (e.g. "MethodMatch") to include
259	// in API requests with the JSON null value. By default, fields with
260	// empty values are omitted from API requests. However, any field with
261	// an empty value appearing in NullFields will be sent to the server as
262	// null. It is an error if a field in this list has a non-empty value.
263	// This may be used to include null fields in Patch requests.
264	NullFields []string `json:"-"`
265}
266
267func (s *AsyncOptions) MarshalJSON() ([]byte, error) {
268	type NoMethod AsyncOptions
269	raw := NoMethod(*s)
270	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
271}
272
273// AuditConfig: Specifies the audit configuration for a service. The
274// configuration determines which permission types are logged, and what
275// identities, if any, are exempted from logging. An AuditConfig must
276// have one or more AuditLogConfigs. If there are AuditConfigs for both
277// `allServices` and a specific service, the union of the two
278// AuditConfigs is used for that service: the log_types specified in
279// each AuditConfig are enabled, and the exempted_members in each
280// AuditLogConfig are exempted. Example Policy with multiple
281// AuditConfigs: { "audit_configs": [ { "service": "allServices",
282// "audit_log_configs": [ { "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" ] } ] } ] } For sampleservice, this policy
288// enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts
289// jose@example.com from DATA_READ logging, and aliya@example.com from
290// DATA_WRITE logging.
291type AuditConfig struct {
292	// AuditLogConfigs: The configuration for logging of each type of
293	// permission.
294	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
295
296	// Service: Specifies a service that will be enabled for audit logging.
297	// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
298	// `allServices` is a special value that covers all services.
299	Service string `json:"service,omitempty"`
300
301	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
302	// unconditionally include in API requests. By default, fields with
303	// empty or default values are omitted from API requests. However, any
304	// non-pointer, non-interface field appearing in ForceSendFields will be
305	// sent to the server regardless of whether the field is empty or not.
306	// This may be used to include empty fields in Patch requests.
307	ForceSendFields []string `json:"-"`
308
309	// NullFields is a list of field names (e.g. "AuditLogConfigs") to
310	// include in API requests with the JSON null value. By default, fields
311	// with empty values are omitted from API requests. However, any field
312	// with an empty value appearing in NullFields will be sent to the
313	// server as null. It is an error if a field in this list has a
314	// non-empty value. This may be used to include null fields in Patch
315	// requests.
316	NullFields []string `json:"-"`
317}
318
319func (s *AuditConfig) MarshalJSON() ([]byte, error) {
320	type NoMethod AuditConfig
321	raw := NoMethod(*s)
322	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
323}
324
325// AuditLogConfig: Provides the configuration for logging a type of
326// permissions. Example: { "audit_log_configs": [ { "log_type":
327// "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, {
328// "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and
329// 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ
330// logging.
331type AuditLogConfig struct {
332	// ExemptedMembers: Specifies the identities that do not cause logging
333	// for this type of permission. Follows the same format of
334	// Binding.members.
335	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
336
337	// LogType: The log type that this config enables.
338	//
339	// Possible values:
340	//   "LOG_TYPE_UNSPECIFIED" - Default case. Should never be this.
341	//   "ADMIN_READ" - Admin reads. Example: CloudIAM getIamPolicy
342	//   "DATA_WRITE" - Data writes. Example: CloudSQL Users create
343	//   "DATA_READ" - Data reads. Example: CloudSQL Users list
344	LogType string `json:"logType,omitempty"`
345
346	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
347	// unconditionally include in API requests. By default, fields with
348	// empty or default values are omitted from API requests. However, any
349	// non-pointer, non-interface field appearing in ForceSendFields will be
350	// sent to the server regardless of whether the field is empty or not.
351	// This may be used to include empty fields in Patch requests.
352	ForceSendFields []string `json:"-"`
353
354	// NullFields is a list of field names (e.g. "ExemptedMembers") to
355	// include in API requests with the JSON null value. By default, fields
356	// with empty values are omitted from API requests. However, any field
357	// with an empty value appearing in NullFields will be sent to the
358	// server as null. It is an error if a field in this list has a
359	// non-empty value. This may be used to include null fields in Patch
360	// requests.
361	NullFields []string `json:"-"`
362}
363
364func (s *AuditLogConfig) MarshalJSON() ([]byte, error) {
365	type NoMethod AuditLogConfig
366	raw := NoMethod(*s)
367	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
368}
369
370// BaseType: BaseType that describes a service-backed Type.
371type BaseType struct {
372	// CollectionOverrides: Allows resource handling overrides for specific
373	// collections
374	CollectionOverrides []*CollectionOverride `json:"collectionOverrides,omitempty"`
375
376	// Credential: Credential used when interacting with this type.
377	Credential *Credential `json:"credential,omitempty"`
378
379	// DescriptorUrl: Descriptor Url for the this type.
380	DescriptorUrl string `json:"descriptorUrl,omitempty"`
381
382	// Options: Options to apply when handling any resources in this
383	// service.
384	Options *Options `json:"options,omitempty"`
385
386	// ForceSendFields is a list of field names (e.g. "CollectionOverrides")
387	// to unconditionally include in API requests. By default, fields with
388	// empty or default values are omitted from API requests. However, any
389	// non-pointer, non-interface field appearing in ForceSendFields will be
390	// sent to the server regardless of whether the field is empty or not.
391	// This may be used to include empty fields in Patch requests.
392	ForceSendFields []string `json:"-"`
393
394	// NullFields is a list of field names (e.g. "CollectionOverrides") to
395	// include in API requests with the JSON null value. By default, fields
396	// with empty values are omitted from API requests. However, any field
397	// with an empty value appearing in NullFields will be sent to the
398	// server as null. It is an error if a field in this list has a
399	// non-empty value. This may be used to include null fields in Patch
400	// requests.
401	NullFields []string `json:"-"`
402}
403
404func (s *BaseType) MarshalJSON() ([]byte, error) {
405	type NoMethod BaseType
406	raw := NoMethod(*s)
407	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
408}
409
410// BasicAuth: Basic Auth used as a credential.
411type BasicAuth struct {
412	Password string `json:"password,omitempty"`
413
414	User string `json:"user,omitempty"`
415
416	// ForceSendFields is a list of field names (e.g. "Password") to
417	// unconditionally include in API requests. By default, fields with
418	// empty or default values are omitted from API requests. However, any
419	// non-pointer, non-interface field appearing in ForceSendFields will be
420	// sent to the server regardless of whether the field is empty or not.
421	// This may be used to include empty fields in Patch requests.
422	ForceSendFields []string `json:"-"`
423
424	// NullFields is a list of field names (e.g. "Password") to include in
425	// API requests with the JSON null value. By default, fields with empty
426	// values are omitted from API requests. However, any field with an
427	// empty value appearing in NullFields will be sent to the server as
428	// null. It is an error if a field in this list has a non-empty value.
429	// This may be used to include null fields in Patch requests.
430	NullFields []string `json:"-"`
431}
432
433func (s *BasicAuth) MarshalJSON() ([]byte, error) {
434	type NoMethod BasicAuth
435	raw := NoMethod(*s)
436	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
437}
438
439// Binding: Associates `members` with a `role`.
440type Binding struct {
441	// Condition: The condition that is associated with this binding. If the
442	// condition evaluates to `true`, then this binding applies to the
443	// current request. If the condition evaluates to `false`, then this
444	// binding does not apply to the current request. However, a different
445	// role binding might grant the same role to one or more of the members
446	// in this binding. To learn which resources support conditions in their
447	// IAM policies, see the IAM documentation
448	// (https://cloud.google.com/iam/help/conditions/resource-policies).
449	Condition *Expr `json:"condition,omitempty"`
450
451	// Members: Specifies the identities requesting access for a Cloud
452	// Platform resource. `members` can have the following values: *
453	// `allUsers`: A special identifier that represents anyone who is on the
454	// internet; with or without a Google account. *
455	// `allAuthenticatedUsers`: A special identifier that represents anyone
456	// who is authenticated with a Google account or a service account. *
457	// `user:{emailid}`: An email address that represents a specific Google
458	// account. For example, `alice@example.com` . *
459	// `serviceAccount:{emailid}`: An email address that represents a
460	// service account. For example,
461	// `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An
462	// email address that represents a Google group. For example,
463	// `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An
464	// email address (plus unique identifier) representing a user that has
465	// been recently deleted. For example,
466	// `alice@example.com?uid=123456789012345678901`. If the user is
467	// recovered, this value reverts to `user:{emailid}` and the recovered
468	// user retains the role in the binding. *
469	// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
470	// (plus unique identifier) representing a service account that has been
471	// recently deleted. For example,
472	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
473	// If the service account is undeleted, this value reverts to
474	// `serviceAccount:{emailid}` and the undeleted service account retains
475	// the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`:
476	// An email address (plus unique identifier) representing a Google group
477	// that has been recently deleted. For example,
478	// `admins@example.com?uid=123456789012345678901`. If the group is
479	// recovered, this value reverts to `group:{emailid}` and the recovered
480	// group retains the role in the binding. * `domain:{domain}`: The G
481	// Suite domain (primary) that represents all the users of that domain.
482	// For example, `google.com` or `example.com`.
483	Members []string `json:"members,omitempty"`
484
485	// Role: Role that is assigned to `members`. For example,
486	// `roles/viewer`, `roles/editor`, or `roles/owner`.
487	Role string `json:"role,omitempty"`
488
489	// ForceSendFields is a list of field names (e.g. "Condition") to
490	// unconditionally include in API requests. By default, fields with
491	// empty or default values are omitted from API requests. However, any
492	// non-pointer, non-interface field appearing in ForceSendFields will be
493	// sent to the server regardless of whether the field is empty or not.
494	// This may be used to include empty fields in Patch requests.
495	ForceSendFields []string `json:"-"`
496
497	// NullFields is a list of field names (e.g. "Condition") to include in
498	// API requests with the JSON null value. By default, fields with empty
499	// values are omitted from API requests. However, any field with an
500	// empty value appearing in NullFields will be sent to the server as
501	// null. It is an error if a field in this list has a non-empty value.
502	// This may be used to include null fields in Patch requests.
503	NullFields []string `json:"-"`
504}
505
506func (s *Binding) MarshalJSON() ([]byte, error) {
507	type NoMethod Binding
508	raw := NoMethod(*s)
509	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
510}
511
512// CollectionOverride: CollectionOverride allows resource handling
513// overrides for specific resources within a BaseType
514type CollectionOverride struct {
515	// Collection: The collection that identifies this resource within its
516	// service.
517	Collection string `json:"collection,omitempty"`
518
519	// MethodMap: Custom verb method mappings to support unordered list API
520	// mappings.
521	MethodMap *MethodMap `json:"methodMap,omitempty"`
522
523	// Options: The options to apply to this resource-level override
524	Options *Options `json:"options,omitempty"`
525
526	// ForceSendFields is a list of field names (e.g. "Collection") to
527	// unconditionally include in API requests. By default, fields with
528	// empty or default values are omitted from API requests. However, any
529	// non-pointer, non-interface field appearing in ForceSendFields will be
530	// sent to the server regardless of whether the field is empty or not.
531	// This may be used to include empty fields in Patch requests.
532	ForceSendFields []string `json:"-"`
533
534	// NullFields is a list of field names (e.g. "Collection") to include in
535	// API requests with the JSON null value. By default, fields with empty
536	// values are omitted from API requests. However, any field with an
537	// empty value appearing in NullFields will be sent to the server as
538	// null. It is an error if a field in this list has a non-empty value.
539	// This may be used to include null fields in Patch requests.
540	NullFields []string `json:"-"`
541}
542
543func (s *CollectionOverride) MarshalJSON() ([]byte, error) {
544	type NoMethod CollectionOverride
545	raw := NoMethod(*s)
546	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
547}
548
549// CompositeType: Holds the composite type.
550type CompositeType struct {
551	// Description: An optional textual description of the resource;
552	// provided by the client when the resource is created.
553	Description string `json:"description,omitempty"`
554
555	Id uint64 `json:"id,omitempty,string"`
556
557	// InsertTime: Output only. Creation timestamp in RFC3339 text format.
558	InsertTime string `json:"insertTime,omitempty"`
559
560	// Labels: Map of labels; provided by the client when the resource is
561	// created or updated. Specifically: Label keys must be between 1 and 63
562	// characters long and must conform to the following regular expression:
563	// `a-z ([-a-z0-9]*[a-z0-9])?` Label values must be between 0 and 63
564	// characters long and must conform to the regular expression
565	// `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
566	Labels []*CompositeTypeLabelEntry `json:"labels,omitempty"`
567
568	// Name: Name of the composite type, must follow the expression:
569	// `[a-z]([-a-z0-9_.]{0,61}[a-z0-9])?`.
570	Name string `json:"name,omitempty"`
571
572	// Operation: Output only. The Operation that most recently ran, or is
573	// currently running, on this composite type.
574	Operation *Operation `json:"operation,omitempty"`
575
576	// SelfLink: Output only. Server defined URL for the resource.
577	SelfLink string `json:"selfLink,omitempty"`
578
579	// Possible values:
580	//   "UNKNOWN_STATUS"
581	//   "DEPRECATED"
582	//   "EXPERIMENTAL"
583	//   "SUPPORTED"
584	Status string `json:"status,omitempty"`
585
586	// TemplateContents: Files for the template type.
587	TemplateContents *TemplateContents `json:"templateContents,omitempty"`
588
589	// ServerResponse contains the HTTP response code and headers from the
590	// server.
591	googleapi.ServerResponse `json:"-"`
592
593	// ForceSendFields is a list of field names (e.g. "Description") to
594	// unconditionally include in API requests. By default, fields with
595	// empty or default values are omitted from API requests. However, any
596	// non-pointer, non-interface field appearing in ForceSendFields will be
597	// sent to the server regardless of whether the field is empty or not.
598	// This may be used to include empty fields in Patch requests.
599	ForceSendFields []string `json:"-"`
600
601	// NullFields is a list of field names (e.g. "Description") to include
602	// in API requests with the JSON null value. By default, fields with
603	// empty values are omitted from API requests. However, any field with
604	// an empty value appearing in NullFields will be sent to the server as
605	// null. It is an error if a field in this list has a non-empty value.
606	// This may be used to include null fields in Patch requests.
607	NullFields []string `json:"-"`
608}
609
610func (s *CompositeType) MarshalJSON() ([]byte, error) {
611	type NoMethod CompositeType
612	raw := NoMethod(*s)
613	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
614}
615
616// CompositeTypeLabelEntry: Label object for CompositeTypes
617type CompositeTypeLabelEntry struct {
618	// Key: Key of the label
619	Key string `json:"key,omitempty"`
620
621	// Value: Value of the label
622	Value string `json:"value,omitempty"`
623
624	// ForceSendFields is a list of field names (e.g. "Key") to
625	// unconditionally include in API requests. By default, fields with
626	// empty or default values are omitted from API requests. However, any
627	// non-pointer, non-interface field appearing in ForceSendFields will be
628	// sent to the server regardless of whether the field is empty or not.
629	// This may be used to include empty fields in Patch requests.
630	ForceSendFields []string `json:"-"`
631
632	// NullFields is a list of field names (e.g. "Key") to include in API
633	// requests with the JSON null value. By default, fields with empty
634	// values are omitted from API requests. However, any field with an
635	// empty value appearing in NullFields will be sent to the server as
636	// null. It is an error if a field in this list has a non-empty value.
637	// This may be used to include null fields in Patch requests.
638	NullFields []string `json:"-"`
639}
640
641func (s *CompositeTypeLabelEntry) MarshalJSON() ([]byte, error) {
642	type NoMethod CompositeTypeLabelEntry
643	raw := NoMethod(*s)
644	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
645}
646
647// CompositeTypesListResponse: A response that returns all Composite
648// Types supported by Deployment Manager
649type CompositeTypesListResponse struct {
650	// CompositeTypes: Output only. A list of resource composite types
651	// supported by Deployment Manager.
652	CompositeTypes []*CompositeType `json:"compositeTypes,omitempty"`
653
654	// NextPageToken: A token used to continue a truncated list request.
655	NextPageToken string `json:"nextPageToken,omitempty"`
656
657	// ServerResponse contains the HTTP response code and headers from the
658	// server.
659	googleapi.ServerResponse `json:"-"`
660
661	// ForceSendFields is a list of field names (e.g. "CompositeTypes") to
662	// unconditionally include in API requests. By default, fields with
663	// empty or default values are omitted from API requests. However, any
664	// non-pointer, non-interface field appearing in ForceSendFields will be
665	// sent to the server regardless of whether the field is empty or not.
666	// This may be used to include empty fields in Patch requests.
667	ForceSendFields []string `json:"-"`
668
669	// NullFields is a list of field names (e.g. "CompositeTypes") to
670	// include in API requests with the JSON null value. By default, fields
671	// with empty values are omitted from API requests. However, any field
672	// with an empty value appearing in NullFields will be sent to the
673	// server as null. It is an error if a field in this list has a
674	// non-empty value. This may be used to include null fields in Patch
675	// requests.
676	NullFields []string `json:"-"`
677}
678
679func (s *CompositeTypesListResponse) MarshalJSON() ([]byte, error) {
680	type NoMethod CompositeTypesListResponse
681	raw := NoMethod(*s)
682	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
683}
684
685type ConfigFile struct {
686	// Content: The contents of the file.
687	Content string `json:"content,omitempty"`
688
689	// ForceSendFields is a list of field names (e.g. "Content") to
690	// unconditionally include in API requests. By default, fields with
691	// empty or default values are omitted from API requests. However, any
692	// non-pointer, non-interface field appearing in ForceSendFields will be
693	// sent to the server regardless of whether the field is empty or not.
694	// This may be used to include empty fields in Patch requests.
695	ForceSendFields []string `json:"-"`
696
697	// NullFields is a list of field names (e.g. "Content") to include in
698	// API requests with the JSON null value. By default, fields with empty
699	// values are omitted from API requests. However, any field with an
700	// empty value appearing in NullFields will be sent to the server as
701	// null. It is an error if a field in this list has a non-empty value.
702	// This may be used to include null fields in Patch requests.
703	NullFields []string `json:"-"`
704}
705
706func (s *ConfigFile) MarshalJSON() ([]byte, error) {
707	type NoMethod ConfigFile
708	raw := NoMethod(*s)
709	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
710}
711
712// Credential: The credential used by Deployment Manager and
713// TypeProvider. Only one of the options is permitted.
714type Credential struct {
715	// BasicAuth: Basic Auth Credential, only used by TypeProvider.
716	BasicAuth *BasicAuth `json:"basicAuth,omitempty"`
717
718	// ServiceAccount: Service Account Credential, only used by Deployment.
719	ServiceAccount *ServiceAccount `json:"serviceAccount,omitempty"`
720
721	// UseProjectDefault: Specify to use the project default credential,
722	// only supported by Deployment.
723	UseProjectDefault bool `json:"useProjectDefault,omitempty"`
724
725	// ForceSendFields is a list of field names (e.g. "BasicAuth") to
726	// unconditionally include in API requests. By default, fields with
727	// empty or default values are omitted from API requests. However, any
728	// non-pointer, non-interface field appearing in ForceSendFields will be
729	// sent to the server regardless of whether the field is empty or not.
730	// This may be used to include empty fields in Patch requests.
731	ForceSendFields []string `json:"-"`
732
733	// NullFields is a list of field names (e.g. "BasicAuth") to include in
734	// API requests with the JSON null value. By default, fields with empty
735	// values are omitted from API requests. However, any field with an
736	// empty value appearing in NullFields will be sent to the server as
737	// null. It is an error if a field in this list has a non-empty value.
738	// This may be used to include null fields in Patch requests.
739	NullFields []string `json:"-"`
740}
741
742func (s *Credential) MarshalJSON() ([]byte, error) {
743	type NoMethod Credential
744	raw := NoMethod(*s)
745	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
746}
747
748type Deployment struct {
749	// Credential: User provided default credential for the deployment.
750	Credential *Credential `json:"credential,omitempty"`
751
752	// Description: An optional user-provided description of the deployment.
753	Description string `json:"description,omitempty"`
754
755	// Fingerprint: Provides a fingerprint to use in requests to modify a
756	// deployment, such as `update()`, `stop()`, and `cancelPreview()`
757	// requests. A fingerprint is a randomly generated value that must be
758	// provided with `update()`, `stop()`, and `cancelPreview()` requests to
759	// perform optimistic locking. This ensures optimistic concurrency so
760	// that only one request happens at a time. The fingerprint is initially
761	// generated by Deployment Manager and changes after every request to
762	// modify data. To get the latest fingerprint value, perform a `get()`
763	// request to a deployment.
764	Fingerprint string `json:"fingerprint,omitempty"`
765
766	Id uint64 `json:"id,omitempty,string"`
767
768	// InsertTime: Output only. Creation timestamp in RFC3339 text format.
769	InsertTime string `json:"insertTime,omitempty"`
770
771	// Labels: Map of One Platform labels; provided by the client when the
772	// resource is created or updated. Specifically: Label keys must be
773	// between 1 and 63 characters long and must conform to the following
774	// regular expression: `a-z ([-a-z0-9]*[a-z0-9])?` Label values must be
775	// between 0 and 63 characters long and must conform to the regular
776	// expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
777	Labels []*DeploymentLabelEntry `json:"labels,omitempty"`
778
779	// Manifest: Output only. URL of the manifest representing the last
780	// manifest that was successfully deployed. If no manifest has been
781	// successfully deployed, this field will be absent.
782	Manifest string `json:"manifest,omitempty"`
783
784	// Name: Name of the resource; provided by the client when the resource
785	// is created. The name must be 1-63 characters long, and comply with
786	// RFC1035. Specifically, the name must be 1-63 characters long and
787	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
788	// the first character must be a lowercase letter, and all following
789	// characters must be a dash, lowercase letter, or digit, except the
790	// last character, which cannot be a dash.
791	Name string `json:"name,omitempty"`
792
793	// Operation: Output only. The Operation that most recently ran, or is
794	// currently running, on this deployment.
795	Operation *Operation `json:"operation,omitempty"`
796
797	// Outputs: Output only. List of outputs from the last manifest that
798	// deployed successfully.
799	Outputs []*DeploymentOutputEntry `json:"outputs,omitempty"`
800
801	// SelfLink: Output only. Server defined URL for the resource.
802	SelfLink string `json:"selfLink,omitempty"`
803
804	// Target: [Input Only] The parameters that define your deployment,
805	// including the deployment configuration and relevant templates.
806	Target *TargetConfiguration `json:"target,omitempty"`
807
808	// Update: Output only. If Deployment Manager is currently updating or
809	// previewing an update to this deployment, the updated configuration
810	// appears here.
811	Update *DeploymentUpdate `json:"update,omitempty"`
812
813	// UpdateTime: Output only. Update timestamp in RFC3339 text format.
814	UpdateTime string `json:"updateTime,omitempty"`
815
816	// ServerResponse contains the HTTP response code and headers from the
817	// server.
818	googleapi.ServerResponse `json:"-"`
819
820	// ForceSendFields is a list of field names (e.g. "Credential") to
821	// unconditionally include in API requests. By default, fields with
822	// empty or default values are omitted from API requests. However, any
823	// non-pointer, non-interface field appearing in ForceSendFields will be
824	// sent to the server regardless of whether the field is empty or not.
825	// This may be used to include empty fields in Patch requests.
826	ForceSendFields []string `json:"-"`
827
828	// NullFields is a list of field names (e.g. "Credential") to include in
829	// API requests with the JSON null value. By default, fields with empty
830	// values are omitted from API requests. However, any field with an
831	// empty value appearing in NullFields will be sent to the server as
832	// null. It is an error if a field in this list has a non-empty value.
833	// This may be used to include null fields in Patch requests.
834	NullFields []string `json:"-"`
835}
836
837func (s *Deployment) MarshalJSON() ([]byte, error) {
838	type NoMethod Deployment
839	raw := NoMethod(*s)
840	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
841}
842
843// DeploymentLabelEntry: Label object for Deployments
844type DeploymentLabelEntry struct {
845	// Key: Key of the label
846	Key string `json:"key,omitempty"`
847
848	// Value: Value of the label
849	Value string `json:"value,omitempty"`
850
851	// ForceSendFields is a list of field names (e.g. "Key") to
852	// unconditionally include in API requests. By default, fields with
853	// empty or default values are omitted from API requests. However, any
854	// non-pointer, non-interface field appearing in ForceSendFields will be
855	// sent to the server regardless of whether the field is empty or not.
856	// This may be used to include empty fields in Patch requests.
857	ForceSendFields []string `json:"-"`
858
859	// NullFields is a list of field names (e.g. "Key") to include in API
860	// requests with the JSON null value. By default, fields with empty
861	// values are omitted from API requests. However, any field with an
862	// empty value appearing in NullFields will be sent to the server as
863	// null. It is an error if a field in this list has a non-empty value.
864	// This may be used to include null fields in Patch requests.
865	NullFields []string `json:"-"`
866}
867
868func (s *DeploymentLabelEntry) MarshalJSON() ([]byte, error) {
869	type NoMethod DeploymentLabelEntry
870	raw := NoMethod(*s)
871	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
872}
873
874// DeploymentOutputEntry: Output object for Deployments
875type DeploymentOutputEntry struct {
876	// Key: Key of the output
877	Key string `json:"key,omitempty"`
878
879	// Value: Value of the label
880	Value string `json:"value,omitempty"`
881
882	// ForceSendFields is a list of field names (e.g. "Key") to
883	// unconditionally include in API requests. By default, fields with
884	// empty or default values are omitted from API requests. However, any
885	// non-pointer, non-interface field appearing in ForceSendFields will be
886	// sent to the server regardless of whether the field is empty or not.
887	// This may be used to include empty fields in Patch requests.
888	ForceSendFields []string `json:"-"`
889
890	// NullFields is a list of field names (e.g. "Key") to include in API
891	// requests with the JSON null value. By default, fields with empty
892	// values are omitted from API requests. However, any field with an
893	// empty value appearing in NullFields will be sent to the server as
894	// null. It is an error if a field in this list has a non-empty value.
895	// This may be used to include null fields in Patch requests.
896	NullFields []string `json:"-"`
897}
898
899func (s *DeploymentOutputEntry) MarshalJSON() ([]byte, error) {
900	type NoMethod DeploymentOutputEntry
901	raw := NoMethod(*s)
902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
903}
904
905type DeploymentUpdate struct {
906	// Credential: Output only. The user-provided default credential to use
907	// when deploying this preview.
908	Credential *Credential `json:"credential,omitempty"`
909
910	// Description: Output only. An optional user-provided description of
911	// the deployment after the current update has been applied.
912	Description string `json:"description,omitempty"`
913
914	// Labels: Map of One Platform labels; provided by the client when the
915	// resource is created or updated. Specifically: Label keys must be
916	// between 1 and 63 characters long and must conform to the following
917	// regular expression: `a-z ([-a-z0-9]*[a-z0-9])?` Label values must be
918	// between 0 and 63 characters long and must conform to the regular
919	// expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
920	Labels []*DeploymentUpdateLabelEntry `json:"labels,omitempty"`
921
922	// Manifest: Output only. URL of the manifest representing the update
923	// configuration of this deployment.
924	Manifest string `json:"manifest,omitempty"`
925
926	// ForceSendFields is a list of field names (e.g. "Credential") to
927	// unconditionally include in API requests. By default, fields with
928	// empty or default values are omitted from API requests. However, any
929	// non-pointer, non-interface field appearing in ForceSendFields will be
930	// sent to the server regardless of whether the field is empty or not.
931	// This may be used to include empty fields in Patch requests.
932	ForceSendFields []string `json:"-"`
933
934	// NullFields is a list of field names (e.g. "Credential") to include in
935	// API requests with the JSON null value. By default, fields with empty
936	// values are omitted from API requests. However, any field with an
937	// empty value appearing in NullFields will be sent to the server as
938	// null. It is an error if a field in this list has a non-empty value.
939	// This may be used to include null fields in Patch requests.
940	NullFields []string `json:"-"`
941}
942
943func (s *DeploymentUpdate) MarshalJSON() ([]byte, error) {
944	type NoMethod DeploymentUpdate
945	raw := NoMethod(*s)
946	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
947}
948
949// DeploymentUpdateLabelEntry: Label object for DeploymentUpdate
950type DeploymentUpdateLabelEntry struct {
951	// Key: Key of the label
952	Key string `json:"key,omitempty"`
953
954	// Value: Value of the label
955	Value string `json:"value,omitempty"`
956
957	// ForceSendFields is a list of field names (e.g. "Key") to
958	// unconditionally include in API requests. By default, fields with
959	// empty or default values are omitted from API requests. However, any
960	// non-pointer, non-interface field appearing in ForceSendFields will be
961	// sent to the server regardless of whether the field is empty or not.
962	// This may be used to include empty fields in Patch requests.
963	ForceSendFields []string `json:"-"`
964
965	// NullFields is a list of field names (e.g. "Key") to include in API
966	// requests with the JSON null value. By default, fields with empty
967	// values are omitted from API requests. However, any field with an
968	// empty value appearing in NullFields will be sent to the server as
969	// null. It is an error if a field in this list has a non-empty value.
970	// This may be used to include null fields in Patch requests.
971	NullFields []string `json:"-"`
972}
973
974func (s *DeploymentUpdateLabelEntry) MarshalJSON() ([]byte, error) {
975	type NoMethod DeploymentUpdateLabelEntry
976	raw := NoMethod(*s)
977	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
978}
979
980type DeploymentsCancelPreviewRequest struct {
981	// Fingerprint: Specifies a fingerprint for `cancelPreview()` requests.
982	// A fingerprint is a randomly generated value that must be provided in
983	// `cancelPreview()` requests to perform optimistic locking. This
984	// ensures optimistic concurrency so that the deployment does not have
985	// conflicting requests (e.g. if someone attempts to make a new update
986	// request while another user attempts to cancel a preview, this would
987	// prevent one of the requests). The fingerprint is initially generated
988	// by Deployment Manager and changes after every request to modify a
989	// deployment. To get the latest fingerprint value, perform a `get()`
990	// request on the deployment.
991	Fingerprint string `json:"fingerprint,omitempty"`
992
993	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
994	// unconditionally include in API requests. By default, fields with
995	// empty or default values are omitted from API requests. However, any
996	// non-pointer, non-interface field appearing in ForceSendFields will be
997	// sent to the server regardless of whether the field is empty or not.
998	// This may be used to include empty fields in Patch requests.
999	ForceSendFields []string `json:"-"`
1000
1001	// NullFields is a list of field names (e.g. "Fingerprint") to include
1002	// in API requests with the JSON null value. By default, fields with
1003	// empty values are omitted from API requests. However, any field with
1004	// an empty value appearing in NullFields will be sent to the server as
1005	// null. It is an error if a field in this list has a non-empty value.
1006	// This may be used to include null fields in Patch requests.
1007	NullFields []string `json:"-"`
1008}
1009
1010func (s *DeploymentsCancelPreviewRequest) MarshalJSON() ([]byte, error) {
1011	type NoMethod DeploymentsCancelPreviewRequest
1012	raw := NoMethod(*s)
1013	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1014}
1015
1016// DeploymentsListResponse: A response containing a partial list of
1017// deployments and a page token used to build the next request if the
1018// request has been truncated.
1019type DeploymentsListResponse struct {
1020	// Deployments: Output only. The deployments contained in this response.
1021	Deployments []*Deployment `json:"deployments,omitempty"`
1022
1023	// NextPageToken: Output only. A token used to continue a truncated list
1024	// request.
1025	NextPageToken string `json:"nextPageToken,omitempty"`
1026
1027	// ServerResponse contains the HTTP response code and headers from the
1028	// server.
1029	googleapi.ServerResponse `json:"-"`
1030
1031	// ForceSendFields is a list of field names (e.g. "Deployments") to
1032	// unconditionally include in API requests. By default, fields with
1033	// empty or default values are omitted from API requests. However, any
1034	// non-pointer, non-interface field appearing in ForceSendFields will be
1035	// sent to the server regardless of whether the field is empty or not.
1036	// This may be used to include empty fields in Patch requests.
1037	ForceSendFields []string `json:"-"`
1038
1039	// NullFields is a list of field names (e.g. "Deployments") to include
1040	// in API requests with the JSON null value. By default, fields with
1041	// empty values are omitted from API requests. However, any field with
1042	// an empty value appearing in NullFields will be sent to the server as
1043	// null. It is an error if a field in this list has a non-empty value.
1044	// This may be used to include null fields in Patch requests.
1045	NullFields []string `json:"-"`
1046}
1047
1048func (s *DeploymentsListResponse) MarshalJSON() ([]byte, error) {
1049	type NoMethod DeploymentsListResponse
1050	raw := NoMethod(*s)
1051	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1052}
1053
1054type DeploymentsStopRequest struct {
1055	// Fingerprint: Specifies a fingerprint for `stop()` requests. A
1056	// fingerprint is a randomly generated value that must be provided in
1057	// `stop()` requests to perform optimistic locking. This ensures
1058	// optimistic concurrency so that the deployment does not have
1059	// conflicting requests (e.g. if someone attempts to make a new update
1060	// request while another user attempts to stop an ongoing update
1061	// request, this would prevent a collision). The fingerprint is
1062	// initially generated by Deployment Manager and changes after every
1063	// request to modify a deployment. To get the latest fingerprint value,
1064	// perform a `get()` request on the deployment.
1065	Fingerprint string `json:"fingerprint,omitempty"`
1066
1067	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
1068	// unconditionally include in API requests. By default, fields with
1069	// empty or default values are omitted from API requests. However, any
1070	// non-pointer, non-interface field appearing in ForceSendFields will be
1071	// sent to the server regardless of whether the field is empty or not.
1072	// This may be used to include empty fields in Patch requests.
1073	ForceSendFields []string `json:"-"`
1074
1075	// NullFields is a list of field names (e.g. "Fingerprint") to include
1076	// in API requests with the JSON null value. By default, fields with
1077	// empty values are omitted from API requests. However, any field with
1078	// an empty value appearing in NullFields will be sent to the server as
1079	// null. It is an error if a field in this list has a non-empty value.
1080	// This may be used to include null fields in Patch requests.
1081	NullFields []string `json:"-"`
1082}
1083
1084func (s *DeploymentsStopRequest) MarshalJSON() ([]byte, error) {
1085	type NoMethod DeploymentsStopRequest
1086	raw := NoMethod(*s)
1087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1088}
1089
1090type Diagnostic struct {
1091	// Field: JsonPath expression on the resource that if non empty,
1092	// indicates that this field needs to be extracted as a diagnostic.
1093	Field string `json:"field,omitempty"`
1094
1095	// Level: Level to record this diagnostic.
1096	//
1097	// Possible values:
1098	//   "UNKNOWN"
1099	//   "INFORMATION" - If level is informational, it only gets displayed
1100	// as part of the resource.
1101	//   "WARNING" - If level is warning, will end up in the resource as a
1102	// warning.
1103	//   "ERROR" - If level is error, it will indicate an error occurred
1104	// after finishCondition is set, and this field will populate resource
1105	// errors and operation errors.
1106	Level string `json:"level,omitempty"`
1107
1108	// ForceSendFields is a list of field names (e.g. "Field") to
1109	// unconditionally include in API requests. By default, fields with
1110	// empty or default values are omitted from API requests. However, any
1111	// non-pointer, non-interface field appearing in ForceSendFields will be
1112	// sent to the server regardless of whether the field is empty or not.
1113	// This may be used to include empty fields in Patch requests.
1114	ForceSendFields []string `json:"-"`
1115
1116	// NullFields is a list of field names (e.g. "Field") to include in API
1117	// requests with the JSON null value. By default, fields with empty
1118	// values are omitted from API requests. However, any field with an
1119	// empty value appearing in NullFields will be sent to the server as
1120	// null. It is an error if a field in this list has a non-empty value.
1121	// This may be used to include null fields in Patch requests.
1122	NullFields []string `json:"-"`
1123}
1124
1125func (s *Diagnostic) MarshalJSON() ([]byte, error) {
1126	type NoMethod Diagnostic
1127	raw := NoMethod(*s)
1128	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1129}
1130
1131// Expr: Represents a textual expression in the Common Expression
1132// Language (CEL) syntax. CEL is a C-like expression language. The
1133// syntax and semantics of CEL are documented at
1134// https://github.com/google/cel-spec. Example (Comparison): title:
1135// "Summary size limit" description: "Determines if a summary is less
1136// than 100 chars" expression: "document.summary.size() < 100" Example
1137// (Equality): title: "Requestor is owner" description: "Determines if
1138// requestor is the document owner" expression: "document.owner ==
1139// request.auth.claims.email" Example (Logic): title: "Public documents"
1140// description: "Determine whether the document should be publicly
1141// visible" expression: "document.type != 'private' && document.type !=
1142// 'internal'" Example (Data Manipulation): title: "Notification string"
1143// description: "Create a notification string with a timestamp."
1144// expression: "'New message received at ' +
1145// string(document.create_time)" The exact variables and functions that
1146// may be referenced within an expression are determined by the service
1147// that evaluates it. See the service documentation for additional
1148// information.
1149type Expr struct {
1150	// Description: Optional. Description of the expression. This is a
1151	// longer text which describes the expression, e.g. when hovered over it
1152	// in a UI.
1153	Description string `json:"description,omitempty"`
1154
1155	// Expression: Textual representation of an expression in Common
1156	// Expression Language syntax.
1157	Expression string `json:"expression,omitempty"`
1158
1159	// Location: Optional. String indicating the location of the expression
1160	// for error reporting, e.g. a file name and a position in the file.
1161	Location string `json:"location,omitempty"`
1162
1163	// Title: Optional. Title for the expression, i.e. a short string
1164	// describing its purpose. This can be used e.g. in UIs which allow to
1165	// enter the expression.
1166	Title string `json:"title,omitempty"`
1167
1168	// ForceSendFields is a list of field names (e.g. "Description") to
1169	// unconditionally include in API requests. By default, fields with
1170	// empty or default values are omitted from API requests. However, any
1171	// non-pointer, non-interface field appearing in ForceSendFields will be
1172	// sent to the server regardless of whether the field is empty or not.
1173	// This may be used to include empty fields in Patch requests.
1174	ForceSendFields []string `json:"-"`
1175
1176	// NullFields is a list of field names (e.g. "Description") to include
1177	// in API requests with the JSON null value. By default, fields with
1178	// empty values are omitted from API requests. However, any field with
1179	// an empty value appearing in NullFields will be sent to the server as
1180	// null. It is an error if a field in this list has a non-empty value.
1181	// This may be used to include null fields in Patch requests.
1182	NullFields []string `json:"-"`
1183}
1184
1185func (s *Expr) MarshalJSON() ([]byte, error) {
1186	type NoMethod Expr
1187	raw := NoMethod(*s)
1188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1189}
1190
1191type GlobalSetPolicyRequest struct {
1192	// Bindings: Flatten Policy to create a backward compatible wire-format.
1193	// Deprecated. Use 'policy' to specify bindings.
1194	Bindings []*Binding `json:"bindings,omitempty"`
1195
1196	// Etag: Flatten Policy to create a backward compatible wire-format.
1197	// Deprecated. Use 'policy' to specify the etag.
1198	Etag string `json:"etag,omitempty"`
1199
1200	// Policy: REQUIRED: The complete policy to be applied to the
1201	// 'resource'. The size of the policy is limited to a few 10s of KB. An
1202	// empty policy is in general a valid policy but certain services (like
1203	// Projects) might reject them.
1204	Policy *Policy `json:"policy,omitempty"`
1205
1206	// ForceSendFields is a list of field names (e.g. "Bindings") to
1207	// unconditionally include in API requests. By default, fields with
1208	// empty or default values are omitted from API requests. However, any
1209	// non-pointer, non-interface field appearing in ForceSendFields will be
1210	// sent to the server regardless of whether the field is empty or not.
1211	// This may be used to include empty fields in Patch requests.
1212	ForceSendFields []string `json:"-"`
1213
1214	// NullFields is a list of field names (e.g. "Bindings") to include in
1215	// API requests with the JSON null value. By default, fields with empty
1216	// values are omitted from API requests. However, any field with an
1217	// empty value appearing in NullFields will be sent to the server as
1218	// null. It is an error if a field in this list has a non-empty value.
1219	// This may be used to include null fields in Patch requests.
1220	NullFields []string `json:"-"`
1221}
1222
1223func (s *GlobalSetPolicyRequest) MarshalJSON() ([]byte, error) {
1224	type NoMethod GlobalSetPolicyRequest
1225	raw := NoMethod(*s)
1226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1227}
1228
1229type ImportFile struct {
1230	// Content: The contents of the file.
1231	Content string `json:"content,omitempty"`
1232
1233	// Name: The name of the file.
1234	Name string `json:"name,omitempty"`
1235
1236	// ForceSendFields is a list of field names (e.g. "Content") to
1237	// unconditionally include in API requests. By default, fields with
1238	// empty or default values are omitted from API requests. However, any
1239	// non-pointer, non-interface field appearing in ForceSendFields will be
1240	// sent to the server regardless of whether the field is empty or not.
1241	// This may be used to include empty fields in Patch requests.
1242	ForceSendFields []string `json:"-"`
1243
1244	// NullFields is a list of field names (e.g. "Content") to include in
1245	// API requests with the JSON null value. By default, fields with empty
1246	// values are omitted from API requests. However, any field with an
1247	// empty value appearing in NullFields will be sent to the server as
1248	// null. It is an error if a field in this list has a non-empty value.
1249	// This may be used to include null fields in Patch requests.
1250	NullFields []string `json:"-"`
1251}
1252
1253func (s *ImportFile) MarshalJSON() ([]byte, error) {
1254	type NoMethod ImportFile
1255	raw := NoMethod(*s)
1256	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1257}
1258
1259// InputMapping: InputMapping creates a 'virtual' property that will be
1260// injected into the properties before sending the request to the
1261// underlying API.
1262type InputMapping struct {
1263	// FieldName: The name of the field that is going to be injected.
1264	FieldName string `json:"fieldName,omitempty"`
1265
1266	// Location: The location where this mapping applies.
1267	//
1268	// Possible values:
1269	//   "UNKNOWN"
1270	//   "PATH"
1271	//   "QUERY"
1272	//   "BODY"
1273	//   "HEADER"
1274	Location string `json:"location,omitempty"`
1275
1276	// MethodMatch: Regex to evaluate on method to decide if input applies.
1277	MethodMatch string `json:"methodMatch,omitempty"`
1278
1279	// Value: A jsonPath expression to select an element.
1280	Value string `json:"value,omitempty"`
1281
1282	// ForceSendFields is a list of field names (e.g. "FieldName") to
1283	// unconditionally include in API requests. By default, fields with
1284	// empty or default values are omitted from API requests. However, any
1285	// non-pointer, non-interface field appearing in ForceSendFields will be
1286	// sent to the server regardless of whether the field is empty or not.
1287	// This may be used to include empty fields in Patch requests.
1288	ForceSendFields []string `json:"-"`
1289
1290	// NullFields is a list of field names (e.g. "FieldName") to include in
1291	// API requests with the JSON null value. By default, fields with empty
1292	// values are omitted from API requests. However, any field with an
1293	// empty value appearing in NullFields will be sent to the server as
1294	// null. It is an error if a field in this list has a non-empty value.
1295	// This may be used to include null fields in Patch requests.
1296	NullFields []string `json:"-"`
1297}
1298
1299func (s *InputMapping) MarshalJSON() ([]byte, error) {
1300	type NoMethod InputMapping
1301	raw := NoMethod(*s)
1302	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1303}
1304
1305type Manifest struct {
1306	// Config: Output only. The YAML configuration for this manifest.
1307	Config *ConfigFile `json:"config,omitempty"`
1308
1309	// ExpandedConfig: Output only. The fully-expanded configuration file,
1310	// including any templates and references.
1311	ExpandedConfig string `json:"expandedConfig,omitempty"`
1312
1313	Id uint64 `json:"id,omitempty,string"`
1314
1315	// Imports: Output only. The imported files for this manifest.
1316	Imports []*ImportFile `json:"imports,omitempty"`
1317
1318	// InsertTime: Output only. Creation timestamp in RFC3339 text format.
1319	InsertTime string `json:"insertTime,omitempty"`
1320
1321	// Layout: Output only. The YAML layout for this manifest.
1322	Layout string `json:"layout,omitempty"`
1323
1324	// ManifestSizeBytes: Output only. The computed size of the fully
1325	// expanded manifest.
1326	ManifestSizeBytes int64 `json:"manifestSizeBytes,omitempty,string"`
1327
1328	// ManifestSizeLimitBytes: Output only. The size limit for expanded
1329	// manifests in the project.
1330	ManifestSizeLimitBytes int64 `json:"manifestSizeLimitBytes,omitempty,string"`
1331
1332	// Name: Output only. The name of the manifest.
1333	Name string `json:"name,omitempty"`
1334
1335	// SelfLink: Output only. Self link for the manifest.
1336	SelfLink string `json:"selfLink,omitempty"`
1337
1338	// ServerResponse contains the HTTP response code and headers from the
1339	// server.
1340	googleapi.ServerResponse `json:"-"`
1341
1342	// ForceSendFields is a list of field names (e.g. "Config") to
1343	// unconditionally include in API requests. By default, fields with
1344	// empty or default values are omitted from API requests. However, any
1345	// non-pointer, non-interface field appearing in ForceSendFields will be
1346	// sent to the server regardless of whether the field is empty or not.
1347	// This may be used to include empty fields in Patch requests.
1348	ForceSendFields []string `json:"-"`
1349
1350	// NullFields is a list of field names (e.g. "Config") to include in API
1351	// requests with the JSON null value. By default, fields with empty
1352	// values are omitted from API requests. However, any field with an
1353	// empty value appearing in NullFields will be sent to the server as
1354	// null. It is an error if a field in this list has a non-empty value.
1355	// This may be used to include null fields in Patch requests.
1356	NullFields []string `json:"-"`
1357}
1358
1359func (s *Manifest) MarshalJSON() ([]byte, error) {
1360	type NoMethod Manifest
1361	raw := NoMethod(*s)
1362	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1363}
1364
1365// ManifestsListResponse: A response containing a partial list of
1366// manifests and a page token used to build the next request if the
1367// request has been truncated.
1368type ManifestsListResponse struct {
1369	// Manifests: Output only. Manifests contained in this list response.
1370	Manifests []*Manifest `json:"manifests,omitempty"`
1371
1372	// NextPageToken: Output only. A token used to continue a truncated list
1373	// request.
1374	NextPageToken string `json:"nextPageToken,omitempty"`
1375
1376	// ServerResponse contains the HTTP response code and headers from the
1377	// server.
1378	googleapi.ServerResponse `json:"-"`
1379
1380	// ForceSendFields is a list of field names (e.g. "Manifests") to
1381	// unconditionally include in API requests. By default, fields with
1382	// empty or default values are omitted from API requests. However, any
1383	// non-pointer, non-interface field appearing in ForceSendFields will be
1384	// sent to the server regardless of whether the field is empty or not.
1385	// This may be used to include empty fields in Patch requests.
1386	ForceSendFields []string `json:"-"`
1387
1388	// NullFields is a list of field names (e.g. "Manifests") to include in
1389	// API requests with the JSON null value. By default, fields with empty
1390	// values are omitted from API requests. However, any field with an
1391	// empty value appearing in NullFields will be sent to the server as
1392	// null. It is an error if a field in this list has a non-empty value.
1393	// This may be used to include null fields in Patch requests.
1394	NullFields []string `json:"-"`
1395}
1396
1397func (s *ManifestsListResponse) MarshalJSON() ([]byte, error) {
1398	type NoMethod ManifestsListResponse
1399	raw := NoMethod(*s)
1400	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1401}
1402
1403// MethodMap: Deployment Manager will call these methods during the
1404// events of creation/deletion/update/get/setIamPolicy
1405type MethodMap struct {
1406	// Create: The action identifier for the create method to be used for
1407	// this collection
1408	Create string `json:"create,omitempty"`
1409
1410	// Delete: The action identifier for the delete method to be used for
1411	// this collection
1412	Delete string `json:"delete,omitempty"`
1413
1414	// Get: The action identifier for the get method to be used for this
1415	// collection
1416	Get string `json:"get,omitempty"`
1417
1418	// SetIamPolicy: The action identifier for the setIamPolicy method to be
1419	// used for this collection
1420	SetIamPolicy string `json:"setIamPolicy,omitempty"`
1421
1422	// Update: The action identifier for the update method to be used for
1423	// this collection
1424	Update string `json:"update,omitempty"`
1425
1426	// ForceSendFields is a list of field names (e.g. "Create") to
1427	// unconditionally include in API requests. By default, fields with
1428	// empty or default values are omitted from API requests. However, any
1429	// non-pointer, non-interface field appearing in ForceSendFields will be
1430	// sent to the server regardless of whether the field is empty or not.
1431	// This may be used to include empty fields in Patch requests.
1432	ForceSendFields []string `json:"-"`
1433
1434	// NullFields is a list of field names (e.g. "Create") to include in API
1435	// requests with the JSON null value. By default, fields with empty
1436	// values are omitted from API requests. However, any field with an
1437	// empty value appearing in NullFields will be sent to the server as
1438	// null. It is an error if a field in this list has a non-empty value.
1439	// This may be used to include null fields in Patch requests.
1440	NullFields []string `json:"-"`
1441}
1442
1443func (s *MethodMap) MarshalJSON() ([]byte, error) {
1444	type NoMethod MethodMap
1445	raw := NoMethod(*s)
1446	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1447}
1448
1449// Operation: Represents an Operation resource. Google Compute Engine
1450// has three Operation resources: * Global
1451// (/compute/docs/reference/rest/{$api_version}/globalOperations) *
1452// Regional
1453// (/compute/docs/reference/rest/{$api_version}/regionOperations) *
1454// Zonal (/compute/docs/reference/rest/{$api_version}/zoneOperations)
1455// You can use an operation resource to manage asynchronous API
1456// requests. For more information, read Handling API responses.
1457// Operations can be global, regional or zonal. - For global operations,
1458// use the `globalOperations` resource. - For regional operations, use
1459// the `regionOperations` resource. - For zonal operations, use the
1460// `zonalOperations` resource. For more information, read Global,
1461// Regional, and Zonal Resources.
1462type Operation struct {
1463	// ClientOperationId: [Output Only] The value of `requestId` if you
1464	// provided it in the request. Not present otherwise.
1465	ClientOperationId string `json:"clientOperationId,omitempty"`
1466
1467	// CreationTimestamp: [Deprecated] This field is deprecated.
1468	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1469
1470	// Description: [Output Only] A textual description of the operation,
1471	// which is set when the operation is created.
1472	Description string `json:"description,omitempty"`
1473
1474	// EndTime: [Output Only] The time that this operation was completed.
1475	// This value is in RFC3339 text format.
1476	EndTime string `json:"endTime,omitempty"`
1477
1478	// Error: [Output Only] If errors are generated during processing of the
1479	// operation, this field will be populated.
1480	Error *OperationError `json:"error,omitempty"`
1481
1482	// HttpErrorMessage: [Output Only] If the operation fails, this field
1483	// contains the HTTP error message that was returned, such as `NOT
1484	// FOUND`.
1485	HttpErrorMessage string `json:"httpErrorMessage,omitempty"`
1486
1487	// HttpErrorStatusCode: [Output Only] If the operation fails, this field
1488	// contains the HTTP error status code that was returned. For example, a
1489	// `404` means the resource was not found.
1490	HttpErrorStatusCode int64 `json:"httpErrorStatusCode,omitempty"`
1491
1492	// Id: [Output Only] The unique identifier for the operation. This
1493	// identifier is defined by the server.
1494	Id uint64 `json:"id,omitempty,string"`
1495
1496	// InsertTime: [Output Only] The time that this operation was requested.
1497	// This value is in RFC3339 text format.
1498	InsertTime string `json:"insertTime,omitempty"`
1499
1500	// Kind: [Output Only] Type of the resource. Always `compute#operation`
1501	// for Operation resources.
1502	Kind string `json:"kind,omitempty"`
1503
1504	// Name: [Output Only] Name of the operation.
1505	Name string `json:"name,omitempty"`
1506
1507	// OperationGroupId: [Output Only] An ID that represents a group of
1508	// operations, such as when a group of operations results from a
1509	// `bulkInsert` API request.
1510	OperationGroupId string `json:"operationGroupId,omitempty"`
1511
1512	// OperationType: [Output Only] The type of operation, such as `insert`,
1513	// `update`, or `delete`, and so on.
1514	OperationType string `json:"operationType,omitempty"`
1515
1516	// Progress: [Output Only] An optional progress indicator that ranges
1517	// from 0 to 100. There is no requirement that this be linear or support
1518	// any granularity of operations. This should not be used to guess when
1519	// the operation will be complete. This number should monotonically
1520	// increase as the operation progresses.
1521	Progress int64 `json:"progress,omitempty"`
1522
1523	// Region: [Output Only] The URL of the region where the operation
1524	// resides. Only applicable when performing regional operations.
1525	Region string `json:"region,omitempty"`
1526
1527	// SelfLink: [Output Only] Server-defined URL for the resource.
1528	SelfLink string `json:"selfLink,omitempty"`
1529
1530	// StartTime: [Output Only] The time that this operation was started by
1531	// the server. This value is in RFC3339 text format.
1532	StartTime string `json:"startTime,omitempty"`
1533
1534	// Status: [Output Only] The status of the operation, which can be one
1535	// of the following: `PENDING`, `RUNNING`, or `DONE`.
1536	//
1537	// Possible values:
1538	//   "PENDING"
1539	//   "RUNNING"
1540	//   "DONE"
1541	Status string `json:"status,omitempty"`
1542
1543	// StatusMessage: [Output Only] An optional textual description of the
1544	// current status of the operation.
1545	StatusMessage string `json:"statusMessage,omitempty"`
1546
1547	// TargetId: [Output Only] The unique target ID, which identifies a
1548	// specific incarnation of the target resource.
1549	TargetId uint64 `json:"targetId,omitempty,string"`
1550
1551	// TargetLink: [Output Only] The URL of the resource that the operation
1552	// modifies. For operations related to creating a snapshot, this points
1553	// to the persistent disk that the snapshot was created from.
1554	TargetLink string `json:"targetLink,omitempty"`
1555
1556	// User: [Output Only] User who requested the operation, for example:
1557	// `user@example.com`.
1558	User string `json:"user,omitempty"`
1559
1560	// Warnings: [Output Only] If warning messages are generated during
1561	// processing of the operation, this field will be populated.
1562	Warnings []*OperationWarnings `json:"warnings,omitempty"`
1563
1564	// Zone: [Output Only] The URL of the zone where the operation resides.
1565	// Only applicable when performing per-zone operations.
1566	Zone string `json:"zone,omitempty"`
1567
1568	// ServerResponse contains the HTTP response code and headers from the
1569	// server.
1570	googleapi.ServerResponse `json:"-"`
1571
1572	// ForceSendFields is a list of field names (e.g. "ClientOperationId")
1573	// to unconditionally include in API requests. By default, fields with
1574	// empty or default values are omitted from API requests. However, any
1575	// non-pointer, non-interface field appearing in ForceSendFields will be
1576	// sent to the server regardless of whether the field is empty or not.
1577	// This may be used to include empty fields in Patch requests.
1578	ForceSendFields []string `json:"-"`
1579
1580	// NullFields is a list of field names (e.g. "ClientOperationId") to
1581	// include in API requests with the JSON null value. By default, fields
1582	// with empty values are omitted from API requests. However, any field
1583	// with an empty value appearing in NullFields will be sent to the
1584	// server as null. It is an error if a field in this list has a
1585	// non-empty value. This may be used to include null fields in Patch
1586	// requests.
1587	NullFields []string `json:"-"`
1588}
1589
1590func (s *Operation) MarshalJSON() ([]byte, error) {
1591	type NoMethod Operation
1592	raw := NoMethod(*s)
1593	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1594}
1595
1596// OperationError: [Output Only] If errors are generated during
1597// processing of the operation, this field will be populated.
1598type OperationError struct {
1599	// Errors: [Output Only] The array of errors encountered while
1600	// processing this operation.
1601	Errors []*OperationErrorErrors `json:"errors,omitempty"`
1602
1603	// ForceSendFields is a list of field names (e.g. "Errors") to
1604	// unconditionally include in API requests. By default, fields with
1605	// empty or default values are omitted from API requests. However, any
1606	// non-pointer, non-interface field appearing in ForceSendFields will be
1607	// sent to the server regardless of whether the field is empty or not.
1608	// This may be used to include empty fields in Patch requests.
1609	ForceSendFields []string `json:"-"`
1610
1611	// NullFields is a list of field names (e.g. "Errors") to include in API
1612	// requests with the JSON null value. By default, fields with empty
1613	// values are omitted from API requests. However, any field with an
1614	// empty value appearing in NullFields will be sent to the server as
1615	// null. It is an error if a field in this list has a non-empty value.
1616	// This may be used to include null fields in Patch requests.
1617	NullFields []string `json:"-"`
1618}
1619
1620func (s *OperationError) MarshalJSON() ([]byte, error) {
1621	type NoMethod OperationError
1622	raw := NoMethod(*s)
1623	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1624}
1625
1626type OperationErrorErrors struct {
1627	// Code: [Output Only] The error type identifier for this error.
1628	Code string `json:"code,omitempty"`
1629
1630	// Location: [Output Only] Indicates the field in the request that
1631	// caused the error. This property is optional.
1632	Location string `json:"location,omitempty"`
1633
1634	// Message: [Output Only] An optional, human-readable error message.
1635	Message string `json:"message,omitempty"`
1636
1637	// ForceSendFields is a list of field names (e.g. "Code") to
1638	// unconditionally include in API requests. By default, fields with
1639	// empty or default values are omitted from API requests. However, any
1640	// non-pointer, non-interface field appearing in ForceSendFields will be
1641	// sent to the server regardless of whether the field is empty or not.
1642	// This may be used to include empty fields in Patch requests.
1643	ForceSendFields []string `json:"-"`
1644
1645	// NullFields is a list of field names (e.g. "Code") to include in API
1646	// requests with the JSON null value. By default, fields with empty
1647	// values are omitted from API requests. However, any field with an
1648	// empty value appearing in NullFields will be sent to the server as
1649	// null. It is an error if a field in this list has a non-empty value.
1650	// This may be used to include null fields in Patch requests.
1651	NullFields []string `json:"-"`
1652}
1653
1654func (s *OperationErrorErrors) MarshalJSON() ([]byte, error) {
1655	type NoMethod OperationErrorErrors
1656	raw := NoMethod(*s)
1657	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1658}
1659
1660type OperationWarnings struct {
1661	// Code: [Output Only] A warning code, if applicable. For example,
1662	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1663	// the response.
1664	//
1665	// Possible values:
1666	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
1667	// created.
1668	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
1669	// page.
1670	//   "UNREACHABLE" - A given scope cannot be reached.
1671	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
1672	// not assigned to an instance on the network.
1673	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
1674	// refers to an instance that does not exist.
1675	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
1676	// URL refers to an instance that is not on the same network as the
1677	// route.
1678	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
1679	// ip forward.
1680	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
1681	// have a status of RUNNING.
1682	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
1683	// injected kernel, which is deprecated.
1684	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
1685	// that requires a TOS they have not accepted.
1686	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
1687	// that is larger than image size.
1688	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
1689	// auto-delete could not be deleted because they were in use.
1690	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
1691	// instance group manager is valid as such, but its application does not
1692	// make a lot of sense, because it allows only single instance in
1693	// instance group.
1694	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
1695	// continue the process despite the mentioned error.
1696	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
1697	// changes made by a failed operation.
1698	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
1699	// overridden. Deprecated unused field.
1700	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
1701	// resource is in use.
1702	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
1703	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
1704	// call
1705	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
1706	// ignored.
1707	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
1708	// are present
1709	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
1710	// resources has a type marked as experimental
1711	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
1712	// resources has a type marked as deprecated
1713	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
1714	// missing due to errors
1715	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
1716	// exceedingly large number of resources
1717	Code string `json:"code,omitempty"`
1718
1719	// Data: [Output Only] Metadata about this warning in key: value format.
1720	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
1721	// }
1722	Data []*OperationWarningsData `json:"data,omitempty"`
1723
1724	// Message: [Output Only] A human-readable description of the warning
1725	// code.
1726	Message string `json:"message,omitempty"`
1727
1728	// ForceSendFields is a list of field names (e.g. "Code") to
1729	// unconditionally include in API requests. By default, fields with
1730	// empty or default values are omitted from API requests. However, any
1731	// non-pointer, non-interface field appearing in ForceSendFields will be
1732	// sent to the server regardless of whether the field is empty or not.
1733	// This may be used to include empty fields in Patch requests.
1734	ForceSendFields []string `json:"-"`
1735
1736	// NullFields is a list of field names (e.g. "Code") to include in API
1737	// requests with the JSON null value. By default, fields with empty
1738	// values are omitted from API requests. However, any field with an
1739	// empty value appearing in NullFields will be sent to the server as
1740	// null. It is an error if a field in this list has a non-empty value.
1741	// This may be used to include null fields in Patch requests.
1742	NullFields []string `json:"-"`
1743}
1744
1745func (s *OperationWarnings) MarshalJSON() ([]byte, error) {
1746	type NoMethod OperationWarnings
1747	raw := NoMethod(*s)
1748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1749}
1750
1751type OperationWarningsData struct {
1752	// Key: [Output Only] A key that provides more detail on the warning
1753	// being returned. For example, for warnings where there are no results
1754	// in a list request for a particular zone, this key might be scope and
1755	// the key value might be the zone name. Other examples might be a key
1756	// indicating a deprecated resource and a suggested replacement, or a
1757	// warning about invalid network settings (for example, if an instance
1758	// attempts to perform IP forwarding but is not enabled for IP
1759	// forwarding).
1760	Key string `json:"key,omitempty"`
1761
1762	// Value: [Output Only] A warning data value corresponding to the key.
1763	Value string `json:"value,omitempty"`
1764
1765	// ForceSendFields is a list of field names (e.g. "Key") to
1766	// unconditionally include in API requests. By default, fields with
1767	// empty or default values are omitted from API requests. However, any
1768	// non-pointer, non-interface field appearing in ForceSendFields will be
1769	// sent to the server regardless of whether the field is empty or not.
1770	// This may be used to include empty fields in Patch requests.
1771	ForceSendFields []string `json:"-"`
1772
1773	// NullFields is a list of field names (e.g. "Key") to include in API
1774	// requests with the JSON null value. By default, fields with empty
1775	// values are omitted from API requests. However, any field with an
1776	// empty value appearing in NullFields will be sent to the server as
1777	// null. It is an error if a field in this list has a non-empty value.
1778	// This may be used to include null fields in Patch requests.
1779	NullFields []string `json:"-"`
1780}
1781
1782func (s *OperationWarningsData) MarshalJSON() ([]byte, error) {
1783	type NoMethod OperationWarningsData
1784	raw := NoMethod(*s)
1785	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1786}
1787
1788// OperationsListResponse: A response containing a partial list of
1789// operations and a page token used to build the next request if the
1790// request has been truncated.
1791type OperationsListResponse struct {
1792	// NextPageToken: Output only. A token used to continue a truncated list
1793	// request.
1794	NextPageToken string `json:"nextPageToken,omitempty"`
1795
1796	// Operations: Output only. Operations contained in this list response.
1797	Operations []*Operation `json:"operations,omitempty"`
1798
1799	// ServerResponse contains the HTTP response code and headers from the
1800	// server.
1801	googleapi.ServerResponse `json:"-"`
1802
1803	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
1804	// unconditionally include in API requests. By default, fields with
1805	// empty or default values are omitted from API requests. However, any
1806	// non-pointer, non-interface field appearing in ForceSendFields will be
1807	// sent to the server regardless of whether the field is empty or not.
1808	// This may be used to include empty fields in Patch requests.
1809	ForceSendFields []string `json:"-"`
1810
1811	// NullFields is a list of field names (e.g. "NextPageToken") to include
1812	// in API requests with the JSON null value. By default, fields with
1813	// empty values are omitted from API requests. However, any field with
1814	// an empty value appearing in NullFields will be sent to the server as
1815	// null. It is an error if a field in this list has a non-empty value.
1816	// This may be used to include null fields in Patch requests.
1817	NullFields []string `json:"-"`
1818}
1819
1820func (s *OperationsListResponse) MarshalJSON() ([]byte, error) {
1821	type NoMethod OperationsListResponse
1822	raw := NoMethod(*s)
1823	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1824}
1825
1826// Options: Options allows customized resource handling by Deployment
1827// Manager.
1828type Options struct {
1829	// AsyncOptions: Options regarding how to thread async requests.
1830	AsyncOptions []*AsyncOptions `json:"asyncOptions,omitempty"`
1831
1832	// InputMappings: The mappings that apply for requests.
1833	InputMappings []*InputMapping `json:"inputMappings,omitempty"`
1834
1835	// NameProperty: The json path to the field in the resource JSON body
1836	// into which the resource name should be mapped. Leaving this empty
1837	// indicates that there should be no mapping performed.
1838	NameProperty string `json:"nameProperty,omitempty"`
1839
1840	// ValidationOptions: Options for how to validate and process properties
1841	// on a resource.
1842	ValidationOptions *ValidationOptions `json:"validationOptions,omitempty"`
1843
1844	// ForceSendFields is a list of field names (e.g. "AsyncOptions") to
1845	// unconditionally include in API requests. By default, fields with
1846	// empty or default values are omitted from API requests. However, any
1847	// non-pointer, non-interface field appearing in ForceSendFields will be
1848	// sent to the server regardless of whether the field is empty or not.
1849	// This may be used to include empty fields in Patch requests.
1850	ForceSendFields []string `json:"-"`
1851
1852	// NullFields is a list of field names (e.g. "AsyncOptions") to include
1853	// in API requests with the JSON null value. By default, fields with
1854	// empty values are omitted from API requests. However, any field with
1855	// an empty value appearing in NullFields will be sent to the server as
1856	// null. It is an error if a field in this list has a non-empty value.
1857	// This may be used to include null fields in Patch requests.
1858	NullFields []string `json:"-"`
1859}
1860
1861func (s *Options) MarshalJSON() ([]byte, error) {
1862	type NoMethod Options
1863	raw := NoMethod(*s)
1864	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1865}
1866
1867// Policy: An Identity and Access Management (IAM) policy, which
1868// specifies access controls for Google Cloud resources. A `Policy` is a
1869// collection of `bindings`. A `binding` binds one or more `members` to
1870// a single `role`. Members can be user accounts, service accounts,
1871// Google groups, and domains (such as G Suite). A `role` is a named
1872// list of permissions; each `role` can be an IAM predefined role or a
1873// user-created custom role. For some types of Google Cloud resources, a
1874// `binding` can also specify a `condition`, which is a logical
1875// expression that allows access to a resource only if the expression
1876// evaluates to `true`. A condition can add constraints based on
1877// attributes of the request, the resource, or both. To learn which
1878// resources support conditions in their IAM policies, see the IAM
1879// documentation
1880// (https://cloud.google.com/iam/help/conditions/resource-policies).
1881// **JSON example:** { "bindings": [ { "role":
1882// "roles/resourcemanager.organizationAdmin", "members": [
1883// "user:mike@example.com", "group:admins@example.com",
1884// "domain:google.com",
1885// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, {
1886// "role": "roles/resourcemanager.organizationViewer", "members": [
1887// "user:eve@example.com" ], "condition": { "title": "expirable access",
1888// "description": "Does not grant access after Sep 2020", "expression":
1889// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ],
1890// "etag": "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: -
1891// members: - user:mike@example.com - group:admins@example.com -
1892// domain:google.com -
1893// serviceAccount:my-project-id@appspot.gserviceaccount.com role:
1894// roles/resourcemanager.organizationAdmin - members: -
1895// user:eve@example.com role: roles/resourcemanager.organizationViewer
1896// condition: title: expirable access description: Does not grant access
1897// after Sep 2020 expression: request.time <
1898// timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3
1899// For a description of IAM and its features, see the IAM documentation
1900// (https://cloud.google.com/iam/docs/).
1901type Policy struct {
1902	// AuditConfigs: Specifies cloud audit logging configuration for this
1903	// policy.
1904	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
1905
1906	// Bindings: Associates a list of `members` to a `role`. Optionally, may
1907	// specify a `condition` that determines how and when the `bindings` are
1908	// applied. Each of the `bindings` must contain at least one member.
1909	Bindings []*Binding `json:"bindings,omitempty"`
1910
1911	// Etag: `etag` is used for optimistic concurrency control as a way to
1912	// help prevent simultaneous updates of a policy from overwriting each
1913	// other. It is strongly suggested that systems make use of the `etag`
1914	// in the read-modify-write cycle to perform policy updates in order to
1915	// avoid race conditions: An `etag` is returned in the response to
1916	// `getIamPolicy`, and systems are expected to put that etag in the
1917	// request to `setIamPolicy` to ensure that their change will be applied
1918	// to the same version of the policy. **Important:** If you use IAM
1919	// Conditions, you must include the `etag` field whenever you call
1920	// `setIamPolicy`. If you omit this field, then IAM allows you to
1921	// overwrite a version `3` policy with a version `1` policy, and all of
1922	// the conditions in the version `3` policy are lost.
1923	Etag string `json:"etag,omitempty"`
1924
1925	// Version: Specifies the format of the policy. Valid values are `0`,
1926	// `1`, and `3`. Requests that specify an invalid value are rejected.
1927	// Any operation that affects conditional role bindings must specify
1928	// version `3`. This requirement applies to the following operations: *
1929	// Getting a policy that includes a conditional role binding * Adding a
1930	// conditional role binding to a policy * Changing a conditional role
1931	// binding in a policy * Removing any role binding, with or without a
1932	// condition, from a policy that includes conditions **Important:** If
1933	// you use IAM Conditions, you must include the `etag` field whenever
1934	// you call `setIamPolicy`. If you omit this field, then IAM allows you
1935	// to overwrite a version `3` policy with a version `1` policy, and all
1936	// of the conditions in the version `3` policy are lost. If a policy
1937	// does not include any conditions, operations on that policy may
1938	// specify any valid version or leave the field unset. To learn which
1939	// resources support conditions in their IAM policies, see the IAM
1940	// documentation
1941	// (https://cloud.google.com/iam/help/conditions/resource-policies).
1942	Version int64 `json:"version,omitempty"`
1943
1944	// ServerResponse contains the HTTP response code and headers from the
1945	// server.
1946	googleapi.ServerResponse `json:"-"`
1947
1948	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
1949	// unconditionally include in API requests. By default, fields with
1950	// empty or default values are omitted from API requests. However, any
1951	// non-pointer, non-interface field appearing in ForceSendFields will be
1952	// sent to the server regardless of whether the field is empty or not.
1953	// This may be used to include empty fields in Patch requests.
1954	ForceSendFields []string `json:"-"`
1955
1956	// NullFields is a list of field names (e.g. "AuditConfigs") to include
1957	// in API requests with the JSON null value. By default, fields with
1958	// empty values are omitted from API requests. However, any field with
1959	// an empty value appearing in NullFields will be sent to the server as
1960	// null. It is an error if a field in this list has a non-empty value.
1961	// This may be used to include null fields in Patch requests.
1962	NullFields []string `json:"-"`
1963}
1964
1965func (s *Policy) MarshalJSON() ([]byte, error) {
1966	type NoMethod Policy
1967	raw := NoMethod(*s)
1968	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1969}
1970
1971type PollingOptions struct {
1972	// Diagnostics: An array of diagnostics to be collected by Deployment
1973	// Manager, these diagnostics will be displayed to the user.
1974	Diagnostics []*Diagnostic `json:"diagnostics,omitempty"`
1975
1976	// FailCondition: JsonPath expression that determines if the request
1977	// failed.
1978	FailCondition string `json:"failCondition,omitempty"`
1979
1980	// FinishCondition: JsonPath expression that determines if the request
1981	// is completed.
1982	FinishCondition string `json:"finishCondition,omitempty"`
1983
1984	// PollingLink: JsonPath expression that evaluates to string, it
1985	// indicates where to poll.
1986	PollingLink string `json:"pollingLink,omitempty"`
1987
1988	// TargetLink: JsonPath expression, after polling is completed,
1989	// indicates where to fetch the resource.
1990	TargetLink string `json:"targetLink,omitempty"`
1991
1992	// ForceSendFields is a list of field names (e.g. "Diagnostics") to
1993	// unconditionally include in API requests. By default, fields with
1994	// empty or default values are omitted from API requests. However, any
1995	// non-pointer, non-interface field appearing in ForceSendFields will be
1996	// sent to the server regardless of whether the field is empty or not.
1997	// This may be used to include empty fields in Patch requests.
1998	ForceSendFields []string `json:"-"`
1999
2000	// NullFields is a list of field names (e.g. "Diagnostics") to include
2001	// in API requests with the JSON null value. By default, fields with
2002	// empty values are omitted from API requests. However, any field with
2003	// an empty value appearing in NullFields will be sent to the server as
2004	// null. It is an error if a field in this list has a non-empty value.
2005	// This may be used to include null fields in Patch requests.
2006	NullFields []string `json:"-"`
2007}
2008
2009func (s *PollingOptions) MarshalJSON() ([]byte, error) {
2010	type NoMethod PollingOptions
2011	raw := NoMethod(*s)
2012	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2013}
2014
2015type Resource struct {
2016	// AccessControl: The Access Control Policy set on this resource.
2017	AccessControl *ResourceAccessControl `json:"accessControl,omitempty"`
2018
2019	// FinalProperties: Output only. The evaluated properties of the
2020	// resource with references expanded. Returned as serialized YAML.
2021	FinalProperties string `json:"finalProperties,omitempty"`
2022
2023	Id uint64 `json:"id,omitempty,string"`
2024
2025	// InsertTime: Output only. Creation timestamp in RFC3339 text format.
2026	InsertTime string `json:"insertTime,omitempty"`
2027
2028	// LastUsedCredential: Output only. The last used credential that
2029	// successfully created/updated the resource.
2030	LastUsedCredential *Credential `json:"lastUsedCredential,omitempty"`
2031
2032	// Manifest: Output only. URL of the manifest representing the current
2033	// configuration of this resource.
2034	Manifest string `json:"manifest,omitempty"`
2035
2036	// Name: Output only. The name of the resource as it appears in the YAML
2037	// config.
2038	Name string `json:"name,omitempty"`
2039
2040	// Properties: Output only. The current properties of the resource
2041	// before any references have been filled in. Returned as serialized
2042	// YAML.
2043	Properties string `json:"properties,omitempty"`
2044
2045	// RuntimePolicies: Output only. In case this is an action, it will show
2046	// the runtimePolicies on which this action will run in the deployment
2047	//
2048	// Possible values:
2049	//   "CREATE" - The action will only be fired during create.
2050	//   "DELETE" - The action will only be fired when the action is removed
2051	// from the deployment.
2052	//   "UPDATE_ON_CHANGE" - The action will fire during create, and if
2053	// there is any changes on the inputs.
2054	//   "UPDATE_ALWAYS" - The action will fire during create, and every
2055	// time there is an update to the deployment.
2056	RuntimePolicies []string `json:"runtimePolicies,omitempty"`
2057
2058	// Type: Output only. The type of the resource, for example
2059	// `compute.v1.instance`, or `cloudfunctions.v1beta1.function`.
2060	Type string `json:"type,omitempty"`
2061
2062	// Update: Output only. If Deployment Manager is currently updating or
2063	// previewing an update to this resource, the updated configuration
2064	// appears here.
2065	Update *ResourceUpdate `json:"update,omitempty"`
2066
2067	// UpdateTime: Output only. Update timestamp in RFC3339 text format.
2068	UpdateTime string `json:"updateTime,omitempty"`
2069
2070	// Url: Output only. The URL of the actual resource.
2071	Url string `json:"url,omitempty"`
2072
2073	// Warnings: Output only. If warning messages are generated during
2074	// processing of this resource, this field will be populated.
2075	Warnings []*ResourceWarnings `json:"warnings,omitempty"`
2076
2077	// ServerResponse contains the HTTP response code and headers from the
2078	// server.
2079	googleapi.ServerResponse `json:"-"`
2080
2081	// ForceSendFields is a list of field names (e.g. "AccessControl") to
2082	// unconditionally include in API requests. By default, fields with
2083	// empty or default values are omitted from API requests. However, any
2084	// non-pointer, non-interface field appearing in ForceSendFields will be
2085	// sent to the server regardless of whether the field is empty or not.
2086	// This may be used to include empty fields in Patch requests.
2087	ForceSendFields []string `json:"-"`
2088
2089	// NullFields is a list of field names (e.g. "AccessControl") to include
2090	// in API requests with the JSON null value. By default, fields with
2091	// empty values are omitted from API requests. However, any field with
2092	// an empty value appearing in NullFields will be sent to the server as
2093	// null. It is an error if a field in this list has a non-empty value.
2094	// This may be used to include null fields in Patch requests.
2095	NullFields []string `json:"-"`
2096}
2097
2098func (s *Resource) MarshalJSON() ([]byte, error) {
2099	type NoMethod Resource
2100	raw := NoMethod(*s)
2101	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2102}
2103
2104type ResourceWarnings struct {
2105	// Code: [Output Only] A warning code, if applicable. For example,
2106	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2107	// the response.
2108	//
2109	// Possible values:
2110	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
2111	// created.
2112	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
2113	// page.
2114	//   "UNREACHABLE" - A given scope cannot be reached.
2115	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
2116	// not assigned to an instance on the network.
2117	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
2118	// refers to an instance that does not exist.
2119	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
2120	// URL refers to an instance that is not on the same network as the
2121	// route.
2122	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
2123	// ip forward.
2124	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
2125	// have a status of RUNNING.
2126	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
2127	// injected kernel, which is deprecated.
2128	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
2129	// that requires a TOS they have not accepted.
2130	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
2131	// that is larger than image size.
2132	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
2133	// auto-delete could not be deleted because they were in use.
2134	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
2135	// instance group manager is valid as such, but its application does not
2136	// make a lot of sense, because it allows only single instance in
2137	// instance group.
2138	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
2139	// continue the process despite the mentioned error.
2140	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
2141	// changes made by a failed operation.
2142	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
2143	// overridden. Deprecated unused field.
2144	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
2145	// resource is in use.
2146	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
2147	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
2148	// call
2149	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
2150	// ignored.
2151	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
2152	// are present
2153	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
2154	// resources has a type marked as experimental
2155	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
2156	// resources has a type marked as deprecated
2157	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
2158	// missing due to errors
2159	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
2160	// exceedingly large number of resources
2161	Code string `json:"code,omitempty"`
2162
2163	// Data: [Output Only] Metadata about this warning in key: value format.
2164	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
2165	// }
2166	Data []*ResourceWarningsData `json:"data,omitempty"`
2167
2168	// Message: [Output Only] A human-readable description of the warning
2169	// code.
2170	Message string `json:"message,omitempty"`
2171
2172	// ForceSendFields is a list of field names (e.g. "Code") to
2173	// unconditionally include in API requests. By default, fields with
2174	// empty or default values are omitted from API requests. However, any
2175	// non-pointer, non-interface field appearing in ForceSendFields will be
2176	// sent to the server regardless of whether the field is empty or not.
2177	// This may be used to include empty fields in Patch requests.
2178	ForceSendFields []string `json:"-"`
2179
2180	// NullFields is a list of field names (e.g. "Code") to include in API
2181	// requests with the JSON null value. By default, fields with empty
2182	// values are omitted from API requests. However, any field with an
2183	// empty value appearing in NullFields will be sent to the server as
2184	// null. It is an error if a field in this list has a non-empty value.
2185	// This may be used to include null fields in Patch requests.
2186	NullFields []string `json:"-"`
2187}
2188
2189func (s *ResourceWarnings) MarshalJSON() ([]byte, error) {
2190	type NoMethod ResourceWarnings
2191	raw := NoMethod(*s)
2192	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2193}
2194
2195type ResourceWarningsData struct {
2196	// Key: [Output Only] A key that provides more detail on the warning
2197	// being returned. For example, for warnings where there are no results
2198	// in a list request for a particular zone, this key might be scope and
2199	// the key value might be the zone name. Other examples might be a key
2200	// indicating a deprecated resource and a suggested replacement, or a
2201	// warning about invalid network settings (for example, if an instance
2202	// attempts to perform IP forwarding but is not enabled for IP
2203	// forwarding).
2204	Key string `json:"key,omitempty"`
2205
2206	// Value: [Output Only] A warning data value corresponding to the key.
2207	Value string `json:"value,omitempty"`
2208
2209	// ForceSendFields is a list of field names (e.g. "Key") to
2210	// unconditionally include in API requests. By default, fields with
2211	// empty or default values are omitted from API requests. However, any
2212	// non-pointer, non-interface field appearing in ForceSendFields will be
2213	// sent to the server regardless of whether the field is empty or not.
2214	// This may be used to include empty fields in Patch requests.
2215	ForceSendFields []string `json:"-"`
2216
2217	// NullFields is a list of field names (e.g. "Key") to include in API
2218	// requests with the JSON null value. By default, fields with empty
2219	// values are omitted from API requests. However, any field with an
2220	// empty value appearing in NullFields will be sent to the server as
2221	// null. It is an error if a field in this list has a non-empty value.
2222	// This may be used to include null fields in Patch requests.
2223	NullFields []string `json:"-"`
2224}
2225
2226func (s *ResourceWarningsData) MarshalJSON() ([]byte, error) {
2227	type NoMethod ResourceWarningsData
2228	raw := NoMethod(*s)
2229	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2230}
2231
2232// ResourceAccessControl: The access controls set on the resource.
2233type ResourceAccessControl struct {
2234	// GcpIamPolicy: The GCP IAM Policy to set on the resource.
2235	GcpIamPolicy string `json:"gcpIamPolicy,omitempty"`
2236
2237	// ForceSendFields is a list of field names (e.g. "GcpIamPolicy") to
2238	// unconditionally include in API requests. By default, fields with
2239	// empty or default values are omitted from API requests. However, any
2240	// non-pointer, non-interface field appearing in ForceSendFields will be
2241	// sent to the server regardless of whether the field is empty or not.
2242	// This may be used to include empty fields in Patch requests.
2243	ForceSendFields []string `json:"-"`
2244
2245	// NullFields is a list of field names (e.g. "GcpIamPolicy") to include
2246	// in API requests with the JSON null value. By default, fields with
2247	// empty values are omitted from API requests. However, any field with
2248	// an empty value appearing in NullFields will be sent to the server as
2249	// null. It is an error if a field in this list has a non-empty value.
2250	// This may be used to include null fields in Patch requests.
2251	NullFields []string `json:"-"`
2252}
2253
2254func (s *ResourceAccessControl) MarshalJSON() ([]byte, error) {
2255	type NoMethod ResourceAccessControl
2256	raw := NoMethod(*s)
2257	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2258}
2259
2260type ResourceUpdate struct {
2261	// AccessControl: The Access Control Policy to set on this resource
2262	// after updating the resource itself.
2263	AccessControl *ResourceAccessControl `json:"accessControl,omitempty"`
2264
2265	// Credential: Output only. The credential that will be used
2266	// creating/updating this resource.
2267	Credential *Credential `json:"credential,omitempty"`
2268
2269	// Error: Output only. If errors are generated during update of the
2270	// resource, this field will be populated.
2271	Error *ResourceUpdateError `json:"error,omitempty"`
2272
2273	// FinalProperties: Output only. The expanded properties of the resource
2274	// with reference values expanded. Returned as serialized YAML.
2275	FinalProperties string `json:"finalProperties,omitempty"`
2276
2277	// Intent: Output only. The intent of the resource: `PREVIEW`, `UPDATE`,
2278	// or `CANCEL`.
2279	//
2280	// Possible values:
2281	//   "CREATE_OR_ACQUIRE" - The resource is scheduled to be created, or
2282	// if it already exists, acquired.
2283	//   "DELETE" - The resource is scheduled to be deleted.
2284	//   "ACQUIRE" - The resource is scheduled to be acquired.
2285	//   "UPDATE" - The resource is scheduled to be updated via the UPDATE
2286	// method.
2287	//   "ABANDON" - The resource is scheduled to be abandoned.
2288	//   "CREATE" - The resource is scheduled to be created.
2289	Intent string `json:"intent,omitempty"`
2290
2291	// Manifest: Output only. URL of the manifest representing the update
2292	// configuration of this resource.
2293	Manifest string `json:"manifest,omitempty"`
2294
2295	// Properties: Output only. The set of updated properties for this
2296	// resource, before references are expanded. Returned as serialized
2297	// YAML.
2298	Properties string `json:"properties,omitempty"`
2299
2300	// RuntimePolicies: Output only. In case this is an action, it will show
2301	// the runtimePolicies that this action will have after updating the
2302	// deployment.
2303	//
2304	// Possible values:
2305	//   "CREATE" - The action will only be fired during create.
2306	//   "DELETE" - The action will only be fired when the action is removed
2307	// from the deployment.
2308	//   "UPDATE_ON_CHANGE" - The action will fire during create, and if
2309	// there is any changes on the inputs.
2310	//   "UPDATE_ALWAYS" - The action will fire during create, and every
2311	// time there is an update to the deployment.
2312	RuntimePolicies []string `json:"runtimePolicies,omitempty"`
2313
2314	// State: Output only. The state of the resource.
2315	//
2316	// Possible values:
2317	//   "PENDING" - There are changes pending for this resource.
2318	//   "IN_PROGRESS" - The service is executing changes on the resource.
2319	//   "IN_PREVIEW" - The service is previewing changes on the resource.
2320	//   "FAILED" - The service has failed to change the resource.
2321	//   "ABORTED" - The service has aborted trying to change the resource.
2322	State string `json:"state,omitempty"`
2323
2324	// Warnings: Output only. If warning messages are generated during
2325	// processing of this resource, this field will be populated.
2326	Warnings []*ResourceUpdateWarnings `json:"warnings,omitempty"`
2327
2328	// ForceSendFields is a list of field names (e.g. "AccessControl") to
2329	// unconditionally include in API requests. By default, fields with
2330	// empty or default values are omitted from API requests. However, any
2331	// non-pointer, non-interface field appearing in ForceSendFields will be
2332	// sent to the server regardless of whether the field is empty or not.
2333	// This may be used to include empty fields in Patch requests.
2334	ForceSendFields []string `json:"-"`
2335
2336	// NullFields is a list of field names (e.g. "AccessControl") to include
2337	// in API requests with the JSON null value. By default, fields with
2338	// empty values are omitted from API requests. However, any field with
2339	// an empty value appearing in NullFields will be sent to the server as
2340	// null. It is an error if a field in this list has a non-empty value.
2341	// This may be used to include null fields in Patch requests.
2342	NullFields []string `json:"-"`
2343}
2344
2345func (s *ResourceUpdate) MarshalJSON() ([]byte, error) {
2346	type NoMethod ResourceUpdate
2347	raw := NoMethod(*s)
2348	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2349}
2350
2351// ResourceUpdateError: Output only. If errors are generated during
2352// update of the resource, this field will be populated.
2353type ResourceUpdateError struct {
2354	// Errors: [Output Only] The array of errors encountered while
2355	// processing this operation.
2356	Errors []*ResourceUpdateErrorErrors `json:"errors,omitempty"`
2357
2358	// ForceSendFields is a list of field names (e.g. "Errors") to
2359	// unconditionally include in API requests. By default, fields with
2360	// empty or default values are omitted from API requests. However, any
2361	// non-pointer, non-interface field appearing in ForceSendFields will be
2362	// sent to the server regardless of whether the field is empty or not.
2363	// This may be used to include empty fields in Patch requests.
2364	ForceSendFields []string `json:"-"`
2365
2366	// NullFields is a list of field names (e.g. "Errors") to include in API
2367	// requests with the JSON null value. By default, fields with empty
2368	// values are omitted from API requests. However, any field with an
2369	// empty value appearing in NullFields will be sent to the server as
2370	// null. It is an error if a field in this list has a non-empty value.
2371	// This may be used to include null fields in Patch requests.
2372	NullFields []string `json:"-"`
2373}
2374
2375func (s *ResourceUpdateError) MarshalJSON() ([]byte, error) {
2376	type NoMethod ResourceUpdateError
2377	raw := NoMethod(*s)
2378	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2379}
2380
2381type ResourceUpdateErrorErrors struct {
2382	// Code: [Output Only] The error type identifier for this error.
2383	Code string `json:"code,omitempty"`
2384
2385	// Location: [Output Only] Indicates the field in the request that
2386	// caused the error. This property is optional.
2387	Location string `json:"location,omitempty"`
2388
2389	// Message: [Output Only] An optional, human-readable error message.
2390	Message string `json:"message,omitempty"`
2391
2392	// ForceSendFields is a list of field names (e.g. "Code") to
2393	// unconditionally include in API requests. By default, fields with
2394	// empty or default values are omitted from API requests. However, any
2395	// non-pointer, non-interface field appearing in ForceSendFields will be
2396	// sent to the server regardless of whether the field is empty or not.
2397	// This may be used to include empty fields in Patch requests.
2398	ForceSendFields []string `json:"-"`
2399
2400	// NullFields is a list of field names (e.g. "Code") to include in API
2401	// requests with the JSON null value. By default, fields with empty
2402	// values are omitted from API requests. However, any field with an
2403	// empty value appearing in NullFields will be sent to the server as
2404	// null. It is an error if a field in this list has a non-empty value.
2405	// This may be used to include null fields in Patch requests.
2406	NullFields []string `json:"-"`
2407}
2408
2409func (s *ResourceUpdateErrorErrors) MarshalJSON() ([]byte, error) {
2410	type NoMethod ResourceUpdateErrorErrors
2411	raw := NoMethod(*s)
2412	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2413}
2414
2415type ResourceUpdateWarnings struct {
2416	// Code: [Output Only] A warning code, if applicable. For example,
2417	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2418	// the response.
2419	//
2420	// Possible values:
2421	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
2422	// created.
2423	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
2424	// page.
2425	//   "UNREACHABLE" - A given scope cannot be reached.
2426	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
2427	// not assigned to an instance on the network.
2428	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
2429	// refers to an instance that does not exist.
2430	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
2431	// URL refers to an instance that is not on the same network as the
2432	// route.
2433	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
2434	// ip forward.
2435	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
2436	// have a status of RUNNING.
2437	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
2438	// injected kernel, which is deprecated.
2439	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
2440	// that requires a TOS they have not accepted.
2441	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
2442	// that is larger than image size.
2443	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
2444	// auto-delete could not be deleted because they were in use.
2445	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
2446	// instance group manager is valid as such, but its application does not
2447	// make a lot of sense, because it allows only single instance in
2448	// instance group.
2449	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
2450	// continue the process despite the mentioned error.
2451	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
2452	// changes made by a failed operation.
2453	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
2454	// overridden. Deprecated unused field.
2455	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
2456	// resource is in use.
2457	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
2458	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
2459	// call
2460	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
2461	// ignored.
2462	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
2463	// are present
2464	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
2465	// resources has a type marked as experimental
2466	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
2467	// resources has a type marked as deprecated
2468	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
2469	// missing due to errors
2470	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
2471	// exceedingly large number of resources
2472	Code string `json:"code,omitempty"`
2473
2474	// Data: [Output Only] Metadata about this warning in key: value format.
2475	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
2476	// }
2477	Data []*ResourceUpdateWarningsData `json:"data,omitempty"`
2478
2479	// Message: [Output Only] A human-readable description of the warning
2480	// code.
2481	Message string `json:"message,omitempty"`
2482
2483	// ForceSendFields is a list of field names (e.g. "Code") to
2484	// unconditionally include in API requests. By default, fields with
2485	// empty or default values are omitted from API requests. However, any
2486	// non-pointer, non-interface field appearing in ForceSendFields will be
2487	// sent to the server regardless of whether the field is empty or not.
2488	// This may be used to include empty fields in Patch requests.
2489	ForceSendFields []string `json:"-"`
2490
2491	// NullFields is a list of field names (e.g. "Code") to include in API
2492	// requests with the JSON null value. By default, fields with empty
2493	// values are omitted from API requests. However, any field with an
2494	// empty value appearing in NullFields will be sent to the server as
2495	// null. It is an error if a field in this list has a non-empty value.
2496	// This may be used to include null fields in Patch requests.
2497	NullFields []string `json:"-"`
2498}
2499
2500func (s *ResourceUpdateWarnings) MarshalJSON() ([]byte, error) {
2501	type NoMethod ResourceUpdateWarnings
2502	raw := NoMethod(*s)
2503	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2504}
2505
2506type ResourceUpdateWarningsData struct {
2507	// Key: [Output Only] A key that provides more detail on the warning
2508	// being returned. For example, for warnings where there are no results
2509	// in a list request for a particular zone, this key might be scope and
2510	// the key value might be the zone name. Other examples might be a key
2511	// indicating a deprecated resource and a suggested replacement, or a
2512	// warning about invalid network settings (for example, if an instance
2513	// attempts to perform IP forwarding but is not enabled for IP
2514	// forwarding).
2515	Key string `json:"key,omitempty"`
2516
2517	// Value: [Output Only] A warning data value corresponding to the key.
2518	Value string `json:"value,omitempty"`
2519
2520	// ForceSendFields is a list of field names (e.g. "Key") to
2521	// unconditionally include in API requests. By default, fields with
2522	// empty or default values are omitted from API requests. However, any
2523	// non-pointer, non-interface field appearing in ForceSendFields will be
2524	// sent to the server regardless of whether the field is empty or not.
2525	// This may be used to include empty fields in Patch requests.
2526	ForceSendFields []string `json:"-"`
2527
2528	// NullFields is a list of field names (e.g. "Key") to include in API
2529	// requests with the JSON null value. By default, fields with empty
2530	// values are omitted from API requests. However, any field with an
2531	// empty value appearing in NullFields will be sent to the server as
2532	// null. It is an error if a field in this list has a non-empty value.
2533	// This may be used to include null fields in Patch requests.
2534	NullFields []string `json:"-"`
2535}
2536
2537func (s *ResourceUpdateWarningsData) MarshalJSON() ([]byte, error) {
2538	type NoMethod ResourceUpdateWarningsData
2539	raw := NoMethod(*s)
2540	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2541}
2542
2543// ResourcesListResponse: A response containing a partial list of
2544// resources and a page token used to build the next request if the
2545// request has been truncated.
2546type ResourcesListResponse struct {
2547	// NextPageToken: A token used to continue a truncated list request.
2548	NextPageToken string `json:"nextPageToken,omitempty"`
2549
2550	// Resources: Resources contained in this list response.
2551	Resources []*Resource `json:"resources,omitempty"`
2552
2553	// ServerResponse contains the HTTP response code and headers from the
2554	// server.
2555	googleapi.ServerResponse `json:"-"`
2556
2557	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
2558	// unconditionally include in API requests. By default, fields with
2559	// empty or default values are omitted from API requests. However, any
2560	// non-pointer, non-interface field appearing in ForceSendFields will be
2561	// sent to the server regardless of whether the field is empty or not.
2562	// This may be used to include empty fields in Patch requests.
2563	ForceSendFields []string `json:"-"`
2564
2565	// NullFields is a list of field names (e.g. "NextPageToken") to include
2566	// in API requests with the JSON null value. By default, fields with
2567	// empty values are omitted from API requests. However, any field with
2568	// an empty value appearing in NullFields will be sent to the server as
2569	// null. It is an error if a field in this list has a non-empty value.
2570	// This may be used to include null fields in Patch requests.
2571	NullFields []string `json:"-"`
2572}
2573
2574func (s *ResourcesListResponse) MarshalJSON() ([]byte, error) {
2575	type NoMethod ResourcesListResponse
2576	raw := NoMethod(*s)
2577	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2578}
2579
2580// ServiceAccount: Service Account used as a credential.
2581type ServiceAccount struct {
2582	// Email: The IAM service account email address like
2583	// test@myproject.iam.gserviceaccount.com
2584	Email string `json:"email,omitempty"`
2585
2586	// ForceSendFields is a list of field names (e.g. "Email") to
2587	// unconditionally include in API requests. By default, fields with
2588	// empty or default values are omitted from API requests. However, any
2589	// non-pointer, non-interface field appearing in ForceSendFields will be
2590	// sent to the server regardless of whether the field is empty or not.
2591	// This may be used to include empty fields in Patch requests.
2592	ForceSendFields []string `json:"-"`
2593
2594	// NullFields is a list of field names (e.g. "Email") to include in API
2595	// requests with the JSON null value. By default, fields with empty
2596	// values are omitted from API requests. However, any field with an
2597	// empty value appearing in NullFields will be sent to the server as
2598	// null. It is an error if a field in this list has a non-empty value.
2599	// This may be used to include null fields in Patch requests.
2600	NullFields []string `json:"-"`
2601}
2602
2603func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
2604	type NoMethod ServiceAccount
2605	raw := NoMethod(*s)
2606	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2607}
2608
2609type TargetConfiguration struct {
2610	// Config: The configuration to use for this deployment.
2611	Config *ConfigFile `json:"config,omitempty"`
2612
2613	// Imports: Specifies any files to import for this configuration. This
2614	// can be used to import templates or other files. For example, you
2615	// might import a text file in order to use the file in a template.
2616	Imports []*ImportFile `json:"imports,omitempty"`
2617
2618	// ForceSendFields is a list of field names (e.g. "Config") to
2619	// unconditionally include in API requests. By default, fields with
2620	// empty or default values are omitted from API requests. However, any
2621	// non-pointer, non-interface field appearing in ForceSendFields will be
2622	// sent to the server regardless of whether the field is empty or not.
2623	// This may be used to include empty fields in Patch requests.
2624	ForceSendFields []string `json:"-"`
2625
2626	// NullFields is a list of field names (e.g. "Config") to include in API
2627	// requests with the JSON null value. By default, fields with empty
2628	// values are omitted from API requests. However, any field with an
2629	// empty value appearing in NullFields will be sent to the server as
2630	// null. It is an error if a field in this list has a non-empty value.
2631	// This may be used to include null fields in Patch requests.
2632	NullFields []string `json:"-"`
2633}
2634
2635func (s *TargetConfiguration) MarshalJSON() ([]byte, error) {
2636	type NoMethod TargetConfiguration
2637	raw := NoMethod(*s)
2638	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2639}
2640
2641// TemplateContents: Files that make up the template contents of a
2642// template type.
2643type TemplateContents struct {
2644	// Imports: Import files referenced by the main template.
2645	Imports []*ImportFile `json:"imports,omitempty"`
2646
2647	// Interpreter: Which interpreter (python or jinja) should be used
2648	// during expansion.
2649	//
2650	// Possible values:
2651	//   "UNKNOWN_INTERPRETER"
2652	//   "PYTHON"
2653	//   "JINJA"
2654	Interpreter string `json:"interpreter,omitempty"`
2655
2656	// MainTemplate: The filename of the mainTemplate
2657	MainTemplate string `json:"mainTemplate,omitempty"`
2658
2659	// Schema: The contents of the template schema.
2660	Schema string `json:"schema,omitempty"`
2661
2662	// Template: The contents of the main template file.
2663	Template string `json:"template,omitempty"`
2664
2665	// ForceSendFields is a list of field names (e.g. "Imports") to
2666	// unconditionally include in API requests. By default, fields with
2667	// empty or default values are omitted from API requests. However, any
2668	// non-pointer, non-interface field appearing in ForceSendFields will be
2669	// sent to the server regardless of whether the field is empty or not.
2670	// This may be used to include empty fields in Patch requests.
2671	ForceSendFields []string `json:"-"`
2672
2673	// NullFields is a list of field names (e.g. "Imports") to include in
2674	// API requests with the JSON null value. By default, fields with empty
2675	// values are omitted from API requests. However, any field with an
2676	// empty value appearing in NullFields will be sent to the server as
2677	// null. It is an error if a field in this list has a non-empty value.
2678	// This may be used to include null fields in Patch requests.
2679	NullFields []string `json:"-"`
2680}
2681
2682func (s *TemplateContents) MarshalJSON() ([]byte, error) {
2683	type NoMethod TemplateContents
2684	raw := NoMethod(*s)
2685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2686}
2687
2688type TestPermissionsRequest struct {
2689	// Permissions: The set of permissions to check for the 'resource'.
2690	// Permissions with wildcards (such as '*' or 'storage.*') are not
2691	// allowed.
2692	Permissions []string `json:"permissions,omitempty"`
2693
2694	// ForceSendFields is a list of field names (e.g. "Permissions") to
2695	// unconditionally include in API requests. By default, fields with
2696	// empty or default values are omitted from API requests. However, any
2697	// non-pointer, non-interface field appearing in ForceSendFields will be
2698	// sent to the server regardless of whether the field is empty or not.
2699	// This may be used to include empty fields in Patch requests.
2700	ForceSendFields []string `json:"-"`
2701
2702	// NullFields is a list of field names (e.g. "Permissions") to include
2703	// in API requests with the JSON null value. By default, fields with
2704	// empty values are omitted from API requests. However, any field with
2705	// an empty value appearing in NullFields will be sent to the server as
2706	// null. It is an error if a field in this list has a non-empty value.
2707	// This may be used to include null fields in Patch requests.
2708	NullFields []string `json:"-"`
2709}
2710
2711func (s *TestPermissionsRequest) MarshalJSON() ([]byte, error) {
2712	type NoMethod TestPermissionsRequest
2713	raw := NoMethod(*s)
2714	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2715}
2716
2717type TestPermissionsResponse struct {
2718	// Permissions: A subset of `TestPermissionsRequest.permissions` that
2719	// the caller is allowed.
2720	Permissions []string `json:"permissions,omitempty"`
2721
2722	// ServerResponse contains the HTTP response code and headers from the
2723	// server.
2724	googleapi.ServerResponse `json:"-"`
2725
2726	// ForceSendFields is a list of field names (e.g. "Permissions") to
2727	// unconditionally include in API requests. By default, fields with
2728	// empty or default values are omitted from API requests. However, any
2729	// non-pointer, non-interface field appearing in ForceSendFields will be
2730	// sent to the server regardless of whether the field is empty or not.
2731	// This may be used to include empty fields in Patch requests.
2732	ForceSendFields []string `json:"-"`
2733
2734	// NullFields is a list of field names (e.g. "Permissions") to include
2735	// in API requests with the JSON null value. By default, fields with
2736	// empty values are omitted from API requests. However, any field with
2737	// an empty value appearing in NullFields will be sent to the server as
2738	// null. It is an error if a field in this list has a non-empty value.
2739	// This may be used to include null fields in Patch requests.
2740	NullFields []string `json:"-"`
2741}
2742
2743func (s *TestPermissionsResponse) MarshalJSON() ([]byte, error) {
2744	type NoMethod TestPermissionsResponse
2745	raw := NoMethod(*s)
2746	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2747}
2748
2749// Type: A resource type supported by Deployment Manager.
2750type Type struct {
2751	// Base: Base Type (configurable service) that backs this Type.
2752	Base *BaseType `json:"base,omitempty"`
2753
2754	// Description: An optional textual description of the resource;
2755	// provided by the client when the resource is created.
2756	Description string `json:"description,omitempty"`
2757
2758	Id uint64 `json:"id,omitempty,string"`
2759
2760	// InsertTime: Output only. Creation timestamp in RFC3339 text format.
2761	InsertTime string `json:"insertTime,omitempty"`
2762
2763	// Labels: Map of One Platform labels; provided by the client when the
2764	// resource is created or updated. Specifically: Label keys must be
2765	// between 1 and 63 characters long and must conform to the following
2766	// regular expression: `a-z ([-a-z0-9]*[a-z0-9])?` Label values must be
2767	// between 0 and 63 characters long and must conform to the regular
2768	// expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
2769	Labels []*TypeLabelEntry `json:"labels,omitempty"`
2770
2771	// Name: Name of the type.
2772	Name string `json:"name,omitempty"`
2773
2774	// Operation: Output only. The Operation that most recently ran, or is
2775	// currently running, on this type.
2776	Operation *Operation `json:"operation,omitempty"`
2777
2778	// SelfLink: Output only. Server defined URL for the resource.
2779	SelfLink string `json:"selfLink,omitempty"`
2780
2781	// ServerResponse contains the HTTP response code and headers from the
2782	// server.
2783	googleapi.ServerResponse `json:"-"`
2784
2785	// ForceSendFields is a list of field names (e.g. "Base") to
2786	// unconditionally include in API requests. By default, fields with
2787	// empty or default values are omitted from API requests. However, any
2788	// non-pointer, non-interface field appearing in ForceSendFields will be
2789	// sent to the server regardless of whether the field is empty or not.
2790	// This may be used to include empty fields in Patch requests.
2791	ForceSendFields []string `json:"-"`
2792
2793	// NullFields is a list of field names (e.g. "Base") to include in API
2794	// requests with the JSON null value. By default, fields with empty
2795	// values are omitted from API requests. However, any field with an
2796	// empty value appearing in NullFields will be sent to the server as
2797	// null. It is an error if a field in this list has a non-empty value.
2798	// This may be used to include null fields in Patch requests.
2799	NullFields []string `json:"-"`
2800}
2801
2802func (s *Type) MarshalJSON() ([]byte, error) {
2803	type NoMethod Type
2804	raw := NoMethod(*s)
2805	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2806}
2807
2808// TypeInfo: Type Information. Contains detailed information about a
2809// composite type, base type, or base type with specific collection.
2810type TypeInfo struct {
2811	// Description: The description of the type.
2812	Description string `json:"description,omitempty"`
2813
2814	// DocumentationLink: For swagger 2.0 externalDocs field will be used.
2815	// For swagger 1.2 this field will be empty.
2816	DocumentationLink string `json:"documentationLink,omitempty"`
2817
2818	// Kind: Output only. Type of the output. Always
2819	// `deploymentManager#TypeInfo` for TypeInfo.
2820	Kind string `json:"kind,omitempty"`
2821
2822	// Name: The base type or composite type name.
2823	Name string `json:"name,omitempty"`
2824
2825	// Schema: For base types with a collection, we return a schema and
2826	// documentation link For template types, we return only a schema
2827	Schema *TypeInfoSchemaInfo `json:"schema,omitempty"`
2828
2829	// SelfLink: Output only. Self link for the type provider.
2830	SelfLink string `json:"selfLink,omitempty"`
2831
2832	// Title: The title on the API descriptor URL provided.
2833	Title string `json:"title,omitempty"`
2834
2835	// ServerResponse contains the HTTP response code and headers from the
2836	// server.
2837	googleapi.ServerResponse `json:"-"`
2838
2839	// ForceSendFields is a list of field names (e.g. "Description") to
2840	// unconditionally include in API requests. By default, fields with
2841	// empty or default values are omitted from API requests. However, any
2842	// non-pointer, non-interface field appearing in ForceSendFields will be
2843	// sent to the server regardless of whether the field is empty or not.
2844	// This may be used to include empty fields in Patch requests.
2845	ForceSendFields []string `json:"-"`
2846
2847	// NullFields is a list of field names (e.g. "Description") to include
2848	// in API requests with the JSON null value. By default, fields with
2849	// empty values are omitted from API requests. However, any field with
2850	// an empty value appearing in NullFields will be sent to the server as
2851	// null. It is an error if a field in this list has a non-empty value.
2852	// This may be used to include null fields in Patch requests.
2853	NullFields []string `json:"-"`
2854}
2855
2856func (s *TypeInfo) MarshalJSON() ([]byte, error) {
2857	type NoMethod TypeInfo
2858	raw := NoMethod(*s)
2859	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2860}
2861
2862type TypeInfoSchemaInfo struct {
2863	// Input: The properties that this composite type or base type
2864	// collection accept as input, represented as a json blob, format is:
2865	// JSON Schema Draft V4
2866	Input string `json:"input,omitempty"`
2867
2868	// Output: The properties that this composite type or base type
2869	// collection exposes as output, these properties can be used for
2870	// references, represented as json blob, format is: JSON Schema Draft V4
2871	Output string `json:"output,omitempty"`
2872
2873	// ForceSendFields is a list of field names (e.g. "Input") to
2874	// unconditionally include in API requests. By default, fields with
2875	// empty or default values are omitted from API requests. However, any
2876	// non-pointer, non-interface field appearing in ForceSendFields will be
2877	// sent to the server regardless of whether the field is empty or not.
2878	// This may be used to include empty fields in Patch requests.
2879	ForceSendFields []string `json:"-"`
2880
2881	// NullFields is a list of field names (e.g. "Input") to include in API
2882	// requests with the JSON null value. By default, fields with empty
2883	// values are omitted from API requests. However, any field with an
2884	// empty value appearing in NullFields will be sent to the server as
2885	// null. It is an error if a field in this list has a non-empty value.
2886	// This may be used to include null fields in Patch requests.
2887	NullFields []string `json:"-"`
2888}
2889
2890func (s *TypeInfoSchemaInfo) MarshalJSON() ([]byte, error) {
2891	type NoMethod TypeInfoSchemaInfo
2892	raw := NoMethod(*s)
2893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2894}
2895
2896// TypeLabelEntry: Label object for Types
2897type TypeLabelEntry struct {
2898	// Key: Key of the label
2899	Key string `json:"key,omitempty"`
2900
2901	// Value: Value of the label
2902	Value string `json:"value,omitempty"`
2903
2904	// ForceSendFields is a list of field names (e.g. "Key") to
2905	// unconditionally include in API requests. By default, fields with
2906	// empty or default values are omitted from API requests. However, any
2907	// non-pointer, non-interface field appearing in ForceSendFields will be
2908	// sent to the server regardless of whether the field is empty or not.
2909	// This may be used to include empty fields in Patch requests.
2910	ForceSendFields []string `json:"-"`
2911
2912	// NullFields is a list of field names (e.g. "Key") to include in API
2913	// requests with the JSON null value. By default, fields with empty
2914	// values are omitted from API requests. However, any field with an
2915	// empty value appearing in NullFields will be sent to the server as
2916	// null. It is an error if a field in this list has a non-empty value.
2917	// This may be used to include null fields in Patch requests.
2918	NullFields []string `json:"-"`
2919}
2920
2921func (s *TypeLabelEntry) MarshalJSON() ([]byte, error) {
2922	type NoMethod TypeLabelEntry
2923	raw := NoMethod(*s)
2924	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2925}
2926
2927// TypeProvider: A type provider that describes a service-backed Type.
2928type TypeProvider struct {
2929	// CollectionOverrides: Allows resource handling overrides for specific
2930	// collections
2931	CollectionOverrides []*CollectionOverride `json:"collectionOverrides,omitempty"`
2932
2933	// Credential: Credential used when interacting with this type.
2934	Credential *Credential `json:"credential,omitempty"`
2935
2936	// CustomCertificateAuthorityRoots: List of up to 2 custom certificate
2937	// authority roots to use for TLS authentication when making calls on
2938	// behalf of this type provider. If set, TLS authentication will
2939	// exclusively use these roots instead of relying on publicly trusted
2940	// certificate authorities when validating TLS certificate authenticity.
2941	// The certificates must be in base64-encoded PEM format. The maximum
2942	// size of each certificate must not exceed 10KB.
2943	CustomCertificateAuthorityRoots []string `json:"customCertificateAuthorityRoots,omitempty"`
2944
2945	// Description: An optional textual description of the resource;
2946	// provided by the client when the resource is created.
2947	Description string `json:"description,omitempty"`
2948
2949	// DescriptorUrl: Descriptor Url for the this type provider.
2950	DescriptorUrl string `json:"descriptorUrl,omitempty"`
2951
2952	// Id: Output only. Unique identifier for the resource defined by the
2953	// server.
2954	Id uint64 `json:"id,omitempty,string"`
2955
2956	// InsertTime: Output only. Creation timestamp in RFC3339 text format.
2957	InsertTime string `json:"insertTime,omitempty"`
2958
2959	// Labels: Map of One Platform labels; provided by the client when the
2960	// resource is created or updated. Specifically: Label keys must be
2961	// between 1 and 63 characters long and must conform to the following
2962	// regular expression: `a-z ([-a-z0-9]*[a-z0-9])?` Label values must be
2963	// between 0 and 63 characters long and must conform to the regular
2964	// expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`
2965	Labels []*TypeProviderLabelEntry `json:"labels,omitempty"`
2966
2967	// Name: Name of the resource; provided by the client when the resource
2968	// is created. The name must be 1-63 characters long, and comply with
2969	// RFC1035. Specifically, the name must be 1-63 characters long and
2970	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
2971	// the first character must be a lowercase letter, and all following
2972	// characters must be a dash, lowercase letter, or digit, except the
2973	// last character, which cannot be a dash.
2974	Name string `json:"name,omitempty"`
2975
2976	// Operation: Output only. The Operation that most recently ran, or is
2977	// currently running, on this type provider.
2978	Operation *Operation `json:"operation,omitempty"`
2979
2980	// Options: Options to apply when handling any resources in this
2981	// service.
2982	Options *Options `json:"options,omitempty"`
2983
2984	// SelfLink: Output only. Self link for the type provider.
2985	SelfLink string `json:"selfLink,omitempty"`
2986
2987	// ServerResponse contains the HTTP response code and headers from the
2988	// server.
2989	googleapi.ServerResponse `json:"-"`
2990
2991	// ForceSendFields is a list of field names (e.g. "CollectionOverrides")
2992	// to unconditionally include in API requests. By default, fields with
2993	// empty or default values are omitted from API requests. However, any
2994	// non-pointer, non-interface field appearing in ForceSendFields will be
2995	// sent to the server regardless of whether the field is empty or not.
2996	// This may be used to include empty fields in Patch requests.
2997	ForceSendFields []string `json:"-"`
2998
2999	// NullFields is a list of field names (e.g. "CollectionOverrides") to
3000	// include in API requests with the JSON null value. By default, fields
3001	// with empty values are omitted from API requests. However, any field
3002	// with an empty value appearing in NullFields will be sent to the
3003	// server as null. It is an error if a field in this list has a
3004	// non-empty value. This may be used to include null fields in Patch
3005	// requests.
3006	NullFields []string `json:"-"`
3007}
3008
3009func (s *TypeProvider) MarshalJSON() ([]byte, error) {
3010	type NoMethod TypeProvider
3011	raw := NoMethod(*s)
3012	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3013}
3014
3015// TypeProviderLabelEntry: Label object for TypeProviders
3016type TypeProviderLabelEntry struct {
3017	// Key: Key of the label
3018	Key string `json:"key,omitempty"`
3019
3020	// Value: Value of the label
3021	Value string `json:"value,omitempty"`
3022
3023	// ForceSendFields is a list of field names (e.g. "Key") to
3024	// unconditionally include in API requests. By default, fields with
3025	// empty or default values are omitted from API requests. However, any
3026	// non-pointer, non-interface field appearing in ForceSendFields will be
3027	// sent to the server regardless of whether the field is empty or not.
3028	// This may be used to include empty fields in Patch requests.
3029	ForceSendFields []string `json:"-"`
3030
3031	// NullFields is a list of field names (e.g. "Key") to include in API
3032	// requests with the JSON null value. By default, fields with empty
3033	// values are omitted from API requests. However, any field with an
3034	// empty value appearing in NullFields will be sent to the server as
3035	// null. It is an error if a field in this list has a non-empty value.
3036	// This may be used to include null fields in Patch requests.
3037	NullFields []string `json:"-"`
3038}
3039
3040func (s *TypeProviderLabelEntry) MarshalJSON() ([]byte, error) {
3041	type NoMethod TypeProviderLabelEntry
3042	raw := NoMethod(*s)
3043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3044}
3045
3046// TypeProvidersListResponse: A response that returns all Type Providers
3047// supported by Deployment Manager
3048type TypeProvidersListResponse struct {
3049	// NextPageToken: A token used to continue a truncated list request.
3050	NextPageToken string `json:"nextPageToken,omitempty"`
3051
3052	// TypeProviders: Output only. A list of resource type providers
3053	// supported by Deployment Manager.
3054	TypeProviders []*TypeProvider `json:"typeProviders,omitempty"`
3055
3056	// ServerResponse contains the HTTP response code and headers from the
3057	// server.
3058	googleapi.ServerResponse `json:"-"`
3059
3060	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
3061	// unconditionally include in API requests. By default, fields with
3062	// empty or default values are omitted from API requests. However, any
3063	// non-pointer, non-interface field appearing in ForceSendFields will be
3064	// sent to the server regardless of whether the field is empty or not.
3065	// This may be used to include empty fields in Patch requests.
3066	ForceSendFields []string `json:"-"`
3067
3068	// NullFields is a list of field names (e.g. "NextPageToken") to include
3069	// in API requests with the JSON null value. By default, fields with
3070	// empty values are omitted from API requests. However, any field with
3071	// an empty value appearing in NullFields will be sent to the server as
3072	// null. It is an error if a field in this list has a non-empty value.
3073	// This may be used to include null fields in Patch requests.
3074	NullFields []string `json:"-"`
3075}
3076
3077func (s *TypeProvidersListResponse) MarshalJSON() ([]byte, error) {
3078	type NoMethod TypeProvidersListResponse
3079	raw := NoMethod(*s)
3080	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3081}
3082
3083type TypeProvidersListTypesResponse struct {
3084	// NextPageToken: A token used to continue a truncated list request.
3085	NextPageToken string `json:"nextPageToken,omitempty"`
3086
3087	// Types: Output only. A list of resource type info.
3088	Types []*TypeInfo `json:"types,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 or default values are omitted from API requests. However, any
3097	// non-pointer, non-interface field appearing in ForceSendFields will be
3098	// sent to the server regardless of whether the field is empty or not.
3099	// This may be 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 *TypeProvidersListTypesResponse) MarshalJSON() ([]byte, error) {
3112	type NoMethod TypeProvidersListTypesResponse
3113	raw := NoMethod(*s)
3114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3115}
3116
3117// TypesListResponse: A response that returns all Types supported by
3118// Deployment Manager
3119type TypesListResponse struct {
3120	// NextPageToken: A token used to continue a truncated list request.
3121	NextPageToken string `json:"nextPageToken,omitempty"`
3122
3123	// Types: Output only. A list of resource types supported by Deployment
3124	// Manager.
3125	Types []*Type `json:"types,omitempty"`
3126
3127	// ServerResponse contains the HTTP response code and headers from the
3128	// server.
3129	googleapi.ServerResponse `json:"-"`
3130
3131	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
3132	// unconditionally include in API requests. By default, fields with
3133	// empty or default values are omitted from API requests. However, any
3134	// non-pointer, non-interface field appearing in ForceSendFields will be
3135	// sent to the server regardless of whether the field is empty or not.
3136	// This may be used to include empty fields in Patch requests.
3137	ForceSendFields []string `json:"-"`
3138
3139	// NullFields is a list of field names (e.g. "NextPageToken") to include
3140	// in API requests with the JSON null value. By default, fields with
3141	// empty values are omitted from API requests. However, any field with
3142	// an empty value appearing in NullFields will be sent to the server as
3143	// null. It is an error if a field in this list has a non-empty value.
3144	// This may be used to include null fields in Patch requests.
3145	NullFields []string `json:"-"`
3146}
3147
3148func (s *TypesListResponse) MarshalJSON() ([]byte, error) {
3149	type NoMethod TypesListResponse
3150	raw := NoMethod(*s)
3151	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3152}
3153
3154// ValidationOptions: Options for how to validate and process properties
3155// on a resource.
3156type ValidationOptions struct {
3157	// SchemaValidation: Customize how deployment manager will validate the
3158	// resource against schema errors.
3159	//
3160	// Possible values:
3161	//   "UNKNOWN"
3162	//   "IGNORE" - Ignore schema failures.
3163	//   "IGNORE_WITH_WARNINGS" - Ignore schema failures but display them as
3164	// warnings.
3165	//   "FAIL" - Fail the resource if the schema is not valid, this is the
3166	// default behavior.
3167	SchemaValidation string `json:"schemaValidation,omitempty"`
3168
3169	// UndeclaredProperties: Specify what to do with extra properties when
3170	// executing a request.
3171	//
3172	// Possible values:
3173	//   "UNKNOWN"
3174	//   "INCLUDE" - Always include even if not present on discovery doc.
3175	//   "IGNORE" - Always ignore if not present on discovery doc.
3176	//   "INCLUDE_WITH_WARNINGS" - Include on request, but emit a warning.
3177	//   "IGNORE_WITH_WARNINGS" - Ignore properties, but emit a warning.
3178	//   "FAIL" - Always fail if undeclared properties are present.
3179	UndeclaredProperties string `json:"undeclaredProperties,omitempty"`
3180
3181	// ForceSendFields is a list of field names (e.g. "SchemaValidation") to
3182	// unconditionally include in API requests. By default, fields with
3183	// empty or default values are omitted from API requests. However, any
3184	// non-pointer, non-interface field appearing in ForceSendFields will be
3185	// sent to the server regardless of whether the field is empty or not.
3186	// This may be used to include empty fields in Patch requests.
3187	ForceSendFields []string `json:"-"`
3188
3189	// NullFields is a list of field names (e.g. "SchemaValidation") to
3190	// include in API requests with the JSON null value. By default, fields
3191	// with empty values are omitted from API requests. However, any field
3192	// with an empty value appearing in NullFields will be sent to the
3193	// server as null. It is an error if a field in this list has a
3194	// non-empty value. This may be used to include null fields in Patch
3195	// requests.
3196	NullFields []string `json:"-"`
3197}
3198
3199func (s *ValidationOptions) MarshalJSON() ([]byte, error) {
3200	type NoMethod ValidationOptions
3201	raw := NoMethod(*s)
3202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3203}
3204
3205// method id "deploymentmanager.compositeTypes.delete":
3206
3207type CompositeTypesDeleteCall struct {
3208	s             *Service
3209	project       string
3210	compositeType string
3211	urlParams_    gensupport.URLParams
3212	ctx_          context.Context
3213	header_       http.Header
3214}
3215
3216// Delete: Deletes a composite type.
3217//
3218// - compositeType: The name of the type for this request.
3219// - project: The project ID for this request.
3220func (r *CompositeTypesService) Delete(project string, compositeType string) *CompositeTypesDeleteCall {
3221	c := &CompositeTypesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3222	c.project = project
3223	c.compositeType = compositeType
3224	return c
3225}
3226
3227// Fields allows partial responses to be retrieved. See
3228// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3229// for more information.
3230func (c *CompositeTypesDeleteCall) Fields(s ...googleapi.Field) *CompositeTypesDeleteCall {
3231	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3232	return c
3233}
3234
3235// Context sets the context to be used in this call's Do method. Any
3236// pending HTTP request will be aborted if the provided context is
3237// canceled.
3238func (c *CompositeTypesDeleteCall) Context(ctx context.Context) *CompositeTypesDeleteCall {
3239	c.ctx_ = ctx
3240	return c
3241}
3242
3243// Header returns an http.Header that can be modified by the caller to
3244// add HTTP headers to the request.
3245func (c *CompositeTypesDeleteCall) Header() http.Header {
3246	if c.header_ == nil {
3247		c.header_ = make(http.Header)
3248	}
3249	return c.header_
3250}
3251
3252func (c *CompositeTypesDeleteCall) doRequest(alt string) (*http.Response, error) {
3253	reqHeaders := make(http.Header)
3254	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
3255	for k, v := range c.header_ {
3256		reqHeaders[k] = v
3257	}
3258	reqHeaders.Set("User-Agent", c.s.userAgent())
3259	var body io.Reader = nil
3260	c.urlParams_.Set("alt", alt)
3261	c.urlParams_.Set("prettyPrint", "false")
3262	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}")
3263	urls += "?" + c.urlParams_.Encode()
3264	req, err := http.NewRequest("DELETE", urls, body)
3265	if err != nil {
3266		return nil, err
3267	}
3268	req.Header = reqHeaders
3269	googleapi.Expand(req.URL, map[string]string{
3270		"project":       c.project,
3271		"compositeType": c.compositeType,
3272	})
3273	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3274}
3275
3276// Do executes the "deploymentmanager.compositeTypes.delete" call.
3277// Exactly one of *Operation or error will be non-nil. Any non-2xx
3278// status code is an error. Response headers are in either
3279// *Operation.ServerResponse.Header or (if a response was returned at
3280// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
3281// to check whether the returned error was because
3282// http.StatusNotModified was returned.
3283func (c *CompositeTypesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
3284	gensupport.SetOptions(c.urlParams_, opts...)
3285	res, err := c.doRequest("json")
3286	if res != nil && res.StatusCode == http.StatusNotModified {
3287		if res.Body != nil {
3288			res.Body.Close()
3289		}
3290		return nil, &googleapi.Error{
3291			Code:   res.StatusCode,
3292			Header: res.Header,
3293		}
3294	}
3295	if err != nil {
3296		return nil, err
3297	}
3298	defer googleapi.CloseBody(res)
3299	if err := googleapi.CheckResponse(res); err != nil {
3300		return nil, err
3301	}
3302	ret := &Operation{
3303		ServerResponse: googleapi.ServerResponse{
3304			Header:         res.Header,
3305			HTTPStatusCode: res.StatusCode,
3306		},
3307	}
3308	target := &ret
3309	if err := gensupport.DecodeResponse(target, res); err != nil {
3310		return nil, err
3311	}
3312	return ret, nil
3313	// {
3314	//   "description": "Deletes a composite type.",
3315	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}",
3316	//   "httpMethod": "DELETE",
3317	//   "id": "deploymentmanager.compositeTypes.delete",
3318	//   "parameterOrder": [
3319	//     "project",
3320	//     "compositeType"
3321	//   ],
3322	//   "parameters": {
3323	//     "compositeType": {
3324	//       "description": "The name of the type for this request.",
3325	//       "location": "path",
3326	//       "pattern": "[a-z](?:[-a-z0-9_.]{0,61}[a-z0-9])?",
3327	//       "required": true,
3328	//       "type": "string"
3329	//     },
3330	//     "project": {
3331	//       "description": "The project ID for this request.",
3332	//       "location": "path",
3333	//       "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])?))",
3334	//       "required": true,
3335	//       "type": "string"
3336	//     }
3337	//   },
3338	//   "path": "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}",
3339	//   "response": {
3340	//     "$ref": "Operation"
3341	//   },
3342	//   "scopes": [
3343	//     "https://www.googleapis.com/auth/cloud-platform",
3344	//     "https://www.googleapis.com/auth/ndev.cloudman"
3345	//   ]
3346	// }
3347
3348}
3349
3350// method id "deploymentmanager.compositeTypes.get":
3351
3352type CompositeTypesGetCall struct {
3353	s             *Service
3354	project       string
3355	compositeType string
3356	urlParams_    gensupport.URLParams
3357	ifNoneMatch_  string
3358	ctx_          context.Context
3359	header_       http.Header
3360}
3361
3362// Get: Gets information about a specific composite type.
3363//
3364// - compositeType: The name of the composite type for this request.
3365// - project: The project ID for this request.
3366func (r *CompositeTypesService) Get(project string, compositeType string) *CompositeTypesGetCall {
3367	c := &CompositeTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3368	c.project = project
3369	c.compositeType = compositeType
3370	return c
3371}
3372
3373// Fields allows partial responses to be retrieved. See
3374// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3375// for more information.
3376func (c *CompositeTypesGetCall) Fields(s ...googleapi.Field) *CompositeTypesGetCall {
3377	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3378	return c
3379}
3380
3381// IfNoneMatch sets the optional parameter which makes the operation
3382// fail if the object's ETag matches the given value. This is useful for
3383// getting updates only after the object has changed since the last
3384// request. Use googleapi.IsNotModified to check whether the response
3385// error from Do is the result of In-None-Match.
3386func (c *CompositeTypesGetCall) IfNoneMatch(entityTag string) *CompositeTypesGetCall {
3387	c.ifNoneMatch_ = entityTag
3388	return c
3389}
3390
3391// Context sets the context to be used in this call's Do method. Any
3392// pending HTTP request will be aborted if the provided context is
3393// canceled.
3394func (c *CompositeTypesGetCall) Context(ctx context.Context) *CompositeTypesGetCall {
3395	c.ctx_ = ctx
3396	return c
3397}
3398
3399// Header returns an http.Header that can be modified by the caller to
3400// add HTTP headers to the request.
3401func (c *CompositeTypesGetCall) Header() http.Header {
3402	if c.header_ == nil {
3403		c.header_ = make(http.Header)
3404	}
3405	return c.header_
3406}
3407
3408func (c *CompositeTypesGetCall) doRequest(alt string) (*http.Response, error) {
3409	reqHeaders := make(http.Header)
3410	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
3411	for k, v := range c.header_ {
3412		reqHeaders[k] = v
3413	}
3414	reqHeaders.Set("User-Agent", c.s.userAgent())
3415	if c.ifNoneMatch_ != "" {
3416		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3417	}
3418	var body io.Reader = nil
3419	c.urlParams_.Set("alt", alt)
3420	c.urlParams_.Set("prettyPrint", "false")
3421	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}")
3422	urls += "?" + c.urlParams_.Encode()
3423	req, err := http.NewRequest("GET", urls, body)
3424	if err != nil {
3425		return nil, err
3426	}
3427	req.Header = reqHeaders
3428	googleapi.Expand(req.URL, map[string]string{
3429		"project":       c.project,
3430		"compositeType": c.compositeType,
3431	})
3432	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3433}
3434
3435// Do executes the "deploymentmanager.compositeTypes.get" call.
3436// Exactly one of *CompositeType or error will be non-nil. Any non-2xx
3437// status code is an error. Response headers are in either
3438// *CompositeType.ServerResponse.Header or (if a response was returned
3439// at all) in error.(*googleapi.Error).Header. Use
3440// googleapi.IsNotModified to check whether the returned error was
3441// because http.StatusNotModified was returned.
3442func (c *CompositeTypesGetCall) Do(opts ...googleapi.CallOption) (*CompositeType, error) {
3443	gensupport.SetOptions(c.urlParams_, opts...)
3444	res, err := c.doRequest("json")
3445	if res != nil && res.StatusCode == http.StatusNotModified {
3446		if res.Body != nil {
3447			res.Body.Close()
3448		}
3449		return nil, &googleapi.Error{
3450			Code:   res.StatusCode,
3451			Header: res.Header,
3452		}
3453	}
3454	if err != nil {
3455		return nil, err
3456	}
3457	defer googleapi.CloseBody(res)
3458	if err := googleapi.CheckResponse(res); err != nil {
3459		return nil, err
3460	}
3461	ret := &CompositeType{
3462		ServerResponse: googleapi.ServerResponse{
3463			Header:         res.Header,
3464			HTTPStatusCode: res.StatusCode,
3465		},
3466	}
3467	target := &ret
3468	if err := gensupport.DecodeResponse(target, res); err != nil {
3469		return nil, err
3470	}
3471	return ret, nil
3472	// {
3473	//   "description": "Gets information about a specific composite type.",
3474	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}",
3475	//   "httpMethod": "GET",
3476	//   "id": "deploymentmanager.compositeTypes.get",
3477	//   "parameterOrder": [
3478	//     "project",
3479	//     "compositeType"
3480	//   ],
3481	//   "parameters": {
3482	//     "compositeType": {
3483	//       "description": "The name of the composite type for this request.",
3484	//       "location": "path",
3485	//       "pattern": "[a-z](?:[-a-z0-9_.]{0,61}[a-z0-9])?",
3486	//       "required": true,
3487	//       "type": "string"
3488	//     },
3489	//     "project": {
3490	//       "description": "The project ID for this request.",
3491	//       "location": "path",
3492	//       "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])?))",
3493	//       "required": true,
3494	//       "type": "string"
3495	//     }
3496	//   },
3497	//   "path": "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}",
3498	//   "response": {
3499	//     "$ref": "CompositeType"
3500	//   },
3501	//   "scopes": [
3502	//     "https://www.googleapis.com/auth/cloud-platform",
3503	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
3504	//     "https://www.googleapis.com/auth/ndev.cloudman",
3505	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
3506	//   ]
3507	// }
3508
3509}
3510
3511// method id "deploymentmanager.compositeTypes.insert":
3512
3513type CompositeTypesInsertCall struct {
3514	s             *Service
3515	project       string
3516	compositetype *CompositeType
3517	urlParams_    gensupport.URLParams
3518	ctx_          context.Context
3519	header_       http.Header
3520}
3521
3522// Insert: Creates a composite type.
3523//
3524// - project: The project ID for this request.
3525func (r *CompositeTypesService) Insert(project string, compositetype *CompositeType) *CompositeTypesInsertCall {
3526	c := &CompositeTypesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3527	c.project = project
3528	c.compositetype = compositetype
3529	return c
3530}
3531
3532// Fields allows partial responses to be retrieved. See
3533// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3534// for more information.
3535func (c *CompositeTypesInsertCall) Fields(s ...googleapi.Field) *CompositeTypesInsertCall {
3536	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3537	return c
3538}
3539
3540// Context sets the context to be used in this call's Do method. Any
3541// pending HTTP request will be aborted if the provided context is
3542// canceled.
3543func (c *CompositeTypesInsertCall) Context(ctx context.Context) *CompositeTypesInsertCall {
3544	c.ctx_ = ctx
3545	return c
3546}
3547
3548// Header returns an http.Header that can be modified by the caller to
3549// add HTTP headers to the request.
3550func (c *CompositeTypesInsertCall) Header() http.Header {
3551	if c.header_ == nil {
3552		c.header_ = make(http.Header)
3553	}
3554	return c.header_
3555}
3556
3557func (c *CompositeTypesInsertCall) doRequest(alt string) (*http.Response, error) {
3558	reqHeaders := make(http.Header)
3559	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
3560	for k, v := range c.header_ {
3561		reqHeaders[k] = v
3562	}
3563	reqHeaders.Set("User-Agent", c.s.userAgent())
3564	var body io.Reader = nil
3565	body, err := googleapi.WithoutDataWrapper.JSONReader(c.compositetype)
3566	if err != nil {
3567		return nil, err
3568	}
3569	reqHeaders.Set("Content-Type", "application/json")
3570	c.urlParams_.Set("alt", alt)
3571	c.urlParams_.Set("prettyPrint", "false")
3572	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/compositeTypes")
3573	urls += "?" + c.urlParams_.Encode()
3574	req, err := http.NewRequest("POST", urls, body)
3575	if err != nil {
3576		return nil, err
3577	}
3578	req.Header = reqHeaders
3579	googleapi.Expand(req.URL, map[string]string{
3580		"project": c.project,
3581	})
3582	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3583}
3584
3585// Do executes the "deploymentmanager.compositeTypes.insert" call.
3586// Exactly one of *Operation or error will be non-nil. Any non-2xx
3587// status code is an error. Response headers are in either
3588// *Operation.ServerResponse.Header or (if a response was returned at
3589// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
3590// to check whether the returned error was because
3591// http.StatusNotModified was returned.
3592func (c *CompositeTypesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
3593	gensupport.SetOptions(c.urlParams_, opts...)
3594	res, err := c.doRequest("json")
3595	if res != nil && res.StatusCode == http.StatusNotModified {
3596		if res.Body != nil {
3597			res.Body.Close()
3598		}
3599		return nil, &googleapi.Error{
3600			Code:   res.StatusCode,
3601			Header: res.Header,
3602		}
3603	}
3604	if err != nil {
3605		return nil, err
3606	}
3607	defer googleapi.CloseBody(res)
3608	if err := googleapi.CheckResponse(res); err != nil {
3609		return nil, err
3610	}
3611	ret := &Operation{
3612		ServerResponse: googleapi.ServerResponse{
3613			Header:         res.Header,
3614			HTTPStatusCode: res.StatusCode,
3615		},
3616	}
3617	target := &ret
3618	if err := gensupport.DecodeResponse(target, res); err != nil {
3619		return nil, err
3620	}
3621	return ret, nil
3622	// {
3623	//   "description": "Creates a composite type.",
3624	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/compositeTypes",
3625	//   "httpMethod": "POST",
3626	//   "id": "deploymentmanager.compositeTypes.insert",
3627	//   "parameterOrder": [
3628	//     "project"
3629	//   ],
3630	//   "parameters": {
3631	//     "project": {
3632	//       "description": "The project ID for this request.",
3633	//       "location": "path",
3634	//       "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])?))",
3635	//       "required": true,
3636	//       "type": "string"
3637	//     }
3638	//   },
3639	//   "path": "deploymentmanager/alpha/projects/{project}/global/compositeTypes",
3640	//   "request": {
3641	//     "$ref": "CompositeType"
3642	//   },
3643	//   "response": {
3644	//     "$ref": "Operation"
3645	//   },
3646	//   "scopes": [
3647	//     "https://www.googleapis.com/auth/cloud-platform",
3648	//     "https://www.googleapis.com/auth/ndev.cloudman"
3649	//   ]
3650	// }
3651
3652}
3653
3654// method id "deploymentmanager.compositeTypes.list":
3655
3656type CompositeTypesListCall struct {
3657	s            *Service
3658	project      string
3659	urlParams_   gensupport.URLParams
3660	ifNoneMatch_ string
3661	ctx_         context.Context
3662	header_      http.Header
3663}
3664
3665// List: Lists all composite types for Deployment Manager.
3666//
3667// - project: The project ID for this request.
3668func (r *CompositeTypesService) List(project string) *CompositeTypesListCall {
3669	c := &CompositeTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3670	c.project = project
3671	return c
3672}
3673
3674// Filter sets the optional parameter "filter": A filter expression that
3675// filters resources listed in the response. The expression must specify
3676// the field name, a comparison operator, and the value that you want to
3677// use for filtering. The value must be a string, a number, or a
3678// boolean. The comparison operator must be either `=`, `!=`, `>`, or
3679// `<`. For example, if you are filtering Compute Engine instances, you
3680// can exclude instances named `example-instance` by specifying `name !=
3681// example-instance`. You can also filter nested fields. For example,
3682// you could specify `scheduling.automaticRestart = false` to include
3683// instances only if they are not scheduled for automatic restarts. You
3684// can use filtering on nested fields to filter based on resource
3685// labels. To filter on multiple expressions, provide each separate
3686// expression within parentheses. For example: ```
3687// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
3688// ``` By default, each expression is an `AND` expression. However, you
3689// can include `AND` and `OR` expressions explicitly. For example: ```
3690// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
3691// AND (scheduling.automaticRestart = true) ```
3692func (c *CompositeTypesListCall) Filter(filter string) *CompositeTypesListCall {
3693	c.urlParams_.Set("filter", filter)
3694	return c
3695}
3696
3697// MaxResults sets the optional parameter "maxResults": The maximum
3698// number of results per page that should be returned. If the number of
3699// available results is larger than `maxResults`, Compute Engine returns
3700// a `nextPageToken` that can be used to get the next page of results in
3701// subsequent list requests. Acceptable values are `0` to `500`,
3702// inclusive. (Default: `500`)
3703func (c *CompositeTypesListCall) MaxResults(maxResults int64) *CompositeTypesListCall {
3704	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
3705	return c
3706}
3707
3708// OrderBy sets the optional parameter "orderBy": Sorts list results by
3709// a certain order. By default, results are returned in alphanumerical
3710// order based on the resource name. You can also sort results in
3711// descending order based on the creation timestamp using
3712// `orderBy="creationTimestamp desc". This sorts results based on the
3713// `creationTimestamp` field in reverse chronological order (newest
3714// result first). Use this to sort resources like operations so that the
3715// newest operation is returned first. Currently, only sorting by `name`
3716// or `creationTimestamp desc` is supported.
3717func (c *CompositeTypesListCall) OrderBy(orderBy string) *CompositeTypesListCall {
3718	c.urlParams_.Set("orderBy", orderBy)
3719	return c
3720}
3721
3722// PageToken sets the optional parameter "pageToken": Specifies a page
3723// token to use. Set `pageToken` to the `nextPageToken` returned by a
3724// previous list request to get the next page of results.
3725func (c *CompositeTypesListCall) PageToken(pageToken string) *CompositeTypesListCall {
3726	c.urlParams_.Set("pageToken", pageToken)
3727	return c
3728}
3729
3730// Fields allows partial responses to be retrieved. See
3731// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3732// for more information.
3733func (c *CompositeTypesListCall) Fields(s ...googleapi.Field) *CompositeTypesListCall {
3734	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3735	return c
3736}
3737
3738// IfNoneMatch sets the optional parameter which makes the operation
3739// fail if the object's ETag matches the given value. This is useful for
3740// getting updates only after the object has changed since the last
3741// request. Use googleapi.IsNotModified to check whether the response
3742// error from Do is the result of In-None-Match.
3743func (c *CompositeTypesListCall) IfNoneMatch(entityTag string) *CompositeTypesListCall {
3744	c.ifNoneMatch_ = entityTag
3745	return c
3746}
3747
3748// Context sets the context to be used in this call's Do method. Any
3749// pending HTTP request will be aborted if the provided context is
3750// canceled.
3751func (c *CompositeTypesListCall) Context(ctx context.Context) *CompositeTypesListCall {
3752	c.ctx_ = ctx
3753	return c
3754}
3755
3756// Header returns an http.Header that can be modified by the caller to
3757// add HTTP headers to the request.
3758func (c *CompositeTypesListCall) Header() http.Header {
3759	if c.header_ == nil {
3760		c.header_ = make(http.Header)
3761	}
3762	return c.header_
3763}
3764
3765func (c *CompositeTypesListCall) doRequest(alt string) (*http.Response, error) {
3766	reqHeaders := make(http.Header)
3767	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
3768	for k, v := range c.header_ {
3769		reqHeaders[k] = v
3770	}
3771	reqHeaders.Set("User-Agent", c.s.userAgent())
3772	if c.ifNoneMatch_ != "" {
3773		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3774	}
3775	var body io.Reader = nil
3776	c.urlParams_.Set("alt", alt)
3777	c.urlParams_.Set("prettyPrint", "false")
3778	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/compositeTypes")
3779	urls += "?" + c.urlParams_.Encode()
3780	req, err := http.NewRequest("GET", urls, body)
3781	if err != nil {
3782		return nil, err
3783	}
3784	req.Header = reqHeaders
3785	googleapi.Expand(req.URL, map[string]string{
3786		"project": c.project,
3787	})
3788	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3789}
3790
3791// Do executes the "deploymentmanager.compositeTypes.list" call.
3792// Exactly one of *CompositeTypesListResponse or error will be non-nil.
3793// Any non-2xx status code is an error. Response headers are in either
3794// *CompositeTypesListResponse.ServerResponse.Header or (if a response
3795// was returned at all) in error.(*googleapi.Error).Header. Use
3796// googleapi.IsNotModified to check whether the returned error was
3797// because http.StatusNotModified was returned.
3798func (c *CompositeTypesListCall) Do(opts ...googleapi.CallOption) (*CompositeTypesListResponse, error) {
3799	gensupport.SetOptions(c.urlParams_, opts...)
3800	res, err := c.doRequest("json")
3801	if res != nil && res.StatusCode == http.StatusNotModified {
3802		if res.Body != nil {
3803			res.Body.Close()
3804		}
3805		return nil, &googleapi.Error{
3806			Code:   res.StatusCode,
3807			Header: res.Header,
3808		}
3809	}
3810	if err != nil {
3811		return nil, err
3812	}
3813	defer googleapi.CloseBody(res)
3814	if err := googleapi.CheckResponse(res); err != nil {
3815		return nil, err
3816	}
3817	ret := &CompositeTypesListResponse{
3818		ServerResponse: googleapi.ServerResponse{
3819			Header:         res.Header,
3820			HTTPStatusCode: res.StatusCode,
3821		},
3822	}
3823	target := &ret
3824	if err := gensupport.DecodeResponse(target, res); err != nil {
3825		return nil, err
3826	}
3827	return ret, nil
3828	// {
3829	//   "description": "Lists all composite types for Deployment Manager.",
3830	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/compositeTypes",
3831	//   "httpMethod": "GET",
3832	//   "id": "deploymentmanager.compositeTypes.list",
3833	//   "parameterOrder": [
3834	//     "project"
3835	//   ],
3836	//   "parameters": {
3837	//     "filter": {
3838	//       "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`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You 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. To 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) ```",
3839	//       "location": "query",
3840	//       "type": "string"
3841	//     },
3842	//     "maxResults": {
3843	//       "default": "500",
3844	//       "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`)",
3845	//       "format": "uint32",
3846	//       "location": "query",
3847	//       "minimum": "0",
3848	//       "type": "integer"
3849	//     },
3850	//     "orderBy": {
3851	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You 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. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
3852	//       "location": "query",
3853	//       "type": "string"
3854	//     },
3855	//     "pageToken": {
3856	//       "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.",
3857	//       "location": "query",
3858	//       "type": "string"
3859	//     },
3860	//     "project": {
3861	//       "description": "The project ID for this request.",
3862	//       "location": "path",
3863	//       "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])?))",
3864	//       "required": true,
3865	//       "type": "string"
3866	//     }
3867	//   },
3868	//   "path": "deploymentmanager/alpha/projects/{project}/global/compositeTypes",
3869	//   "response": {
3870	//     "$ref": "CompositeTypesListResponse"
3871	//   },
3872	//   "scopes": [
3873	//     "https://www.googleapis.com/auth/cloud-platform",
3874	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
3875	//     "https://www.googleapis.com/auth/ndev.cloudman",
3876	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
3877	//   ]
3878	// }
3879
3880}
3881
3882// Pages invokes f for each page of results.
3883// A non-nil error returned from f will halt the iteration.
3884// The provided context supersedes any context provided to the Context method.
3885func (c *CompositeTypesListCall) Pages(ctx context.Context, f func(*CompositeTypesListResponse) error) error {
3886	c.ctx_ = ctx
3887	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
3888	for {
3889		x, err := c.Do()
3890		if err != nil {
3891			return err
3892		}
3893		if err := f(x); err != nil {
3894			return err
3895		}
3896		if x.NextPageToken == "" {
3897			return nil
3898		}
3899		c.PageToken(x.NextPageToken)
3900	}
3901}
3902
3903// method id "deploymentmanager.compositeTypes.patch":
3904
3905type CompositeTypesPatchCall struct {
3906	s             *Service
3907	project       string
3908	compositeType string
3909	compositetype *CompositeType
3910	urlParams_    gensupport.URLParams
3911	ctx_          context.Context
3912	header_       http.Header
3913}
3914
3915// Patch: Patches a composite type.
3916//
3917// - compositeType: The name of the composite type for this request.
3918// - project: The project ID for this request.
3919func (r *CompositeTypesService) Patch(project string, compositeType string, compositetype *CompositeType) *CompositeTypesPatchCall {
3920	c := &CompositeTypesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3921	c.project = project
3922	c.compositeType = compositeType
3923	c.compositetype = compositetype
3924	return c
3925}
3926
3927// Fields allows partial responses to be retrieved. See
3928// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3929// for more information.
3930func (c *CompositeTypesPatchCall) Fields(s ...googleapi.Field) *CompositeTypesPatchCall {
3931	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3932	return c
3933}
3934
3935// Context sets the context to be used in this call's Do method. Any
3936// pending HTTP request will be aborted if the provided context is
3937// canceled.
3938func (c *CompositeTypesPatchCall) Context(ctx context.Context) *CompositeTypesPatchCall {
3939	c.ctx_ = ctx
3940	return c
3941}
3942
3943// Header returns an http.Header that can be modified by the caller to
3944// add HTTP headers to the request.
3945func (c *CompositeTypesPatchCall) Header() http.Header {
3946	if c.header_ == nil {
3947		c.header_ = make(http.Header)
3948	}
3949	return c.header_
3950}
3951
3952func (c *CompositeTypesPatchCall) doRequest(alt string) (*http.Response, error) {
3953	reqHeaders := make(http.Header)
3954	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
3955	for k, v := range c.header_ {
3956		reqHeaders[k] = v
3957	}
3958	reqHeaders.Set("User-Agent", c.s.userAgent())
3959	var body io.Reader = nil
3960	body, err := googleapi.WithoutDataWrapper.JSONReader(c.compositetype)
3961	if err != nil {
3962		return nil, err
3963	}
3964	reqHeaders.Set("Content-Type", "application/json")
3965	c.urlParams_.Set("alt", alt)
3966	c.urlParams_.Set("prettyPrint", "false")
3967	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}")
3968	urls += "?" + c.urlParams_.Encode()
3969	req, err := http.NewRequest("PATCH", urls, body)
3970	if err != nil {
3971		return nil, err
3972	}
3973	req.Header = reqHeaders
3974	googleapi.Expand(req.URL, map[string]string{
3975		"project":       c.project,
3976		"compositeType": c.compositeType,
3977	})
3978	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3979}
3980
3981// Do executes the "deploymentmanager.compositeTypes.patch" call.
3982// Exactly one of *Operation or error will be non-nil. Any non-2xx
3983// status code is an error. Response headers are in either
3984// *Operation.ServerResponse.Header or (if a response was returned at
3985// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
3986// to check whether the returned error was because
3987// http.StatusNotModified was returned.
3988func (c *CompositeTypesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
3989	gensupport.SetOptions(c.urlParams_, opts...)
3990	res, err := c.doRequest("json")
3991	if res != nil && res.StatusCode == http.StatusNotModified {
3992		if res.Body != nil {
3993			res.Body.Close()
3994		}
3995		return nil, &googleapi.Error{
3996			Code:   res.StatusCode,
3997			Header: res.Header,
3998		}
3999	}
4000	if err != nil {
4001		return nil, err
4002	}
4003	defer googleapi.CloseBody(res)
4004	if err := googleapi.CheckResponse(res); err != nil {
4005		return nil, err
4006	}
4007	ret := &Operation{
4008		ServerResponse: googleapi.ServerResponse{
4009			Header:         res.Header,
4010			HTTPStatusCode: res.StatusCode,
4011		},
4012	}
4013	target := &ret
4014	if err := gensupport.DecodeResponse(target, res); err != nil {
4015		return nil, err
4016	}
4017	return ret, nil
4018	// {
4019	//   "description": "Patches a composite type.",
4020	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}",
4021	//   "httpMethod": "PATCH",
4022	//   "id": "deploymentmanager.compositeTypes.patch",
4023	//   "parameterOrder": [
4024	//     "project",
4025	//     "compositeType"
4026	//   ],
4027	//   "parameters": {
4028	//     "compositeType": {
4029	//       "description": "The name of the composite type for this request.",
4030	//       "location": "path",
4031	//       "pattern": "[a-z](?:[-a-z0-9_.]{0,61}[a-z0-9])?",
4032	//       "required": true,
4033	//       "type": "string"
4034	//     },
4035	//     "project": {
4036	//       "description": "The project ID for this request.",
4037	//       "location": "path",
4038	//       "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])?))",
4039	//       "required": true,
4040	//       "type": "string"
4041	//     }
4042	//   },
4043	//   "path": "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}",
4044	//   "request": {
4045	//     "$ref": "CompositeType"
4046	//   },
4047	//   "response": {
4048	//     "$ref": "Operation"
4049	//   },
4050	//   "scopes": [
4051	//     "https://www.googleapis.com/auth/cloud-platform",
4052	//     "https://www.googleapis.com/auth/ndev.cloudman"
4053	//   ]
4054	// }
4055
4056}
4057
4058// method id "deploymentmanager.compositeTypes.update":
4059
4060type CompositeTypesUpdateCall struct {
4061	s             *Service
4062	project       string
4063	compositeType string
4064	compositetype *CompositeType
4065	urlParams_    gensupport.URLParams
4066	ctx_          context.Context
4067	header_       http.Header
4068}
4069
4070// Update: Updates a composite type.
4071//
4072// - compositeType: The name of the composite type for this request.
4073// - project: The project ID for this request.
4074func (r *CompositeTypesService) Update(project string, compositeType string, compositetype *CompositeType) *CompositeTypesUpdateCall {
4075	c := &CompositeTypesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4076	c.project = project
4077	c.compositeType = compositeType
4078	c.compositetype = compositetype
4079	return c
4080}
4081
4082// Fields allows partial responses to be retrieved. See
4083// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4084// for more information.
4085func (c *CompositeTypesUpdateCall) Fields(s ...googleapi.Field) *CompositeTypesUpdateCall {
4086	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4087	return c
4088}
4089
4090// Context sets the context to be used in this call's Do method. Any
4091// pending HTTP request will be aborted if the provided context is
4092// canceled.
4093func (c *CompositeTypesUpdateCall) Context(ctx context.Context) *CompositeTypesUpdateCall {
4094	c.ctx_ = ctx
4095	return c
4096}
4097
4098// Header returns an http.Header that can be modified by the caller to
4099// add HTTP headers to the request.
4100func (c *CompositeTypesUpdateCall) Header() http.Header {
4101	if c.header_ == nil {
4102		c.header_ = make(http.Header)
4103	}
4104	return c.header_
4105}
4106
4107func (c *CompositeTypesUpdateCall) doRequest(alt string) (*http.Response, error) {
4108	reqHeaders := make(http.Header)
4109	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
4110	for k, v := range c.header_ {
4111		reqHeaders[k] = v
4112	}
4113	reqHeaders.Set("User-Agent", c.s.userAgent())
4114	var body io.Reader = nil
4115	body, err := googleapi.WithoutDataWrapper.JSONReader(c.compositetype)
4116	if err != nil {
4117		return nil, err
4118	}
4119	reqHeaders.Set("Content-Type", "application/json")
4120	c.urlParams_.Set("alt", alt)
4121	c.urlParams_.Set("prettyPrint", "false")
4122	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}")
4123	urls += "?" + c.urlParams_.Encode()
4124	req, err := http.NewRequest("PUT", urls, body)
4125	if err != nil {
4126		return nil, err
4127	}
4128	req.Header = reqHeaders
4129	googleapi.Expand(req.URL, map[string]string{
4130		"project":       c.project,
4131		"compositeType": c.compositeType,
4132	})
4133	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4134}
4135
4136// Do executes the "deploymentmanager.compositeTypes.update" call.
4137// Exactly one of *Operation or error will be non-nil. Any non-2xx
4138// status code is an error. Response headers are in either
4139// *Operation.ServerResponse.Header or (if a response was returned at
4140// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4141// to check whether the returned error was because
4142// http.StatusNotModified was returned.
4143func (c *CompositeTypesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
4144	gensupport.SetOptions(c.urlParams_, opts...)
4145	res, err := c.doRequest("json")
4146	if res != nil && res.StatusCode == http.StatusNotModified {
4147		if res.Body != nil {
4148			res.Body.Close()
4149		}
4150		return nil, &googleapi.Error{
4151			Code:   res.StatusCode,
4152			Header: res.Header,
4153		}
4154	}
4155	if err != nil {
4156		return nil, err
4157	}
4158	defer googleapi.CloseBody(res)
4159	if err := googleapi.CheckResponse(res); err != nil {
4160		return nil, err
4161	}
4162	ret := &Operation{
4163		ServerResponse: googleapi.ServerResponse{
4164			Header:         res.Header,
4165			HTTPStatusCode: res.StatusCode,
4166		},
4167	}
4168	target := &ret
4169	if err := gensupport.DecodeResponse(target, res); err != nil {
4170		return nil, err
4171	}
4172	return ret, nil
4173	// {
4174	//   "description": "Updates a composite type.",
4175	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}",
4176	//   "httpMethod": "PUT",
4177	//   "id": "deploymentmanager.compositeTypes.update",
4178	//   "parameterOrder": [
4179	//     "project",
4180	//     "compositeType"
4181	//   ],
4182	//   "parameters": {
4183	//     "compositeType": {
4184	//       "description": "The name of the composite type for this request.",
4185	//       "location": "path",
4186	//       "pattern": "[a-z](?:[-a-z0-9_.]{0,61}[a-z0-9])?",
4187	//       "required": true,
4188	//       "type": "string"
4189	//     },
4190	//     "project": {
4191	//       "description": "The project ID for this request.",
4192	//       "location": "path",
4193	//       "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])?))",
4194	//       "required": true,
4195	//       "type": "string"
4196	//     }
4197	//   },
4198	//   "path": "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}",
4199	//   "request": {
4200	//     "$ref": "CompositeType"
4201	//   },
4202	//   "response": {
4203	//     "$ref": "Operation"
4204	//   },
4205	//   "scopes": [
4206	//     "https://www.googleapis.com/auth/cloud-platform",
4207	//     "https://www.googleapis.com/auth/ndev.cloudman"
4208	//   ]
4209	// }
4210
4211}
4212
4213// method id "deploymentmanager.deployments.cancelPreview":
4214
4215type DeploymentsCancelPreviewCall struct {
4216	s                               *Service
4217	project                         string
4218	deployment                      string
4219	deploymentscancelpreviewrequest *DeploymentsCancelPreviewRequest
4220	urlParams_                      gensupport.URLParams
4221	ctx_                            context.Context
4222	header_                         http.Header
4223}
4224
4225// CancelPreview: Cancels and removes the preview currently associated
4226// with the deployment.
4227//
4228// - deployment: The name of the deployment for this request.
4229// - project: The project ID for this request.
4230func (r *DeploymentsService) CancelPreview(project string, deployment string, deploymentscancelpreviewrequest *DeploymentsCancelPreviewRequest) *DeploymentsCancelPreviewCall {
4231	c := &DeploymentsCancelPreviewCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4232	c.project = project
4233	c.deployment = deployment
4234	c.deploymentscancelpreviewrequest = deploymentscancelpreviewrequest
4235	return c
4236}
4237
4238// Fields allows partial responses to be retrieved. See
4239// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4240// for more information.
4241func (c *DeploymentsCancelPreviewCall) Fields(s ...googleapi.Field) *DeploymentsCancelPreviewCall {
4242	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4243	return c
4244}
4245
4246// Context sets the context to be used in this call's Do method. Any
4247// pending HTTP request will be aborted if the provided context is
4248// canceled.
4249func (c *DeploymentsCancelPreviewCall) Context(ctx context.Context) *DeploymentsCancelPreviewCall {
4250	c.ctx_ = ctx
4251	return c
4252}
4253
4254// Header returns an http.Header that can be modified by the caller to
4255// add HTTP headers to the request.
4256func (c *DeploymentsCancelPreviewCall) Header() http.Header {
4257	if c.header_ == nil {
4258		c.header_ = make(http.Header)
4259	}
4260	return c.header_
4261}
4262
4263func (c *DeploymentsCancelPreviewCall) doRequest(alt string) (*http.Response, error) {
4264	reqHeaders := make(http.Header)
4265	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
4266	for k, v := range c.header_ {
4267		reqHeaders[k] = v
4268	}
4269	reqHeaders.Set("User-Agent", c.s.userAgent())
4270	var body io.Reader = nil
4271	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deploymentscancelpreviewrequest)
4272	if err != nil {
4273		return nil, err
4274	}
4275	reqHeaders.Set("Content-Type", "application/json")
4276	c.urlParams_.Set("alt", alt)
4277	c.urlParams_.Set("prettyPrint", "false")
4278	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/cancelPreview")
4279	urls += "?" + c.urlParams_.Encode()
4280	req, err := http.NewRequest("POST", urls, body)
4281	if err != nil {
4282		return nil, err
4283	}
4284	req.Header = reqHeaders
4285	googleapi.Expand(req.URL, map[string]string{
4286		"project":    c.project,
4287		"deployment": c.deployment,
4288	})
4289	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4290}
4291
4292// Do executes the "deploymentmanager.deployments.cancelPreview" call.
4293// Exactly one of *Operation or error will be non-nil. Any non-2xx
4294// status code is an error. Response headers are in either
4295// *Operation.ServerResponse.Header or (if a response was returned at
4296// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4297// to check whether the returned error was because
4298// http.StatusNotModified was returned.
4299func (c *DeploymentsCancelPreviewCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
4300	gensupport.SetOptions(c.urlParams_, opts...)
4301	res, err := c.doRequest("json")
4302	if res != nil && res.StatusCode == http.StatusNotModified {
4303		if res.Body != nil {
4304			res.Body.Close()
4305		}
4306		return nil, &googleapi.Error{
4307			Code:   res.StatusCode,
4308			Header: res.Header,
4309		}
4310	}
4311	if err != nil {
4312		return nil, err
4313	}
4314	defer googleapi.CloseBody(res)
4315	if err := googleapi.CheckResponse(res); err != nil {
4316		return nil, err
4317	}
4318	ret := &Operation{
4319		ServerResponse: googleapi.ServerResponse{
4320			Header:         res.Header,
4321			HTTPStatusCode: res.StatusCode,
4322		},
4323	}
4324	target := &ret
4325	if err := gensupport.DecodeResponse(target, res); err != nil {
4326		return nil, err
4327	}
4328	return ret, nil
4329	// {
4330	//   "description": "Cancels and removes the preview currently associated with the deployment.",
4331	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/cancelPreview",
4332	//   "httpMethod": "POST",
4333	//   "id": "deploymentmanager.deployments.cancelPreview",
4334	//   "parameterOrder": [
4335	//     "project",
4336	//     "deployment"
4337	//   ],
4338	//   "parameters": {
4339	//     "deployment": {
4340	//       "description": "The name of the deployment for this request.",
4341	//       "location": "path",
4342	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
4343	//       "required": true,
4344	//       "type": "string"
4345	//     },
4346	//     "project": {
4347	//       "description": "The project ID for this request.",
4348	//       "location": "path",
4349	//       "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])?))",
4350	//       "required": true,
4351	//       "type": "string"
4352	//     }
4353	//   },
4354	//   "path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/cancelPreview",
4355	//   "request": {
4356	//     "$ref": "DeploymentsCancelPreviewRequest"
4357	//   },
4358	//   "response": {
4359	//     "$ref": "Operation"
4360	//   },
4361	//   "scopes": [
4362	//     "https://www.googleapis.com/auth/cloud-platform",
4363	//     "https://www.googleapis.com/auth/ndev.cloudman"
4364	//   ]
4365	// }
4366
4367}
4368
4369// method id "deploymentmanager.deployments.delete":
4370
4371type DeploymentsDeleteCall struct {
4372	s          *Service
4373	project    string
4374	deployment string
4375	urlParams_ gensupport.URLParams
4376	ctx_       context.Context
4377	header_    http.Header
4378}
4379
4380// Delete: Deletes a deployment and all of the resources in the
4381// deployment.
4382//
4383// - deployment: The name of the deployment for this request.
4384// - project: The project ID for this request.
4385func (r *DeploymentsService) Delete(project string, deployment string) *DeploymentsDeleteCall {
4386	c := &DeploymentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4387	c.project = project
4388	c.deployment = deployment
4389	return c
4390}
4391
4392// DeletePolicy sets the optional parameter "deletePolicy": Sets the
4393// policy to use for deleting resources.
4394//
4395// Possible values:
4396//   "DELETE" (default)
4397//   "ABANDON"
4398func (c *DeploymentsDeleteCall) DeletePolicy(deletePolicy string) *DeploymentsDeleteCall {
4399	c.urlParams_.Set("deletePolicy", deletePolicy)
4400	return c
4401}
4402
4403// Fields allows partial responses to be retrieved. See
4404// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4405// for more information.
4406func (c *DeploymentsDeleteCall) Fields(s ...googleapi.Field) *DeploymentsDeleteCall {
4407	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4408	return c
4409}
4410
4411// Context sets the context to be used in this call's Do method. Any
4412// pending HTTP request will be aborted if the provided context is
4413// canceled.
4414func (c *DeploymentsDeleteCall) Context(ctx context.Context) *DeploymentsDeleteCall {
4415	c.ctx_ = ctx
4416	return c
4417}
4418
4419// Header returns an http.Header that can be modified by the caller to
4420// add HTTP headers to the request.
4421func (c *DeploymentsDeleteCall) Header() http.Header {
4422	if c.header_ == nil {
4423		c.header_ = make(http.Header)
4424	}
4425	return c.header_
4426}
4427
4428func (c *DeploymentsDeleteCall) doRequest(alt string) (*http.Response, error) {
4429	reqHeaders := make(http.Header)
4430	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
4431	for k, v := range c.header_ {
4432		reqHeaders[k] = v
4433	}
4434	reqHeaders.Set("User-Agent", c.s.userAgent())
4435	var body io.Reader = nil
4436	c.urlParams_.Set("alt", alt)
4437	c.urlParams_.Set("prettyPrint", "false")
4438	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}")
4439	urls += "?" + c.urlParams_.Encode()
4440	req, err := http.NewRequest("DELETE", urls, body)
4441	if err != nil {
4442		return nil, err
4443	}
4444	req.Header = reqHeaders
4445	googleapi.Expand(req.URL, map[string]string{
4446		"project":    c.project,
4447		"deployment": c.deployment,
4448	})
4449	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4450}
4451
4452// Do executes the "deploymentmanager.deployments.delete" call.
4453// Exactly one of *Operation or error will be non-nil. Any non-2xx
4454// status code is an error. Response headers are in either
4455// *Operation.ServerResponse.Header or (if a response was returned at
4456// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4457// to check whether the returned error was because
4458// http.StatusNotModified was returned.
4459func (c *DeploymentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
4460	gensupport.SetOptions(c.urlParams_, opts...)
4461	res, err := c.doRequest("json")
4462	if res != nil && res.StatusCode == http.StatusNotModified {
4463		if res.Body != nil {
4464			res.Body.Close()
4465		}
4466		return nil, &googleapi.Error{
4467			Code:   res.StatusCode,
4468			Header: res.Header,
4469		}
4470	}
4471	if err != nil {
4472		return nil, err
4473	}
4474	defer googleapi.CloseBody(res)
4475	if err := googleapi.CheckResponse(res); err != nil {
4476		return nil, err
4477	}
4478	ret := &Operation{
4479		ServerResponse: googleapi.ServerResponse{
4480			Header:         res.Header,
4481			HTTPStatusCode: res.StatusCode,
4482		},
4483	}
4484	target := &ret
4485	if err := gensupport.DecodeResponse(target, res); err != nil {
4486		return nil, err
4487	}
4488	return ret, nil
4489	// {
4490	//   "description": "Deletes a deployment and all of the resources in the deployment.",
4491	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}",
4492	//   "httpMethod": "DELETE",
4493	//   "id": "deploymentmanager.deployments.delete",
4494	//   "parameterOrder": [
4495	//     "project",
4496	//     "deployment"
4497	//   ],
4498	//   "parameters": {
4499	//     "deletePolicy": {
4500	//       "default": "DELETE",
4501	//       "description": "Sets the policy to use for deleting resources.",
4502	//       "enum": [
4503	//         "DELETE",
4504	//         "ABANDON"
4505	//       ],
4506	//       "enumDescriptions": [
4507	//         "",
4508	//         ""
4509	//       ],
4510	//       "location": "query",
4511	//       "type": "string"
4512	//     },
4513	//     "deployment": {
4514	//       "description": "The name of the deployment for this request.",
4515	//       "location": "path",
4516	//       "required": true,
4517	//       "type": "string"
4518	//     },
4519	//     "project": {
4520	//       "description": "The project ID for this request.",
4521	//       "location": "path",
4522	//       "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])?))",
4523	//       "required": true,
4524	//       "type": "string"
4525	//     }
4526	//   },
4527	//   "path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}",
4528	//   "response": {
4529	//     "$ref": "Operation"
4530	//   },
4531	//   "scopes": [
4532	//     "https://www.googleapis.com/auth/cloud-platform",
4533	//     "https://www.googleapis.com/auth/ndev.cloudman"
4534	//   ]
4535	// }
4536
4537}
4538
4539// method id "deploymentmanager.deployments.get":
4540
4541type DeploymentsGetCall struct {
4542	s            *Service
4543	project      string
4544	deployment   string
4545	urlParams_   gensupport.URLParams
4546	ifNoneMatch_ string
4547	ctx_         context.Context
4548	header_      http.Header
4549}
4550
4551// Get: Gets information about a specific deployment.
4552//
4553// - deployment: The name of the deployment for this request.
4554// - project: The project ID for this request.
4555func (r *DeploymentsService) Get(project string, deployment string) *DeploymentsGetCall {
4556	c := &DeploymentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4557	c.project = project
4558	c.deployment = deployment
4559	return c
4560}
4561
4562// Fields allows partial responses to be retrieved. See
4563// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4564// for more information.
4565func (c *DeploymentsGetCall) Fields(s ...googleapi.Field) *DeploymentsGetCall {
4566	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4567	return c
4568}
4569
4570// IfNoneMatch sets the optional parameter which makes the operation
4571// fail if the object's ETag matches the given value. This is useful for
4572// getting updates only after the object has changed since the last
4573// request. Use googleapi.IsNotModified to check whether the response
4574// error from Do is the result of In-None-Match.
4575func (c *DeploymentsGetCall) IfNoneMatch(entityTag string) *DeploymentsGetCall {
4576	c.ifNoneMatch_ = entityTag
4577	return c
4578}
4579
4580// Context sets the context to be used in this call's Do method. Any
4581// pending HTTP request will be aborted if the provided context is
4582// canceled.
4583func (c *DeploymentsGetCall) Context(ctx context.Context) *DeploymentsGetCall {
4584	c.ctx_ = ctx
4585	return c
4586}
4587
4588// Header returns an http.Header that can be modified by the caller to
4589// add HTTP headers to the request.
4590func (c *DeploymentsGetCall) Header() http.Header {
4591	if c.header_ == nil {
4592		c.header_ = make(http.Header)
4593	}
4594	return c.header_
4595}
4596
4597func (c *DeploymentsGetCall) doRequest(alt string) (*http.Response, error) {
4598	reqHeaders := make(http.Header)
4599	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
4600	for k, v := range c.header_ {
4601		reqHeaders[k] = v
4602	}
4603	reqHeaders.Set("User-Agent", c.s.userAgent())
4604	if c.ifNoneMatch_ != "" {
4605		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4606	}
4607	var body io.Reader = nil
4608	c.urlParams_.Set("alt", alt)
4609	c.urlParams_.Set("prettyPrint", "false")
4610	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}")
4611	urls += "?" + c.urlParams_.Encode()
4612	req, err := http.NewRequest("GET", urls, body)
4613	if err != nil {
4614		return nil, err
4615	}
4616	req.Header = reqHeaders
4617	googleapi.Expand(req.URL, map[string]string{
4618		"project":    c.project,
4619		"deployment": c.deployment,
4620	})
4621	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4622}
4623
4624// Do executes the "deploymentmanager.deployments.get" call.
4625// Exactly one of *Deployment or error will be non-nil. Any non-2xx
4626// status code is an error. Response headers are in either
4627// *Deployment.ServerResponse.Header or (if a response was returned at
4628// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4629// to check whether the returned error was because
4630// http.StatusNotModified was returned.
4631func (c *DeploymentsGetCall) Do(opts ...googleapi.CallOption) (*Deployment, error) {
4632	gensupport.SetOptions(c.urlParams_, opts...)
4633	res, err := c.doRequest("json")
4634	if res != nil && res.StatusCode == http.StatusNotModified {
4635		if res.Body != nil {
4636			res.Body.Close()
4637		}
4638		return nil, &googleapi.Error{
4639			Code:   res.StatusCode,
4640			Header: res.Header,
4641		}
4642	}
4643	if err != nil {
4644		return nil, err
4645	}
4646	defer googleapi.CloseBody(res)
4647	if err := googleapi.CheckResponse(res); err != nil {
4648		return nil, err
4649	}
4650	ret := &Deployment{
4651		ServerResponse: googleapi.ServerResponse{
4652			Header:         res.Header,
4653			HTTPStatusCode: res.StatusCode,
4654		},
4655	}
4656	target := &ret
4657	if err := gensupport.DecodeResponse(target, res); err != nil {
4658		return nil, err
4659	}
4660	return ret, nil
4661	// {
4662	//   "description": "Gets information about a specific deployment.",
4663	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}",
4664	//   "httpMethod": "GET",
4665	//   "id": "deploymentmanager.deployments.get",
4666	//   "parameterOrder": [
4667	//     "project",
4668	//     "deployment"
4669	//   ],
4670	//   "parameters": {
4671	//     "deployment": {
4672	//       "description": "The name of the deployment for this request.",
4673	//       "location": "path",
4674	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
4675	//       "required": true,
4676	//       "type": "string"
4677	//     },
4678	//     "project": {
4679	//       "description": "The project ID for this request.",
4680	//       "location": "path",
4681	//       "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])?))",
4682	//       "required": true,
4683	//       "type": "string"
4684	//     }
4685	//   },
4686	//   "path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}",
4687	//   "response": {
4688	//     "$ref": "Deployment"
4689	//   },
4690	//   "scopes": [
4691	//     "https://www.googleapis.com/auth/cloud-platform",
4692	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
4693	//     "https://www.googleapis.com/auth/ndev.cloudman",
4694	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
4695	//   ]
4696	// }
4697
4698}
4699
4700// method id "deploymentmanager.deployments.getIamPolicy":
4701
4702type DeploymentsGetIamPolicyCall struct {
4703	s            *Service
4704	project      string
4705	resource     string
4706	urlParams_   gensupport.URLParams
4707	ifNoneMatch_ string
4708	ctx_         context.Context
4709	header_      http.Header
4710}
4711
4712// GetIamPolicy: Gets the access control policy for a resource. May be
4713// empty if no such policy or resource exists.
4714//
4715// - project: Project ID for this request.
4716// - resource: Name or id of the resource for this request.
4717func (r *DeploymentsService) GetIamPolicy(project string, resource string) *DeploymentsGetIamPolicyCall {
4718	c := &DeploymentsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4719	c.project = project
4720	c.resource = resource
4721	return c
4722}
4723
4724// OptionsRequestedPolicyVersion sets the optional parameter
4725// "optionsRequestedPolicyVersion": Requested IAM Policy version.
4726func (c *DeploymentsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *DeploymentsGetIamPolicyCall {
4727	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
4728	return c
4729}
4730
4731// Fields allows partial responses to be retrieved. See
4732// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4733// for more information.
4734func (c *DeploymentsGetIamPolicyCall) Fields(s ...googleapi.Field) *DeploymentsGetIamPolicyCall {
4735	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4736	return c
4737}
4738
4739// IfNoneMatch sets the optional parameter which makes the operation
4740// fail if the object's ETag matches the given value. This is useful for
4741// getting updates only after the object has changed since the last
4742// request. Use googleapi.IsNotModified to check whether the response
4743// error from Do is the result of In-None-Match.
4744func (c *DeploymentsGetIamPolicyCall) IfNoneMatch(entityTag string) *DeploymentsGetIamPolicyCall {
4745	c.ifNoneMatch_ = entityTag
4746	return c
4747}
4748
4749// Context sets the context to be used in this call's Do method. Any
4750// pending HTTP request will be aborted if the provided context is
4751// canceled.
4752func (c *DeploymentsGetIamPolicyCall) Context(ctx context.Context) *DeploymentsGetIamPolicyCall {
4753	c.ctx_ = ctx
4754	return c
4755}
4756
4757// Header returns an http.Header that can be modified by the caller to
4758// add HTTP headers to the request.
4759func (c *DeploymentsGetIamPolicyCall) Header() http.Header {
4760	if c.header_ == nil {
4761		c.header_ = make(http.Header)
4762	}
4763	return c.header_
4764}
4765
4766func (c *DeploymentsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
4767	reqHeaders := make(http.Header)
4768	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
4769	for k, v := range c.header_ {
4770		reqHeaders[k] = v
4771	}
4772	reqHeaders.Set("User-Agent", c.s.userAgent())
4773	if c.ifNoneMatch_ != "" {
4774		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4775	}
4776	var body io.Reader = nil
4777	c.urlParams_.Set("alt", alt)
4778	c.urlParams_.Set("prettyPrint", "false")
4779	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/deployments/{resource}/getIamPolicy")
4780	urls += "?" + c.urlParams_.Encode()
4781	req, err := http.NewRequest("GET", urls, body)
4782	if err != nil {
4783		return nil, err
4784	}
4785	req.Header = reqHeaders
4786	googleapi.Expand(req.URL, map[string]string{
4787		"project":  c.project,
4788		"resource": c.resource,
4789	})
4790	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4791}
4792
4793// Do executes the "deploymentmanager.deployments.getIamPolicy" call.
4794// Exactly one of *Policy or error will be non-nil. Any non-2xx status
4795// code is an error. Response headers are in either
4796// *Policy.ServerResponse.Header or (if a response was returned at all)
4797// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
4798// check whether the returned error was because http.StatusNotModified
4799// was returned.
4800func (c *DeploymentsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
4801	gensupport.SetOptions(c.urlParams_, opts...)
4802	res, err := c.doRequest("json")
4803	if res != nil && res.StatusCode == http.StatusNotModified {
4804		if res.Body != nil {
4805			res.Body.Close()
4806		}
4807		return nil, &googleapi.Error{
4808			Code:   res.StatusCode,
4809			Header: res.Header,
4810		}
4811	}
4812	if err != nil {
4813		return nil, err
4814	}
4815	defer googleapi.CloseBody(res)
4816	if err := googleapi.CheckResponse(res); err != nil {
4817		return nil, err
4818	}
4819	ret := &Policy{
4820		ServerResponse: googleapi.ServerResponse{
4821			Header:         res.Header,
4822			HTTPStatusCode: res.StatusCode,
4823		},
4824	}
4825	target := &ret
4826	if err := gensupport.DecodeResponse(target, res); err != nil {
4827		return nil, err
4828	}
4829	return ret, nil
4830	// {
4831	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
4832	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{resource}/getIamPolicy",
4833	//   "httpMethod": "GET",
4834	//   "id": "deploymentmanager.deployments.getIamPolicy",
4835	//   "parameterOrder": [
4836	//     "project",
4837	//     "resource"
4838	//   ],
4839	//   "parameters": {
4840	//     "optionsRequestedPolicyVersion": {
4841	//       "description": "Requested IAM Policy version.",
4842	//       "format": "int32",
4843	//       "location": "query",
4844	//       "type": "integer"
4845	//     },
4846	//     "project": {
4847	//       "description": "Project ID for this request.",
4848	//       "location": "path",
4849	//       "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])?))",
4850	//       "required": true,
4851	//       "type": "string"
4852	//     },
4853	//     "resource": {
4854	//       "description": "Name or id of the resource for this request.",
4855	//       "location": "path",
4856	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
4857	//       "required": true,
4858	//       "type": "string"
4859	//     }
4860	//   },
4861	//   "path": "deploymentmanager/alpha/projects/{project}/global/deployments/{resource}/getIamPolicy",
4862	//   "response": {
4863	//     "$ref": "Policy"
4864	//   },
4865	//   "scopes": [
4866	//     "https://www.googleapis.com/auth/cloud-platform",
4867	//     "https://www.googleapis.com/auth/ndev.cloudman"
4868	//   ]
4869	// }
4870
4871}
4872
4873// method id "deploymentmanager.deployments.insert":
4874
4875type DeploymentsInsertCall struct {
4876	s          *Service
4877	project    string
4878	deployment *Deployment
4879	urlParams_ gensupport.URLParams
4880	ctx_       context.Context
4881	header_    http.Header
4882}
4883
4884// Insert: Creates a deployment and all of the resources described by
4885// the deployment manifest.
4886//
4887// - project: The project ID for this request.
4888func (r *DeploymentsService) Insert(project string, deployment *Deployment) *DeploymentsInsertCall {
4889	c := &DeploymentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4890	c.project = project
4891	c.deployment = deployment
4892	return c
4893}
4894
4895// CreatePolicy sets the optional parameter "createPolicy": Sets the
4896// policy to use for creating new resources.
4897//
4898// Possible values:
4899//   "CREATE_OR_ACQUIRE" (default)
4900//   "ACQUIRE"
4901//   "CREATE"
4902func (c *DeploymentsInsertCall) CreatePolicy(createPolicy string) *DeploymentsInsertCall {
4903	c.urlParams_.Set("createPolicy", createPolicy)
4904	return c
4905}
4906
4907// Preview sets the optional parameter "preview": If set to true,
4908// creates a deployment and creates "shell" resources but does not
4909// actually instantiate these resources. This allows you to preview what
4910// your deployment looks like. After previewing a deployment, you can
4911// deploy your resources by making a request with the `update()` method
4912// or you can use the `cancelPreview()` method to cancel the preview
4913// altogether. Note that the deployment will still exist after you
4914// cancel the preview and you must separately delete this deployment if
4915// you want to remove it.
4916func (c *DeploymentsInsertCall) Preview(preview bool) *DeploymentsInsertCall {
4917	c.urlParams_.Set("preview", fmt.Sprint(preview))
4918	return c
4919}
4920
4921// Fields allows partial responses to be retrieved. See
4922// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4923// for more information.
4924func (c *DeploymentsInsertCall) Fields(s ...googleapi.Field) *DeploymentsInsertCall {
4925	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4926	return c
4927}
4928
4929// Context sets the context to be used in this call's Do method. Any
4930// pending HTTP request will be aborted if the provided context is
4931// canceled.
4932func (c *DeploymentsInsertCall) Context(ctx context.Context) *DeploymentsInsertCall {
4933	c.ctx_ = ctx
4934	return c
4935}
4936
4937// Header returns an http.Header that can be modified by the caller to
4938// add HTTP headers to the request.
4939func (c *DeploymentsInsertCall) Header() http.Header {
4940	if c.header_ == nil {
4941		c.header_ = make(http.Header)
4942	}
4943	return c.header_
4944}
4945
4946func (c *DeploymentsInsertCall) doRequest(alt string) (*http.Response, error) {
4947	reqHeaders := make(http.Header)
4948	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
4949	for k, v := range c.header_ {
4950		reqHeaders[k] = v
4951	}
4952	reqHeaders.Set("User-Agent", c.s.userAgent())
4953	var body io.Reader = nil
4954	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deployment)
4955	if err != nil {
4956		return nil, err
4957	}
4958	reqHeaders.Set("Content-Type", "application/json")
4959	c.urlParams_.Set("alt", alt)
4960	c.urlParams_.Set("prettyPrint", "false")
4961	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/deployments")
4962	urls += "?" + c.urlParams_.Encode()
4963	req, err := http.NewRequest("POST", urls, body)
4964	if err != nil {
4965		return nil, err
4966	}
4967	req.Header = reqHeaders
4968	googleapi.Expand(req.URL, map[string]string{
4969		"project": c.project,
4970	})
4971	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4972}
4973
4974// Do executes the "deploymentmanager.deployments.insert" call.
4975// Exactly one of *Operation or error will be non-nil. Any non-2xx
4976// status code is an error. Response headers are in either
4977// *Operation.ServerResponse.Header or (if a response was returned at
4978// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4979// to check whether the returned error was because
4980// http.StatusNotModified was returned.
4981func (c *DeploymentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
4982	gensupport.SetOptions(c.urlParams_, opts...)
4983	res, err := c.doRequest("json")
4984	if res != nil && res.StatusCode == http.StatusNotModified {
4985		if res.Body != nil {
4986			res.Body.Close()
4987		}
4988		return nil, &googleapi.Error{
4989			Code:   res.StatusCode,
4990			Header: res.Header,
4991		}
4992	}
4993	if err != nil {
4994		return nil, err
4995	}
4996	defer googleapi.CloseBody(res)
4997	if err := googleapi.CheckResponse(res); err != nil {
4998		return nil, err
4999	}
5000	ret := &Operation{
5001		ServerResponse: googleapi.ServerResponse{
5002			Header:         res.Header,
5003			HTTPStatusCode: res.StatusCode,
5004		},
5005	}
5006	target := &ret
5007	if err := gensupport.DecodeResponse(target, res); err != nil {
5008		return nil, err
5009	}
5010	return ret, nil
5011	// {
5012	//   "description": "Creates a deployment and all of the resources described by the deployment manifest.",
5013	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments",
5014	//   "httpMethod": "POST",
5015	//   "id": "deploymentmanager.deployments.insert",
5016	//   "parameterOrder": [
5017	//     "project"
5018	//   ],
5019	//   "parameters": {
5020	//     "createPolicy": {
5021	//       "default": "CREATE_OR_ACQUIRE",
5022	//       "description": "Sets the policy to use for creating new resources.",
5023	//       "enum": [
5024	//         "CREATE_OR_ACQUIRE",
5025	//         "ACQUIRE",
5026	//         "CREATE"
5027	//       ],
5028	//       "enumDescriptions": [
5029	//         "",
5030	//         "",
5031	//         ""
5032	//       ],
5033	//       "location": "query",
5034	//       "type": "string"
5035	//     },
5036	//     "preview": {
5037	//       "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.",
5038	//       "location": "query",
5039	//       "type": "boolean"
5040	//     },
5041	//     "project": {
5042	//       "description": "The project ID for this request.",
5043	//       "location": "path",
5044	//       "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])?))",
5045	//       "required": true,
5046	//       "type": "string"
5047	//     }
5048	//   },
5049	//   "path": "deploymentmanager/alpha/projects/{project}/global/deployments",
5050	//   "request": {
5051	//     "$ref": "Deployment"
5052	//   },
5053	//   "response": {
5054	//     "$ref": "Operation"
5055	//   },
5056	//   "scopes": [
5057	//     "https://www.googleapis.com/auth/cloud-platform",
5058	//     "https://www.googleapis.com/auth/ndev.cloudman"
5059	//   ]
5060	// }
5061
5062}
5063
5064// method id "deploymentmanager.deployments.list":
5065
5066type DeploymentsListCall struct {
5067	s            *Service
5068	project      string
5069	urlParams_   gensupport.URLParams
5070	ifNoneMatch_ string
5071	ctx_         context.Context
5072	header_      http.Header
5073}
5074
5075// List: Lists all deployments for a given project.
5076//
5077// - project: The project ID for this request.
5078func (r *DeploymentsService) List(project string) *DeploymentsListCall {
5079	c := &DeploymentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5080	c.project = project
5081	return c
5082}
5083
5084// Filter sets the optional parameter "filter": A filter expression that
5085// filters resources listed in the response. The expression must specify
5086// the field name, a comparison operator, and the value that you want to
5087// use for filtering. The value must be a string, a number, or a
5088// boolean. The comparison operator must be either `=`, `!=`, `>`, or
5089// `<`. For example, if you are filtering Compute Engine instances, you
5090// can exclude instances named `example-instance` by specifying `name !=
5091// example-instance`. You can also filter nested fields. For example,
5092// you could specify `scheduling.automaticRestart = false` to include
5093// instances only if they are not scheduled for automatic restarts. You
5094// can use filtering on nested fields to filter based on resource
5095// labels. To filter on multiple expressions, provide each separate
5096// expression within parentheses. For example: ```
5097// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
5098// ``` By default, each expression is an `AND` expression. However, you
5099// can include `AND` and `OR` expressions explicitly. For example: ```
5100// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
5101// AND (scheduling.automaticRestart = true) ```
5102func (c *DeploymentsListCall) Filter(filter string) *DeploymentsListCall {
5103	c.urlParams_.Set("filter", filter)
5104	return c
5105}
5106
5107// MaxResults sets the optional parameter "maxResults": The maximum
5108// number of results per page that should be returned. If the number of
5109// available results is larger than `maxResults`, Compute Engine returns
5110// a `nextPageToken` that can be used to get the next page of results in
5111// subsequent list requests. Acceptable values are `0` to `500`,
5112// inclusive. (Default: `500`)
5113func (c *DeploymentsListCall) MaxResults(maxResults int64) *DeploymentsListCall {
5114	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
5115	return c
5116}
5117
5118// OrderBy sets the optional parameter "orderBy": Sorts list results by
5119// a certain order. By default, results are returned in alphanumerical
5120// order based on the resource name. You can also sort results in
5121// descending order based on the creation timestamp using
5122// `orderBy="creationTimestamp desc". This sorts results based on the
5123// `creationTimestamp` field in reverse chronological order (newest
5124// result first). Use this to sort resources like operations so that the
5125// newest operation is returned first. Currently, only sorting by `name`
5126// or `creationTimestamp desc` is supported.
5127func (c *DeploymentsListCall) OrderBy(orderBy string) *DeploymentsListCall {
5128	c.urlParams_.Set("orderBy", orderBy)
5129	return c
5130}
5131
5132// PageToken sets the optional parameter "pageToken": Specifies a page
5133// token to use. Set `pageToken` to the `nextPageToken` returned by a
5134// previous list request to get the next page of results.
5135func (c *DeploymentsListCall) PageToken(pageToken string) *DeploymentsListCall {
5136	c.urlParams_.Set("pageToken", pageToken)
5137	return c
5138}
5139
5140// Fields allows partial responses to be retrieved. See
5141// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5142// for more information.
5143func (c *DeploymentsListCall) Fields(s ...googleapi.Field) *DeploymentsListCall {
5144	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5145	return c
5146}
5147
5148// IfNoneMatch sets the optional parameter which makes the operation
5149// fail if the object's ETag matches the given value. This is useful for
5150// getting updates only after the object has changed since the last
5151// request. Use googleapi.IsNotModified to check whether the response
5152// error from Do is the result of In-None-Match.
5153func (c *DeploymentsListCall) IfNoneMatch(entityTag string) *DeploymentsListCall {
5154	c.ifNoneMatch_ = entityTag
5155	return c
5156}
5157
5158// Context sets the context to be used in this call's Do method. Any
5159// pending HTTP request will be aborted if the provided context is
5160// canceled.
5161func (c *DeploymentsListCall) Context(ctx context.Context) *DeploymentsListCall {
5162	c.ctx_ = ctx
5163	return c
5164}
5165
5166// Header returns an http.Header that can be modified by the caller to
5167// add HTTP headers to the request.
5168func (c *DeploymentsListCall) Header() http.Header {
5169	if c.header_ == nil {
5170		c.header_ = make(http.Header)
5171	}
5172	return c.header_
5173}
5174
5175func (c *DeploymentsListCall) doRequest(alt string) (*http.Response, error) {
5176	reqHeaders := make(http.Header)
5177	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
5178	for k, v := range c.header_ {
5179		reqHeaders[k] = v
5180	}
5181	reqHeaders.Set("User-Agent", c.s.userAgent())
5182	if c.ifNoneMatch_ != "" {
5183		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5184	}
5185	var body io.Reader = nil
5186	c.urlParams_.Set("alt", alt)
5187	c.urlParams_.Set("prettyPrint", "false")
5188	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/deployments")
5189	urls += "?" + c.urlParams_.Encode()
5190	req, err := http.NewRequest("GET", urls, body)
5191	if err != nil {
5192		return nil, err
5193	}
5194	req.Header = reqHeaders
5195	googleapi.Expand(req.URL, map[string]string{
5196		"project": c.project,
5197	})
5198	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5199}
5200
5201// Do executes the "deploymentmanager.deployments.list" call.
5202// Exactly one of *DeploymentsListResponse or error will be non-nil. Any
5203// non-2xx status code is an error. Response headers are in either
5204// *DeploymentsListResponse.ServerResponse.Header or (if a response was
5205// returned at all) in error.(*googleapi.Error).Header. Use
5206// googleapi.IsNotModified to check whether the returned error was
5207// because http.StatusNotModified was returned.
5208func (c *DeploymentsListCall) Do(opts ...googleapi.CallOption) (*DeploymentsListResponse, error) {
5209	gensupport.SetOptions(c.urlParams_, opts...)
5210	res, err := c.doRequest("json")
5211	if res != nil && res.StatusCode == http.StatusNotModified {
5212		if res.Body != nil {
5213			res.Body.Close()
5214		}
5215		return nil, &googleapi.Error{
5216			Code:   res.StatusCode,
5217			Header: res.Header,
5218		}
5219	}
5220	if err != nil {
5221		return nil, err
5222	}
5223	defer googleapi.CloseBody(res)
5224	if err := googleapi.CheckResponse(res); err != nil {
5225		return nil, err
5226	}
5227	ret := &DeploymentsListResponse{
5228		ServerResponse: googleapi.ServerResponse{
5229			Header:         res.Header,
5230			HTTPStatusCode: res.StatusCode,
5231		},
5232	}
5233	target := &ret
5234	if err := gensupport.DecodeResponse(target, res); err != nil {
5235		return nil, err
5236	}
5237	return ret, nil
5238	// {
5239	//   "description": "Lists all deployments for a given project.",
5240	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments",
5241	//   "httpMethod": "GET",
5242	//   "id": "deploymentmanager.deployments.list",
5243	//   "parameterOrder": [
5244	//     "project"
5245	//   ],
5246	//   "parameters": {
5247	//     "filter": {
5248	//       "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`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You 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. To 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) ```",
5249	//       "location": "query",
5250	//       "type": "string"
5251	//     },
5252	//     "maxResults": {
5253	//       "default": "500",
5254	//       "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`)",
5255	//       "format": "uint32",
5256	//       "location": "query",
5257	//       "minimum": "0",
5258	//       "type": "integer"
5259	//     },
5260	//     "orderBy": {
5261	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You 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. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
5262	//       "location": "query",
5263	//       "type": "string"
5264	//     },
5265	//     "pageToken": {
5266	//       "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.",
5267	//       "location": "query",
5268	//       "type": "string"
5269	//     },
5270	//     "project": {
5271	//       "description": "The project ID for this request.",
5272	//       "location": "path",
5273	//       "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])?))",
5274	//       "required": true,
5275	//       "type": "string"
5276	//     }
5277	//   },
5278	//   "path": "deploymentmanager/alpha/projects/{project}/global/deployments",
5279	//   "response": {
5280	//     "$ref": "DeploymentsListResponse"
5281	//   },
5282	//   "scopes": [
5283	//     "https://www.googleapis.com/auth/cloud-platform",
5284	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
5285	//     "https://www.googleapis.com/auth/ndev.cloudman",
5286	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
5287	//   ]
5288	// }
5289
5290}
5291
5292// Pages invokes f for each page of results.
5293// A non-nil error returned from f will halt the iteration.
5294// The provided context supersedes any context provided to the Context method.
5295func (c *DeploymentsListCall) Pages(ctx context.Context, f func(*DeploymentsListResponse) error) error {
5296	c.ctx_ = ctx
5297	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
5298	for {
5299		x, err := c.Do()
5300		if err != nil {
5301			return err
5302		}
5303		if err := f(x); err != nil {
5304			return err
5305		}
5306		if x.NextPageToken == "" {
5307			return nil
5308		}
5309		c.PageToken(x.NextPageToken)
5310	}
5311}
5312
5313// method id "deploymentmanager.deployments.patch":
5314
5315type DeploymentsPatchCall struct {
5316	s           *Service
5317	project     string
5318	deployment  string
5319	deployment2 *Deployment
5320	urlParams_  gensupport.URLParams
5321	ctx_        context.Context
5322	header_     http.Header
5323}
5324
5325// Patch: Patches a deployment and all of the resources described by the
5326// deployment manifest.
5327//
5328// - deployment: The name of the deployment for this request.
5329// - project: The project ID for this request.
5330func (r *DeploymentsService) Patch(project string, deployment string, deployment2 *Deployment) *DeploymentsPatchCall {
5331	c := &DeploymentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5332	c.project = project
5333	c.deployment = deployment
5334	c.deployment2 = deployment2
5335	return c
5336}
5337
5338// CreatePolicy sets the optional parameter "createPolicy": Sets the
5339// policy to use for creating new resources.
5340//
5341// Possible values:
5342//   "CREATE_OR_ACQUIRE" (default)
5343//   "ACQUIRE"
5344//   "CREATE"
5345func (c *DeploymentsPatchCall) CreatePolicy(createPolicy string) *DeploymentsPatchCall {
5346	c.urlParams_.Set("createPolicy", createPolicy)
5347	return c
5348}
5349
5350// DeletePolicy sets the optional parameter "deletePolicy": Sets the
5351// policy to use for deleting resources.
5352//
5353// Possible values:
5354//   "DELETE" (default)
5355//   "ABANDON"
5356func (c *DeploymentsPatchCall) DeletePolicy(deletePolicy string) *DeploymentsPatchCall {
5357	c.urlParams_.Set("deletePolicy", deletePolicy)
5358	return c
5359}
5360
5361// Preview sets the optional parameter "preview": If set to true,
5362// updates the deployment and creates and updates the "shell" resources
5363// but does not actually alter or instantiate these resources. This
5364// allows you to preview what your deployment will look like. You can
5365// use this intent to preview how an update would affect your
5366// deployment. You must provide a `target.config` with a configuration
5367// if this is set to true. After previewing a deployment, you can deploy
5368// your resources by making a request with the `update()` or you can
5369// `cancelPreview()` to remove the preview altogether. Note that the
5370// deployment will still exist after you cancel the preview and you must
5371// separately delete this deployment if you want to remove it.
5372func (c *DeploymentsPatchCall) Preview(preview bool) *DeploymentsPatchCall {
5373	c.urlParams_.Set("preview", fmt.Sprint(preview))
5374	return c
5375}
5376
5377// Fields allows partial responses to be retrieved. See
5378// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5379// for more information.
5380func (c *DeploymentsPatchCall) Fields(s ...googleapi.Field) *DeploymentsPatchCall {
5381	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5382	return c
5383}
5384
5385// Context sets the context to be used in this call's Do method. Any
5386// pending HTTP request will be aborted if the provided context is
5387// canceled.
5388func (c *DeploymentsPatchCall) Context(ctx context.Context) *DeploymentsPatchCall {
5389	c.ctx_ = ctx
5390	return c
5391}
5392
5393// Header returns an http.Header that can be modified by the caller to
5394// add HTTP headers to the request.
5395func (c *DeploymentsPatchCall) Header() http.Header {
5396	if c.header_ == nil {
5397		c.header_ = make(http.Header)
5398	}
5399	return c.header_
5400}
5401
5402func (c *DeploymentsPatchCall) doRequest(alt string) (*http.Response, error) {
5403	reqHeaders := make(http.Header)
5404	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
5405	for k, v := range c.header_ {
5406		reqHeaders[k] = v
5407	}
5408	reqHeaders.Set("User-Agent", c.s.userAgent())
5409	var body io.Reader = nil
5410	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deployment2)
5411	if err != nil {
5412		return nil, err
5413	}
5414	reqHeaders.Set("Content-Type", "application/json")
5415	c.urlParams_.Set("alt", alt)
5416	c.urlParams_.Set("prettyPrint", "false")
5417	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}")
5418	urls += "?" + c.urlParams_.Encode()
5419	req, err := http.NewRequest("PATCH", urls, body)
5420	if err != nil {
5421		return nil, err
5422	}
5423	req.Header = reqHeaders
5424	googleapi.Expand(req.URL, map[string]string{
5425		"project":    c.project,
5426		"deployment": c.deployment,
5427	})
5428	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5429}
5430
5431// Do executes the "deploymentmanager.deployments.patch" call.
5432// Exactly one of *Operation or error will be non-nil. Any non-2xx
5433// status code is an error. Response headers are in either
5434// *Operation.ServerResponse.Header or (if a response was returned at
5435// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5436// to check whether the returned error was because
5437// http.StatusNotModified was returned.
5438func (c *DeploymentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
5439	gensupport.SetOptions(c.urlParams_, opts...)
5440	res, err := c.doRequest("json")
5441	if res != nil && res.StatusCode == http.StatusNotModified {
5442		if res.Body != nil {
5443			res.Body.Close()
5444		}
5445		return nil, &googleapi.Error{
5446			Code:   res.StatusCode,
5447			Header: res.Header,
5448		}
5449	}
5450	if err != nil {
5451		return nil, err
5452	}
5453	defer googleapi.CloseBody(res)
5454	if err := googleapi.CheckResponse(res); err != nil {
5455		return nil, err
5456	}
5457	ret := &Operation{
5458		ServerResponse: googleapi.ServerResponse{
5459			Header:         res.Header,
5460			HTTPStatusCode: res.StatusCode,
5461		},
5462	}
5463	target := &ret
5464	if err := gensupport.DecodeResponse(target, res); err != nil {
5465		return nil, err
5466	}
5467	return ret, nil
5468	// {
5469	//   "description": "Patches a deployment and all of the resources described by the deployment manifest.",
5470	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}",
5471	//   "httpMethod": "PATCH",
5472	//   "id": "deploymentmanager.deployments.patch",
5473	//   "parameterOrder": [
5474	//     "project",
5475	//     "deployment"
5476	//   ],
5477	//   "parameters": {
5478	//     "createPolicy": {
5479	//       "default": "CREATE_OR_ACQUIRE",
5480	//       "description": "Sets the policy to use for creating new resources.",
5481	//       "enum": [
5482	//         "CREATE_OR_ACQUIRE",
5483	//         "ACQUIRE",
5484	//         "CREATE"
5485	//       ],
5486	//       "enumDescriptions": [
5487	//         "",
5488	//         "",
5489	//         ""
5490	//       ],
5491	//       "location": "query",
5492	//       "type": "string"
5493	//     },
5494	//     "deletePolicy": {
5495	//       "default": "DELETE",
5496	//       "description": "Sets the policy to use for deleting resources.",
5497	//       "enum": [
5498	//         "DELETE",
5499	//         "ABANDON"
5500	//       ],
5501	//       "enumDescriptions": [
5502	//         "",
5503	//         ""
5504	//       ],
5505	//       "location": "query",
5506	//       "type": "string"
5507	//     },
5508	//     "deployment": {
5509	//       "description": "The name of the deployment for this request.",
5510	//       "location": "path",
5511	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
5512	//       "required": true,
5513	//       "type": "string"
5514	//     },
5515	//     "preview": {
5516	//       "default": "false",
5517	//       "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.",
5518	//       "location": "query",
5519	//       "type": "boolean"
5520	//     },
5521	//     "project": {
5522	//       "description": "The project ID for this request.",
5523	//       "location": "path",
5524	//       "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])?))",
5525	//       "required": true,
5526	//       "type": "string"
5527	//     }
5528	//   },
5529	//   "path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}",
5530	//   "request": {
5531	//     "$ref": "Deployment"
5532	//   },
5533	//   "response": {
5534	//     "$ref": "Operation"
5535	//   },
5536	//   "scopes": [
5537	//     "https://www.googleapis.com/auth/cloud-platform",
5538	//     "https://www.googleapis.com/auth/ndev.cloudman"
5539	//   ]
5540	// }
5541
5542}
5543
5544// method id "deploymentmanager.deployments.setIamPolicy":
5545
5546type DeploymentsSetIamPolicyCall struct {
5547	s                      *Service
5548	project                string
5549	resource               string
5550	globalsetpolicyrequest *GlobalSetPolicyRequest
5551	urlParams_             gensupport.URLParams
5552	ctx_                   context.Context
5553	header_                http.Header
5554}
5555
5556// SetIamPolicy: Sets the access control policy on the specified
5557// resource. Replaces any existing policy.
5558//
5559// - project: Project ID for this request.
5560// - resource: Name or id of the resource for this request.
5561func (r *DeploymentsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *DeploymentsSetIamPolicyCall {
5562	c := &DeploymentsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5563	c.project = project
5564	c.resource = resource
5565	c.globalsetpolicyrequest = globalsetpolicyrequest
5566	return c
5567}
5568
5569// Fields allows partial responses to be retrieved. See
5570// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5571// for more information.
5572func (c *DeploymentsSetIamPolicyCall) Fields(s ...googleapi.Field) *DeploymentsSetIamPolicyCall {
5573	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5574	return c
5575}
5576
5577// Context sets the context to be used in this call's Do method. Any
5578// pending HTTP request will be aborted if the provided context is
5579// canceled.
5580func (c *DeploymentsSetIamPolicyCall) Context(ctx context.Context) *DeploymentsSetIamPolicyCall {
5581	c.ctx_ = ctx
5582	return c
5583}
5584
5585// Header returns an http.Header that can be modified by the caller to
5586// add HTTP headers to the request.
5587func (c *DeploymentsSetIamPolicyCall) Header() http.Header {
5588	if c.header_ == nil {
5589		c.header_ = make(http.Header)
5590	}
5591	return c.header_
5592}
5593
5594func (c *DeploymentsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
5595	reqHeaders := make(http.Header)
5596	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
5597	for k, v := range c.header_ {
5598		reqHeaders[k] = v
5599	}
5600	reqHeaders.Set("User-Agent", c.s.userAgent())
5601	var body io.Reader = nil
5602	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
5603	if err != nil {
5604		return nil, err
5605	}
5606	reqHeaders.Set("Content-Type", "application/json")
5607	c.urlParams_.Set("alt", alt)
5608	c.urlParams_.Set("prettyPrint", "false")
5609	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/deployments/{resource}/setIamPolicy")
5610	urls += "?" + c.urlParams_.Encode()
5611	req, err := http.NewRequest("POST", urls, body)
5612	if err != nil {
5613		return nil, err
5614	}
5615	req.Header = reqHeaders
5616	googleapi.Expand(req.URL, map[string]string{
5617		"project":  c.project,
5618		"resource": c.resource,
5619	})
5620	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5621}
5622
5623// Do executes the "deploymentmanager.deployments.setIamPolicy" call.
5624// Exactly one of *Policy or error will be non-nil. Any non-2xx status
5625// code is an error. Response headers are in either
5626// *Policy.ServerResponse.Header or (if a response was returned at all)
5627// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
5628// check whether the returned error was because http.StatusNotModified
5629// was returned.
5630func (c *DeploymentsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
5631	gensupport.SetOptions(c.urlParams_, opts...)
5632	res, err := c.doRequest("json")
5633	if res != nil && res.StatusCode == http.StatusNotModified {
5634		if res.Body != nil {
5635			res.Body.Close()
5636		}
5637		return nil, &googleapi.Error{
5638			Code:   res.StatusCode,
5639			Header: res.Header,
5640		}
5641	}
5642	if err != nil {
5643		return nil, err
5644	}
5645	defer googleapi.CloseBody(res)
5646	if err := googleapi.CheckResponse(res); err != nil {
5647		return nil, err
5648	}
5649	ret := &Policy{
5650		ServerResponse: googleapi.ServerResponse{
5651			Header:         res.Header,
5652			HTTPStatusCode: res.StatusCode,
5653		},
5654	}
5655	target := &ret
5656	if err := gensupport.DecodeResponse(target, res); err != nil {
5657		return nil, err
5658	}
5659	return ret, nil
5660	// {
5661	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
5662	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{resource}/setIamPolicy",
5663	//   "httpMethod": "POST",
5664	//   "id": "deploymentmanager.deployments.setIamPolicy",
5665	//   "parameterOrder": [
5666	//     "project",
5667	//     "resource"
5668	//   ],
5669	//   "parameters": {
5670	//     "project": {
5671	//       "description": "Project ID for this request.",
5672	//       "location": "path",
5673	//       "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])?))",
5674	//       "required": true,
5675	//       "type": "string"
5676	//     },
5677	//     "resource": {
5678	//       "description": "Name or id of the resource for this request.",
5679	//       "location": "path",
5680	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
5681	//       "required": true,
5682	//       "type": "string"
5683	//     }
5684	//   },
5685	//   "path": "deploymentmanager/alpha/projects/{project}/global/deployments/{resource}/setIamPolicy",
5686	//   "request": {
5687	//     "$ref": "GlobalSetPolicyRequest"
5688	//   },
5689	//   "response": {
5690	//     "$ref": "Policy"
5691	//   },
5692	//   "scopes": [
5693	//     "https://www.googleapis.com/auth/cloud-platform",
5694	//     "https://www.googleapis.com/auth/ndev.cloudman"
5695	//   ]
5696	// }
5697
5698}
5699
5700// method id "deploymentmanager.deployments.stop":
5701
5702type DeploymentsStopCall struct {
5703	s                      *Service
5704	project                string
5705	deployment             string
5706	deploymentsstoprequest *DeploymentsStopRequest
5707	urlParams_             gensupport.URLParams
5708	ctx_                   context.Context
5709	header_                http.Header
5710}
5711
5712// Stop: Stops an ongoing operation. This does not roll back any work
5713// that has already been completed, but prevents any new work from being
5714// started.
5715//
5716// - deployment: The name of the deployment for this request.
5717// - project: The project ID for this request.
5718func (r *DeploymentsService) Stop(project string, deployment string, deploymentsstoprequest *DeploymentsStopRequest) *DeploymentsStopCall {
5719	c := &DeploymentsStopCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5720	c.project = project
5721	c.deployment = deployment
5722	c.deploymentsstoprequest = deploymentsstoprequest
5723	return c
5724}
5725
5726// Fields allows partial responses to be retrieved. See
5727// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5728// for more information.
5729func (c *DeploymentsStopCall) Fields(s ...googleapi.Field) *DeploymentsStopCall {
5730	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5731	return c
5732}
5733
5734// Context sets the context to be used in this call's Do method. Any
5735// pending HTTP request will be aborted if the provided context is
5736// canceled.
5737func (c *DeploymentsStopCall) Context(ctx context.Context) *DeploymentsStopCall {
5738	c.ctx_ = ctx
5739	return c
5740}
5741
5742// Header returns an http.Header that can be modified by the caller to
5743// add HTTP headers to the request.
5744func (c *DeploymentsStopCall) Header() http.Header {
5745	if c.header_ == nil {
5746		c.header_ = make(http.Header)
5747	}
5748	return c.header_
5749}
5750
5751func (c *DeploymentsStopCall) doRequest(alt string) (*http.Response, error) {
5752	reqHeaders := make(http.Header)
5753	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
5754	for k, v := range c.header_ {
5755		reqHeaders[k] = v
5756	}
5757	reqHeaders.Set("User-Agent", c.s.userAgent())
5758	var body io.Reader = nil
5759	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deploymentsstoprequest)
5760	if err != nil {
5761		return nil, err
5762	}
5763	reqHeaders.Set("Content-Type", "application/json")
5764	c.urlParams_.Set("alt", alt)
5765	c.urlParams_.Set("prettyPrint", "false")
5766	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/stop")
5767	urls += "?" + c.urlParams_.Encode()
5768	req, err := http.NewRequest("POST", urls, body)
5769	if err != nil {
5770		return nil, err
5771	}
5772	req.Header = reqHeaders
5773	googleapi.Expand(req.URL, map[string]string{
5774		"project":    c.project,
5775		"deployment": c.deployment,
5776	})
5777	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5778}
5779
5780// Do executes the "deploymentmanager.deployments.stop" call.
5781// Exactly one of *Operation or error will be non-nil. Any non-2xx
5782// status code is an error. Response headers are in either
5783// *Operation.ServerResponse.Header or (if a response was returned at
5784// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5785// to check whether the returned error was because
5786// http.StatusNotModified was returned.
5787func (c *DeploymentsStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
5788	gensupport.SetOptions(c.urlParams_, opts...)
5789	res, err := c.doRequest("json")
5790	if res != nil && res.StatusCode == http.StatusNotModified {
5791		if res.Body != nil {
5792			res.Body.Close()
5793		}
5794		return nil, &googleapi.Error{
5795			Code:   res.StatusCode,
5796			Header: res.Header,
5797		}
5798	}
5799	if err != nil {
5800		return nil, err
5801	}
5802	defer googleapi.CloseBody(res)
5803	if err := googleapi.CheckResponse(res); err != nil {
5804		return nil, err
5805	}
5806	ret := &Operation{
5807		ServerResponse: googleapi.ServerResponse{
5808			Header:         res.Header,
5809			HTTPStatusCode: res.StatusCode,
5810		},
5811	}
5812	target := &ret
5813	if err := gensupport.DecodeResponse(target, res); err != nil {
5814		return nil, err
5815	}
5816	return ret, nil
5817	// {
5818	//   "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.",
5819	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/stop",
5820	//   "httpMethod": "POST",
5821	//   "id": "deploymentmanager.deployments.stop",
5822	//   "parameterOrder": [
5823	//     "project",
5824	//     "deployment"
5825	//   ],
5826	//   "parameters": {
5827	//     "deployment": {
5828	//       "description": "The name of the deployment for this request.",
5829	//       "location": "path",
5830	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
5831	//       "required": true,
5832	//       "type": "string"
5833	//     },
5834	//     "project": {
5835	//       "description": "The project ID for this request.",
5836	//       "location": "path",
5837	//       "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])?))",
5838	//       "required": true,
5839	//       "type": "string"
5840	//     }
5841	//   },
5842	//   "path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/stop",
5843	//   "request": {
5844	//     "$ref": "DeploymentsStopRequest"
5845	//   },
5846	//   "response": {
5847	//     "$ref": "Operation"
5848	//   },
5849	//   "scopes": [
5850	//     "https://www.googleapis.com/auth/cloud-platform",
5851	//     "https://www.googleapis.com/auth/ndev.cloudman"
5852	//   ]
5853	// }
5854
5855}
5856
5857// method id "deploymentmanager.deployments.testIamPermissions":
5858
5859type DeploymentsTestIamPermissionsCall struct {
5860	s                      *Service
5861	project                string
5862	resource               string
5863	testpermissionsrequest *TestPermissionsRequest
5864	urlParams_             gensupport.URLParams
5865	ctx_                   context.Context
5866	header_                http.Header
5867}
5868
5869// TestIamPermissions: Returns permissions that a caller has on the
5870// specified resource.
5871//
5872// - project: Project ID for this request.
5873// - resource: Name or id of the resource for this request.
5874func (r *DeploymentsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *DeploymentsTestIamPermissionsCall {
5875	c := &DeploymentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5876	c.project = project
5877	c.resource = resource
5878	c.testpermissionsrequest = testpermissionsrequest
5879	return c
5880}
5881
5882// Fields allows partial responses to be retrieved. See
5883// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5884// for more information.
5885func (c *DeploymentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *DeploymentsTestIamPermissionsCall {
5886	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5887	return c
5888}
5889
5890// Context sets the context to be used in this call's Do method. Any
5891// pending HTTP request will be aborted if the provided context is
5892// canceled.
5893func (c *DeploymentsTestIamPermissionsCall) Context(ctx context.Context) *DeploymentsTestIamPermissionsCall {
5894	c.ctx_ = ctx
5895	return c
5896}
5897
5898// Header returns an http.Header that can be modified by the caller to
5899// add HTTP headers to the request.
5900func (c *DeploymentsTestIamPermissionsCall) Header() http.Header {
5901	if c.header_ == nil {
5902		c.header_ = make(http.Header)
5903	}
5904	return c.header_
5905}
5906
5907func (c *DeploymentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
5908	reqHeaders := make(http.Header)
5909	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
5910	for k, v := range c.header_ {
5911		reqHeaders[k] = v
5912	}
5913	reqHeaders.Set("User-Agent", c.s.userAgent())
5914	var body io.Reader = nil
5915	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
5916	if err != nil {
5917		return nil, err
5918	}
5919	reqHeaders.Set("Content-Type", "application/json")
5920	c.urlParams_.Set("alt", alt)
5921	c.urlParams_.Set("prettyPrint", "false")
5922	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/deployments/{resource}/testIamPermissions")
5923	urls += "?" + c.urlParams_.Encode()
5924	req, err := http.NewRequest("POST", urls, body)
5925	if err != nil {
5926		return nil, err
5927	}
5928	req.Header = reqHeaders
5929	googleapi.Expand(req.URL, map[string]string{
5930		"project":  c.project,
5931		"resource": c.resource,
5932	})
5933	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5934}
5935
5936// Do executes the "deploymentmanager.deployments.testIamPermissions" call.
5937// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
5938// non-2xx status code is an error. Response headers are in either
5939// *TestPermissionsResponse.ServerResponse.Header or (if a response was
5940// returned at all) in error.(*googleapi.Error).Header. Use
5941// googleapi.IsNotModified to check whether the returned error was
5942// because http.StatusNotModified was returned.
5943func (c *DeploymentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
5944	gensupport.SetOptions(c.urlParams_, opts...)
5945	res, err := c.doRequest("json")
5946	if res != nil && res.StatusCode == http.StatusNotModified {
5947		if res.Body != nil {
5948			res.Body.Close()
5949		}
5950		return nil, &googleapi.Error{
5951			Code:   res.StatusCode,
5952			Header: res.Header,
5953		}
5954	}
5955	if err != nil {
5956		return nil, err
5957	}
5958	defer googleapi.CloseBody(res)
5959	if err := googleapi.CheckResponse(res); err != nil {
5960		return nil, err
5961	}
5962	ret := &TestPermissionsResponse{
5963		ServerResponse: googleapi.ServerResponse{
5964			Header:         res.Header,
5965			HTTPStatusCode: res.StatusCode,
5966		},
5967	}
5968	target := &ret
5969	if err := gensupport.DecodeResponse(target, res); err != nil {
5970		return nil, err
5971	}
5972	return ret, nil
5973	// {
5974	//   "description": "Returns permissions that a caller has on the specified resource.",
5975	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{resource}/testIamPermissions",
5976	//   "httpMethod": "POST",
5977	//   "id": "deploymentmanager.deployments.testIamPermissions",
5978	//   "parameterOrder": [
5979	//     "project",
5980	//     "resource"
5981	//   ],
5982	//   "parameters": {
5983	//     "project": {
5984	//       "description": "Project ID for this request.",
5985	//       "location": "path",
5986	//       "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])?))",
5987	//       "required": true,
5988	//       "type": "string"
5989	//     },
5990	//     "resource": {
5991	//       "description": "Name or id of the resource for this request.",
5992	//       "location": "path",
5993	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
5994	//       "required": true,
5995	//       "type": "string"
5996	//     }
5997	//   },
5998	//   "path": "deploymentmanager/alpha/projects/{project}/global/deployments/{resource}/testIamPermissions",
5999	//   "request": {
6000	//     "$ref": "TestPermissionsRequest"
6001	//   },
6002	//   "response": {
6003	//     "$ref": "TestPermissionsResponse"
6004	//   },
6005	//   "scopes": [
6006	//     "https://www.googleapis.com/auth/cloud-platform",
6007	//     "https://www.googleapis.com/auth/ndev.cloudman"
6008	//   ]
6009	// }
6010
6011}
6012
6013// method id "deploymentmanager.deployments.update":
6014
6015type DeploymentsUpdateCall struct {
6016	s           *Service
6017	project     string
6018	deployment  string
6019	deployment2 *Deployment
6020	urlParams_  gensupport.URLParams
6021	ctx_        context.Context
6022	header_     http.Header
6023}
6024
6025// Update: Updates a deployment and all of the resources described by
6026// the deployment manifest.
6027//
6028// - deployment: The name of the deployment for this request.
6029// - project: The project ID for this request.
6030func (r *DeploymentsService) Update(project string, deployment string, deployment2 *Deployment) *DeploymentsUpdateCall {
6031	c := &DeploymentsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6032	c.project = project
6033	c.deployment = deployment
6034	c.deployment2 = deployment2
6035	return c
6036}
6037
6038// CreatePolicy sets the optional parameter "createPolicy": Sets the
6039// policy to use for creating new resources.
6040//
6041// Possible values:
6042//   "CREATE_OR_ACQUIRE" (default)
6043//   "ACQUIRE"
6044//   "CREATE"
6045func (c *DeploymentsUpdateCall) CreatePolicy(createPolicy string) *DeploymentsUpdateCall {
6046	c.urlParams_.Set("createPolicy", createPolicy)
6047	return c
6048}
6049
6050// DeletePolicy sets the optional parameter "deletePolicy": Sets the
6051// policy to use for deleting resources.
6052//
6053// Possible values:
6054//   "DELETE" (default)
6055//   "ABANDON"
6056func (c *DeploymentsUpdateCall) DeletePolicy(deletePolicy string) *DeploymentsUpdateCall {
6057	c.urlParams_.Set("deletePolicy", deletePolicy)
6058	return c
6059}
6060
6061// Preview sets the optional parameter "preview": If set to true,
6062// updates the deployment and creates and updates the "shell" resources
6063// but does not actually alter or instantiate these resources. This
6064// allows you to preview what your deployment will look like. You can
6065// use this intent to preview how an update would affect your
6066// deployment. You must provide a `target.config` with a configuration
6067// if this is set to true. After previewing a deployment, you can deploy
6068// your resources by making a request with the `update()` or you can
6069// `cancelPreview()` to remove the preview altogether. Note that the
6070// deployment will still exist after you cancel the preview and you must
6071// separately delete this deployment if you want to remove it.
6072func (c *DeploymentsUpdateCall) Preview(preview bool) *DeploymentsUpdateCall {
6073	c.urlParams_.Set("preview", fmt.Sprint(preview))
6074	return c
6075}
6076
6077// Fields allows partial responses to be retrieved. See
6078// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6079// for more information.
6080func (c *DeploymentsUpdateCall) Fields(s ...googleapi.Field) *DeploymentsUpdateCall {
6081	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6082	return c
6083}
6084
6085// Context sets the context to be used in this call's Do method. Any
6086// pending HTTP request will be aborted if the provided context is
6087// canceled.
6088func (c *DeploymentsUpdateCall) Context(ctx context.Context) *DeploymentsUpdateCall {
6089	c.ctx_ = ctx
6090	return c
6091}
6092
6093// Header returns an http.Header that can be modified by the caller to
6094// add HTTP headers to the request.
6095func (c *DeploymentsUpdateCall) Header() http.Header {
6096	if c.header_ == nil {
6097		c.header_ = make(http.Header)
6098	}
6099	return c.header_
6100}
6101
6102func (c *DeploymentsUpdateCall) doRequest(alt string) (*http.Response, error) {
6103	reqHeaders := make(http.Header)
6104	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
6105	for k, v := range c.header_ {
6106		reqHeaders[k] = v
6107	}
6108	reqHeaders.Set("User-Agent", c.s.userAgent())
6109	var body io.Reader = nil
6110	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deployment2)
6111	if err != nil {
6112		return nil, err
6113	}
6114	reqHeaders.Set("Content-Type", "application/json")
6115	c.urlParams_.Set("alt", alt)
6116	c.urlParams_.Set("prettyPrint", "false")
6117	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}")
6118	urls += "?" + c.urlParams_.Encode()
6119	req, err := http.NewRequest("PUT", urls, body)
6120	if err != nil {
6121		return nil, err
6122	}
6123	req.Header = reqHeaders
6124	googleapi.Expand(req.URL, map[string]string{
6125		"project":    c.project,
6126		"deployment": c.deployment,
6127	})
6128	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6129}
6130
6131// Do executes the "deploymentmanager.deployments.update" call.
6132// Exactly one of *Operation or error will be non-nil. Any non-2xx
6133// status code is an error. Response headers are in either
6134// *Operation.ServerResponse.Header or (if a response was returned at
6135// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6136// to check whether the returned error was because
6137// http.StatusNotModified was returned.
6138func (c *DeploymentsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
6139	gensupport.SetOptions(c.urlParams_, opts...)
6140	res, err := c.doRequest("json")
6141	if res != nil && res.StatusCode == http.StatusNotModified {
6142		if res.Body != nil {
6143			res.Body.Close()
6144		}
6145		return nil, &googleapi.Error{
6146			Code:   res.StatusCode,
6147			Header: res.Header,
6148		}
6149	}
6150	if err != nil {
6151		return nil, err
6152	}
6153	defer googleapi.CloseBody(res)
6154	if err := googleapi.CheckResponse(res); err != nil {
6155		return nil, err
6156	}
6157	ret := &Operation{
6158		ServerResponse: googleapi.ServerResponse{
6159			Header:         res.Header,
6160			HTTPStatusCode: res.StatusCode,
6161		},
6162	}
6163	target := &ret
6164	if err := gensupport.DecodeResponse(target, res); err != nil {
6165		return nil, err
6166	}
6167	return ret, nil
6168	// {
6169	//   "description": "Updates a deployment and all of the resources described by the deployment manifest.",
6170	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}",
6171	//   "httpMethod": "PUT",
6172	//   "id": "deploymentmanager.deployments.update",
6173	//   "parameterOrder": [
6174	//     "project",
6175	//     "deployment"
6176	//   ],
6177	//   "parameters": {
6178	//     "createPolicy": {
6179	//       "default": "CREATE_OR_ACQUIRE",
6180	//       "description": "Sets the policy to use for creating new resources.",
6181	//       "enum": [
6182	//         "CREATE_OR_ACQUIRE",
6183	//         "ACQUIRE",
6184	//         "CREATE"
6185	//       ],
6186	//       "enumDescriptions": [
6187	//         "",
6188	//         "",
6189	//         ""
6190	//       ],
6191	//       "location": "query",
6192	//       "type": "string"
6193	//     },
6194	//     "deletePolicy": {
6195	//       "default": "DELETE",
6196	//       "description": "Sets the policy to use for deleting resources.",
6197	//       "enum": [
6198	//         "DELETE",
6199	//         "ABANDON"
6200	//       ],
6201	//       "enumDescriptions": [
6202	//         "",
6203	//         ""
6204	//       ],
6205	//       "location": "query",
6206	//       "type": "string"
6207	//     },
6208	//     "deployment": {
6209	//       "description": "The name of the deployment for this request.",
6210	//       "location": "path",
6211	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
6212	//       "required": true,
6213	//       "type": "string"
6214	//     },
6215	//     "preview": {
6216	//       "default": "false",
6217	//       "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.",
6218	//       "location": "query",
6219	//       "type": "boolean"
6220	//     },
6221	//     "project": {
6222	//       "description": "The project ID for this request.",
6223	//       "location": "path",
6224	//       "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])?))",
6225	//       "required": true,
6226	//       "type": "string"
6227	//     }
6228	//   },
6229	//   "path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}",
6230	//   "request": {
6231	//     "$ref": "Deployment"
6232	//   },
6233	//   "response": {
6234	//     "$ref": "Operation"
6235	//   },
6236	//   "scopes": [
6237	//     "https://www.googleapis.com/auth/cloud-platform",
6238	//     "https://www.googleapis.com/auth/ndev.cloudman"
6239	//   ]
6240	// }
6241
6242}
6243
6244// method id "deploymentmanager.manifests.get":
6245
6246type ManifestsGetCall struct {
6247	s            *Service
6248	project      string
6249	deployment   string
6250	manifest     string
6251	urlParams_   gensupport.URLParams
6252	ifNoneMatch_ string
6253	ctx_         context.Context
6254	header_      http.Header
6255}
6256
6257// Get: Gets information about a specific manifest.
6258//
6259// - deployment: The name of the deployment for this request.
6260// - manifest: The name of the manifest for this request.
6261// - project: The project ID for this request.
6262func (r *ManifestsService) Get(project string, deployment string, manifest string) *ManifestsGetCall {
6263	c := &ManifestsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6264	c.project = project
6265	c.deployment = deployment
6266	c.manifest = manifest
6267	return c
6268}
6269
6270// Fields allows partial responses to be retrieved. See
6271// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6272// for more information.
6273func (c *ManifestsGetCall) Fields(s ...googleapi.Field) *ManifestsGetCall {
6274	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6275	return c
6276}
6277
6278// IfNoneMatch sets the optional parameter which makes the operation
6279// fail if the object's ETag matches the given value. This is useful for
6280// getting updates only after the object has changed since the last
6281// request. Use googleapi.IsNotModified to check whether the response
6282// error from Do is the result of In-None-Match.
6283func (c *ManifestsGetCall) IfNoneMatch(entityTag string) *ManifestsGetCall {
6284	c.ifNoneMatch_ = entityTag
6285	return c
6286}
6287
6288// Context sets the context to be used in this call's Do method. Any
6289// pending HTTP request will be aborted if the provided context is
6290// canceled.
6291func (c *ManifestsGetCall) Context(ctx context.Context) *ManifestsGetCall {
6292	c.ctx_ = ctx
6293	return c
6294}
6295
6296// Header returns an http.Header that can be modified by the caller to
6297// add HTTP headers to the request.
6298func (c *ManifestsGetCall) Header() http.Header {
6299	if c.header_ == nil {
6300		c.header_ = make(http.Header)
6301	}
6302	return c.header_
6303}
6304
6305func (c *ManifestsGetCall) doRequest(alt string) (*http.Response, error) {
6306	reqHeaders := make(http.Header)
6307	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
6308	for k, v := range c.header_ {
6309		reqHeaders[k] = v
6310	}
6311	reqHeaders.Set("User-Agent", c.s.userAgent())
6312	if c.ifNoneMatch_ != "" {
6313		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6314	}
6315	var body io.Reader = nil
6316	c.urlParams_.Set("alt", alt)
6317	c.urlParams_.Set("prettyPrint", "false")
6318	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/manifests/{manifest}")
6319	urls += "?" + c.urlParams_.Encode()
6320	req, err := http.NewRequest("GET", urls, body)
6321	if err != nil {
6322		return nil, err
6323	}
6324	req.Header = reqHeaders
6325	googleapi.Expand(req.URL, map[string]string{
6326		"project":    c.project,
6327		"deployment": c.deployment,
6328		"manifest":   c.manifest,
6329	})
6330	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6331}
6332
6333// Do executes the "deploymentmanager.manifests.get" call.
6334// Exactly one of *Manifest or error will be non-nil. Any non-2xx status
6335// code is an error. Response headers are in either
6336// *Manifest.ServerResponse.Header or (if a response was returned at
6337// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6338// to check whether the returned error was because
6339// http.StatusNotModified was returned.
6340func (c *ManifestsGetCall) Do(opts ...googleapi.CallOption) (*Manifest, error) {
6341	gensupport.SetOptions(c.urlParams_, opts...)
6342	res, err := c.doRequest("json")
6343	if res != nil && res.StatusCode == http.StatusNotModified {
6344		if res.Body != nil {
6345			res.Body.Close()
6346		}
6347		return nil, &googleapi.Error{
6348			Code:   res.StatusCode,
6349			Header: res.Header,
6350		}
6351	}
6352	if err != nil {
6353		return nil, err
6354	}
6355	defer googleapi.CloseBody(res)
6356	if err := googleapi.CheckResponse(res); err != nil {
6357		return nil, err
6358	}
6359	ret := &Manifest{
6360		ServerResponse: googleapi.ServerResponse{
6361			Header:         res.Header,
6362			HTTPStatusCode: res.StatusCode,
6363		},
6364	}
6365	target := &ret
6366	if err := gensupport.DecodeResponse(target, res); err != nil {
6367		return nil, err
6368	}
6369	return ret, nil
6370	// {
6371	//   "description": "Gets information about a specific manifest.",
6372	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/manifests/{manifest}",
6373	//   "httpMethod": "GET",
6374	//   "id": "deploymentmanager.manifests.get",
6375	//   "parameterOrder": [
6376	//     "project",
6377	//     "deployment",
6378	//     "manifest"
6379	//   ],
6380	//   "parameters": {
6381	//     "deployment": {
6382	//       "description": "The name of the deployment for this request.",
6383	//       "location": "path",
6384	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
6385	//       "required": true,
6386	//       "type": "string"
6387	//     },
6388	//     "manifest": {
6389	//       "description": "The name of the manifest for this request.",
6390	//       "location": "path",
6391	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
6392	//       "required": true,
6393	//       "type": "string"
6394	//     },
6395	//     "project": {
6396	//       "description": "The project ID for this request.",
6397	//       "location": "path",
6398	//       "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])?))",
6399	//       "required": true,
6400	//       "type": "string"
6401	//     }
6402	//   },
6403	//   "path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/manifests/{manifest}",
6404	//   "response": {
6405	//     "$ref": "Manifest"
6406	//   },
6407	//   "scopes": [
6408	//     "https://www.googleapis.com/auth/cloud-platform",
6409	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
6410	//     "https://www.googleapis.com/auth/ndev.cloudman",
6411	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
6412	//   ]
6413	// }
6414
6415}
6416
6417// method id "deploymentmanager.manifests.list":
6418
6419type ManifestsListCall struct {
6420	s            *Service
6421	project      string
6422	deployment   string
6423	urlParams_   gensupport.URLParams
6424	ifNoneMatch_ string
6425	ctx_         context.Context
6426	header_      http.Header
6427}
6428
6429// List: Lists all manifests for a given deployment.
6430//
6431// - deployment: The name of the deployment for this request.
6432// - project: The project ID for this request.
6433func (r *ManifestsService) List(project string, deployment string) *ManifestsListCall {
6434	c := &ManifestsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6435	c.project = project
6436	c.deployment = deployment
6437	return c
6438}
6439
6440// Filter sets the optional parameter "filter": A filter expression that
6441// filters resources listed in the response. The expression must specify
6442// the field name, a comparison operator, and the value that you want to
6443// use for filtering. The value must be a string, a number, or a
6444// boolean. The comparison operator must be either `=`, `!=`, `>`, or
6445// `<`. For example, if you are filtering Compute Engine instances, you
6446// can exclude instances named `example-instance` by specifying `name !=
6447// example-instance`. You can also filter nested fields. For example,
6448// you could specify `scheduling.automaticRestart = false` to include
6449// instances only if they are not scheduled for automatic restarts. You
6450// can use filtering on nested fields to filter based on resource
6451// labels. To filter on multiple expressions, provide each separate
6452// expression within parentheses. For example: ```
6453// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
6454// ``` By default, each expression is an `AND` expression. However, you
6455// can include `AND` and `OR` expressions explicitly. For example: ```
6456// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
6457// AND (scheduling.automaticRestart = true) ```
6458func (c *ManifestsListCall) Filter(filter string) *ManifestsListCall {
6459	c.urlParams_.Set("filter", filter)
6460	return c
6461}
6462
6463// MaxResults sets the optional parameter "maxResults": The maximum
6464// number of results per page that should be returned. If the number of
6465// available results is larger than `maxResults`, Compute Engine returns
6466// a `nextPageToken` that can be used to get the next page of results in
6467// subsequent list requests. Acceptable values are `0` to `500`,
6468// inclusive. (Default: `500`)
6469func (c *ManifestsListCall) MaxResults(maxResults int64) *ManifestsListCall {
6470	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
6471	return c
6472}
6473
6474// OrderBy sets the optional parameter "orderBy": Sorts list results by
6475// a certain order. By default, results are returned in alphanumerical
6476// order based on the resource name. You can also sort results in
6477// descending order based on the creation timestamp using
6478// `orderBy="creationTimestamp desc". This sorts results based on the
6479// `creationTimestamp` field in reverse chronological order (newest
6480// result first). Use this to sort resources like operations so that the
6481// newest operation is returned first. Currently, only sorting by `name`
6482// or `creationTimestamp desc` is supported.
6483func (c *ManifestsListCall) OrderBy(orderBy string) *ManifestsListCall {
6484	c.urlParams_.Set("orderBy", orderBy)
6485	return c
6486}
6487
6488// PageToken sets the optional parameter "pageToken": Specifies a page
6489// token to use. Set `pageToken` to the `nextPageToken` returned by a
6490// previous list request to get the next page of results.
6491func (c *ManifestsListCall) PageToken(pageToken string) *ManifestsListCall {
6492	c.urlParams_.Set("pageToken", pageToken)
6493	return c
6494}
6495
6496// Fields allows partial responses to be retrieved. See
6497// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6498// for more information.
6499func (c *ManifestsListCall) Fields(s ...googleapi.Field) *ManifestsListCall {
6500	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6501	return c
6502}
6503
6504// IfNoneMatch sets the optional parameter which makes the operation
6505// fail if the object's ETag matches the given value. This is useful for
6506// getting updates only after the object has changed since the last
6507// request. Use googleapi.IsNotModified to check whether the response
6508// error from Do is the result of In-None-Match.
6509func (c *ManifestsListCall) IfNoneMatch(entityTag string) *ManifestsListCall {
6510	c.ifNoneMatch_ = entityTag
6511	return c
6512}
6513
6514// Context sets the context to be used in this call's Do method. Any
6515// pending HTTP request will be aborted if the provided context is
6516// canceled.
6517func (c *ManifestsListCall) Context(ctx context.Context) *ManifestsListCall {
6518	c.ctx_ = ctx
6519	return c
6520}
6521
6522// Header returns an http.Header that can be modified by the caller to
6523// add HTTP headers to the request.
6524func (c *ManifestsListCall) Header() http.Header {
6525	if c.header_ == nil {
6526		c.header_ = make(http.Header)
6527	}
6528	return c.header_
6529}
6530
6531func (c *ManifestsListCall) doRequest(alt string) (*http.Response, error) {
6532	reqHeaders := make(http.Header)
6533	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
6534	for k, v := range c.header_ {
6535		reqHeaders[k] = v
6536	}
6537	reqHeaders.Set("User-Agent", c.s.userAgent())
6538	if c.ifNoneMatch_ != "" {
6539		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6540	}
6541	var body io.Reader = nil
6542	c.urlParams_.Set("alt", alt)
6543	c.urlParams_.Set("prettyPrint", "false")
6544	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/manifests")
6545	urls += "?" + c.urlParams_.Encode()
6546	req, err := http.NewRequest("GET", urls, body)
6547	if err != nil {
6548		return nil, err
6549	}
6550	req.Header = reqHeaders
6551	googleapi.Expand(req.URL, map[string]string{
6552		"project":    c.project,
6553		"deployment": c.deployment,
6554	})
6555	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6556}
6557
6558// Do executes the "deploymentmanager.manifests.list" call.
6559// Exactly one of *ManifestsListResponse or error will be non-nil. Any
6560// non-2xx status code is an error. Response headers are in either
6561// *ManifestsListResponse.ServerResponse.Header or (if a response was
6562// returned at all) in error.(*googleapi.Error).Header. Use
6563// googleapi.IsNotModified to check whether the returned error was
6564// because http.StatusNotModified was returned.
6565func (c *ManifestsListCall) Do(opts ...googleapi.CallOption) (*ManifestsListResponse, error) {
6566	gensupport.SetOptions(c.urlParams_, opts...)
6567	res, err := c.doRequest("json")
6568	if res != nil && res.StatusCode == http.StatusNotModified {
6569		if res.Body != nil {
6570			res.Body.Close()
6571		}
6572		return nil, &googleapi.Error{
6573			Code:   res.StatusCode,
6574			Header: res.Header,
6575		}
6576	}
6577	if err != nil {
6578		return nil, err
6579	}
6580	defer googleapi.CloseBody(res)
6581	if err := googleapi.CheckResponse(res); err != nil {
6582		return nil, err
6583	}
6584	ret := &ManifestsListResponse{
6585		ServerResponse: googleapi.ServerResponse{
6586			Header:         res.Header,
6587			HTTPStatusCode: res.StatusCode,
6588		},
6589	}
6590	target := &ret
6591	if err := gensupport.DecodeResponse(target, res); err != nil {
6592		return nil, err
6593	}
6594	return ret, nil
6595	// {
6596	//   "description": "Lists all manifests for a given deployment.",
6597	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/manifests",
6598	//   "httpMethod": "GET",
6599	//   "id": "deploymentmanager.manifests.list",
6600	//   "parameterOrder": [
6601	//     "project",
6602	//     "deployment"
6603	//   ],
6604	//   "parameters": {
6605	//     "deployment": {
6606	//       "description": "The name of the deployment for this request.",
6607	//       "location": "path",
6608	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
6609	//       "required": true,
6610	//       "type": "string"
6611	//     },
6612	//     "filter": {
6613	//       "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`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You 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. To 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) ```",
6614	//       "location": "query",
6615	//       "type": "string"
6616	//     },
6617	//     "maxResults": {
6618	//       "default": "500",
6619	//       "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`)",
6620	//       "format": "uint32",
6621	//       "location": "query",
6622	//       "minimum": "0",
6623	//       "type": "integer"
6624	//     },
6625	//     "orderBy": {
6626	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You 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. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
6627	//       "location": "query",
6628	//       "type": "string"
6629	//     },
6630	//     "pageToken": {
6631	//       "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.",
6632	//       "location": "query",
6633	//       "type": "string"
6634	//     },
6635	//     "project": {
6636	//       "description": "The project ID for this request.",
6637	//       "location": "path",
6638	//       "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])?))",
6639	//       "required": true,
6640	//       "type": "string"
6641	//     }
6642	//   },
6643	//   "path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/manifests",
6644	//   "response": {
6645	//     "$ref": "ManifestsListResponse"
6646	//   },
6647	//   "scopes": [
6648	//     "https://www.googleapis.com/auth/cloud-platform",
6649	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
6650	//     "https://www.googleapis.com/auth/ndev.cloudman",
6651	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
6652	//   ]
6653	// }
6654
6655}
6656
6657// Pages invokes f for each page of results.
6658// A non-nil error returned from f will halt the iteration.
6659// The provided context supersedes any context provided to the Context method.
6660func (c *ManifestsListCall) Pages(ctx context.Context, f func(*ManifestsListResponse) error) error {
6661	c.ctx_ = ctx
6662	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
6663	for {
6664		x, err := c.Do()
6665		if err != nil {
6666			return err
6667		}
6668		if err := f(x); err != nil {
6669			return err
6670		}
6671		if x.NextPageToken == "" {
6672			return nil
6673		}
6674		c.PageToken(x.NextPageToken)
6675	}
6676}
6677
6678// method id "deploymentmanager.operations.get":
6679
6680type OperationsGetCall struct {
6681	s            *Service
6682	project      string
6683	operation    string
6684	urlParams_   gensupport.URLParams
6685	ifNoneMatch_ string
6686	ctx_         context.Context
6687	header_      http.Header
6688}
6689
6690// Get: Gets information about a specific operation.
6691//
6692// - operation: The name of the operation for this request.
6693// - project: The project ID for this request.
6694func (r *OperationsService) Get(project string, operation string) *OperationsGetCall {
6695	c := &OperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6696	c.project = project
6697	c.operation = operation
6698	return c
6699}
6700
6701// Fields allows partial responses to be retrieved. See
6702// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6703// for more information.
6704func (c *OperationsGetCall) Fields(s ...googleapi.Field) *OperationsGetCall {
6705	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6706	return c
6707}
6708
6709// IfNoneMatch sets the optional parameter which makes the operation
6710// fail if the object's ETag matches the given value. This is useful for
6711// getting updates only after the object has changed since the last
6712// request. Use googleapi.IsNotModified to check whether the response
6713// error from Do is the result of In-None-Match.
6714func (c *OperationsGetCall) IfNoneMatch(entityTag string) *OperationsGetCall {
6715	c.ifNoneMatch_ = entityTag
6716	return c
6717}
6718
6719// Context sets the context to be used in this call's Do method. Any
6720// pending HTTP request will be aborted if the provided context is
6721// canceled.
6722func (c *OperationsGetCall) Context(ctx context.Context) *OperationsGetCall {
6723	c.ctx_ = ctx
6724	return c
6725}
6726
6727// Header returns an http.Header that can be modified by the caller to
6728// add HTTP headers to the request.
6729func (c *OperationsGetCall) Header() http.Header {
6730	if c.header_ == nil {
6731		c.header_ = make(http.Header)
6732	}
6733	return c.header_
6734}
6735
6736func (c *OperationsGetCall) doRequest(alt string) (*http.Response, error) {
6737	reqHeaders := make(http.Header)
6738	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
6739	for k, v := range c.header_ {
6740		reqHeaders[k] = v
6741	}
6742	reqHeaders.Set("User-Agent", c.s.userAgent())
6743	if c.ifNoneMatch_ != "" {
6744		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6745	}
6746	var body io.Reader = nil
6747	c.urlParams_.Set("alt", alt)
6748	c.urlParams_.Set("prettyPrint", "false")
6749	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/operations/{operation}")
6750	urls += "?" + c.urlParams_.Encode()
6751	req, err := http.NewRequest("GET", urls, body)
6752	if err != nil {
6753		return nil, err
6754	}
6755	req.Header = reqHeaders
6756	googleapi.Expand(req.URL, map[string]string{
6757		"project":   c.project,
6758		"operation": c.operation,
6759	})
6760	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6761}
6762
6763// Do executes the "deploymentmanager.operations.get" call.
6764// Exactly one of *Operation or error will be non-nil. Any non-2xx
6765// status code is an error. Response headers are in either
6766// *Operation.ServerResponse.Header or (if a response was returned at
6767// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6768// to check whether the returned error was because
6769// http.StatusNotModified was returned.
6770func (c *OperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
6771	gensupport.SetOptions(c.urlParams_, opts...)
6772	res, err := c.doRequest("json")
6773	if res != nil && res.StatusCode == http.StatusNotModified {
6774		if res.Body != nil {
6775			res.Body.Close()
6776		}
6777		return nil, &googleapi.Error{
6778			Code:   res.StatusCode,
6779			Header: res.Header,
6780		}
6781	}
6782	if err != nil {
6783		return nil, err
6784	}
6785	defer googleapi.CloseBody(res)
6786	if err := googleapi.CheckResponse(res); err != nil {
6787		return nil, err
6788	}
6789	ret := &Operation{
6790		ServerResponse: googleapi.ServerResponse{
6791			Header:         res.Header,
6792			HTTPStatusCode: res.StatusCode,
6793		},
6794	}
6795	target := &ret
6796	if err := gensupport.DecodeResponse(target, res); err != nil {
6797		return nil, err
6798	}
6799	return ret, nil
6800	// {
6801	//   "description": "Gets information about a specific operation.",
6802	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/operations/{operation}",
6803	//   "httpMethod": "GET",
6804	//   "id": "deploymentmanager.operations.get",
6805	//   "parameterOrder": [
6806	//     "project",
6807	//     "operation"
6808	//   ],
6809	//   "parameters": {
6810	//     "operation": {
6811	//       "description": "The name of the operation for this request.",
6812	//       "location": "path",
6813	//       "required": true,
6814	//       "type": "string"
6815	//     },
6816	//     "project": {
6817	//       "description": "The project ID for this request.",
6818	//       "location": "path",
6819	//       "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])?))",
6820	//       "required": true,
6821	//       "type": "string"
6822	//     }
6823	//   },
6824	//   "path": "deploymentmanager/alpha/projects/{project}/global/operations/{operation}",
6825	//   "response": {
6826	//     "$ref": "Operation"
6827	//   },
6828	//   "scopes": [
6829	//     "https://www.googleapis.com/auth/cloud-platform",
6830	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
6831	//     "https://www.googleapis.com/auth/ndev.cloudman",
6832	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
6833	//   ]
6834	// }
6835
6836}
6837
6838// method id "deploymentmanager.operations.list":
6839
6840type OperationsListCall struct {
6841	s            *Service
6842	project      string
6843	urlParams_   gensupport.URLParams
6844	ifNoneMatch_ string
6845	ctx_         context.Context
6846	header_      http.Header
6847}
6848
6849// List: Lists all operations for a project.
6850//
6851// - project: The project ID for this request.
6852func (r *OperationsService) List(project string) *OperationsListCall {
6853	c := &OperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6854	c.project = project
6855	return c
6856}
6857
6858// Filter sets the optional parameter "filter": A filter expression that
6859// filters resources listed in the response. The expression must specify
6860// the field name, a comparison operator, and the value that you want to
6861// use for filtering. The value must be a string, a number, or a
6862// boolean. The comparison operator must be either `=`, `!=`, `>`, or
6863// `<`. For example, if you are filtering Compute Engine instances, you
6864// can exclude instances named `example-instance` by specifying `name !=
6865// example-instance`. You can also filter nested fields. For example,
6866// you could specify `scheduling.automaticRestart = false` to include
6867// instances only if they are not scheduled for automatic restarts. You
6868// can use filtering on nested fields to filter based on resource
6869// labels. To filter on multiple expressions, provide each separate
6870// expression within parentheses. For example: ```
6871// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
6872// ``` By default, each expression is an `AND` expression. However, you
6873// can include `AND` and `OR` expressions explicitly. For example: ```
6874// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
6875// AND (scheduling.automaticRestart = true) ```
6876func (c *OperationsListCall) Filter(filter string) *OperationsListCall {
6877	c.urlParams_.Set("filter", filter)
6878	return c
6879}
6880
6881// MaxResults sets the optional parameter "maxResults": The maximum
6882// number of results per page that should be returned. If the number of
6883// available results is larger than `maxResults`, Compute Engine returns
6884// a `nextPageToken` that can be used to get the next page of results in
6885// subsequent list requests. Acceptable values are `0` to `500`,
6886// inclusive. (Default: `500`)
6887func (c *OperationsListCall) MaxResults(maxResults int64) *OperationsListCall {
6888	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
6889	return c
6890}
6891
6892// OrderBy sets the optional parameter "orderBy": Sorts list results by
6893// a certain order. By default, results are returned in alphanumerical
6894// order based on the resource name. You can also sort results in
6895// descending order based on the creation timestamp using
6896// `orderBy="creationTimestamp desc". This sorts results based on the
6897// `creationTimestamp` field in reverse chronological order (newest
6898// result first). Use this to sort resources like operations so that the
6899// newest operation is returned first. Currently, only sorting by `name`
6900// or `creationTimestamp desc` is supported.
6901func (c *OperationsListCall) OrderBy(orderBy string) *OperationsListCall {
6902	c.urlParams_.Set("orderBy", orderBy)
6903	return c
6904}
6905
6906// PageToken sets the optional parameter "pageToken": Specifies a page
6907// token to use. Set `pageToken` to the `nextPageToken` returned by a
6908// previous list request to get the next page of results.
6909func (c *OperationsListCall) PageToken(pageToken string) *OperationsListCall {
6910	c.urlParams_.Set("pageToken", pageToken)
6911	return c
6912}
6913
6914// Fields allows partial responses to be retrieved. See
6915// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6916// for more information.
6917func (c *OperationsListCall) Fields(s ...googleapi.Field) *OperationsListCall {
6918	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6919	return c
6920}
6921
6922// IfNoneMatch sets the optional parameter which makes the operation
6923// fail if the object's ETag matches the given value. This is useful for
6924// getting updates only after the object has changed since the last
6925// request. Use googleapi.IsNotModified to check whether the response
6926// error from Do is the result of In-None-Match.
6927func (c *OperationsListCall) IfNoneMatch(entityTag string) *OperationsListCall {
6928	c.ifNoneMatch_ = entityTag
6929	return c
6930}
6931
6932// Context sets the context to be used in this call's Do method. Any
6933// pending HTTP request will be aborted if the provided context is
6934// canceled.
6935func (c *OperationsListCall) Context(ctx context.Context) *OperationsListCall {
6936	c.ctx_ = ctx
6937	return c
6938}
6939
6940// Header returns an http.Header that can be modified by the caller to
6941// add HTTP headers to the request.
6942func (c *OperationsListCall) Header() http.Header {
6943	if c.header_ == nil {
6944		c.header_ = make(http.Header)
6945	}
6946	return c.header_
6947}
6948
6949func (c *OperationsListCall) doRequest(alt string) (*http.Response, error) {
6950	reqHeaders := make(http.Header)
6951	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
6952	for k, v := range c.header_ {
6953		reqHeaders[k] = v
6954	}
6955	reqHeaders.Set("User-Agent", c.s.userAgent())
6956	if c.ifNoneMatch_ != "" {
6957		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6958	}
6959	var body io.Reader = nil
6960	c.urlParams_.Set("alt", alt)
6961	c.urlParams_.Set("prettyPrint", "false")
6962	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/operations")
6963	urls += "?" + c.urlParams_.Encode()
6964	req, err := http.NewRequest("GET", urls, body)
6965	if err != nil {
6966		return nil, err
6967	}
6968	req.Header = reqHeaders
6969	googleapi.Expand(req.URL, map[string]string{
6970		"project": c.project,
6971	})
6972	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6973}
6974
6975// Do executes the "deploymentmanager.operations.list" call.
6976// Exactly one of *OperationsListResponse or error will be non-nil. Any
6977// non-2xx status code is an error. Response headers are in either
6978// *OperationsListResponse.ServerResponse.Header or (if a response was
6979// returned at all) in error.(*googleapi.Error).Header. Use
6980// googleapi.IsNotModified to check whether the returned error was
6981// because http.StatusNotModified was returned.
6982func (c *OperationsListCall) Do(opts ...googleapi.CallOption) (*OperationsListResponse, error) {
6983	gensupport.SetOptions(c.urlParams_, opts...)
6984	res, err := c.doRequest("json")
6985	if res != nil && res.StatusCode == http.StatusNotModified {
6986		if res.Body != nil {
6987			res.Body.Close()
6988		}
6989		return nil, &googleapi.Error{
6990			Code:   res.StatusCode,
6991			Header: res.Header,
6992		}
6993	}
6994	if err != nil {
6995		return nil, err
6996	}
6997	defer googleapi.CloseBody(res)
6998	if err := googleapi.CheckResponse(res); err != nil {
6999		return nil, err
7000	}
7001	ret := &OperationsListResponse{
7002		ServerResponse: googleapi.ServerResponse{
7003			Header:         res.Header,
7004			HTTPStatusCode: res.StatusCode,
7005		},
7006	}
7007	target := &ret
7008	if err := gensupport.DecodeResponse(target, res); err != nil {
7009		return nil, err
7010	}
7011	return ret, nil
7012	// {
7013	//   "description": "Lists all operations for a project.",
7014	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/operations",
7015	//   "httpMethod": "GET",
7016	//   "id": "deploymentmanager.operations.list",
7017	//   "parameterOrder": [
7018	//     "project"
7019	//   ],
7020	//   "parameters": {
7021	//     "filter": {
7022	//       "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`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You 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. To 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) ```",
7023	//       "location": "query",
7024	//       "type": "string"
7025	//     },
7026	//     "maxResults": {
7027	//       "default": "500",
7028	//       "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`)",
7029	//       "format": "uint32",
7030	//       "location": "query",
7031	//       "minimum": "0",
7032	//       "type": "integer"
7033	//     },
7034	//     "orderBy": {
7035	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You 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. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
7036	//       "location": "query",
7037	//       "type": "string"
7038	//     },
7039	//     "pageToken": {
7040	//       "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.",
7041	//       "location": "query",
7042	//       "type": "string"
7043	//     },
7044	//     "project": {
7045	//       "description": "The project ID for this request.",
7046	//       "location": "path",
7047	//       "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])?))",
7048	//       "required": true,
7049	//       "type": "string"
7050	//     }
7051	//   },
7052	//   "path": "deploymentmanager/alpha/projects/{project}/global/operations",
7053	//   "response": {
7054	//     "$ref": "OperationsListResponse"
7055	//   },
7056	//   "scopes": [
7057	//     "https://www.googleapis.com/auth/cloud-platform",
7058	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
7059	//     "https://www.googleapis.com/auth/ndev.cloudman",
7060	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
7061	//   ]
7062	// }
7063
7064}
7065
7066// Pages invokes f for each page of results.
7067// A non-nil error returned from f will halt the iteration.
7068// The provided context supersedes any context provided to the Context method.
7069func (c *OperationsListCall) Pages(ctx context.Context, f func(*OperationsListResponse) error) error {
7070	c.ctx_ = ctx
7071	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
7072	for {
7073		x, err := c.Do()
7074		if err != nil {
7075			return err
7076		}
7077		if err := f(x); err != nil {
7078			return err
7079		}
7080		if x.NextPageToken == "" {
7081			return nil
7082		}
7083		c.PageToken(x.NextPageToken)
7084	}
7085}
7086
7087// method id "deploymentmanager.resources.get":
7088
7089type ResourcesGetCall struct {
7090	s            *Service
7091	project      string
7092	deployment   string
7093	resource     string
7094	urlParams_   gensupport.URLParams
7095	ifNoneMatch_ string
7096	ctx_         context.Context
7097	header_      http.Header
7098}
7099
7100// Get: Gets information about a single resource.
7101//
7102// - deployment: The name of the deployment for this request.
7103// - project: The project ID for this request.
7104// - resource: The name of the resource for this request.
7105func (r *ResourcesService) Get(project string, deployment string, resource string) *ResourcesGetCall {
7106	c := &ResourcesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7107	c.project = project
7108	c.deployment = deployment
7109	c.resource = resource
7110	return c
7111}
7112
7113// Fields allows partial responses to be retrieved. See
7114// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7115// for more information.
7116func (c *ResourcesGetCall) Fields(s ...googleapi.Field) *ResourcesGetCall {
7117	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7118	return c
7119}
7120
7121// IfNoneMatch sets the optional parameter which makes the operation
7122// fail if the object's ETag matches the given value. This is useful for
7123// getting updates only after the object has changed since the last
7124// request. Use googleapi.IsNotModified to check whether the response
7125// error from Do is the result of In-None-Match.
7126func (c *ResourcesGetCall) IfNoneMatch(entityTag string) *ResourcesGetCall {
7127	c.ifNoneMatch_ = entityTag
7128	return c
7129}
7130
7131// Context sets the context to be used in this call's Do method. Any
7132// pending HTTP request will be aborted if the provided context is
7133// canceled.
7134func (c *ResourcesGetCall) Context(ctx context.Context) *ResourcesGetCall {
7135	c.ctx_ = ctx
7136	return c
7137}
7138
7139// Header returns an http.Header that can be modified by the caller to
7140// add HTTP headers to the request.
7141func (c *ResourcesGetCall) Header() http.Header {
7142	if c.header_ == nil {
7143		c.header_ = make(http.Header)
7144	}
7145	return c.header_
7146}
7147
7148func (c *ResourcesGetCall) doRequest(alt string) (*http.Response, error) {
7149	reqHeaders := make(http.Header)
7150	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
7151	for k, v := range c.header_ {
7152		reqHeaders[k] = v
7153	}
7154	reqHeaders.Set("User-Agent", c.s.userAgent())
7155	if c.ifNoneMatch_ != "" {
7156		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7157	}
7158	var body io.Reader = nil
7159	c.urlParams_.Set("alt", alt)
7160	c.urlParams_.Set("prettyPrint", "false")
7161	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/resources/{resource}")
7162	urls += "?" + c.urlParams_.Encode()
7163	req, err := http.NewRequest("GET", urls, body)
7164	if err != nil {
7165		return nil, err
7166	}
7167	req.Header = reqHeaders
7168	googleapi.Expand(req.URL, map[string]string{
7169		"project":    c.project,
7170		"deployment": c.deployment,
7171		"resource":   c.resource,
7172	})
7173	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7174}
7175
7176// Do executes the "deploymentmanager.resources.get" call.
7177// Exactly one of *Resource or error will be non-nil. Any non-2xx status
7178// code is an error. Response headers are in either
7179// *Resource.ServerResponse.Header or (if a response was returned at
7180// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
7181// to check whether the returned error was because
7182// http.StatusNotModified was returned.
7183func (c *ResourcesGetCall) Do(opts ...googleapi.CallOption) (*Resource, error) {
7184	gensupport.SetOptions(c.urlParams_, opts...)
7185	res, err := c.doRequest("json")
7186	if res != nil && res.StatusCode == http.StatusNotModified {
7187		if res.Body != nil {
7188			res.Body.Close()
7189		}
7190		return nil, &googleapi.Error{
7191			Code:   res.StatusCode,
7192			Header: res.Header,
7193		}
7194	}
7195	if err != nil {
7196		return nil, err
7197	}
7198	defer googleapi.CloseBody(res)
7199	if err := googleapi.CheckResponse(res); err != nil {
7200		return nil, err
7201	}
7202	ret := &Resource{
7203		ServerResponse: googleapi.ServerResponse{
7204			Header:         res.Header,
7205			HTTPStatusCode: res.StatusCode,
7206		},
7207	}
7208	target := &ret
7209	if err := gensupport.DecodeResponse(target, res); err != nil {
7210		return nil, err
7211	}
7212	return ret, nil
7213	// {
7214	//   "description": "Gets information about a single resource.",
7215	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/resources/{resource}",
7216	//   "httpMethod": "GET",
7217	//   "id": "deploymentmanager.resources.get",
7218	//   "parameterOrder": [
7219	//     "project",
7220	//     "deployment",
7221	//     "resource"
7222	//   ],
7223	//   "parameters": {
7224	//     "deployment": {
7225	//       "description": "The name of the deployment for this request.",
7226	//       "location": "path",
7227	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
7228	//       "required": true,
7229	//       "type": "string"
7230	//     },
7231	//     "project": {
7232	//       "description": "The project ID for this request.",
7233	//       "location": "path",
7234	//       "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])?))",
7235	//       "required": true,
7236	//       "type": "string"
7237	//     },
7238	//     "resource": {
7239	//       "description": "The name of the resource for this request.",
7240	//       "location": "path",
7241	//       "required": true,
7242	//       "type": "string"
7243	//     }
7244	//   },
7245	//   "path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/resources/{resource}",
7246	//   "response": {
7247	//     "$ref": "Resource"
7248	//   },
7249	//   "scopes": [
7250	//     "https://www.googleapis.com/auth/cloud-platform",
7251	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
7252	//     "https://www.googleapis.com/auth/ndev.cloudman",
7253	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
7254	//   ]
7255	// }
7256
7257}
7258
7259// method id "deploymentmanager.resources.list":
7260
7261type ResourcesListCall struct {
7262	s            *Service
7263	project      string
7264	deployment   string
7265	urlParams_   gensupport.URLParams
7266	ifNoneMatch_ string
7267	ctx_         context.Context
7268	header_      http.Header
7269}
7270
7271// List: Lists all resources in a given deployment.
7272//
7273// - deployment: The name of the deployment for this request.
7274// - project: The project ID for this request.
7275func (r *ResourcesService) List(project string, deployment string) *ResourcesListCall {
7276	c := &ResourcesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7277	c.project = project
7278	c.deployment = deployment
7279	return c
7280}
7281
7282// Filter sets the optional parameter "filter": A filter expression that
7283// filters resources listed in the response. The expression must specify
7284// the field name, a comparison operator, and the value that you want to
7285// use for filtering. The value must be a string, a number, or a
7286// boolean. The comparison operator must be either `=`, `!=`, `>`, or
7287// `<`. For example, if you are filtering Compute Engine instances, you
7288// can exclude instances named `example-instance` by specifying `name !=
7289// example-instance`. You can also filter nested fields. For example,
7290// you could specify `scheduling.automaticRestart = false` to include
7291// instances only if they are not scheduled for automatic restarts. You
7292// can use filtering on nested fields to filter based on resource
7293// labels. To filter on multiple expressions, provide each separate
7294// expression within parentheses. For example: ```
7295// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
7296// ``` By default, each expression is an `AND` expression. However, you
7297// can include `AND` and `OR` expressions explicitly. For example: ```
7298// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
7299// AND (scheduling.automaticRestart = true) ```
7300func (c *ResourcesListCall) Filter(filter string) *ResourcesListCall {
7301	c.urlParams_.Set("filter", filter)
7302	return c
7303}
7304
7305// MaxResults sets the optional parameter "maxResults": The maximum
7306// number of results per page that should be returned. If the number of
7307// available results is larger than `maxResults`, Compute Engine returns
7308// a `nextPageToken` that can be used to get the next page of results in
7309// subsequent list requests. Acceptable values are `0` to `500`,
7310// inclusive. (Default: `500`)
7311func (c *ResourcesListCall) MaxResults(maxResults int64) *ResourcesListCall {
7312	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
7313	return c
7314}
7315
7316// OrderBy sets the optional parameter "orderBy": Sorts list results by
7317// a certain order. By default, results are returned in alphanumerical
7318// order based on the resource name. You can also sort results in
7319// descending order based on the creation timestamp using
7320// `orderBy="creationTimestamp desc". This sorts results based on the
7321// `creationTimestamp` field in reverse chronological order (newest
7322// result first). Use this to sort resources like operations so that the
7323// newest operation is returned first. Currently, only sorting by `name`
7324// or `creationTimestamp desc` is supported.
7325func (c *ResourcesListCall) OrderBy(orderBy string) *ResourcesListCall {
7326	c.urlParams_.Set("orderBy", orderBy)
7327	return c
7328}
7329
7330// PageToken sets the optional parameter "pageToken": Specifies a page
7331// token to use. Set `pageToken` to the `nextPageToken` returned by a
7332// previous list request to get the next page of results.
7333func (c *ResourcesListCall) PageToken(pageToken string) *ResourcesListCall {
7334	c.urlParams_.Set("pageToken", pageToken)
7335	return c
7336}
7337
7338// Fields allows partial responses to be retrieved. See
7339// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7340// for more information.
7341func (c *ResourcesListCall) Fields(s ...googleapi.Field) *ResourcesListCall {
7342	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7343	return c
7344}
7345
7346// IfNoneMatch sets the optional parameter which makes the operation
7347// fail if the object's ETag matches the given value. This is useful for
7348// getting updates only after the object has changed since the last
7349// request. Use googleapi.IsNotModified to check whether the response
7350// error from Do is the result of In-None-Match.
7351func (c *ResourcesListCall) IfNoneMatch(entityTag string) *ResourcesListCall {
7352	c.ifNoneMatch_ = entityTag
7353	return c
7354}
7355
7356// Context sets the context to be used in this call's Do method. Any
7357// pending HTTP request will be aborted if the provided context is
7358// canceled.
7359func (c *ResourcesListCall) Context(ctx context.Context) *ResourcesListCall {
7360	c.ctx_ = ctx
7361	return c
7362}
7363
7364// Header returns an http.Header that can be modified by the caller to
7365// add HTTP headers to the request.
7366func (c *ResourcesListCall) Header() http.Header {
7367	if c.header_ == nil {
7368		c.header_ = make(http.Header)
7369	}
7370	return c.header_
7371}
7372
7373func (c *ResourcesListCall) doRequest(alt string) (*http.Response, error) {
7374	reqHeaders := make(http.Header)
7375	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
7376	for k, v := range c.header_ {
7377		reqHeaders[k] = v
7378	}
7379	reqHeaders.Set("User-Agent", c.s.userAgent())
7380	if c.ifNoneMatch_ != "" {
7381		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7382	}
7383	var body io.Reader = nil
7384	c.urlParams_.Set("alt", alt)
7385	c.urlParams_.Set("prettyPrint", "false")
7386	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/resources")
7387	urls += "?" + c.urlParams_.Encode()
7388	req, err := http.NewRequest("GET", urls, body)
7389	if err != nil {
7390		return nil, err
7391	}
7392	req.Header = reqHeaders
7393	googleapi.Expand(req.URL, map[string]string{
7394		"project":    c.project,
7395		"deployment": c.deployment,
7396	})
7397	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7398}
7399
7400// Do executes the "deploymentmanager.resources.list" call.
7401// Exactly one of *ResourcesListResponse or error will be non-nil. Any
7402// non-2xx status code is an error. Response headers are in either
7403// *ResourcesListResponse.ServerResponse.Header or (if a response was
7404// returned at all) in error.(*googleapi.Error).Header. Use
7405// googleapi.IsNotModified to check whether the returned error was
7406// because http.StatusNotModified was returned.
7407func (c *ResourcesListCall) Do(opts ...googleapi.CallOption) (*ResourcesListResponse, error) {
7408	gensupport.SetOptions(c.urlParams_, opts...)
7409	res, err := c.doRequest("json")
7410	if res != nil && res.StatusCode == http.StatusNotModified {
7411		if res.Body != nil {
7412			res.Body.Close()
7413		}
7414		return nil, &googleapi.Error{
7415			Code:   res.StatusCode,
7416			Header: res.Header,
7417		}
7418	}
7419	if err != nil {
7420		return nil, err
7421	}
7422	defer googleapi.CloseBody(res)
7423	if err := googleapi.CheckResponse(res); err != nil {
7424		return nil, err
7425	}
7426	ret := &ResourcesListResponse{
7427		ServerResponse: googleapi.ServerResponse{
7428			Header:         res.Header,
7429			HTTPStatusCode: res.StatusCode,
7430		},
7431	}
7432	target := &ret
7433	if err := gensupport.DecodeResponse(target, res); err != nil {
7434		return nil, err
7435	}
7436	return ret, nil
7437	// {
7438	//   "description": "Lists all resources in a given deployment.",
7439	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/resources",
7440	//   "httpMethod": "GET",
7441	//   "id": "deploymentmanager.resources.list",
7442	//   "parameterOrder": [
7443	//     "project",
7444	//     "deployment"
7445	//   ],
7446	//   "parameters": {
7447	//     "deployment": {
7448	//       "description": "The name of the deployment for this request.",
7449	//       "location": "path",
7450	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
7451	//       "required": true,
7452	//       "type": "string"
7453	//     },
7454	//     "filter": {
7455	//       "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`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You 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. To 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) ```",
7456	//       "location": "query",
7457	//       "type": "string"
7458	//     },
7459	//     "maxResults": {
7460	//       "default": "500",
7461	//       "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`)",
7462	//       "format": "uint32",
7463	//       "location": "query",
7464	//       "minimum": "0",
7465	//       "type": "integer"
7466	//     },
7467	//     "orderBy": {
7468	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You 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. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
7469	//       "location": "query",
7470	//       "type": "string"
7471	//     },
7472	//     "pageToken": {
7473	//       "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.",
7474	//       "location": "query",
7475	//       "type": "string"
7476	//     },
7477	//     "project": {
7478	//       "description": "The project ID for this request.",
7479	//       "location": "path",
7480	//       "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])?))",
7481	//       "required": true,
7482	//       "type": "string"
7483	//     }
7484	//   },
7485	//   "path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/resources",
7486	//   "response": {
7487	//     "$ref": "ResourcesListResponse"
7488	//   },
7489	//   "scopes": [
7490	//     "https://www.googleapis.com/auth/cloud-platform",
7491	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
7492	//     "https://www.googleapis.com/auth/ndev.cloudman",
7493	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
7494	//   ]
7495	// }
7496
7497}
7498
7499// Pages invokes f for each page of results.
7500// A non-nil error returned from f will halt the iteration.
7501// The provided context supersedes any context provided to the Context method.
7502func (c *ResourcesListCall) Pages(ctx context.Context, f func(*ResourcesListResponse) error) error {
7503	c.ctx_ = ctx
7504	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
7505	for {
7506		x, err := c.Do()
7507		if err != nil {
7508			return err
7509		}
7510		if err := f(x); err != nil {
7511			return err
7512		}
7513		if x.NextPageToken == "" {
7514			return nil
7515		}
7516		c.PageToken(x.NextPageToken)
7517	}
7518}
7519
7520// method id "deploymentmanager.typeProviders.delete":
7521
7522type TypeProvidersDeleteCall struct {
7523	s            *Service
7524	project      string
7525	typeProvider string
7526	urlParams_   gensupport.URLParams
7527	ctx_         context.Context
7528	header_      http.Header
7529}
7530
7531// Delete: Deletes a type provider.
7532//
7533// - project: The project ID for this request.
7534// - typeProvider: The name of the type provider for this request.
7535func (r *TypeProvidersService) Delete(project string, typeProvider string) *TypeProvidersDeleteCall {
7536	c := &TypeProvidersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7537	c.project = project
7538	c.typeProvider = typeProvider
7539	return c
7540}
7541
7542// Fields allows partial responses to be retrieved. See
7543// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7544// for more information.
7545func (c *TypeProvidersDeleteCall) Fields(s ...googleapi.Field) *TypeProvidersDeleteCall {
7546	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7547	return c
7548}
7549
7550// Context sets the context to be used in this call's Do method. Any
7551// pending HTTP request will be aborted if the provided context is
7552// canceled.
7553func (c *TypeProvidersDeleteCall) Context(ctx context.Context) *TypeProvidersDeleteCall {
7554	c.ctx_ = ctx
7555	return c
7556}
7557
7558// Header returns an http.Header that can be modified by the caller to
7559// add HTTP headers to the request.
7560func (c *TypeProvidersDeleteCall) Header() http.Header {
7561	if c.header_ == nil {
7562		c.header_ = make(http.Header)
7563	}
7564	return c.header_
7565}
7566
7567func (c *TypeProvidersDeleteCall) doRequest(alt string) (*http.Response, error) {
7568	reqHeaders := make(http.Header)
7569	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
7570	for k, v := range c.header_ {
7571		reqHeaders[k] = v
7572	}
7573	reqHeaders.Set("User-Agent", c.s.userAgent())
7574	var body io.Reader = nil
7575	c.urlParams_.Set("alt", alt)
7576	c.urlParams_.Set("prettyPrint", "false")
7577	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}")
7578	urls += "?" + c.urlParams_.Encode()
7579	req, err := http.NewRequest("DELETE", urls, body)
7580	if err != nil {
7581		return nil, err
7582	}
7583	req.Header = reqHeaders
7584	googleapi.Expand(req.URL, map[string]string{
7585		"project":      c.project,
7586		"typeProvider": c.typeProvider,
7587	})
7588	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7589}
7590
7591// Do executes the "deploymentmanager.typeProviders.delete" call.
7592// Exactly one of *Operation or error will be non-nil. Any non-2xx
7593// status code is an error. Response headers are in either
7594// *Operation.ServerResponse.Header or (if a response was returned at
7595// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
7596// to check whether the returned error was because
7597// http.StatusNotModified was returned.
7598func (c *TypeProvidersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
7599	gensupport.SetOptions(c.urlParams_, opts...)
7600	res, err := c.doRequest("json")
7601	if res != nil && res.StatusCode == http.StatusNotModified {
7602		if res.Body != nil {
7603			res.Body.Close()
7604		}
7605		return nil, &googleapi.Error{
7606			Code:   res.StatusCode,
7607			Header: res.Header,
7608		}
7609	}
7610	if err != nil {
7611		return nil, err
7612	}
7613	defer googleapi.CloseBody(res)
7614	if err := googleapi.CheckResponse(res); err != nil {
7615		return nil, err
7616	}
7617	ret := &Operation{
7618		ServerResponse: googleapi.ServerResponse{
7619			Header:         res.Header,
7620			HTTPStatusCode: res.StatusCode,
7621		},
7622	}
7623	target := &ret
7624	if err := gensupport.DecodeResponse(target, res); err != nil {
7625		return nil, err
7626	}
7627	return ret, nil
7628	// {
7629	//   "description": "Deletes a type provider.",
7630	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}",
7631	//   "httpMethod": "DELETE",
7632	//   "id": "deploymentmanager.typeProviders.delete",
7633	//   "parameterOrder": [
7634	//     "project",
7635	//     "typeProvider"
7636	//   ],
7637	//   "parameters": {
7638	//     "project": {
7639	//       "description": "The project ID for this request.",
7640	//       "location": "path",
7641	//       "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])?))",
7642	//       "required": true,
7643	//       "type": "string"
7644	//     },
7645	//     "typeProvider": {
7646	//       "description": "The name of the type provider for this request.",
7647	//       "location": "path",
7648	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
7649	//       "required": true,
7650	//       "type": "string"
7651	//     }
7652	//   },
7653	//   "path": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}",
7654	//   "response": {
7655	//     "$ref": "Operation"
7656	//   },
7657	//   "scopes": [
7658	//     "https://www.googleapis.com/auth/cloud-platform",
7659	//     "https://www.googleapis.com/auth/ndev.cloudman"
7660	//   ]
7661	// }
7662
7663}
7664
7665// method id "deploymentmanager.typeProviders.get":
7666
7667type TypeProvidersGetCall struct {
7668	s            *Service
7669	project      string
7670	typeProvider string
7671	urlParams_   gensupport.URLParams
7672	ifNoneMatch_ string
7673	ctx_         context.Context
7674	header_      http.Header
7675}
7676
7677// Get: Gets information about a specific type provider.
7678//
7679// - project: The project ID for this request.
7680// - typeProvider: The name of the type provider for this request.
7681func (r *TypeProvidersService) Get(project string, typeProvider string) *TypeProvidersGetCall {
7682	c := &TypeProvidersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7683	c.project = project
7684	c.typeProvider = typeProvider
7685	return c
7686}
7687
7688// Fields allows partial responses to be retrieved. See
7689// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7690// for more information.
7691func (c *TypeProvidersGetCall) Fields(s ...googleapi.Field) *TypeProvidersGetCall {
7692	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7693	return c
7694}
7695
7696// IfNoneMatch sets the optional parameter which makes the operation
7697// fail if the object's ETag matches the given value. This is useful for
7698// getting updates only after the object has changed since the last
7699// request. Use googleapi.IsNotModified to check whether the response
7700// error from Do is the result of In-None-Match.
7701func (c *TypeProvidersGetCall) IfNoneMatch(entityTag string) *TypeProvidersGetCall {
7702	c.ifNoneMatch_ = entityTag
7703	return c
7704}
7705
7706// Context sets the context to be used in this call's Do method. Any
7707// pending HTTP request will be aborted if the provided context is
7708// canceled.
7709func (c *TypeProvidersGetCall) Context(ctx context.Context) *TypeProvidersGetCall {
7710	c.ctx_ = ctx
7711	return c
7712}
7713
7714// Header returns an http.Header that can be modified by the caller to
7715// add HTTP headers to the request.
7716func (c *TypeProvidersGetCall) Header() http.Header {
7717	if c.header_ == nil {
7718		c.header_ = make(http.Header)
7719	}
7720	return c.header_
7721}
7722
7723func (c *TypeProvidersGetCall) doRequest(alt string) (*http.Response, error) {
7724	reqHeaders := make(http.Header)
7725	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
7726	for k, v := range c.header_ {
7727		reqHeaders[k] = v
7728	}
7729	reqHeaders.Set("User-Agent", c.s.userAgent())
7730	if c.ifNoneMatch_ != "" {
7731		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7732	}
7733	var body io.Reader = nil
7734	c.urlParams_.Set("alt", alt)
7735	c.urlParams_.Set("prettyPrint", "false")
7736	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}")
7737	urls += "?" + c.urlParams_.Encode()
7738	req, err := http.NewRequest("GET", urls, body)
7739	if err != nil {
7740		return nil, err
7741	}
7742	req.Header = reqHeaders
7743	googleapi.Expand(req.URL, map[string]string{
7744		"project":      c.project,
7745		"typeProvider": c.typeProvider,
7746	})
7747	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7748}
7749
7750// Do executes the "deploymentmanager.typeProviders.get" call.
7751// Exactly one of *TypeProvider or error will be non-nil. Any non-2xx
7752// status code is an error. Response headers are in either
7753// *TypeProvider.ServerResponse.Header or (if a response was returned at
7754// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
7755// to check whether the returned error was because
7756// http.StatusNotModified was returned.
7757func (c *TypeProvidersGetCall) Do(opts ...googleapi.CallOption) (*TypeProvider, error) {
7758	gensupport.SetOptions(c.urlParams_, opts...)
7759	res, err := c.doRequest("json")
7760	if res != nil && res.StatusCode == http.StatusNotModified {
7761		if res.Body != nil {
7762			res.Body.Close()
7763		}
7764		return nil, &googleapi.Error{
7765			Code:   res.StatusCode,
7766			Header: res.Header,
7767		}
7768	}
7769	if err != nil {
7770		return nil, err
7771	}
7772	defer googleapi.CloseBody(res)
7773	if err := googleapi.CheckResponse(res); err != nil {
7774		return nil, err
7775	}
7776	ret := &TypeProvider{
7777		ServerResponse: googleapi.ServerResponse{
7778			Header:         res.Header,
7779			HTTPStatusCode: res.StatusCode,
7780		},
7781	}
7782	target := &ret
7783	if err := gensupport.DecodeResponse(target, res); err != nil {
7784		return nil, err
7785	}
7786	return ret, nil
7787	// {
7788	//   "description": "Gets information about a specific type provider.",
7789	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}",
7790	//   "httpMethod": "GET",
7791	//   "id": "deploymentmanager.typeProviders.get",
7792	//   "parameterOrder": [
7793	//     "project",
7794	//     "typeProvider"
7795	//   ],
7796	//   "parameters": {
7797	//     "project": {
7798	//       "description": "The project ID for this request.",
7799	//       "location": "path",
7800	//       "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])?))",
7801	//       "required": true,
7802	//       "type": "string"
7803	//     },
7804	//     "typeProvider": {
7805	//       "description": "The name of the type provider for this request.",
7806	//       "location": "path",
7807	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
7808	//       "required": true,
7809	//       "type": "string"
7810	//     }
7811	//   },
7812	//   "path": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}",
7813	//   "response": {
7814	//     "$ref": "TypeProvider"
7815	//   },
7816	//   "scopes": [
7817	//     "https://www.googleapis.com/auth/cloud-platform",
7818	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
7819	//     "https://www.googleapis.com/auth/ndev.cloudman",
7820	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
7821	//   ]
7822	// }
7823
7824}
7825
7826// method id "deploymentmanager.typeProviders.getType":
7827
7828type TypeProvidersGetTypeCall struct {
7829	s            *Service
7830	project      string
7831	typeProvider string
7832	type_        string
7833	urlParams_   gensupport.URLParams
7834	ifNoneMatch_ string
7835	ctx_         context.Context
7836	header_      http.Header
7837}
7838
7839// GetType: Gets a type info for a type provided by a TypeProvider.
7840//
7841// - project: The project ID for this request.
7842// - type: The name of the type provider type for this request.
7843// - typeProvider: The name of the type provider for this request.
7844func (r *TypeProvidersService) GetType(project string, typeProvider string, type_ string) *TypeProvidersGetTypeCall {
7845	c := &TypeProvidersGetTypeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7846	c.project = project
7847	c.typeProvider = typeProvider
7848	c.type_ = type_
7849	return c
7850}
7851
7852// Fields allows partial responses to be retrieved. See
7853// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7854// for more information.
7855func (c *TypeProvidersGetTypeCall) Fields(s ...googleapi.Field) *TypeProvidersGetTypeCall {
7856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7857	return c
7858}
7859
7860// IfNoneMatch sets the optional parameter which makes the operation
7861// fail if the object's ETag matches the given value. This is useful for
7862// getting updates only after the object has changed since the last
7863// request. Use googleapi.IsNotModified to check whether the response
7864// error from Do is the result of In-None-Match.
7865func (c *TypeProvidersGetTypeCall) IfNoneMatch(entityTag string) *TypeProvidersGetTypeCall {
7866	c.ifNoneMatch_ = entityTag
7867	return c
7868}
7869
7870// Context sets the context to be used in this call's Do method. Any
7871// pending HTTP request will be aborted if the provided context is
7872// canceled.
7873func (c *TypeProvidersGetTypeCall) Context(ctx context.Context) *TypeProvidersGetTypeCall {
7874	c.ctx_ = ctx
7875	return c
7876}
7877
7878// Header returns an http.Header that can be modified by the caller to
7879// add HTTP headers to the request.
7880func (c *TypeProvidersGetTypeCall) Header() http.Header {
7881	if c.header_ == nil {
7882		c.header_ = make(http.Header)
7883	}
7884	return c.header_
7885}
7886
7887func (c *TypeProvidersGetTypeCall) doRequest(alt string) (*http.Response, error) {
7888	reqHeaders := make(http.Header)
7889	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
7890	for k, v := range c.header_ {
7891		reqHeaders[k] = v
7892	}
7893	reqHeaders.Set("User-Agent", c.s.userAgent())
7894	if c.ifNoneMatch_ != "" {
7895		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7896	}
7897	var body io.Reader = nil
7898	c.urlParams_.Set("alt", alt)
7899	c.urlParams_.Set("prettyPrint", "false")
7900	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}/types/{type}")
7901	urls += "?" + c.urlParams_.Encode()
7902	req, err := http.NewRequest("GET", urls, body)
7903	if err != nil {
7904		return nil, err
7905	}
7906	req.Header = reqHeaders
7907	googleapi.Expand(req.URL, map[string]string{
7908		"project":      c.project,
7909		"typeProvider": c.typeProvider,
7910		"type":         c.type_,
7911	})
7912	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7913}
7914
7915// Do executes the "deploymentmanager.typeProviders.getType" call.
7916// Exactly one of *TypeInfo or error will be non-nil. Any non-2xx status
7917// code is an error. Response headers are in either
7918// *TypeInfo.ServerResponse.Header or (if a response was returned at
7919// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
7920// to check whether the returned error was because
7921// http.StatusNotModified was returned.
7922func (c *TypeProvidersGetTypeCall) Do(opts ...googleapi.CallOption) (*TypeInfo, error) {
7923	gensupport.SetOptions(c.urlParams_, opts...)
7924	res, err := c.doRequest("json")
7925	if res != nil && res.StatusCode == http.StatusNotModified {
7926		if res.Body != nil {
7927			res.Body.Close()
7928		}
7929		return nil, &googleapi.Error{
7930			Code:   res.StatusCode,
7931			Header: res.Header,
7932		}
7933	}
7934	if err != nil {
7935		return nil, err
7936	}
7937	defer googleapi.CloseBody(res)
7938	if err := googleapi.CheckResponse(res); err != nil {
7939		return nil, err
7940	}
7941	ret := &TypeInfo{
7942		ServerResponse: googleapi.ServerResponse{
7943			Header:         res.Header,
7944			HTTPStatusCode: res.StatusCode,
7945		},
7946	}
7947	target := &ret
7948	if err := gensupport.DecodeResponse(target, res); err != nil {
7949		return nil, err
7950	}
7951	return ret, nil
7952	// {
7953	//   "description": "Gets a type info for a type provided by a TypeProvider.",
7954	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}/types/{type}",
7955	//   "httpMethod": "GET",
7956	//   "id": "deploymentmanager.typeProviders.getType",
7957	//   "parameterOrder": [
7958	//     "project",
7959	//     "typeProvider",
7960	//     "type"
7961	//   ],
7962	//   "parameters": {
7963	//     "project": {
7964	//       "description": "The project ID for this request.",
7965	//       "location": "path",
7966	//       "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])?))",
7967	//       "required": true,
7968	//       "type": "string"
7969	//     },
7970	//     "type": {
7971	//       "description": "The name of the type provider type for this request.",
7972	//       "location": "path",
7973	//       "required": true,
7974	//       "type": "string"
7975	//     },
7976	//     "typeProvider": {
7977	//       "description": "The name of the type provider for this request.",
7978	//       "location": "path",
7979	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
7980	//       "required": true,
7981	//       "type": "string"
7982	//     }
7983	//   },
7984	//   "path": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}/types/{type}",
7985	//   "response": {
7986	//     "$ref": "TypeInfo"
7987	//   },
7988	//   "scopes": [
7989	//     "https://www.googleapis.com/auth/cloud-platform",
7990	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
7991	//     "https://www.googleapis.com/auth/ndev.cloudman",
7992	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
7993	//   ]
7994	// }
7995
7996}
7997
7998// method id "deploymentmanager.typeProviders.insert":
7999
8000type TypeProvidersInsertCall struct {
8001	s            *Service
8002	project      string
8003	typeprovider *TypeProvider
8004	urlParams_   gensupport.URLParams
8005	ctx_         context.Context
8006	header_      http.Header
8007}
8008
8009// Insert: Creates a type provider.
8010//
8011// - project: The project ID for this request.
8012func (r *TypeProvidersService) Insert(project string, typeprovider *TypeProvider) *TypeProvidersInsertCall {
8013	c := &TypeProvidersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8014	c.project = project
8015	c.typeprovider = typeprovider
8016	return c
8017}
8018
8019// Fields allows partial responses to be retrieved. See
8020// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8021// for more information.
8022func (c *TypeProvidersInsertCall) Fields(s ...googleapi.Field) *TypeProvidersInsertCall {
8023	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8024	return c
8025}
8026
8027// Context sets the context to be used in this call's Do method. Any
8028// pending HTTP request will be aborted if the provided context is
8029// canceled.
8030func (c *TypeProvidersInsertCall) Context(ctx context.Context) *TypeProvidersInsertCall {
8031	c.ctx_ = ctx
8032	return c
8033}
8034
8035// Header returns an http.Header that can be modified by the caller to
8036// add HTTP headers to the request.
8037func (c *TypeProvidersInsertCall) Header() http.Header {
8038	if c.header_ == nil {
8039		c.header_ = make(http.Header)
8040	}
8041	return c.header_
8042}
8043
8044func (c *TypeProvidersInsertCall) doRequest(alt string) (*http.Response, error) {
8045	reqHeaders := make(http.Header)
8046	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
8047	for k, v := range c.header_ {
8048		reqHeaders[k] = v
8049	}
8050	reqHeaders.Set("User-Agent", c.s.userAgent())
8051	var body io.Reader = nil
8052	body, err := googleapi.WithoutDataWrapper.JSONReader(c.typeprovider)
8053	if err != nil {
8054		return nil, err
8055	}
8056	reqHeaders.Set("Content-Type", "application/json")
8057	c.urlParams_.Set("alt", alt)
8058	c.urlParams_.Set("prettyPrint", "false")
8059	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/typeProviders")
8060	urls += "?" + c.urlParams_.Encode()
8061	req, err := http.NewRequest("POST", urls, body)
8062	if err != nil {
8063		return nil, err
8064	}
8065	req.Header = reqHeaders
8066	googleapi.Expand(req.URL, map[string]string{
8067		"project": c.project,
8068	})
8069	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8070}
8071
8072// Do executes the "deploymentmanager.typeProviders.insert" call.
8073// Exactly one of *Operation or error will be non-nil. Any non-2xx
8074// status code is an error. Response headers are in either
8075// *Operation.ServerResponse.Header or (if a response was returned at
8076// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8077// to check whether the returned error was because
8078// http.StatusNotModified was returned.
8079func (c *TypeProvidersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
8080	gensupport.SetOptions(c.urlParams_, opts...)
8081	res, err := c.doRequest("json")
8082	if res != nil && res.StatusCode == http.StatusNotModified {
8083		if res.Body != nil {
8084			res.Body.Close()
8085		}
8086		return nil, &googleapi.Error{
8087			Code:   res.StatusCode,
8088			Header: res.Header,
8089		}
8090	}
8091	if err != nil {
8092		return nil, err
8093	}
8094	defer googleapi.CloseBody(res)
8095	if err := googleapi.CheckResponse(res); err != nil {
8096		return nil, err
8097	}
8098	ret := &Operation{
8099		ServerResponse: googleapi.ServerResponse{
8100			Header:         res.Header,
8101			HTTPStatusCode: res.StatusCode,
8102		},
8103	}
8104	target := &ret
8105	if err := gensupport.DecodeResponse(target, res); err != nil {
8106		return nil, err
8107	}
8108	return ret, nil
8109	// {
8110	//   "description": "Creates a type provider.",
8111	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/typeProviders",
8112	//   "httpMethod": "POST",
8113	//   "id": "deploymentmanager.typeProviders.insert",
8114	//   "parameterOrder": [
8115	//     "project"
8116	//   ],
8117	//   "parameters": {
8118	//     "project": {
8119	//       "description": "The project ID for this request.",
8120	//       "location": "path",
8121	//       "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])?))",
8122	//       "required": true,
8123	//       "type": "string"
8124	//     }
8125	//   },
8126	//   "path": "deploymentmanager/alpha/projects/{project}/global/typeProviders",
8127	//   "request": {
8128	//     "$ref": "TypeProvider"
8129	//   },
8130	//   "response": {
8131	//     "$ref": "Operation"
8132	//   },
8133	//   "scopes": [
8134	//     "https://www.googleapis.com/auth/cloud-platform",
8135	//     "https://www.googleapis.com/auth/ndev.cloudman"
8136	//   ]
8137	// }
8138
8139}
8140
8141// method id "deploymentmanager.typeProviders.list":
8142
8143type TypeProvidersListCall struct {
8144	s            *Service
8145	project      string
8146	urlParams_   gensupport.URLParams
8147	ifNoneMatch_ string
8148	ctx_         context.Context
8149	header_      http.Header
8150}
8151
8152// List: Lists all resource type providers for Deployment Manager.
8153//
8154// - project: The project ID for this request.
8155func (r *TypeProvidersService) List(project string) *TypeProvidersListCall {
8156	c := &TypeProvidersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8157	c.project = project
8158	return c
8159}
8160
8161// Filter sets the optional parameter "filter": A filter expression that
8162// filters resources listed in the response. The expression must specify
8163// the field name, a comparison operator, and the value that you want to
8164// use for filtering. The value must be a string, a number, or a
8165// boolean. The comparison operator must be either `=`, `!=`, `>`, or
8166// `<`. For example, if you are filtering Compute Engine instances, you
8167// can exclude instances named `example-instance` by specifying `name !=
8168// example-instance`. You can also filter nested fields. For example,
8169// you could specify `scheduling.automaticRestart = false` to include
8170// instances only if they are not scheduled for automatic restarts. You
8171// can use filtering on nested fields to filter based on resource
8172// labels. To filter on multiple expressions, provide each separate
8173// expression within parentheses. For example: ```
8174// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
8175// ``` By default, each expression is an `AND` expression. However, you
8176// can include `AND` and `OR` expressions explicitly. For example: ```
8177// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
8178// AND (scheduling.automaticRestart = true) ```
8179func (c *TypeProvidersListCall) Filter(filter string) *TypeProvidersListCall {
8180	c.urlParams_.Set("filter", filter)
8181	return c
8182}
8183
8184// MaxResults sets the optional parameter "maxResults": The maximum
8185// number of results per page that should be returned. If the number of
8186// available results is larger than `maxResults`, Compute Engine returns
8187// a `nextPageToken` that can be used to get the next page of results in
8188// subsequent list requests. Acceptable values are `0` to `500`,
8189// inclusive. (Default: `500`)
8190func (c *TypeProvidersListCall) MaxResults(maxResults int64) *TypeProvidersListCall {
8191	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
8192	return c
8193}
8194
8195// OrderBy sets the optional parameter "orderBy": Sorts list results by
8196// a certain order. By default, results are returned in alphanumerical
8197// order based on the resource name. You can also sort results in
8198// descending order based on the creation timestamp using
8199// `orderBy="creationTimestamp desc". This sorts results based on the
8200// `creationTimestamp` field in reverse chronological order (newest
8201// result first). Use this to sort resources like operations so that the
8202// newest operation is returned first. Currently, only sorting by `name`
8203// or `creationTimestamp desc` is supported.
8204func (c *TypeProvidersListCall) OrderBy(orderBy string) *TypeProvidersListCall {
8205	c.urlParams_.Set("orderBy", orderBy)
8206	return c
8207}
8208
8209// PageToken sets the optional parameter "pageToken": Specifies a page
8210// token to use. Set `pageToken` to the `nextPageToken` returned by a
8211// previous list request to get the next page of results.
8212func (c *TypeProvidersListCall) PageToken(pageToken string) *TypeProvidersListCall {
8213	c.urlParams_.Set("pageToken", pageToken)
8214	return c
8215}
8216
8217// Fields allows partial responses to be retrieved. See
8218// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8219// for more information.
8220func (c *TypeProvidersListCall) Fields(s ...googleapi.Field) *TypeProvidersListCall {
8221	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8222	return c
8223}
8224
8225// IfNoneMatch sets the optional parameter which makes the operation
8226// fail if the object's ETag matches the given value. This is useful for
8227// getting updates only after the object has changed since the last
8228// request. Use googleapi.IsNotModified to check whether the response
8229// error from Do is the result of In-None-Match.
8230func (c *TypeProvidersListCall) IfNoneMatch(entityTag string) *TypeProvidersListCall {
8231	c.ifNoneMatch_ = entityTag
8232	return c
8233}
8234
8235// Context sets the context to be used in this call's Do method. Any
8236// pending HTTP request will be aborted if the provided context is
8237// canceled.
8238func (c *TypeProvidersListCall) Context(ctx context.Context) *TypeProvidersListCall {
8239	c.ctx_ = ctx
8240	return c
8241}
8242
8243// Header returns an http.Header that can be modified by the caller to
8244// add HTTP headers to the request.
8245func (c *TypeProvidersListCall) Header() http.Header {
8246	if c.header_ == nil {
8247		c.header_ = make(http.Header)
8248	}
8249	return c.header_
8250}
8251
8252func (c *TypeProvidersListCall) doRequest(alt string) (*http.Response, error) {
8253	reqHeaders := make(http.Header)
8254	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
8255	for k, v := range c.header_ {
8256		reqHeaders[k] = v
8257	}
8258	reqHeaders.Set("User-Agent", c.s.userAgent())
8259	if c.ifNoneMatch_ != "" {
8260		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8261	}
8262	var body io.Reader = nil
8263	c.urlParams_.Set("alt", alt)
8264	c.urlParams_.Set("prettyPrint", "false")
8265	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/typeProviders")
8266	urls += "?" + c.urlParams_.Encode()
8267	req, err := http.NewRequest("GET", urls, body)
8268	if err != nil {
8269		return nil, err
8270	}
8271	req.Header = reqHeaders
8272	googleapi.Expand(req.URL, map[string]string{
8273		"project": c.project,
8274	})
8275	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8276}
8277
8278// Do executes the "deploymentmanager.typeProviders.list" call.
8279// Exactly one of *TypeProvidersListResponse or error will be non-nil.
8280// Any non-2xx status code is an error. Response headers are in either
8281// *TypeProvidersListResponse.ServerResponse.Header or (if a response
8282// was returned at all) in error.(*googleapi.Error).Header. Use
8283// googleapi.IsNotModified to check whether the returned error was
8284// because http.StatusNotModified was returned.
8285func (c *TypeProvidersListCall) Do(opts ...googleapi.CallOption) (*TypeProvidersListResponse, error) {
8286	gensupport.SetOptions(c.urlParams_, opts...)
8287	res, err := c.doRequest("json")
8288	if res != nil && res.StatusCode == http.StatusNotModified {
8289		if res.Body != nil {
8290			res.Body.Close()
8291		}
8292		return nil, &googleapi.Error{
8293			Code:   res.StatusCode,
8294			Header: res.Header,
8295		}
8296	}
8297	if err != nil {
8298		return nil, err
8299	}
8300	defer googleapi.CloseBody(res)
8301	if err := googleapi.CheckResponse(res); err != nil {
8302		return nil, err
8303	}
8304	ret := &TypeProvidersListResponse{
8305		ServerResponse: googleapi.ServerResponse{
8306			Header:         res.Header,
8307			HTTPStatusCode: res.StatusCode,
8308		},
8309	}
8310	target := &ret
8311	if err := gensupport.DecodeResponse(target, res); err != nil {
8312		return nil, err
8313	}
8314	return ret, nil
8315	// {
8316	//   "description": "Lists all resource type providers for Deployment Manager.",
8317	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/typeProviders",
8318	//   "httpMethod": "GET",
8319	//   "id": "deploymentmanager.typeProviders.list",
8320	//   "parameterOrder": [
8321	//     "project"
8322	//   ],
8323	//   "parameters": {
8324	//     "filter": {
8325	//       "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`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You 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. To 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) ```",
8326	//       "location": "query",
8327	//       "type": "string"
8328	//     },
8329	//     "maxResults": {
8330	//       "default": "500",
8331	//       "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`)",
8332	//       "format": "uint32",
8333	//       "location": "query",
8334	//       "minimum": "0",
8335	//       "type": "integer"
8336	//     },
8337	//     "orderBy": {
8338	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You 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. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
8339	//       "location": "query",
8340	//       "type": "string"
8341	//     },
8342	//     "pageToken": {
8343	//       "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.",
8344	//       "location": "query",
8345	//       "type": "string"
8346	//     },
8347	//     "project": {
8348	//       "description": "The project ID for this request.",
8349	//       "location": "path",
8350	//       "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])?))",
8351	//       "required": true,
8352	//       "type": "string"
8353	//     }
8354	//   },
8355	//   "path": "deploymentmanager/alpha/projects/{project}/global/typeProviders",
8356	//   "response": {
8357	//     "$ref": "TypeProvidersListResponse"
8358	//   },
8359	//   "scopes": [
8360	//     "https://www.googleapis.com/auth/cloud-platform",
8361	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
8362	//     "https://www.googleapis.com/auth/ndev.cloudman",
8363	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
8364	//   ]
8365	// }
8366
8367}
8368
8369// Pages invokes f for each page of results.
8370// A non-nil error returned from f will halt the iteration.
8371// The provided context supersedes any context provided to the Context method.
8372func (c *TypeProvidersListCall) Pages(ctx context.Context, f func(*TypeProvidersListResponse) error) error {
8373	c.ctx_ = ctx
8374	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
8375	for {
8376		x, err := c.Do()
8377		if err != nil {
8378			return err
8379		}
8380		if err := f(x); err != nil {
8381			return err
8382		}
8383		if x.NextPageToken == "" {
8384			return nil
8385		}
8386		c.PageToken(x.NextPageToken)
8387	}
8388}
8389
8390// method id "deploymentmanager.typeProviders.listTypes":
8391
8392type TypeProvidersListTypesCall struct {
8393	s            *Service
8394	project      string
8395	typeProvider string
8396	urlParams_   gensupport.URLParams
8397	ifNoneMatch_ string
8398	ctx_         context.Context
8399	header_      http.Header
8400}
8401
8402// ListTypes: Lists all the type info for a TypeProvider.
8403//
8404// - project: The project ID for this request.
8405// - typeProvider: The name of the type provider for this request.
8406func (r *TypeProvidersService) ListTypes(project string, typeProvider string) *TypeProvidersListTypesCall {
8407	c := &TypeProvidersListTypesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8408	c.project = project
8409	c.typeProvider = typeProvider
8410	return c
8411}
8412
8413// Filter sets the optional parameter "filter": A filter expression that
8414// filters resources listed in the response. The expression must specify
8415// the field name, a comparison operator, and the value that you want to
8416// use for filtering. The value must be a string, a number, or a
8417// boolean. The comparison operator must be either `=`, `!=`, `>`, or
8418// `<`. For example, if you are filtering Compute Engine instances, you
8419// can exclude instances named `example-instance` by specifying `name !=
8420// example-instance`. You can also filter nested fields. For example,
8421// you could specify `scheduling.automaticRestart = false` to include
8422// instances only if they are not scheduled for automatic restarts. You
8423// can use filtering on nested fields to filter based on resource
8424// labels. To filter on multiple expressions, provide each separate
8425// expression within parentheses. For example: ```
8426// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
8427// ``` By default, each expression is an `AND` expression. However, you
8428// can include `AND` and `OR` expressions explicitly. For example: ```
8429// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
8430// AND (scheduling.automaticRestart = true) ```
8431func (c *TypeProvidersListTypesCall) Filter(filter string) *TypeProvidersListTypesCall {
8432	c.urlParams_.Set("filter", filter)
8433	return c
8434}
8435
8436// MaxResults sets the optional parameter "maxResults": The maximum
8437// number of results per page that should be returned. If the number of
8438// available results is larger than `maxResults`, Compute Engine returns
8439// a `nextPageToken` that can be used to get the next page of results in
8440// subsequent list requests. Acceptable values are `0` to `500`,
8441// inclusive. (Default: `500`)
8442func (c *TypeProvidersListTypesCall) MaxResults(maxResults int64) *TypeProvidersListTypesCall {
8443	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
8444	return c
8445}
8446
8447// OrderBy sets the optional parameter "orderBy": Sorts list results by
8448// a certain order. By default, results are returned in alphanumerical
8449// order based on the resource name. You can also sort results in
8450// descending order based on the creation timestamp using
8451// `orderBy="creationTimestamp desc". This sorts results based on the
8452// `creationTimestamp` field in reverse chronological order (newest
8453// result first). Use this to sort resources like operations so that the
8454// newest operation is returned first. Currently, only sorting by `name`
8455// or `creationTimestamp desc` is supported.
8456func (c *TypeProvidersListTypesCall) OrderBy(orderBy string) *TypeProvidersListTypesCall {
8457	c.urlParams_.Set("orderBy", orderBy)
8458	return c
8459}
8460
8461// PageToken sets the optional parameter "pageToken": Specifies a page
8462// token to use. Set `pageToken` to the `nextPageToken` returned by a
8463// previous list request to get the next page of results.
8464func (c *TypeProvidersListTypesCall) PageToken(pageToken string) *TypeProvidersListTypesCall {
8465	c.urlParams_.Set("pageToken", pageToken)
8466	return c
8467}
8468
8469// Fields allows partial responses to be retrieved. See
8470// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8471// for more information.
8472func (c *TypeProvidersListTypesCall) Fields(s ...googleapi.Field) *TypeProvidersListTypesCall {
8473	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8474	return c
8475}
8476
8477// IfNoneMatch sets the optional parameter which makes the operation
8478// fail if the object's ETag matches the given value. This is useful for
8479// getting updates only after the object has changed since the last
8480// request. Use googleapi.IsNotModified to check whether the response
8481// error from Do is the result of In-None-Match.
8482func (c *TypeProvidersListTypesCall) IfNoneMatch(entityTag string) *TypeProvidersListTypesCall {
8483	c.ifNoneMatch_ = entityTag
8484	return c
8485}
8486
8487// Context sets the context to be used in this call's Do method. Any
8488// pending HTTP request will be aborted if the provided context is
8489// canceled.
8490func (c *TypeProvidersListTypesCall) Context(ctx context.Context) *TypeProvidersListTypesCall {
8491	c.ctx_ = ctx
8492	return c
8493}
8494
8495// Header returns an http.Header that can be modified by the caller to
8496// add HTTP headers to the request.
8497func (c *TypeProvidersListTypesCall) Header() http.Header {
8498	if c.header_ == nil {
8499		c.header_ = make(http.Header)
8500	}
8501	return c.header_
8502}
8503
8504func (c *TypeProvidersListTypesCall) doRequest(alt string) (*http.Response, error) {
8505	reqHeaders := make(http.Header)
8506	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
8507	for k, v := range c.header_ {
8508		reqHeaders[k] = v
8509	}
8510	reqHeaders.Set("User-Agent", c.s.userAgent())
8511	if c.ifNoneMatch_ != "" {
8512		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8513	}
8514	var body io.Reader = nil
8515	c.urlParams_.Set("alt", alt)
8516	c.urlParams_.Set("prettyPrint", "false")
8517	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}/types")
8518	urls += "?" + c.urlParams_.Encode()
8519	req, err := http.NewRequest("GET", urls, body)
8520	if err != nil {
8521		return nil, err
8522	}
8523	req.Header = reqHeaders
8524	googleapi.Expand(req.URL, map[string]string{
8525		"project":      c.project,
8526		"typeProvider": c.typeProvider,
8527	})
8528	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8529}
8530
8531// Do executes the "deploymentmanager.typeProviders.listTypes" call.
8532// Exactly one of *TypeProvidersListTypesResponse or error will be
8533// non-nil. Any non-2xx status code is an error. Response headers are in
8534// either *TypeProvidersListTypesResponse.ServerResponse.Header or (if a
8535// response was returned at all) in error.(*googleapi.Error).Header. Use
8536// googleapi.IsNotModified to check whether the returned error was
8537// because http.StatusNotModified was returned.
8538func (c *TypeProvidersListTypesCall) Do(opts ...googleapi.CallOption) (*TypeProvidersListTypesResponse, error) {
8539	gensupport.SetOptions(c.urlParams_, opts...)
8540	res, err := c.doRequest("json")
8541	if res != nil && res.StatusCode == http.StatusNotModified {
8542		if res.Body != nil {
8543			res.Body.Close()
8544		}
8545		return nil, &googleapi.Error{
8546			Code:   res.StatusCode,
8547			Header: res.Header,
8548		}
8549	}
8550	if err != nil {
8551		return nil, err
8552	}
8553	defer googleapi.CloseBody(res)
8554	if err := googleapi.CheckResponse(res); err != nil {
8555		return nil, err
8556	}
8557	ret := &TypeProvidersListTypesResponse{
8558		ServerResponse: googleapi.ServerResponse{
8559			Header:         res.Header,
8560			HTTPStatusCode: res.StatusCode,
8561		},
8562	}
8563	target := &ret
8564	if err := gensupport.DecodeResponse(target, res); err != nil {
8565		return nil, err
8566	}
8567	return ret, nil
8568	// {
8569	//   "description": "Lists all the type info for a TypeProvider.",
8570	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}/types",
8571	//   "httpMethod": "GET",
8572	//   "id": "deploymentmanager.typeProviders.listTypes",
8573	//   "parameterOrder": [
8574	//     "project",
8575	//     "typeProvider"
8576	//   ],
8577	//   "parameters": {
8578	//     "filter": {
8579	//       "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`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You 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. To 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) ```",
8580	//       "location": "query",
8581	//       "type": "string"
8582	//     },
8583	//     "maxResults": {
8584	//       "default": "500",
8585	//       "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`)",
8586	//       "format": "uint32",
8587	//       "location": "query",
8588	//       "minimum": "0",
8589	//       "type": "integer"
8590	//     },
8591	//     "orderBy": {
8592	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You 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. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
8593	//       "location": "query",
8594	//       "type": "string"
8595	//     },
8596	//     "pageToken": {
8597	//       "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.",
8598	//       "location": "query",
8599	//       "type": "string"
8600	//     },
8601	//     "project": {
8602	//       "description": "The project ID for this request.",
8603	//       "location": "path",
8604	//       "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])?))",
8605	//       "required": true,
8606	//       "type": "string"
8607	//     },
8608	//     "typeProvider": {
8609	//       "description": "The name of the type provider for this request.",
8610	//       "location": "path",
8611	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
8612	//       "required": true,
8613	//       "type": "string"
8614	//     }
8615	//   },
8616	//   "path": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}/types",
8617	//   "response": {
8618	//     "$ref": "TypeProvidersListTypesResponse"
8619	//   },
8620	//   "scopes": [
8621	//     "https://www.googleapis.com/auth/cloud-platform",
8622	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
8623	//     "https://www.googleapis.com/auth/ndev.cloudman",
8624	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
8625	//   ]
8626	// }
8627
8628}
8629
8630// Pages invokes f for each page of results.
8631// A non-nil error returned from f will halt the iteration.
8632// The provided context supersedes any context provided to the Context method.
8633func (c *TypeProvidersListTypesCall) Pages(ctx context.Context, f func(*TypeProvidersListTypesResponse) error) error {
8634	c.ctx_ = ctx
8635	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
8636	for {
8637		x, err := c.Do()
8638		if err != nil {
8639			return err
8640		}
8641		if err := f(x); err != nil {
8642			return err
8643		}
8644		if x.NextPageToken == "" {
8645			return nil
8646		}
8647		c.PageToken(x.NextPageToken)
8648	}
8649}
8650
8651// method id "deploymentmanager.typeProviders.patch":
8652
8653type TypeProvidersPatchCall struct {
8654	s            *Service
8655	project      string
8656	typeProvider string
8657	typeprovider *TypeProvider
8658	urlParams_   gensupport.URLParams
8659	ctx_         context.Context
8660	header_      http.Header
8661}
8662
8663// Patch: Patches a type provider.
8664//
8665// - project: The project ID for this request.
8666// - typeProvider: The name of the type provider for this request.
8667func (r *TypeProvidersService) Patch(project string, typeProvider string, typeprovider *TypeProvider) *TypeProvidersPatchCall {
8668	c := &TypeProvidersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8669	c.project = project
8670	c.typeProvider = typeProvider
8671	c.typeprovider = typeprovider
8672	return c
8673}
8674
8675// Fields allows partial responses to be retrieved. See
8676// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8677// for more information.
8678func (c *TypeProvidersPatchCall) Fields(s ...googleapi.Field) *TypeProvidersPatchCall {
8679	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8680	return c
8681}
8682
8683// Context sets the context to be used in this call's Do method. Any
8684// pending HTTP request will be aborted if the provided context is
8685// canceled.
8686func (c *TypeProvidersPatchCall) Context(ctx context.Context) *TypeProvidersPatchCall {
8687	c.ctx_ = ctx
8688	return c
8689}
8690
8691// Header returns an http.Header that can be modified by the caller to
8692// add HTTP headers to the request.
8693func (c *TypeProvidersPatchCall) Header() http.Header {
8694	if c.header_ == nil {
8695		c.header_ = make(http.Header)
8696	}
8697	return c.header_
8698}
8699
8700func (c *TypeProvidersPatchCall) doRequest(alt string) (*http.Response, error) {
8701	reqHeaders := make(http.Header)
8702	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
8703	for k, v := range c.header_ {
8704		reqHeaders[k] = v
8705	}
8706	reqHeaders.Set("User-Agent", c.s.userAgent())
8707	var body io.Reader = nil
8708	body, err := googleapi.WithoutDataWrapper.JSONReader(c.typeprovider)
8709	if err != nil {
8710		return nil, err
8711	}
8712	reqHeaders.Set("Content-Type", "application/json")
8713	c.urlParams_.Set("alt", alt)
8714	c.urlParams_.Set("prettyPrint", "false")
8715	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}")
8716	urls += "?" + c.urlParams_.Encode()
8717	req, err := http.NewRequest("PATCH", urls, body)
8718	if err != nil {
8719		return nil, err
8720	}
8721	req.Header = reqHeaders
8722	googleapi.Expand(req.URL, map[string]string{
8723		"project":      c.project,
8724		"typeProvider": c.typeProvider,
8725	})
8726	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8727}
8728
8729// Do executes the "deploymentmanager.typeProviders.patch" call.
8730// Exactly one of *Operation or error will be non-nil. Any non-2xx
8731// status code is an error. Response headers are in either
8732// *Operation.ServerResponse.Header or (if a response was returned at
8733// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8734// to check whether the returned error was because
8735// http.StatusNotModified was returned.
8736func (c *TypeProvidersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
8737	gensupport.SetOptions(c.urlParams_, opts...)
8738	res, err := c.doRequest("json")
8739	if res != nil && res.StatusCode == http.StatusNotModified {
8740		if res.Body != nil {
8741			res.Body.Close()
8742		}
8743		return nil, &googleapi.Error{
8744			Code:   res.StatusCode,
8745			Header: res.Header,
8746		}
8747	}
8748	if err != nil {
8749		return nil, err
8750	}
8751	defer googleapi.CloseBody(res)
8752	if err := googleapi.CheckResponse(res); err != nil {
8753		return nil, err
8754	}
8755	ret := &Operation{
8756		ServerResponse: googleapi.ServerResponse{
8757			Header:         res.Header,
8758			HTTPStatusCode: res.StatusCode,
8759		},
8760	}
8761	target := &ret
8762	if err := gensupport.DecodeResponse(target, res); err != nil {
8763		return nil, err
8764	}
8765	return ret, nil
8766	// {
8767	//   "description": "Patches a type provider.",
8768	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}",
8769	//   "httpMethod": "PATCH",
8770	//   "id": "deploymentmanager.typeProviders.patch",
8771	//   "parameterOrder": [
8772	//     "project",
8773	//     "typeProvider"
8774	//   ],
8775	//   "parameters": {
8776	//     "project": {
8777	//       "description": "The project ID for this request.",
8778	//       "location": "path",
8779	//       "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])?))",
8780	//       "required": true,
8781	//       "type": "string"
8782	//     },
8783	//     "typeProvider": {
8784	//       "description": "The name of the type provider for this request.",
8785	//       "location": "path",
8786	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
8787	//       "required": true,
8788	//       "type": "string"
8789	//     }
8790	//   },
8791	//   "path": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}",
8792	//   "request": {
8793	//     "$ref": "TypeProvider"
8794	//   },
8795	//   "response": {
8796	//     "$ref": "Operation"
8797	//   },
8798	//   "scopes": [
8799	//     "https://www.googleapis.com/auth/cloud-platform",
8800	//     "https://www.googleapis.com/auth/ndev.cloudman"
8801	//   ]
8802	// }
8803
8804}
8805
8806// method id "deploymentmanager.typeProviders.update":
8807
8808type TypeProvidersUpdateCall struct {
8809	s            *Service
8810	project      string
8811	typeProvider string
8812	typeprovider *TypeProvider
8813	urlParams_   gensupport.URLParams
8814	ctx_         context.Context
8815	header_      http.Header
8816}
8817
8818// Update: Updates a type provider.
8819//
8820// - project: The project ID for this request.
8821// - typeProvider: The name of the type provider for this request.
8822func (r *TypeProvidersService) Update(project string, typeProvider string, typeprovider *TypeProvider) *TypeProvidersUpdateCall {
8823	c := &TypeProvidersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8824	c.project = project
8825	c.typeProvider = typeProvider
8826	c.typeprovider = typeprovider
8827	return c
8828}
8829
8830// Fields allows partial responses to be retrieved. See
8831// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8832// for more information.
8833func (c *TypeProvidersUpdateCall) Fields(s ...googleapi.Field) *TypeProvidersUpdateCall {
8834	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8835	return c
8836}
8837
8838// Context sets the context to be used in this call's Do method. Any
8839// pending HTTP request will be aborted if the provided context is
8840// canceled.
8841func (c *TypeProvidersUpdateCall) Context(ctx context.Context) *TypeProvidersUpdateCall {
8842	c.ctx_ = ctx
8843	return c
8844}
8845
8846// Header returns an http.Header that can be modified by the caller to
8847// add HTTP headers to the request.
8848func (c *TypeProvidersUpdateCall) Header() http.Header {
8849	if c.header_ == nil {
8850		c.header_ = make(http.Header)
8851	}
8852	return c.header_
8853}
8854
8855func (c *TypeProvidersUpdateCall) doRequest(alt string) (*http.Response, error) {
8856	reqHeaders := make(http.Header)
8857	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
8858	for k, v := range c.header_ {
8859		reqHeaders[k] = v
8860	}
8861	reqHeaders.Set("User-Agent", c.s.userAgent())
8862	var body io.Reader = nil
8863	body, err := googleapi.WithoutDataWrapper.JSONReader(c.typeprovider)
8864	if err != nil {
8865		return nil, err
8866	}
8867	reqHeaders.Set("Content-Type", "application/json")
8868	c.urlParams_.Set("alt", alt)
8869	c.urlParams_.Set("prettyPrint", "false")
8870	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}")
8871	urls += "?" + c.urlParams_.Encode()
8872	req, err := http.NewRequest("PUT", urls, body)
8873	if err != nil {
8874		return nil, err
8875	}
8876	req.Header = reqHeaders
8877	googleapi.Expand(req.URL, map[string]string{
8878		"project":      c.project,
8879		"typeProvider": c.typeProvider,
8880	})
8881	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8882}
8883
8884// Do executes the "deploymentmanager.typeProviders.update" call.
8885// Exactly one of *Operation or error will be non-nil. Any non-2xx
8886// status code is an error. Response headers are in either
8887// *Operation.ServerResponse.Header or (if a response was returned at
8888// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8889// to check whether the returned error was because
8890// http.StatusNotModified was returned.
8891func (c *TypeProvidersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
8892	gensupport.SetOptions(c.urlParams_, opts...)
8893	res, err := c.doRequest("json")
8894	if res != nil && res.StatusCode == http.StatusNotModified {
8895		if res.Body != nil {
8896			res.Body.Close()
8897		}
8898		return nil, &googleapi.Error{
8899			Code:   res.StatusCode,
8900			Header: res.Header,
8901		}
8902	}
8903	if err != nil {
8904		return nil, err
8905	}
8906	defer googleapi.CloseBody(res)
8907	if err := googleapi.CheckResponse(res); err != nil {
8908		return nil, err
8909	}
8910	ret := &Operation{
8911		ServerResponse: googleapi.ServerResponse{
8912			Header:         res.Header,
8913			HTTPStatusCode: res.StatusCode,
8914		},
8915	}
8916	target := &ret
8917	if err := gensupport.DecodeResponse(target, res); err != nil {
8918		return nil, err
8919	}
8920	return ret, nil
8921	// {
8922	//   "description": "Updates a type provider.",
8923	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}",
8924	//   "httpMethod": "PUT",
8925	//   "id": "deploymentmanager.typeProviders.update",
8926	//   "parameterOrder": [
8927	//     "project",
8928	//     "typeProvider"
8929	//   ],
8930	//   "parameters": {
8931	//     "project": {
8932	//       "description": "The project ID for this request.",
8933	//       "location": "path",
8934	//       "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])?))",
8935	//       "required": true,
8936	//       "type": "string"
8937	//     },
8938	//     "typeProvider": {
8939	//       "description": "The name of the type provider for this request.",
8940	//       "location": "path",
8941	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
8942	//       "required": true,
8943	//       "type": "string"
8944	//     }
8945	//   },
8946	//   "path": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}",
8947	//   "request": {
8948	//     "$ref": "TypeProvider"
8949	//   },
8950	//   "response": {
8951	//     "$ref": "Operation"
8952	//   },
8953	//   "scopes": [
8954	//     "https://www.googleapis.com/auth/cloud-platform",
8955	//     "https://www.googleapis.com/auth/ndev.cloudman"
8956	//   ]
8957	// }
8958
8959}
8960
8961// method id "deploymentmanager.types.get":
8962
8963type TypesGetCall struct {
8964	s            *Service
8965	project      string
8966	type_        string
8967	urlParams_   gensupport.URLParams
8968	ifNoneMatch_ string
8969	ctx_         context.Context
8970	header_      http.Header
8971}
8972
8973// Get: Gets information about a specific type.
8974//
8975// - project: The project ID for this request.
8976// - type: The name of the type for this request.
8977func (r *TypesService) Get(project string, type_ string) *TypesGetCall {
8978	c := &TypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8979	c.project = project
8980	c.type_ = type_
8981	return c
8982}
8983
8984// Fields allows partial responses to be retrieved. See
8985// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8986// for more information.
8987func (c *TypesGetCall) Fields(s ...googleapi.Field) *TypesGetCall {
8988	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8989	return c
8990}
8991
8992// IfNoneMatch sets the optional parameter which makes the operation
8993// fail if the object's ETag matches the given value. This is useful for
8994// getting updates only after the object has changed since the last
8995// request. Use googleapi.IsNotModified to check whether the response
8996// error from Do is the result of In-None-Match.
8997func (c *TypesGetCall) IfNoneMatch(entityTag string) *TypesGetCall {
8998	c.ifNoneMatch_ = entityTag
8999	return c
9000}
9001
9002// Context sets the context to be used in this call's Do method. Any
9003// pending HTTP request will be aborted if the provided context is
9004// canceled.
9005func (c *TypesGetCall) Context(ctx context.Context) *TypesGetCall {
9006	c.ctx_ = ctx
9007	return c
9008}
9009
9010// Header returns an http.Header that can be modified by the caller to
9011// add HTTP headers to the request.
9012func (c *TypesGetCall) Header() http.Header {
9013	if c.header_ == nil {
9014		c.header_ = make(http.Header)
9015	}
9016	return c.header_
9017}
9018
9019func (c *TypesGetCall) doRequest(alt string) (*http.Response, error) {
9020	reqHeaders := make(http.Header)
9021	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
9022	for k, v := range c.header_ {
9023		reqHeaders[k] = v
9024	}
9025	reqHeaders.Set("User-Agent", c.s.userAgent())
9026	if c.ifNoneMatch_ != "" {
9027		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9028	}
9029	var body io.Reader = nil
9030	c.urlParams_.Set("alt", alt)
9031	c.urlParams_.Set("prettyPrint", "false")
9032	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/types/{type}")
9033	urls += "?" + c.urlParams_.Encode()
9034	req, err := http.NewRequest("GET", urls, body)
9035	if err != nil {
9036		return nil, err
9037	}
9038	req.Header = reqHeaders
9039	googleapi.Expand(req.URL, map[string]string{
9040		"project": c.project,
9041		"type":    c.type_,
9042	})
9043	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9044}
9045
9046// Do executes the "deploymentmanager.types.get" call.
9047// Exactly one of *Type or error will be non-nil. Any non-2xx status
9048// code is an error. Response headers are in either
9049// *Type.ServerResponse.Header or (if a response was returned at all) in
9050// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
9051// whether the returned error was because http.StatusNotModified was
9052// returned.
9053func (c *TypesGetCall) Do(opts ...googleapi.CallOption) (*Type, error) {
9054	gensupport.SetOptions(c.urlParams_, opts...)
9055	res, err := c.doRequest("json")
9056	if res != nil && res.StatusCode == http.StatusNotModified {
9057		if res.Body != nil {
9058			res.Body.Close()
9059		}
9060		return nil, &googleapi.Error{
9061			Code:   res.StatusCode,
9062			Header: res.Header,
9063		}
9064	}
9065	if err != nil {
9066		return nil, err
9067	}
9068	defer googleapi.CloseBody(res)
9069	if err := googleapi.CheckResponse(res); err != nil {
9070		return nil, err
9071	}
9072	ret := &Type{
9073		ServerResponse: googleapi.ServerResponse{
9074			Header:         res.Header,
9075			HTTPStatusCode: res.StatusCode,
9076		},
9077	}
9078	target := &ret
9079	if err := gensupport.DecodeResponse(target, res); err != nil {
9080		return nil, err
9081	}
9082	return ret, nil
9083	// {
9084	//   "description": "Gets information about a specific type.",
9085	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/types/{type}",
9086	//   "httpMethod": "GET",
9087	//   "id": "deploymentmanager.types.get",
9088	//   "parameterOrder": [
9089	//     "project",
9090	//     "type"
9091	//   ],
9092	//   "parameters": {
9093	//     "project": {
9094	//       "description": "The project ID for this request.",
9095	//       "location": "path",
9096	//       "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])?))",
9097	//       "required": true,
9098	//       "type": "string"
9099	//     },
9100	//     "type": {
9101	//       "description": "The name of the type for this request.",
9102	//       "location": "path",
9103	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
9104	//       "required": true,
9105	//       "type": "string"
9106	//     }
9107	//   },
9108	//   "path": "deploymentmanager/alpha/projects/{project}/global/types/{type}",
9109	//   "response": {
9110	//     "$ref": "Type"
9111	//   },
9112	//   "scopes": [
9113	//     "https://www.googleapis.com/auth/cloud-platform",
9114	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
9115	//     "https://www.googleapis.com/auth/ndev.cloudman",
9116	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
9117	//   ]
9118	// }
9119
9120}
9121
9122// method id "deploymentmanager.types.list":
9123
9124type TypesListCall struct {
9125	s            *Service
9126	project      string
9127	urlParams_   gensupport.URLParams
9128	ifNoneMatch_ string
9129	ctx_         context.Context
9130	header_      http.Header
9131}
9132
9133// List: Lists all resource types for Deployment Manager.
9134//
9135// - project: The project ID for this request.
9136func (r *TypesService) List(project string) *TypesListCall {
9137	c := &TypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9138	c.project = project
9139	return c
9140}
9141
9142// Filter sets the optional parameter "filter": A filter expression that
9143// filters resources listed in the response. The expression must specify
9144// the field name, a comparison operator, and the value that you want to
9145// use for filtering. The value must be a string, a number, or a
9146// boolean. The comparison operator must be either `=`, `!=`, `>`, or
9147// `<`. For example, if you are filtering Compute Engine instances, you
9148// can exclude instances named `example-instance` by specifying `name !=
9149// example-instance`. You can also filter nested fields. For example,
9150// you could specify `scheduling.automaticRestart = false` to include
9151// instances only if they are not scheduled for automatic restarts. You
9152// can use filtering on nested fields to filter based on resource
9153// labels. To filter on multiple expressions, provide each separate
9154// expression within parentheses. For example: ```
9155// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
9156// ``` By default, each expression is an `AND` expression. However, you
9157// can include `AND` and `OR` expressions explicitly. For example: ```
9158// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
9159// AND (scheduling.automaticRestart = true) ```
9160func (c *TypesListCall) Filter(filter string) *TypesListCall {
9161	c.urlParams_.Set("filter", filter)
9162	return c
9163}
9164
9165// MaxResults sets the optional parameter "maxResults": The maximum
9166// number of results per page that should be returned. If the number of
9167// available results is larger than `maxResults`, Compute Engine returns
9168// a `nextPageToken` that can be used to get the next page of results in
9169// subsequent list requests. Acceptable values are `0` to `500`,
9170// inclusive. (Default: `500`)
9171func (c *TypesListCall) MaxResults(maxResults int64) *TypesListCall {
9172	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
9173	return c
9174}
9175
9176// OrderBy sets the optional parameter "orderBy": Sorts list results by
9177// a certain order. By default, results are returned in alphanumerical
9178// order based on the resource name. You can also sort results in
9179// descending order based on the creation timestamp using
9180// `orderBy="creationTimestamp desc". This sorts results based on the
9181// `creationTimestamp` field in reverse chronological order (newest
9182// result first). Use this to sort resources like operations so that the
9183// newest operation is returned first. Currently, only sorting by `name`
9184// or `creationTimestamp desc` is supported.
9185func (c *TypesListCall) OrderBy(orderBy string) *TypesListCall {
9186	c.urlParams_.Set("orderBy", orderBy)
9187	return c
9188}
9189
9190// PageToken sets the optional parameter "pageToken": Specifies a page
9191// token to use. Set `pageToken` to the `nextPageToken` returned by a
9192// previous list request to get the next page of results.
9193func (c *TypesListCall) PageToken(pageToken string) *TypesListCall {
9194	c.urlParams_.Set("pageToken", pageToken)
9195	return c
9196}
9197
9198// Fields allows partial responses to be retrieved. See
9199// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9200// for more information.
9201func (c *TypesListCall) Fields(s ...googleapi.Field) *TypesListCall {
9202	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9203	return c
9204}
9205
9206// IfNoneMatch sets the optional parameter which makes the operation
9207// fail if the object's ETag matches the given value. This is useful for
9208// getting updates only after the object has changed since the last
9209// request. Use googleapi.IsNotModified to check whether the response
9210// error from Do is the result of In-None-Match.
9211func (c *TypesListCall) IfNoneMatch(entityTag string) *TypesListCall {
9212	c.ifNoneMatch_ = entityTag
9213	return c
9214}
9215
9216// Context sets the context to be used in this call's Do method. Any
9217// pending HTTP request will be aborted if the provided context is
9218// canceled.
9219func (c *TypesListCall) Context(ctx context.Context) *TypesListCall {
9220	c.ctx_ = ctx
9221	return c
9222}
9223
9224// Header returns an http.Header that can be modified by the caller to
9225// add HTTP headers to the request.
9226func (c *TypesListCall) Header() http.Header {
9227	if c.header_ == nil {
9228		c.header_ = make(http.Header)
9229	}
9230	return c.header_
9231}
9232
9233func (c *TypesListCall) doRequest(alt string) (*http.Response, error) {
9234	reqHeaders := make(http.Header)
9235	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210830")
9236	for k, v := range c.header_ {
9237		reqHeaders[k] = v
9238	}
9239	reqHeaders.Set("User-Agent", c.s.userAgent())
9240	if c.ifNoneMatch_ != "" {
9241		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9242	}
9243	var body io.Reader = nil
9244	c.urlParams_.Set("alt", alt)
9245	c.urlParams_.Set("prettyPrint", "false")
9246	urls := googleapi.ResolveRelative(c.s.BasePath, "deploymentmanager/alpha/projects/{project}/global/types")
9247	urls += "?" + c.urlParams_.Encode()
9248	req, err := http.NewRequest("GET", urls, body)
9249	if err != nil {
9250		return nil, err
9251	}
9252	req.Header = reqHeaders
9253	googleapi.Expand(req.URL, map[string]string{
9254		"project": c.project,
9255	})
9256	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9257}
9258
9259// Do executes the "deploymentmanager.types.list" call.
9260// Exactly one of *TypesListResponse or error will be non-nil. Any
9261// non-2xx status code is an error. Response headers are in either
9262// *TypesListResponse.ServerResponse.Header or (if a response was
9263// returned at all) in error.(*googleapi.Error).Header. Use
9264// googleapi.IsNotModified to check whether the returned error was
9265// because http.StatusNotModified was returned.
9266func (c *TypesListCall) Do(opts ...googleapi.CallOption) (*TypesListResponse, error) {
9267	gensupport.SetOptions(c.urlParams_, opts...)
9268	res, err := c.doRequest("json")
9269	if res != nil && res.StatusCode == http.StatusNotModified {
9270		if res.Body != nil {
9271			res.Body.Close()
9272		}
9273		return nil, &googleapi.Error{
9274			Code:   res.StatusCode,
9275			Header: res.Header,
9276		}
9277	}
9278	if err != nil {
9279		return nil, err
9280	}
9281	defer googleapi.CloseBody(res)
9282	if err := googleapi.CheckResponse(res); err != nil {
9283		return nil, err
9284	}
9285	ret := &TypesListResponse{
9286		ServerResponse: googleapi.ServerResponse{
9287			Header:         res.Header,
9288			HTTPStatusCode: res.StatusCode,
9289		},
9290	}
9291	target := &ret
9292	if err := gensupport.DecodeResponse(target, res); err != nil {
9293		return nil, err
9294	}
9295	return ret, nil
9296	// {
9297	//   "description": "Lists all resource types for Deployment Manager.",
9298	//   "flatPath": "deploymentmanager/alpha/projects/{project}/global/types",
9299	//   "httpMethod": "GET",
9300	//   "id": "deploymentmanager.types.list",
9301	//   "parameterOrder": [
9302	//     "project"
9303	//   ],
9304	//   "parameters": {
9305	//     "filter": {
9306	//       "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`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. You 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. To 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) ```",
9307	//       "location": "query",
9308	//       "type": "string"
9309	//     },
9310	//     "maxResults": {
9311	//       "default": "500",
9312	//       "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`)",
9313	//       "format": "uint32",
9314	//       "location": "query",
9315	//       "minimum": "0",
9316	//       "type": "integer"
9317	//     },
9318	//     "orderBy": {
9319	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You 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. Currently, only sorting by `name` or `creationTimestamp desc` is supported.",
9320	//       "location": "query",
9321	//       "type": "string"
9322	//     },
9323	//     "pageToken": {
9324	//       "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.",
9325	//       "location": "query",
9326	//       "type": "string"
9327	//     },
9328	//     "project": {
9329	//       "description": "The project ID for this request.",
9330	//       "location": "path",
9331	//       "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])?))",
9332	//       "required": true,
9333	//       "type": "string"
9334	//     }
9335	//   },
9336	//   "path": "deploymentmanager/alpha/projects/{project}/global/types",
9337	//   "response": {
9338	//     "$ref": "TypesListResponse"
9339	//   },
9340	//   "scopes": [
9341	//     "https://www.googleapis.com/auth/cloud-platform",
9342	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
9343	//     "https://www.googleapis.com/auth/ndev.cloudman",
9344	//     "https://www.googleapis.com/auth/ndev.cloudman.readonly"
9345	//   ]
9346	// }
9347
9348}
9349
9350// Pages invokes f for each page of results.
9351// A non-nil error returned from f will halt the iteration.
9352// The provided context supersedes any context provided to the Context method.
9353func (c *TypesListCall) Pages(ctx context.Context, f func(*TypesListResponse) error) error {
9354	c.ctx_ = ctx
9355	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
9356	for {
9357		x, err := c.Do()
9358		if err != nil {
9359			return err
9360		}
9361		if err := f(x); err != nil {
9362			return err
9363		}
9364		if x.NextPageToken == "" {
9365			return nil
9366		}
9367		c.PageToken(x.NextPageToken)
9368	}
9369}
9370