1// Copyright 2020 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package cloudasset provides access to the Cloud Asset API.
8//
9// For product documentation, see: https://cloud.google.com/asset-inventory/docs/quickstart
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/cloudasset/v1"
16//   ...
17//   ctx := context.Background()
18//   cloudassetService, err := cloudasset.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// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
27//
28//   cloudassetService, err := cloudasset.NewService(ctx, option.WithAPIKey("AIza..."))
29//
30// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
31//
32//   config := &oauth2.Config{...}
33//   // ...
34//   token, err := config.Exchange(ctx, ...)
35//   cloudassetService, err := cloudasset.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
36//
37// See https://godoc.org/google.golang.org/api/option/ for details on options.
38package cloudasset // import "google.golang.org/api/cloudasset/v1"
39
40import (
41	"bytes"
42	"context"
43	"encoding/json"
44	"errors"
45	"fmt"
46	"io"
47	"net/http"
48	"net/url"
49	"strconv"
50	"strings"
51
52	googleapi "google.golang.org/api/googleapi"
53	gensupport "google.golang.org/api/internal/gensupport"
54	option "google.golang.org/api/option"
55	internaloption "google.golang.org/api/option/internaloption"
56	htransport "google.golang.org/api/transport/http"
57)
58
59// Always reference these packages, just in case the auto-generated code
60// below doesn't.
61var _ = bytes.NewBuffer
62var _ = strconv.Itoa
63var _ = fmt.Sprintf
64var _ = json.NewDecoder
65var _ = io.Copy
66var _ = url.Parse
67var _ = gensupport.MarshalJSON
68var _ = googleapi.Version
69var _ = errors.New
70var _ = strings.Replace
71var _ = context.Canceled
72var _ = internaloption.WithDefaultEndpoint
73
74const apiId = "cloudasset:v1"
75const apiName = "cloudasset"
76const apiVersion = "v1"
77const basePath = "https://cloudasset.googleapis.com/"
78
79// OAuth2 scopes used by this API.
80const (
81	// View and manage your data across Google Cloud Platform services
82	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
83)
84
85// NewService creates a new Service.
86func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
87	scopesOption := option.WithScopes(
88		"https://www.googleapis.com/auth/cloud-platform",
89	)
90	// NOTE: prepend, so we don't override user-specified scopes.
91	opts = append([]option.ClientOption{scopesOption}, opts...)
92	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
93	client, endpoint, err := htransport.NewClient(ctx, opts...)
94	if err != nil {
95		return nil, err
96	}
97	s, err := New(client)
98	if err != nil {
99		return nil, err
100	}
101	if endpoint != "" {
102		s.BasePath = endpoint
103	}
104	return s, nil
105}
106
107// New creates a new Service. It uses the provided http.Client for requests.
108//
109// Deprecated: please use NewService instead.
110// To provide a custom HTTP client, use option.WithHTTPClient.
111// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
112func New(client *http.Client) (*Service, error) {
113	if client == nil {
114		return nil, errors.New("client is nil")
115	}
116	s := &Service{client: client, BasePath: basePath}
117	s.Feeds = NewFeedsService(s)
118	s.Operations = NewOperationsService(s)
119	s.V1 = NewV1Service(s)
120	return s, nil
121}
122
123type Service struct {
124	client    *http.Client
125	BasePath  string // API endpoint base URL
126	UserAgent string // optional additional User-Agent fragment
127
128	Feeds *FeedsService
129
130	Operations *OperationsService
131
132	V1 *V1Service
133}
134
135func (s *Service) userAgent() string {
136	if s.UserAgent == "" {
137		return googleapi.UserAgent
138	}
139	return googleapi.UserAgent + " " + s.UserAgent
140}
141
142func NewFeedsService(s *Service) *FeedsService {
143	rs := &FeedsService{s: s}
144	return rs
145}
146
147type FeedsService struct {
148	s *Service
149}
150
151func NewOperationsService(s *Service) *OperationsService {
152	rs := &OperationsService{s: s}
153	return rs
154}
155
156type OperationsService struct {
157	s *Service
158}
159
160func NewV1Service(s *Service) *V1Service {
161	rs := &V1Service{s: s}
162	return rs
163}
164
165type V1Service struct {
166	s *Service
167}
168
169// Asset: An asset in Google Cloud. An asset can be any resource in the
170// Google
171// Cloud
172// [resource
173// hierarchy](https://cloud.google.com/resource-manager/d
174// ocs/cloud-platform-resource-hierarchy),
175// a resource outside the Google Cloud resource hierarchy (such as
176// Google
177// Kubernetes Engine clusters and objects), or a Cloud IAM policy.
178type Asset struct {
179	AccessLevel *GoogleIdentityAccesscontextmanagerV1AccessLevel `json:"accessLevel,omitempty"`
180
181	AccessPolicy *GoogleIdentityAccesscontextmanagerV1AccessPolicy `json:"accessPolicy,omitempty"`
182
183	// Ancestors: The ancestry path of an asset in Google Cloud
184	// [resource
185	// hierarchy](https://cloud.google.com/resource-manager/docs/cl
186	// oud-platform-resource-hierarchy),
187	// represented as a list of relative resource names. An ancestry path
188	// starts
189	// with the closest ancestor in the hierarchy and ends at root. If the
190	// asset
191	// is a project, folder, or organization, the ancestry path starts from
192	// the
193	// asset itself.
194	//
195	// For example: `["projects/123456789", "folders/5432",
196	// "organizations/1234"]`
197	Ancestors []string `json:"ancestors,omitempty"`
198
199	// AssetType: The type of the asset. For example:
200	// "compute.googleapis.com/Disk"
201	//
202	// See [Supported
203	// asset
204	// types](https://cloud.google.com/asset-inventory/docs/supported-a
205	// sset-types)
206	// for more information.
207	AssetType string `json:"assetType,omitempty"`
208
209	// IamPolicy: A representation of the Cloud IAM policy set on a Google
210	// Cloud resource.
211	// There can be a maximum of one Cloud IAM policy set on any given
212	// resource.
213	// In addition, Cloud IAM policies inherit their granted access scope
214	// from any
215	// policies set on parent resources in the resource hierarchy.
216	// Therefore, the
217	// effectively policy is the union of both the policy set on this
218	// resource
219	// and each policy set on all of the resource's ancestry resource levels
220	// in
221	// the hierarchy. See
222	// [this topic](https://cloud.google.com/iam/docs/policies#inheritance)
223	// for
224	// more information.
225	IamPolicy *Policy `json:"iamPolicy,omitempty"`
226
227	// Name: The full name of the asset. For
228	// example:
229	// "//compute.googleapis.com/projects/my_project_123/zones/zone1
230	// /instances/instance1"
231	//
232	// See
233	// [Resource
234	// names](https://cloud.google.com/apis/design/resource_names#f
235	// ull_resource_name)
236	// for more information.
237	Name string `json:"name,omitempty"`
238
239	// OrgPolicy: A representation of an
240	// [organization
241	// policy](https://cloud.google.com/resource-manager/docs/o
242	// rganization-policy/overview#organization_policy).
243	// There can be more than one organization policy with different
244	// constraints
245	// set on a given resource.
246	OrgPolicy []*GoogleCloudOrgpolicyV1Policy `json:"orgPolicy,omitempty"`
247
248	// Resource: A representation of the resource.
249	Resource *Resource `json:"resource,omitempty"`
250
251	ServicePerimeter *GoogleIdentityAccesscontextmanagerV1ServicePerimeter `json:"servicePerimeter,omitempty"`
252
253	// ForceSendFields is a list of field names (e.g. "AccessLevel") to
254	// unconditionally include in API requests. By default, fields with
255	// empty values are omitted from API requests. However, any non-pointer,
256	// non-interface field appearing in ForceSendFields will be sent to the
257	// server regardless of whether the field is empty or not. This may be
258	// used to include empty fields in Patch requests.
259	ForceSendFields []string `json:"-"`
260
261	// NullFields is a list of field names (e.g. "AccessLevel") to include
262	// in API requests with the JSON null value. By default, fields with
263	// empty values are omitted from API requests. However, any field with
264	// an empty value appearing in NullFields will be sent to the server as
265	// null. It is an error if a field in this list has a non-empty value.
266	// This may be used to include null fields in Patch requests.
267	NullFields []string `json:"-"`
268}
269
270func (s *Asset) MarshalJSON() ([]byte, error) {
271	type NoMethod Asset
272	raw := NoMethod(*s)
273	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
274}
275
276// AuditConfig: Specifies the audit configuration for a service.
277// The configuration determines which permission types are logged, and
278// what
279// identities, if any, are exempted from logging.
280// An AuditConfig must have one or more AuditLogConfigs.
281//
282// If there are AuditConfigs for both `allServices` and a specific
283// service,
284// the union of the two AuditConfigs is used for that service: the
285// log_types
286// specified in each AuditConfig are enabled, and the exempted_members
287// in each
288// AuditLogConfig are exempted.
289//
290// Example Policy with multiple AuditConfigs:
291//
292//     {
293//       "audit_configs": [
294//         {
295//           "service": "allServices"
296//           "audit_log_configs": [
297//             {
298//               "log_type": "DATA_READ",
299//               "exempted_members": [
300//                 "user:jose@example.com"
301//               ]
302//             },
303//             {
304//               "log_type": "DATA_WRITE",
305//             },
306//             {
307//               "log_type": "ADMIN_READ",
308//             }
309//           ]
310//         },
311//         {
312//           "service": "sampleservice.googleapis.com"
313//           "audit_log_configs": [
314//             {
315//               "log_type": "DATA_READ",
316//             },
317//             {
318//               "log_type": "DATA_WRITE",
319//               "exempted_members": [
320//                 "user:aliya@example.com"
321//               ]
322//             }
323//           ]
324//         }
325//       ]
326//     }
327//
328// For sampleservice, this policy enables DATA_READ, DATA_WRITE and
329// ADMIN_READ
330// logging. It also exempts jose@example.com from DATA_READ logging,
331// and
332// aliya@example.com from DATA_WRITE logging.
333type AuditConfig struct {
334	// AuditLogConfigs: The configuration for logging of each type of
335	// permission.
336	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
337
338	// Service: Specifies a service that will be enabled for audit
339	// logging.
340	// For example, `storage.googleapis.com`,
341	// `cloudsql.googleapis.com`.
342	// `allServices` is a special value that covers all services.
343	Service string `json:"service,omitempty"`
344
345	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
346	// unconditionally include in API requests. By default, fields with
347	// empty values are omitted from API requests. However, any non-pointer,
348	// non-interface field appearing in ForceSendFields will be sent to the
349	// server regardless of whether the field is empty or not. This may be
350	// used to include empty fields in Patch requests.
351	ForceSendFields []string `json:"-"`
352
353	// NullFields is a list of field names (e.g. "AuditLogConfigs") to
354	// include in API requests with the JSON null value. By default, fields
355	// with empty values are omitted from API requests. However, any field
356	// with an empty value appearing in NullFields will be sent to the
357	// server as null. It is an error if a field in this list has a
358	// non-empty value. This may be used to include null fields in Patch
359	// requests.
360	NullFields []string `json:"-"`
361}
362
363func (s *AuditConfig) MarshalJSON() ([]byte, error) {
364	type NoMethod AuditConfig
365	raw := NoMethod(*s)
366	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
367}
368
369// AuditLogConfig: Provides the configuration for logging a type of
370// permissions.
371// Example:
372//
373//     {
374//       "audit_log_configs": [
375//         {
376//           "log_type": "DATA_READ",
377//           "exempted_members": [
378//             "user:jose@example.com"
379//           ]
380//         },
381//         {
382//           "log_type": "DATA_WRITE",
383//         }
384//       ]
385//     }
386//
387// This enables 'DATA_READ' and 'DATA_WRITE' logging, while
388// exempting
389// jose@example.com from DATA_READ logging.
390type AuditLogConfig struct {
391	// ExemptedMembers: Specifies the identities that do not cause logging
392	// for this type of
393	// permission.
394	// Follows the same format of Binding.members.
395	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
396
397	// LogType: The log type that this config enables.
398	//
399	// Possible values:
400	//   "LOG_TYPE_UNSPECIFIED" - Default case. Should never be this.
401	//   "ADMIN_READ" - Admin reads. Example: CloudIAM getIamPolicy
402	//   "DATA_WRITE" - Data writes. Example: CloudSQL Users create
403	//   "DATA_READ" - Data reads. Example: CloudSQL Users list
404	LogType string `json:"logType,omitempty"`
405
406	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
407	// unconditionally include in API requests. By default, fields with
408	// empty values are omitted from API requests. However, any non-pointer,
409	// non-interface field appearing in ForceSendFields will be sent to the
410	// server regardless of whether the field is empty or not. This may be
411	// used to include empty fields in Patch requests.
412	ForceSendFields []string `json:"-"`
413
414	// NullFields is a list of field names (e.g. "ExemptedMembers") to
415	// include in API requests with the JSON null value. By default, fields
416	// with empty values are omitted from API requests. However, any field
417	// with an empty value appearing in NullFields will be sent to the
418	// server as null. It is an error if a field in this list has a
419	// non-empty value. This may be used to include null fields in Patch
420	// requests.
421	NullFields []string `json:"-"`
422}
423
424func (s *AuditLogConfig) MarshalJSON() ([]byte, error) {
425	type NoMethod AuditLogConfig
426	raw := NoMethod(*s)
427	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
428}
429
430// BatchGetAssetsHistoryResponse: Batch get assets history response.
431type BatchGetAssetsHistoryResponse struct {
432	// Assets: A list of assets with valid time windows.
433	Assets []*TemporalAsset `json:"assets,omitempty"`
434
435	// ServerResponse contains the HTTP response code and headers from the
436	// server.
437	googleapi.ServerResponse `json:"-"`
438
439	// ForceSendFields is a list of field names (e.g. "Assets") to
440	// unconditionally include in API requests. By default, fields with
441	// empty values are omitted from API requests. However, any non-pointer,
442	// non-interface field appearing in ForceSendFields will be sent to the
443	// server regardless of whether the field is empty or not. This may be
444	// used to include empty fields in Patch requests.
445	ForceSendFields []string `json:"-"`
446
447	// NullFields is a list of field names (e.g. "Assets") to include in API
448	// requests with the JSON null value. By default, fields with empty
449	// values are omitted from API requests. However, any field with an
450	// empty value appearing in NullFields will be sent to the server as
451	// null. It is an error if a field in this list has a non-empty value.
452	// This may be used to include null fields in Patch requests.
453	NullFields []string `json:"-"`
454}
455
456func (s *BatchGetAssetsHistoryResponse) MarshalJSON() ([]byte, error) {
457	type NoMethod BatchGetAssetsHistoryResponse
458	raw := NoMethod(*s)
459	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
460}
461
462// BigQueryDestination: A BigQuery destination.
463type BigQueryDestination struct {
464	// Dataset: Required. The BigQuery dataset in
465	// format
466	// "projects/projectId/datasets/datasetId", to which the snapshot
467	// result
468	// should be exported. If this dataset does not exist, the export call
469	// returns
470	// an INVALID_ARGUMENT error.
471	Dataset string `json:"dataset,omitempty"`
472
473	// Force: If the destination table already exists and this flag is
474	// `TRUE`, the
475	// table will be overwritten by the contents of assets snapshot. If the
476	// flag
477	// is `FALSE` or unset and the destination table already exists, the
478	// export
479	// call returns an INVALID_ARGUMEMT error.
480	Force bool `json:"force,omitempty"`
481
482	// Table: Required. The BigQuery table to which the snapshot result
483	// should be
484	// written. If this table does not exist, a new table with the given
485	// name
486	// will be created.
487	Table string `json:"table,omitempty"`
488
489	// ForceSendFields is a list of field names (e.g. "Dataset") to
490	// unconditionally include in API requests. By default, fields with
491	// empty values are omitted from API requests. However, any non-pointer,
492	// non-interface field appearing in ForceSendFields will be sent to the
493	// server regardless of whether the field is empty or not. This may be
494	// used to include empty fields in Patch requests.
495	ForceSendFields []string `json:"-"`
496
497	// NullFields is a list of field names (e.g. "Dataset") 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 *BigQueryDestination) MarshalJSON() ([]byte, error) {
507	type NoMethod BigQueryDestination
508	raw := NoMethod(*s)
509	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
510}
511
512// Binding: Associates `members` with a `role`.
513type Binding struct {
514	// Condition: The condition that is associated with this binding.
515	// NOTE: An unsatisfied condition will not allow user access via
516	// current
517	// binding. Different bindings, including their conditions, are
518	// examined
519	// independently.
520	Condition *Expr `json:"condition,omitempty"`
521
522	// Members: Specifies the identities requesting access for a Cloud
523	// Platform resource.
524	// `members` can have the following values:
525	//
526	// * `allUsers`: A special identifier that represents anyone who is
527	//    on the internet; with or without a Google account.
528	//
529	// * `allAuthenticatedUsers`: A special identifier that represents
530	// anyone
531	//    who is authenticated with a Google account or a service
532	// account.
533	//
534	// * `user:{emailid}`: An email address that represents a specific
535	// Google
536	//    account. For example, `alice@example.com` .
537	//
538	//
539	// * `serviceAccount:{emailid}`: An email address that represents a
540	// service
541	//    account. For example,
542	// `my-other-app@appspot.gserviceaccount.com`.
543	//
544	// * `group:{emailid}`: An email address that represents a Google
545	// group.
546	//    For example, `admins@example.com`.
547	//
548	// * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus
549	// unique
550	//    identifier) representing a user that has been recently deleted.
551	// For
552	//    example, `alice@example.com?uid=123456789012345678901`. If the
553	// user is
554	//    recovered, this value reverts to `user:{emailid}` and the
555	// recovered user
556	//    retains the role in the binding.
557	//
558	// * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
559	// (plus
560	//    unique identifier) representing a service account that has been
561	// recently
562	//    deleted. For example,
563	//
564	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
565	//
566	//    If the service account is undeleted, this value reverts to
567	//    `serviceAccount:{emailid}` and the undeleted service account
568	// retains the
569	//    role in the binding.
570	//
571	// * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus
572	// unique
573	//    identifier) representing a Google group that has been recently
574	//    deleted. For example,
575	// `admins@example.com?uid=123456789012345678901`. If
576	//    the group is recovered, this value reverts to `group:{emailid}`
577	// and the
578	//    recovered group retains the role in the binding.
579	//
580	//
581	// * `domain:{domain}`: The G Suite domain (primary) that represents all
582	// the
583	//    users of that domain. For example, `google.com` or
584	// `example.com`.
585	//
586	//
587	Members []string `json:"members,omitempty"`
588
589	// Role: Role that is assigned to `members`.
590	// For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
591	Role string `json:"role,omitempty"`
592
593	// ForceSendFields is a list of field names (e.g. "Condition") to
594	// unconditionally include in API requests. By default, fields with
595	// empty values are omitted from API requests. However, any non-pointer,
596	// non-interface field appearing in ForceSendFields will be sent to the
597	// server regardless of whether the field is empty or not. This may be
598	// used to include empty fields in Patch requests.
599	ForceSendFields []string `json:"-"`
600
601	// NullFields is a list of field names (e.g. "Condition") to include in
602	// API requests with the JSON null value. By default, fields with empty
603	// values are omitted from API requests. However, any field with an
604	// 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 *Binding) MarshalJSON() ([]byte, error) {
611	type NoMethod Binding
612	raw := NoMethod(*s)
613	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
614}
615
616// CreateFeedRequest: Create asset feed request.
617type CreateFeedRequest struct {
618	// Feed: Required. The feed details. The field `name` must be empty and
619	// it will be generated
620	// in the format
621	// of:
622	// projects/project_number/feeds/feed_id
623	// folders/folder_number/feeds/
624	// feed_id
625	// organizations/organization_number/feeds/feed_id
626	Feed *Feed `json:"feed,omitempty"`
627
628	// FeedId: Required. This is the client-assigned asset feed identifier
629	// and it needs to
630	// be unique under a specific parent project/folder/organization.
631	FeedId string `json:"feedId,omitempty"`
632
633	// ForceSendFields is a list of field names (e.g. "Feed") to
634	// unconditionally include in API requests. By default, fields with
635	// empty values are omitted from API requests. However, any non-pointer,
636	// non-interface field appearing in ForceSendFields will be sent to the
637	// server regardless of whether the field is empty or not. This may be
638	// used to include empty fields in Patch requests.
639	ForceSendFields []string `json:"-"`
640
641	// NullFields is a list of field names (e.g. "Feed") to include in API
642	// requests with the JSON null value. By default, fields with empty
643	// values are omitted from API requests. However, any field with an
644	// empty value appearing in NullFields will be sent to the server as
645	// null. It is an error if a field in this list has a non-empty value.
646	// This may be used to include null fields in Patch requests.
647	NullFields []string `json:"-"`
648}
649
650func (s *CreateFeedRequest) MarshalJSON() ([]byte, error) {
651	type NoMethod CreateFeedRequest
652	raw := NoMethod(*s)
653	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
654}
655
656// Empty: A generic empty message that you can re-use to avoid defining
657// duplicated
658// empty messages in your APIs. A typical example is to use it as the
659// request
660// or the response type of an API method. For instance:
661//
662//     service Foo {
663//       rpc Bar(google.protobuf.Empty) returns
664// (google.protobuf.Empty);
665//     }
666//
667// The JSON representation for `Empty` is empty JSON object `{}`.
668type Empty struct {
669	// ServerResponse contains the HTTP response code and headers from the
670	// server.
671	googleapi.ServerResponse `json:"-"`
672}
673
674// ExportAssetsRequest: Export asset request.
675type ExportAssetsRequest struct {
676	// AssetTypes: A list of asset types of which to take a snapshot for.
677	// For example:
678	// "compute.googleapis.com/Disk". If specified, only matching assets
679	// will be
680	// returned. See [Introduction to Cloud
681	// Asset
682	// Inventory](https://cloud.google.com/asset-inventory/docs/overvie
683	// w)
684	// for all supported asset types.
685	AssetTypes []string `json:"assetTypes,omitempty"`
686
687	// ContentType: Asset content type. If not specified, no content but the
688	// asset name will be
689	// returned.
690	//
691	// Possible values:
692	//   "CONTENT_TYPE_UNSPECIFIED" - Unspecified content type.
693	//   "RESOURCE" - Resource metadata.
694	//   "IAM_POLICY" - The actual IAM policy set on a resource.
695	//   "ORG_POLICY" - The Cloud Organization Policy set on an asset.
696	//   "ACCESS_POLICY" - The Cloud Access context mananger Policy set on
697	// an asset.
698	ContentType string `json:"contentType,omitempty"`
699
700	// OutputConfig: Required. Output configuration indicating where the
701	// results will be output
702	// to. All results will be in newline delimited JSON format.
703	OutputConfig *OutputConfig `json:"outputConfig,omitempty"`
704
705	// ReadTime: Timestamp to take an asset snapshot. This can only be set
706	// to a timestamp
707	// between the current time and the current time minus 35 days
708	// (inclusive).
709	// If not specified, the current time will be used. Due to delays in
710	// resource
711	// data collection and indexing, there is a volatile window during
712	// which
713	// running the same query may get different results.
714	ReadTime string `json:"readTime,omitempty"`
715
716	// ForceSendFields is a list of field names (e.g. "AssetTypes") to
717	// unconditionally include in API requests. By default, fields with
718	// empty values are omitted from API requests. However, any non-pointer,
719	// non-interface field appearing in ForceSendFields will be sent to the
720	// server regardless of whether the field is empty or not. This may be
721	// used to include empty fields in Patch requests.
722	ForceSendFields []string `json:"-"`
723
724	// NullFields is a list of field names (e.g. "AssetTypes") to include in
725	// API requests with the JSON null value. By default, fields with empty
726	// values are omitted from API requests. However, any field with an
727	// empty value appearing in NullFields will be sent to the server as
728	// null. It is an error if a field in this list has a non-empty value.
729	// This may be used to include null fields in Patch requests.
730	NullFields []string `json:"-"`
731}
732
733func (s *ExportAssetsRequest) MarshalJSON() ([]byte, error) {
734	type NoMethod ExportAssetsRequest
735	raw := NoMethod(*s)
736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
737}
738
739// Expr: Represents a textual expression in the Common Expression
740// Language (CEL)
741// syntax. CEL is a C-like expression language. The syntax and semantics
742// of CEL
743// are documented at https://github.com/google/cel-spec.
744//
745// Example (Comparison):
746//
747//     title: "Summary size limit"
748//     description: "Determines if a summary is less than 100 chars"
749//     expression: "document.summary.size() < 100"
750//
751// Example (Equality):
752//
753//     title: "Requestor is owner"
754//     description: "Determines if requestor is the document owner"
755//     expression: "document.owner ==
756// request.auth.claims.email"
757//
758// Example (Logic):
759//
760//     title: "Public documents"
761//     description: "Determine whether the document should be publicly
762// visible"
763//     expression: "document.type != 'private' && document.type !=
764// 'internal'"
765//
766// Example (Data Manipulation):
767//
768//     title: "Notification string"
769//     description: "Create a notification string with a timestamp."
770//     expression: "'New message received at ' +
771// string(document.create_time)"
772//
773// The exact variables and functions that may be referenced within an
774// expression
775// are determined by the service that evaluates it. See the
776// service
777// documentation for additional information.
778type Expr struct {
779	// Description: Optional. Description of the expression. This is a
780	// longer text which
781	// describes the expression, e.g. when hovered over it in a UI.
782	Description string `json:"description,omitempty"`
783
784	// Expression: Textual representation of an expression in Common
785	// Expression Language
786	// syntax.
787	Expression string `json:"expression,omitempty"`
788
789	// Location: Optional. String indicating the location of the expression
790	// for error
791	// reporting, e.g. a file name and a position in the file.
792	Location string `json:"location,omitempty"`
793
794	// Title: Optional. Title for the expression, i.e. a short string
795	// describing
796	// its purpose. This can be used e.g. in UIs which allow to enter
797	// the
798	// expression.
799	Title string `json:"title,omitempty"`
800
801	// ForceSendFields is a list of field names (e.g. "Description") to
802	// unconditionally include in API requests. By default, fields with
803	// empty values are omitted from API requests. However, any non-pointer,
804	// non-interface field appearing in ForceSendFields will be sent to the
805	// server regardless of whether the field is empty or not. This may be
806	// used to include empty fields in Patch requests.
807	ForceSendFields []string `json:"-"`
808
809	// NullFields is a list of field names (e.g. "Description") to include
810	// in API requests with the JSON null value. By default, fields with
811	// empty values are omitted from API requests. However, any field with
812	// an empty value appearing in NullFields will be sent to the server as
813	// null. It is an error if a field in this list has a non-empty value.
814	// This may be used to include null fields in Patch requests.
815	NullFields []string `json:"-"`
816}
817
818func (s *Expr) MarshalJSON() ([]byte, error) {
819	type NoMethod Expr
820	raw := NoMethod(*s)
821	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
822}
823
824// Feed: An asset feed used to export asset updates to a
825// destinations.
826// An asset feed filter controls what updates are exported.
827// The asset feed must be created within a project, organization,
828// or
829// folder. Supported destinations are:
830// Pub/Sub topics.
831type Feed struct {
832	// AssetNames: A list of the full names of the assets to receive
833	// updates. You must specify
834	// either or both of asset_names and asset_types. Only asset updates
835	// matching
836	// specified asset_names and asset_types are exported to the feed.
837	// For
838	// example:
839	// `//compute.googleapis.com/projects/my_project_123/zones/z
840	// one1/instances/instance1`.
841	// See
842	// [Resource
843	// Names](https://cloud.google.com/apis/design/resource_names#f
844	// ull_resource_name)
845	// for more info.
846	AssetNames []string `json:"assetNames,omitempty"`
847
848	// AssetTypes: A list of types of the assets to receive updates. You
849	// must specify either
850	// or both of asset_names and asset_types. Only asset updates
851	// matching
852	// specified asset_names and asset_types are exported to the feed.
853	// For example: "compute.googleapis.com/Disk"
854	//
855	// See
856	// [this
857	// topic](https://cloud.google.com/asset-inventory/docs/supported-a
858	// sset-types)
859	// for a list of all supported asset types.
860	AssetTypes []string `json:"assetTypes,omitempty"`
861
862	// ContentType: Asset content type. If not specified, no content but the
863	// asset name and
864	// type will be returned.
865	//
866	// Possible values:
867	//   "CONTENT_TYPE_UNSPECIFIED" - Unspecified content type.
868	//   "RESOURCE" - Resource metadata.
869	//   "IAM_POLICY" - The actual IAM policy set on a resource.
870	//   "ORG_POLICY" - The Cloud Organization Policy set on an asset.
871	//   "ACCESS_POLICY" - The Cloud Access context mananger Policy set on
872	// an asset.
873	ContentType string `json:"contentType,omitempty"`
874
875	// FeedOutputConfig: Required. Feed output configuration defining where
876	// the asset updates are
877	// published to.
878	FeedOutputConfig *FeedOutputConfig `json:"feedOutputConfig,omitempty"`
879
880	// Name: Required. The format will
881	// be
882	// projects/{project_number}/feeds/{client-assigned_feed_identifier}
883	// or
884	// folders/{folder_number}/feeds/{client-assigned_feed_identifier}
885	// or
886	// organizations/{organization_number}/feeds/{client-assigned_feed_ide
887	// ntifier}
888	//
889	// The client-assigned feed identifier must be unique within the
890	// parent
891	// project/folder/organization.
892	Name string `json:"name,omitempty"`
893
894	// ServerResponse contains the HTTP response code and headers from the
895	// server.
896	googleapi.ServerResponse `json:"-"`
897
898	// ForceSendFields is a list of field names (e.g. "AssetNames") to
899	// unconditionally include in API requests. By default, fields with
900	// empty values are omitted from API requests. However, any non-pointer,
901	// non-interface field appearing in ForceSendFields will be sent to the
902	// server regardless of whether the field is empty or not. This may be
903	// used to include empty fields in Patch requests.
904	ForceSendFields []string `json:"-"`
905
906	// NullFields is a list of field names (e.g. "AssetNames") to include in
907	// API requests with the JSON null value. By default, fields with empty
908	// values are omitted from API requests. However, any field with an
909	// empty value appearing in NullFields will be sent to the server as
910	// null. It is an error if a field in this list has a non-empty value.
911	// This may be used to include null fields in Patch requests.
912	NullFields []string `json:"-"`
913}
914
915func (s *Feed) MarshalJSON() ([]byte, error) {
916	type NoMethod Feed
917	raw := NoMethod(*s)
918	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
919}
920
921// FeedOutputConfig: Output configuration for asset feed destination.
922type FeedOutputConfig struct {
923	// PubsubDestination: Destination on Pub/Sub.
924	PubsubDestination *PubsubDestination `json:"pubsubDestination,omitempty"`
925
926	// ForceSendFields is a list of field names (e.g. "PubsubDestination")
927	// to unconditionally include in API requests. By default, fields with
928	// empty values are omitted from API requests. However, any non-pointer,
929	// non-interface field appearing in ForceSendFields will be sent to the
930	// server regardless of whether the field is empty or not. This may be
931	// used to include empty fields in Patch requests.
932	ForceSendFields []string `json:"-"`
933
934	// NullFields is a list of field names (e.g. "PubsubDestination") to
935	// include in API requests with the JSON null value. By default, fields
936	// with empty values are omitted from API requests. However, any field
937	// with an empty value appearing in NullFields will be sent to the
938	// server as null. It is an error if a field in this list has a
939	// non-empty value. This may be used to include null fields in Patch
940	// requests.
941	NullFields []string `json:"-"`
942}
943
944func (s *FeedOutputConfig) MarshalJSON() ([]byte, error) {
945	type NoMethod FeedOutputConfig
946	raw := NoMethod(*s)
947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
948}
949
950// GcsDestination: A Cloud Storage location.
951type GcsDestination struct {
952	// Uri: The uri of the Cloud Storage object. It's the same uri that is
953	// used by
954	// gsutil. For example: "gs://bucket_name/object_name". See [Viewing
955	// and
956	// Editing
957	// Object
958	// Metadata](https://cloud.google.com/storage/docs/viewing-editing
959	// -metadata)
960	// for more information.
961	Uri string `json:"uri,omitempty"`
962
963	// UriPrefix: The uri prefix of all generated Cloud Storage objects. For
964	// example:
965	// "gs://bucket_name/object_name_prefix". Each object uri is in
966	// format:
967	// "gs://bucket_name/object_name_prefix/<asset type>/<shard number> and
968	// only
969	// contains assets for that type. <shard number> starts from 0. For
970	// example:
971	// "gs://bucket_name/object_name_prefix/compute.googleapis.com/D
972	// isk/0" is
973	// the first shard of output objects containing
974	// all
975	// compute.googleapis.com/Disk assets. An INVALID_ARGUMENT error will
976	// be
977	// returned if file with the same name
978	// "gs://bucket_name/object_name_prefix"
979	// already exists.
980	UriPrefix string `json:"uriPrefix,omitempty"`
981
982	// ForceSendFields is a list of field names (e.g. "Uri") to
983	// unconditionally include in API requests. By default, fields with
984	// empty values are omitted from API requests. However, any non-pointer,
985	// non-interface field appearing in ForceSendFields will be sent to the
986	// server regardless of whether the field is empty or not. This may be
987	// used to include empty fields in Patch requests.
988	ForceSendFields []string `json:"-"`
989
990	// NullFields is a list of field names (e.g. "Uri") to include in API
991	// requests with the JSON null value. By default, fields with empty
992	// values are omitted from API requests. However, any field with an
993	// empty value appearing in NullFields will be sent to the server as
994	// null. It is an error if a field in this list has a non-empty value.
995	// This may be used to include null fields in Patch requests.
996	NullFields []string `json:"-"`
997}
998
999func (s *GcsDestination) MarshalJSON() ([]byte, error) {
1000	type NoMethod GcsDestination
1001	raw := NoMethod(*s)
1002	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1003}
1004
1005// GoogleCloudOrgpolicyV1BooleanPolicy: Used in `policy_type` to specify
1006// how `boolean_policy` will behave at this
1007// resource.
1008type GoogleCloudOrgpolicyV1BooleanPolicy struct {
1009	// Enforced: If `true`, then the `Policy` is enforced. If `false`, then
1010	// any
1011	// configuration is acceptable.
1012	//
1013	// Suppose you have a
1014	// `Constraint`
1015	// `constraints/compute.disableSerialPortAccess` with
1016	// `constraint_default`
1017	// set to `ALLOW`. A `Policy` for that `Constraint` exhibits the
1018	// following
1019	// behavior:
1020	//   - If the `Policy` at this resource has enforced set to `false`,
1021	// serial
1022	//     port connection attempts will be allowed.
1023	//   - If the `Policy` at this resource has enforced set to `true`,
1024	// serial
1025	//     port connection attempts will be refused.
1026	//   - If the `Policy` at this resource is `RestoreDefault`, serial
1027	// port
1028	//     connection attempts will be allowed.
1029	//   - If no `Policy` is set at this resource or anywhere higher in the
1030	//     resource hierarchy, serial port connection attempts will be
1031	// allowed.
1032	//   - If no `Policy` is set at this resource, but one exists higher in
1033	// the
1034	//     resource hierarchy, the behavior is as if the`Policy` were set
1035	// at
1036	//     this resource.
1037	//
1038	// The following examples demonstrate the different possible
1039	// layerings:
1040	//
1041	// Example 1 (nearest `Constraint` wins):
1042	//   `organizations/foo` has a `Policy` with:
1043	//     {enforced: false}
1044	//   `projects/bar` has no `Policy` set.
1045	// The constraint at `projects/bar` and `organizations/foo` will not
1046	// be
1047	// enforced.
1048	//
1049	// Example 2 (enforcement gets replaced):
1050	//   `organizations/foo` has a `Policy` with:
1051	//     {enforced: false}
1052	//   `projects/bar` has a `Policy` with:
1053	//     {enforced: true}
1054	// The constraint at `organizations/foo` is not enforced.
1055	// The constraint at `projects/bar` is enforced.
1056	//
1057	// Example 3 (RestoreDefault):
1058	//   `organizations/foo` has a `Policy` with:
1059	//     {enforced: true}
1060	//   `projects/bar` has a `Policy` with:
1061	//     {RestoreDefault: {}}
1062	// The constraint at `organizations/foo` is enforced.
1063	// The constraint at `projects/bar` is not enforced,
1064	// because
1065	// `constraint_default` for the `Constraint` is `ALLOW`.
1066	Enforced bool `json:"enforced,omitempty"`
1067
1068	// ForceSendFields is a list of field names (e.g. "Enforced") to
1069	// unconditionally include in API requests. By default, fields with
1070	// empty values are omitted from API requests. However, any non-pointer,
1071	// non-interface field appearing in ForceSendFields will be sent to the
1072	// server regardless of whether the field is empty or not. This may be
1073	// used to include empty fields in Patch requests.
1074	ForceSendFields []string `json:"-"`
1075
1076	// NullFields is a list of field names (e.g. "Enforced") to include in
1077	// API requests with the JSON null value. By default, fields with empty
1078	// values are omitted from API requests. However, any field with an
1079	// empty value appearing in NullFields will be sent to the server as
1080	// null. It is an error if a field in this list has a non-empty value.
1081	// This may be used to include null fields in Patch requests.
1082	NullFields []string `json:"-"`
1083}
1084
1085func (s *GoogleCloudOrgpolicyV1BooleanPolicy) MarshalJSON() ([]byte, error) {
1086	type NoMethod GoogleCloudOrgpolicyV1BooleanPolicy
1087	raw := NoMethod(*s)
1088	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1089}
1090
1091// GoogleCloudOrgpolicyV1ListPolicy: Used in `policy_type` to specify
1092// how `list_policy` behaves at this
1093// resource.
1094//
1095// `ListPolicy` can define specific values and subtrees of Cloud
1096// Resource
1097// Manager resource hierarchy (`Organizations`, `Folders`, `Projects`)
1098// that
1099// are allowed or denied by setting the `allowed_values` and
1100// `denied_values`
1101// fields. This is achieved by using the `under:` and optional `is:`
1102// prefixes.
1103// The `under:` prefix is used to denote resource subtree values.
1104// The `is:` prefix is used to denote specific values, and is required
1105// only
1106// if the value contains a ":". Values prefixed with "is:" are treated
1107// the
1108// same as values with no prefix.
1109// Ancestry subtrees must be in one of the following formats:
1110//     - "projects/<project-id>", e.g. "projects/tokyo-rain-123"
1111//     - "folders/<folder-id>", e.g. "folders/1234"
1112//     - "organizations/<organization-id>", e.g.
1113// "organizations/1234"
1114// The `supports_under` field of the associated `Constraint`  defines
1115// whether
1116// ancestry prefixes can be used. You can set `allowed_values`
1117// and
1118// `denied_values` in the same `Policy` if `all_values`
1119// is
1120// `ALL_VALUES_UNSPECIFIED`. `ALLOW` or `DENY` are used to allow or deny
1121// all
1122// values. If `all_values` is set to either `ALLOW` or
1123// `DENY`,
1124// `allowed_values` and `denied_values` must be unset.
1125type GoogleCloudOrgpolicyV1ListPolicy struct {
1126	// AllValues: The policy all_values state.
1127	//
1128	// Possible values:
1129	//   "ALL_VALUES_UNSPECIFIED" - Indicates that allowed_values or
1130	// denied_values must be set.
1131	//   "ALLOW" - A policy with this set allows all values.
1132	//   "DENY" - A policy with this set denies all values.
1133	AllValues string `json:"allValues,omitempty"`
1134
1135	// AllowedValues: List of values allowed  at this resource. Can only be
1136	// set if `all_values`
1137	// is set to `ALL_VALUES_UNSPECIFIED`.
1138	AllowedValues []string `json:"allowedValues,omitempty"`
1139
1140	// DeniedValues: List of values denied at this resource. Can only be set
1141	// if `all_values`
1142	// is set to `ALL_VALUES_UNSPECIFIED`.
1143	DeniedValues []string `json:"deniedValues,omitempty"`
1144
1145	// InheritFromParent: Determines the inheritance behavior for this
1146	// `Policy`.
1147	//
1148	// By default, a `ListPolicy` set at a resource supercedes any `Policy`
1149	// set
1150	// anywhere up the resource hierarchy. However, if `inherit_from_parent`
1151	// is
1152	// set to `true`, then the values from the effective `Policy` of the
1153	// parent
1154	// resource are inherited, meaning the values set in this `Policy`
1155	// are
1156	// added to the values inherited up the hierarchy.
1157	//
1158	// Setting `Policy` hierarchies that inherit both allowed values and
1159	// denied
1160	// values isn't recommended in most circumstances to keep the
1161	// configuration
1162	// simple and understandable. However, it is possible to set a `Policy`
1163	// with
1164	// `allowed_values` set that inherits a `Policy` with `denied_values`
1165	// set.
1166	// In this case, the values that are allowed must be in `allowed_values`
1167	// and
1168	// not present in `denied_values`.
1169	//
1170	// For example, suppose you have a
1171	// `Constraint`
1172	// `constraints/serviceuser.services`, which has a `constraint_type`
1173	// of
1174	// `list_constraint`, and with `constraint_default` set to
1175	// `ALLOW`.
1176	// Suppose that at the Organization level, a `Policy` is applied
1177	// that
1178	// restricts the allowed API activations to {`E1`, `E2`}. Then, if
1179	// a
1180	// `Policy` is applied to a project below the Organization that
1181	// has
1182	// `inherit_from_parent` set to `false` and field all_values set to
1183	// DENY,
1184	// then an attempt to activate any API will be denied.
1185	//
1186	// The following examples demonstrate different possible layerings
1187	// for
1188	// `projects/bar` parented by `organizations/foo`:
1189	//
1190	// Example 1 (no inherited values):
1191	//   `organizations/foo` has a `Policy` with values:
1192	//     {allowed_values: "E1" allowed_values:"E2"}
1193	//   `projects/bar` has `inherit_from_parent` `false` and values:
1194	//     {allowed_values: "E3" allowed_values: "E4"}
1195	// The accepted values at `organizations/foo` are `E1`, `E2`.
1196	// The accepted values at `projects/bar` are `E3`, and `E4`.
1197	//
1198	// Example 2 (inherited values):
1199	//   `organizations/foo` has a `Policy` with values:
1200	//     {allowed_values: "E1" allowed_values:"E2"}
1201	//   `projects/bar` has a `Policy` with values:
1202	//     {value: "E3" value: "E4" inherit_from_parent: true}
1203	// The accepted values at `organizations/foo` are `E1`, `E2`.
1204	// The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and
1205	// `E4`.
1206	//
1207	// Example 3 (inheriting both allowed and denied values):
1208	//   `organizations/foo` has a `Policy` with values:
1209	//     {allowed_values: "E1" allowed_values: "E2"}
1210	//   `projects/bar` has a `Policy` with:
1211	//     {denied_values: "E1"}
1212	// The accepted values at `organizations/foo` are `E1`, `E2`.
1213	// The value accepted at `projects/bar` is `E2`.
1214	//
1215	// Example 4 (RestoreDefault):
1216	//   `organizations/foo` has a `Policy` with values:
1217	//     {allowed_values: "E1" allowed_values:"E2"}
1218	//   `projects/bar` has a `Policy` with values:
1219	//     {RestoreDefault: {}}
1220	// The accepted values at `organizations/foo` are `E1`, `E2`.
1221	// The accepted values at `projects/bar` are either all or none
1222	// depending on
1223	// the value of `constraint_default` (if `ALLOW`, all; if
1224	// `DENY`, none).
1225	//
1226	// Example 5 (no policy inherits parent policy):
1227	//   `organizations/foo` has no `Policy` set.
1228	//   `projects/bar` has no `Policy` set.
1229	// The accepted values at both levels are either all or none depending
1230	// on
1231	// the value of `constraint_default` (if `ALLOW`, all; if
1232	// `DENY`, none).
1233	//
1234	// Example 6 (ListConstraint allowing all):
1235	//   `organizations/foo` has a `Policy` with values:
1236	//     {allowed_values: "E1" allowed_values: "E2"}
1237	//   `projects/bar` has a `Policy` with:
1238	//     {all: ALLOW}
1239	// The accepted values at `organizations/foo` are `E1`, E2`.
1240	// Any value is accepted at `projects/bar`.
1241	//
1242	// Example 7 (ListConstraint allowing none):
1243	//   `organizations/foo` has a `Policy` with values:
1244	//     {allowed_values: "E1" allowed_values: "E2"}
1245	//   `projects/bar` has a `Policy` with:
1246	//     {all: DENY}
1247	// The accepted values at `organizations/foo` are `E1`, E2`.
1248	// No value is accepted at `projects/bar`.
1249	//
1250	// Example 10 (allowed and denied subtrees of Resource Manager
1251	// hierarchy):
1252	// Given the following resource hierarchy
1253	//   O1->{F1, F2}; F1->{P1}; F2->{P2, P3},
1254	//   `organizations/foo` has a `Policy` with values:
1255	//     {allowed_values: "under:organizations/O1"}
1256	//   `projects/bar` has a `Policy` with:
1257	//     {allowed_values: "under:projects/P3"}
1258	//     {denied_values: "under:folders/F2"}
1259	// The accepted values at `organizations/foo` are `organizations/O1`,
1260	//   `folders/F1`, `folders/F2`, `projects/P1`, `projects/P2`,
1261	//   `projects/P3`.
1262	// The accepted values at `projects/bar` are `organizations/O1`,
1263	//   `folders/F1`, `projects/P1`.
1264	InheritFromParent bool `json:"inheritFromParent,omitempty"`
1265
1266	// SuggestedValue: Optional. The Google Cloud Console will try to
1267	// default to a configuration
1268	// that matches the value specified in this `Policy`. If
1269	// `suggested_value`
1270	// is not set, it will inherit the value specified higher in the
1271	// hierarchy,
1272	// unless `inherit_from_parent` is `false`.
1273	SuggestedValue string `json:"suggestedValue,omitempty"`
1274
1275	// ForceSendFields is a list of field names (e.g. "AllValues") to
1276	// unconditionally include in API requests. By default, fields with
1277	// empty values are omitted from API requests. However, any non-pointer,
1278	// non-interface field appearing in ForceSendFields will be sent to the
1279	// server regardless of whether the field is empty or not. This may be
1280	// used to include empty fields in Patch requests.
1281	ForceSendFields []string `json:"-"`
1282
1283	// NullFields is a list of field names (e.g. "AllValues") to include in
1284	// API requests with the JSON null value. By default, fields with empty
1285	// values are omitted from API requests. However, any field with an
1286	// empty value appearing in NullFields will be sent to the server as
1287	// null. It is an error if a field in this list has a non-empty value.
1288	// This may be used to include null fields in Patch requests.
1289	NullFields []string `json:"-"`
1290}
1291
1292func (s *GoogleCloudOrgpolicyV1ListPolicy) MarshalJSON() ([]byte, error) {
1293	type NoMethod GoogleCloudOrgpolicyV1ListPolicy
1294	raw := NoMethod(*s)
1295	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1296}
1297
1298// GoogleCloudOrgpolicyV1Policy: Defines a Cloud Organization `Policy`
1299// which is used to specify `Constraints`
1300// for configurations of Cloud Platform resources.
1301type GoogleCloudOrgpolicyV1Policy struct {
1302	// BooleanPolicy: For boolean `Constraints`, whether to enforce the
1303	// `Constraint` or not.
1304	BooleanPolicy *GoogleCloudOrgpolicyV1BooleanPolicy `json:"booleanPolicy,omitempty"`
1305
1306	// Constraint: The name of the `Constraint` the `Policy` is configuring,
1307	// for example,
1308	// `constraints/serviceuser.services`.
1309	//
1310	// Immutable after creation.
1311	Constraint string `json:"constraint,omitempty"`
1312
1313	// Etag: An opaque tag indicating the current version of the `Policy`,
1314	// used for
1315	// concurrency control.
1316	//
1317	// When the `Policy` is returned from either a `GetPolicy` or
1318	// a
1319	// `ListOrgPolicy` request, this `etag` indicates the version of the
1320	// current
1321	// `Policy` to use when executing a read-modify-write loop.
1322	//
1323	// When the `Policy` is returned from a `GetEffectivePolicy` request,
1324	// the
1325	// `etag` will be unset.
1326	//
1327	// When the `Policy` is used in a `SetOrgPolicy` method, use the `etag`
1328	// value
1329	// that was returned from a `GetOrgPolicy` request as part of
1330	// a
1331	// read-modify-write loop for concurrency control. Not setting the
1332	// `etag`in a
1333	// `SetOrgPolicy` request will result in an unconditional write of
1334	// the
1335	// `Policy`.
1336	Etag string `json:"etag,omitempty"`
1337
1338	// ListPolicy: List of values either allowed or disallowed.
1339	ListPolicy *GoogleCloudOrgpolicyV1ListPolicy `json:"listPolicy,omitempty"`
1340
1341	// RestoreDefault: Restores the default behavior of the constraint;
1342	// independent of
1343	// `Constraint` type.
1344	RestoreDefault *GoogleCloudOrgpolicyV1RestoreDefault `json:"restoreDefault,omitempty"`
1345
1346	// UpdateTime: The time stamp the `Policy` was previously updated. This
1347	// is set by the
1348	// server, not specified by the caller, and represents the last time a
1349	// call to
1350	// `SetOrgPolicy` was made for that `Policy`. Any value set by the
1351	// client will
1352	// be ignored.
1353	UpdateTime string `json:"updateTime,omitempty"`
1354
1355	// Version: Version of the `Policy`. Default version is 0;
1356	Version int64 `json:"version,omitempty"`
1357
1358	// ForceSendFields is a list of field names (e.g. "BooleanPolicy") to
1359	// unconditionally include in API requests. By default, fields with
1360	// empty values are omitted from API requests. However, any non-pointer,
1361	// non-interface field appearing in ForceSendFields will be sent to the
1362	// server regardless of whether the field is empty or not. This may be
1363	// used to include empty fields in Patch requests.
1364	ForceSendFields []string `json:"-"`
1365
1366	// NullFields is a list of field names (e.g. "BooleanPolicy") to include
1367	// in API requests with the JSON null value. By default, fields with
1368	// empty values are omitted from API requests. However, any field with
1369	// an empty value appearing in NullFields will be sent to the server as
1370	// null. It is an error if a field in this list has a non-empty value.
1371	// This may be used to include null fields in Patch requests.
1372	NullFields []string `json:"-"`
1373}
1374
1375func (s *GoogleCloudOrgpolicyV1Policy) MarshalJSON() ([]byte, error) {
1376	type NoMethod GoogleCloudOrgpolicyV1Policy
1377	raw := NoMethod(*s)
1378	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1379}
1380
1381// GoogleCloudOrgpolicyV1RestoreDefault: Ignores policies set above this
1382// resource and restores the
1383// `constraint_default` enforcement behavior of the specific
1384// `Constraint` at
1385// this resource.
1386//
1387// Suppose that `constraint_default` is set to `ALLOW` for
1388// the
1389// `Constraint` `constraints/serviceuser.services`. Suppose that
1390// organization
1391// foo.com sets a `Policy` at their Organization resource node that
1392// restricts
1393// the allowed service activations to deny all service activations.
1394// They
1395// could then set a `Policy` with the `policy_type` `restore_default`
1396// on
1397// several experimental projects, restoring the
1398// `constraint_default`
1399// enforcement of the `Constraint` for only those projects, allowing
1400// those
1401// projects to have all services activated.
1402type GoogleCloudOrgpolicyV1RestoreDefault struct {
1403}
1404
1405// GoogleIdentityAccesscontextmanagerV1AccessLevel: An `AccessLevel` is
1406// a label that can be applied to requests to Google Cloud
1407// services, along with a list of requirements necessary for the label
1408// to be
1409// applied.
1410type GoogleIdentityAccesscontextmanagerV1AccessLevel struct {
1411	// Basic: A `BasicLevel` composed of `Conditions`.
1412	Basic *GoogleIdentityAccesscontextmanagerV1BasicLevel `json:"basic,omitempty"`
1413
1414	// Custom: A `CustomLevel` written in the Common Expression Language.
1415	Custom *GoogleIdentityAccesscontextmanagerV1CustomLevel `json:"custom,omitempty"`
1416
1417	// Description: Description of the `AccessLevel` and its use. Does not
1418	// affect behavior.
1419	Description string `json:"description,omitempty"`
1420
1421	// Name: Required. Resource name for the Access Level. The `short_name`
1422	// component
1423	// must begin with a letter and only include alphanumeric and '_'.
1424	// Format:
1425	// `accessPolicies/{policy_id}/accessLevels/{short_name}`. The maximum
1426	// length
1427	// of the `short_name` component is 50 characters.
1428	Name string `json:"name,omitempty"`
1429
1430	// Title: Human readable title. Must be unique within the Policy.
1431	Title string `json:"title,omitempty"`
1432
1433	// ForceSendFields is a list of field names (e.g. "Basic") to
1434	// unconditionally include in API requests. By default, fields with
1435	// empty values are omitted from API requests. However, any non-pointer,
1436	// non-interface field appearing in ForceSendFields will be sent to the
1437	// server regardless of whether the field is empty or not. This may be
1438	// used to include empty fields in Patch requests.
1439	ForceSendFields []string `json:"-"`
1440
1441	// NullFields is a list of field names (e.g. "Basic") to include in API
1442	// requests with the JSON null value. By default, fields with empty
1443	// values are omitted from API requests. However, any field with an
1444	// empty value appearing in NullFields will be sent to the server as
1445	// null. It is an error if a field in this list has a non-empty value.
1446	// This may be used to include null fields in Patch requests.
1447	NullFields []string `json:"-"`
1448}
1449
1450func (s *GoogleIdentityAccesscontextmanagerV1AccessLevel) MarshalJSON() ([]byte, error) {
1451	type NoMethod GoogleIdentityAccesscontextmanagerV1AccessLevel
1452	raw := NoMethod(*s)
1453	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1454}
1455
1456// GoogleIdentityAccesscontextmanagerV1AccessPolicy: `AccessPolicy` is a
1457// container for `AccessLevels` (which define the necessary
1458// attributes to use Google Cloud services) and `ServicePerimeters`
1459// (which
1460// define regions of services able to freely pass data within a
1461// perimeter). An
1462// access policy is globally visible within an organization, and
1463// the
1464// restrictions it specifies apply to all projects within an
1465// organization.
1466type GoogleIdentityAccesscontextmanagerV1AccessPolicy struct {
1467	// Etag: Output only. An opaque identifier for the current version of
1468	// the
1469	// `AccessPolicy`. This will always be a strongly validated etag,
1470	// meaning that
1471	// two Access Polices will be identical if and only if their etags
1472	// are
1473	// identical. Clients should not expect this to be in any specific
1474	// format.
1475	Etag string `json:"etag,omitempty"`
1476
1477	// Name: Output only. Resource name of the `AccessPolicy`.
1478	// Format:
1479	// `accessPolicies/{policy_id}`
1480	Name string `json:"name,omitempty"`
1481
1482	// Parent: Required. The parent of this `AccessPolicy` in the Cloud
1483	// Resource
1484	// Hierarchy. Currently immutable once created.
1485	// Format:
1486	// `organizations/{organization_id}`
1487	Parent string `json:"parent,omitempty"`
1488
1489	// Title: Required. Human readable title. Does not affect behavior.
1490	Title string `json:"title,omitempty"`
1491
1492	// ForceSendFields is a list of field names (e.g. "Etag") to
1493	// unconditionally include in API requests. By default, fields with
1494	// empty values are omitted from API requests. However, any non-pointer,
1495	// non-interface field appearing in ForceSendFields will be sent to the
1496	// server regardless of whether the field is empty or not. This may be
1497	// used to include empty fields in Patch requests.
1498	ForceSendFields []string `json:"-"`
1499
1500	// NullFields is a list of field names (e.g. "Etag") to include in API
1501	// requests with the JSON null value. By default, fields with empty
1502	// values are omitted from API requests. However, any field with an
1503	// empty value appearing in NullFields will be sent to the server as
1504	// null. It is an error if a field in this list has a non-empty value.
1505	// This may be used to include null fields in Patch requests.
1506	NullFields []string `json:"-"`
1507}
1508
1509func (s *GoogleIdentityAccesscontextmanagerV1AccessPolicy) MarshalJSON() ([]byte, error) {
1510	type NoMethod GoogleIdentityAccesscontextmanagerV1AccessPolicy
1511	raw := NoMethod(*s)
1512	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1513}
1514
1515// GoogleIdentityAccesscontextmanagerV1BasicLevel: `BasicLevel` is an
1516// `AccessLevel` using a set of recommended features.
1517type GoogleIdentityAccesscontextmanagerV1BasicLevel struct {
1518	// CombiningFunction: How the `conditions` list should be combined to
1519	// determine if a request is
1520	// granted this `AccessLevel`. If AND is used, each `Condition`
1521	// in
1522	// `conditions` must be satisfied for the `AccessLevel` to be applied.
1523	// If OR
1524	// is used, at least one `Condition` in `conditions` must be satisfied
1525	// for the
1526	// `AccessLevel` to be applied. Default behavior is AND.
1527	//
1528	// Possible values:
1529	//   "AND" - All `Conditions` must be true for the `BasicLevel` to be
1530	// true.
1531	//   "OR" - If at least one `Condition` is true, then the `BasicLevel`
1532	// is true.
1533	CombiningFunction string `json:"combiningFunction,omitempty"`
1534
1535	// Conditions: Required. A list of requirements for the `AccessLevel` to
1536	// be granted.
1537	Conditions []*GoogleIdentityAccesscontextmanagerV1Condition `json:"conditions,omitempty"`
1538
1539	// ForceSendFields is a list of field names (e.g. "CombiningFunction")
1540	// to unconditionally include in API requests. By default, fields with
1541	// empty values are omitted from API requests. However, any non-pointer,
1542	// non-interface field appearing in ForceSendFields will be sent to the
1543	// server regardless of whether the field is empty or not. This may be
1544	// used to include empty fields in Patch requests.
1545	ForceSendFields []string `json:"-"`
1546
1547	// NullFields is a list of field names (e.g. "CombiningFunction") to
1548	// include in API requests with the JSON null value. By default, fields
1549	// with empty values are omitted from API requests. However, any field
1550	// with an empty value appearing in NullFields will be sent to the
1551	// server as null. It is an error if a field in this list has a
1552	// non-empty value. This may be used to include null fields in Patch
1553	// requests.
1554	NullFields []string `json:"-"`
1555}
1556
1557func (s *GoogleIdentityAccesscontextmanagerV1BasicLevel) MarshalJSON() ([]byte, error) {
1558	type NoMethod GoogleIdentityAccesscontextmanagerV1BasicLevel
1559	raw := NoMethod(*s)
1560	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1561}
1562
1563// GoogleIdentityAccesscontextmanagerV1Condition: A condition necessary
1564// for an `AccessLevel` to be granted. The Condition is an
1565// AND over its fields. So a Condition is true if: 1) the request IP is
1566// from one
1567// of the listed subnetworks AND 2) the originating device complies with
1568// the
1569// listed device policy AND 3) all listed access levels are granted AND
1570// 4) the
1571// request was sent at a time allowed by the DateTimeRestriction.
1572type GoogleIdentityAccesscontextmanagerV1Condition struct {
1573	// DevicePolicy: Device specific restrictions, all restrictions must
1574	// hold for the
1575	// Condition to be true. If not specified, all devices are allowed.
1576	DevicePolicy *GoogleIdentityAccesscontextmanagerV1DevicePolicy `json:"devicePolicy,omitempty"`
1577
1578	// IpSubnetworks: CIDR block IP subnetwork specification. May be IPv4 or
1579	// IPv6. Note that for
1580	// a CIDR IP address block, the specified IP address portion must be
1581	// properly
1582	// truncated (i.e. all the host bits must be zero) or the input is
1583	// considered
1584	// malformed. For example, "192.0.2.0/24" is accepted but "192.0.2.1/24"
1585	// is
1586	// not. Similarly, for IPv6, "2001:db8::/32" is accepted
1587	// whereas
1588	// "2001:db8::1/32" is not. The originating IP of a request must be in
1589	// one of
1590	// the listed subnets in order for this Condition to be true. If empty,
1591	// all IP
1592	// addresses are allowed.
1593	IpSubnetworks []string `json:"ipSubnetworks,omitempty"`
1594
1595	// Members: The request must be made by one of the provided user or
1596	// service
1597	// accounts. Groups are not
1598	// supported.
1599	// Syntax:
1600	// `user:{emailid}`
1601	// `serviceAccount:{emailid}`
1602	// If not specified, a request may come from any user.
1603	Members []string `json:"members,omitempty"`
1604
1605	// Negate: Whether to negate the Condition. If true, the Condition
1606	// becomes a NAND over
1607	// its non-empty fields, each field must be false for the Condition
1608	// overall to
1609	// be satisfied. Defaults to false.
1610	Negate bool `json:"negate,omitempty"`
1611
1612	// Regions: The request must originate from one of the provided
1613	// countries/regions.
1614	// Must be valid ISO 3166-1 alpha-2 codes.
1615	Regions []string `json:"regions,omitempty"`
1616
1617	// RequiredAccessLevels: A list of other access levels defined in the
1618	// same `Policy`, referenced by
1619	// resource name. Referencing an `AccessLevel` which does not exist is
1620	// an
1621	// error. All access levels listed must be granted for the Condition
1622	// to be true.
1623	// Example:
1624	// "accessPolicies/MY_POLICY/accessLevels/LEVEL_NAME"
1625	RequiredAccessLevels []string `json:"requiredAccessLevels,omitempty"`
1626
1627	// ForceSendFields is a list of field names (e.g. "DevicePolicy") to
1628	// unconditionally include in API requests. By default, fields with
1629	// empty values are omitted from API requests. However, any non-pointer,
1630	// non-interface field appearing in ForceSendFields will be sent to the
1631	// server regardless of whether the field is empty or not. This may be
1632	// used to include empty fields in Patch requests.
1633	ForceSendFields []string `json:"-"`
1634
1635	// NullFields is a list of field names (e.g. "DevicePolicy") to include
1636	// in API requests with the JSON null value. By default, fields with
1637	// empty values are omitted from API requests. However, any field with
1638	// an empty value appearing in NullFields will be sent to the server as
1639	// null. It is an error if a field in this list has a non-empty value.
1640	// This may be used to include null fields in Patch requests.
1641	NullFields []string `json:"-"`
1642}
1643
1644func (s *GoogleIdentityAccesscontextmanagerV1Condition) MarshalJSON() ([]byte, error) {
1645	type NoMethod GoogleIdentityAccesscontextmanagerV1Condition
1646	raw := NoMethod(*s)
1647	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1648}
1649
1650// GoogleIdentityAccesscontextmanagerV1CustomLevel: `CustomLevel` is an
1651// `AccessLevel` using the Cloud Common Expression Language
1652// to represent the necessary conditions for the level to apply to a
1653// request.
1654// See CEL spec at: https://github.com/google/cel-spec
1655type GoogleIdentityAccesscontextmanagerV1CustomLevel struct {
1656	// Expr: Required. A Cloud CEL expression evaluating to a boolean.
1657	Expr *Expr `json:"expr,omitempty"`
1658
1659	// ForceSendFields is a list of field names (e.g. "Expr") to
1660	// unconditionally include in API requests. By default, fields with
1661	// empty values are omitted from API requests. However, any non-pointer,
1662	// non-interface field appearing in ForceSendFields will be sent to the
1663	// server regardless of whether the field is empty or not. This may be
1664	// used to include empty fields in Patch requests.
1665	ForceSendFields []string `json:"-"`
1666
1667	// NullFields is a list of field names (e.g. "Expr") to include in API
1668	// requests with the JSON null value. By default, fields with empty
1669	// values are omitted from API requests. However, any field with an
1670	// empty value appearing in NullFields will be sent to the server as
1671	// null. It is an error if a field in this list has a non-empty value.
1672	// This may be used to include null fields in Patch requests.
1673	NullFields []string `json:"-"`
1674}
1675
1676func (s *GoogleIdentityAccesscontextmanagerV1CustomLevel) MarshalJSON() ([]byte, error) {
1677	type NoMethod GoogleIdentityAccesscontextmanagerV1CustomLevel
1678	raw := NoMethod(*s)
1679	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1680}
1681
1682// GoogleIdentityAccesscontextmanagerV1DevicePolicy: `DevicePolicy`
1683// specifies device specific restrictions necessary to acquire a
1684// given access level. A `DevicePolicy` specifies requirements for
1685// requests from
1686// devices to be granted access levels, it does not do any enforcement
1687// on the
1688// device. `DevicePolicy` acts as an AND over all specified fields, and
1689// each
1690// repeated field is an OR over its elements. Any unset fields are
1691// ignored. For
1692// example, if the proto is { os_type : DESKTOP_WINDOWS, os_type
1693// :
1694// DESKTOP_LINUX, encryption_status: ENCRYPTED}, then the DevicePolicy
1695// will be
1696// true for requests originating from encrypted Linux desktops and
1697// encrypted
1698// Windows desktops.
1699type GoogleIdentityAccesscontextmanagerV1DevicePolicy struct {
1700	// AllowedDeviceManagementLevels: Allowed device management levels, an
1701	// empty list allows all management
1702	// levels.
1703	//
1704	// Possible values:
1705	//   "MANAGEMENT_UNSPECIFIED" - The device's management level is not
1706	// specified or not known.
1707	//   "NONE" - The device is not managed.
1708	//   "BASIC" - Basic management is enabled, which is generally limited
1709	// to monitoring and
1710	// wiping the corporate account.
1711	//   "COMPLETE" - Complete device management. This includes more
1712	// thorough monitoring and the
1713	// ability to directly manage the device (such as remote wiping). This
1714	// can be
1715	// enabled through the Android Enterprise Platform.
1716	AllowedDeviceManagementLevels []string `json:"allowedDeviceManagementLevels,omitempty"`
1717
1718	// AllowedEncryptionStatuses: Allowed encryptions statuses, an empty
1719	// list allows all statuses.
1720	//
1721	// Possible values:
1722	//   "ENCRYPTION_UNSPECIFIED" - The encryption status of the device is
1723	// not specified or not known.
1724	//   "ENCRYPTION_UNSUPPORTED" - The device does not support encryption.
1725	//   "UNENCRYPTED" - The device supports encryption, but is currently
1726	// unencrypted.
1727	//   "ENCRYPTED" - The device is encrypted.
1728	AllowedEncryptionStatuses []string `json:"allowedEncryptionStatuses,omitempty"`
1729
1730	// OsConstraints: Allowed OS versions, an empty list allows all types
1731	// and all versions.
1732	OsConstraints []*GoogleIdentityAccesscontextmanagerV1OsConstraint `json:"osConstraints,omitempty"`
1733
1734	// RequireAdminApproval: Whether the device needs to be approved by the
1735	// customer admin.
1736	RequireAdminApproval bool `json:"requireAdminApproval,omitempty"`
1737
1738	// RequireCorpOwned: Whether the device needs to be corp owned.
1739	RequireCorpOwned bool `json:"requireCorpOwned,omitempty"`
1740
1741	// RequireScreenlock: Whether or not screenlock is required for the
1742	// DevicePolicy to be true.
1743	// Defaults to `false`.
1744	RequireScreenlock bool `json:"requireScreenlock,omitempty"`
1745
1746	// ForceSendFields is a list of field names (e.g.
1747	// "AllowedDeviceManagementLevels") to unconditionally include in API
1748	// requests. By default, fields with empty values are omitted from API
1749	// requests. However, any non-pointer, non-interface field appearing in
1750	// ForceSendFields will be sent to the server regardless of whether the
1751	// field is empty or not. This may be used to include empty fields in
1752	// Patch requests.
1753	ForceSendFields []string `json:"-"`
1754
1755	// NullFields is a list of field names (e.g.
1756	// "AllowedDeviceManagementLevels") to include in API requests with the
1757	// JSON null value. By default, fields with empty values are omitted
1758	// from API requests. However, any field with an empty value appearing
1759	// in NullFields will be sent to the server as null. It is an error if a
1760	// field in this list has a non-empty value. This may be used to include
1761	// null fields in Patch requests.
1762	NullFields []string `json:"-"`
1763}
1764
1765func (s *GoogleIdentityAccesscontextmanagerV1DevicePolicy) MarshalJSON() ([]byte, error) {
1766	type NoMethod GoogleIdentityAccesscontextmanagerV1DevicePolicy
1767	raw := NoMethod(*s)
1768	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1769}
1770
1771// GoogleIdentityAccesscontextmanagerV1OsConstraint: A restriction on
1772// the OS type and version of devices making requests.
1773type GoogleIdentityAccesscontextmanagerV1OsConstraint struct {
1774	// MinimumVersion: The minimum allowed OS version. If not set, any
1775	// version of this OS
1776	// satisfies the constraint. Format: "major.minor.patch".
1777	// Examples: "10.5.301", "9.2.1".
1778	MinimumVersion string `json:"minimumVersion,omitempty"`
1779
1780	// OsType: Required. The allowed OS type.
1781	//
1782	// Possible values:
1783	//   "OS_UNSPECIFIED" - The operating system of the device is not
1784	// specified or not known.
1785	//   "DESKTOP_MAC" - A desktop Mac operating system.
1786	//   "DESKTOP_WINDOWS" - A desktop Windows operating system.
1787	//   "DESKTOP_LINUX" - A desktop Linux operating system.
1788	//   "DESKTOP_CHROME_OS" - A desktop ChromeOS operating system.
1789	//   "ANDROID" - An Android operating system.
1790	//   "IOS" - An iOS operating system.
1791	OsType string `json:"osType,omitempty"`
1792
1793	// RequireVerifiedChromeOs: Only allows requests from devices with a
1794	// verified Chrome OS.
1795	// Verifications includes requirements that the device is
1796	// enterprise-managed,
1797	// conformant to domain policies, and the caller has permission to
1798	// call
1799	// the API targeted by the request.
1800	RequireVerifiedChromeOs bool `json:"requireVerifiedChromeOs,omitempty"`
1801
1802	// ForceSendFields is a list of field names (e.g. "MinimumVersion") to
1803	// unconditionally include in API requests. By default, fields with
1804	// empty values are omitted from API requests. However, any non-pointer,
1805	// non-interface field appearing in ForceSendFields will be sent to the
1806	// server regardless of whether the field is empty or not. This may be
1807	// used to include empty fields in Patch requests.
1808	ForceSendFields []string `json:"-"`
1809
1810	// NullFields is a list of field names (e.g. "MinimumVersion") to
1811	// include in API requests with the JSON null value. By default, fields
1812	// with empty values are omitted from API requests. However, any field
1813	// with an empty value appearing in NullFields will be sent to the
1814	// server as null. It is an error if a field in this list has a
1815	// non-empty value. This may be used to include null fields in Patch
1816	// requests.
1817	NullFields []string `json:"-"`
1818}
1819
1820func (s *GoogleIdentityAccesscontextmanagerV1OsConstraint) MarshalJSON() ([]byte, error) {
1821	type NoMethod GoogleIdentityAccesscontextmanagerV1OsConstraint
1822	raw := NoMethod(*s)
1823	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1824}
1825
1826// GoogleIdentityAccesscontextmanagerV1ServicePerimeter:
1827// `ServicePerimeter` describes a set of Google Cloud resources which
1828// can freely
1829// import and export data amongst themselves, but not export outside of
1830// the
1831// `ServicePerimeter`. If a request with a source within this
1832// `ServicePerimeter`
1833// has a target outside of the `ServicePerimeter`, the request will be
1834// blocked.
1835// Otherwise the request is allowed. There are two types of Service
1836// Perimeter -
1837// Regular and Bridge. Regular Service Perimeters cannot overlap, a
1838// single
1839// Google Cloud project can only belong to a single regular Service
1840// Perimeter.
1841// Service Perimeter Bridges can contain only Google Cloud projects as
1842// members,
1843// a single Google Cloud project may belong to multiple Service
1844// Perimeter
1845// Bridges.
1846type GoogleIdentityAccesscontextmanagerV1ServicePerimeter struct {
1847	// Description: Description of the `ServicePerimeter` and its use. Does
1848	// not affect
1849	// behavior.
1850	Description string `json:"description,omitempty"`
1851
1852	// Name: Required. Resource name for the ServicePerimeter.  The
1853	// `short_name`
1854	// component must begin with a letter and only include alphanumeric and
1855	// '_'.
1856	// Format: `accessPolicies/{policy_id}/servicePerimeters/{short_name}`
1857	Name string `json:"name,omitempty"`
1858
1859	// PerimeterType: Perimeter type indicator. A single project is
1860	// allowed to be a member of single regular perimeter, but multiple
1861	// service
1862	// perimeter bridges. A project cannot be a included in a perimeter
1863	// bridge
1864	// without being included in regular perimeter. For perimeter
1865	// bridges,
1866	// the restricted service list as well as access level lists must
1867	// be
1868	// empty.
1869	//
1870	// Possible values:
1871	//   "PERIMETER_TYPE_REGULAR" - Regular Perimeter.
1872	//   "PERIMETER_TYPE_BRIDGE" - Perimeter Bridge.
1873	PerimeterType string `json:"perimeterType,omitempty"`
1874
1875	// Spec: Proposed (or dry run) ServicePerimeter configuration. This
1876	// configuration
1877	// allows to specify and test ServicePerimeter configuration without
1878	// enforcing
1879	// actual access restrictions. Only allowed to be set when
1880	// the
1881	// "use_explicit_dry_run_spec" flag is set.
1882	Spec *GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig `json:"spec,omitempty"`
1883
1884	// Status: Current ServicePerimeter configuration. Specifies sets of
1885	// resources,
1886	// restricted services and access levels that determine
1887	// perimeter
1888	// content and boundaries.
1889	Status *GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig `json:"status,omitempty"`
1890
1891	// Title: Human readable title. Must be unique within the Policy.
1892	Title string `json:"title,omitempty"`
1893
1894	// UseExplicitDryRunSpec: Use explicit dry run spec flag. Ordinarily, a
1895	// dry-run spec implicitly
1896	// exists  for all Service Perimeters, and that spec is identical to
1897	// the
1898	// status for those Service Perimeters. When this flag is set, it
1899	// inhibits the
1900	// generation of the implicit spec, thereby allowing the user to
1901	// explicitly
1902	// provide a configuration ("spec") to use in a dry-run version of the
1903	// Service
1904	// Perimeter. This allows the user to test changes to the enforced
1905	// config
1906	// ("status") without actually enforcing them. This testing is done
1907	// through
1908	// analyzing the differences between currently enforced and
1909	// suggested
1910	// restrictions. use_explicit_dry_run_spec must bet set to True if any
1911	// of the
1912	// fields in the spec are set to non-default values.
1913	UseExplicitDryRunSpec bool `json:"useExplicitDryRunSpec,omitempty"`
1914
1915	// ForceSendFields is a list of field names (e.g. "Description") to
1916	// unconditionally include in API requests. By default, fields with
1917	// empty values are omitted from API requests. However, any non-pointer,
1918	// non-interface field appearing in ForceSendFields will be sent to the
1919	// server regardless of whether the field is empty or not. This may be
1920	// used to include empty fields in Patch requests.
1921	ForceSendFields []string `json:"-"`
1922
1923	// NullFields is a list of field names (e.g. "Description") to include
1924	// in API requests with the JSON null value. By default, fields with
1925	// empty values are omitted from API requests. However, any field with
1926	// an empty value appearing in NullFields will be sent to the server as
1927	// null. It is an error if a field in this list has a non-empty value.
1928	// This may be used to include null fields in Patch requests.
1929	NullFields []string `json:"-"`
1930}
1931
1932func (s *GoogleIdentityAccesscontextmanagerV1ServicePerimeter) MarshalJSON() ([]byte, error) {
1933	type NoMethod GoogleIdentityAccesscontextmanagerV1ServicePerimeter
1934	raw := NoMethod(*s)
1935	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1936}
1937
1938// GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig:
1939// `ServicePerimeterConfig` specifies a set of Google Cloud resources
1940// that
1941// describe specific Service Perimeter configuration.
1942type GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig struct {
1943	// AccessLevels: A list of `AccessLevel` resource names that allow
1944	// resources within the
1945	// `ServicePerimeter` to be accessed from the internet. `AccessLevels`
1946	// listed
1947	// must be in the same policy as this `ServicePerimeter`. Referencing
1948	// a
1949	// nonexistent `AccessLevel` is a syntax error. If no `AccessLevel`
1950	// names are
1951	// listed, resources within the perimeter can only be accessed via
1952	// Google
1953	// Cloud calls with request origins within the perimeter.
1954	// Example:
1955	// "accessPolicies/MY_POLICY/accessLevels/MY_LEVEL".
1956	// For Service Perimeter Bridge, must be empty.
1957	AccessLevels []string `json:"accessLevels,omitempty"`
1958
1959	// Resources: A list of Google Cloud resources that are inside of the
1960	// service perimeter.
1961	// Currently only projects are allowed. Format:
1962	// `projects/{project_number}`
1963	Resources []string `json:"resources,omitempty"`
1964
1965	// RestrictedServices: Google Cloud services that are subject to the
1966	// Service Perimeter
1967	// restrictions. For example, if `storage.googleapis.com` is specified,
1968	// access
1969	// to the storage buckets inside the perimeter must meet the
1970	// perimeter's
1971	// access restrictions.
1972	RestrictedServices []string `json:"restrictedServices,omitempty"`
1973
1974	// VpcAccessibleServices: Configuration for APIs allowed within
1975	// Perimeter.
1976	VpcAccessibleServices *GoogleIdentityAccesscontextmanagerV1VpcAccessibleServices `json:"vpcAccessibleServices,omitempty"`
1977
1978	// ForceSendFields is a list of field names (e.g. "AccessLevels") to
1979	// unconditionally include in API requests. By default, fields with
1980	// empty values are omitted from API requests. However, any non-pointer,
1981	// non-interface field appearing in ForceSendFields will be sent to the
1982	// server regardless of whether the field is empty or not. This may be
1983	// used to include empty fields in Patch requests.
1984	ForceSendFields []string `json:"-"`
1985
1986	// NullFields is a list of field names (e.g. "AccessLevels") to include
1987	// in API requests with the JSON null value. By default, fields with
1988	// empty values are omitted from API requests. However, any field with
1989	// an empty value appearing in NullFields will be sent to the server as
1990	// null. It is an error if a field in this list has a non-empty value.
1991	// This may be used to include null fields in Patch requests.
1992	NullFields []string `json:"-"`
1993}
1994
1995func (s *GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig) MarshalJSON() ([]byte, error) {
1996	type NoMethod GoogleIdentityAccesscontextmanagerV1ServicePerimeterConfig
1997	raw := NoMethod(*s)
1998	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1999}
2000
2001// GoogleIdentityAccesscontextmanagerV1VpcAccessibleServices: Specifies
2002// how APIs are allowed to communicate within the Service
2003// Perimeter.
2004type GoogleIdentityAccesscontextmanagerV1VpcAccessibleServices struct {
2005	// AllowedServices: The list of APIs usable within the Service
2006	// Perimeter. Must be empty
2007	// unless 'enable_restriction' is True.
2008	AllowedServices []string `json:"allowedServices,omitempty"`
2009
2010	// EnableRestriction: Whether to restrict API calls within the Service
2011	// Perimeter to the list of
2012	// APIs specified in 'allowed_services'.
2013	EnableRestriction bool `json:"enableRestriction,omitempty"`
2014
2015	// ForceSendFields is a list of field names (e.g. "AllowedServices") to
2016	// unconditionally include in API requests. By default, fields with
2017	// empty values are omitted from API requests. However, any non-pointer,
2018	// non-interface field appearing in ForceSendFields will be sent to the
2019	// server regardless of whether the field is empty or not. This may be
2020	// used to include empty fields in Patch requests.
2021	ForceSendFields []string `json:"-"`
2022
2023	// NullFields is a list of field names (e.g. "AllowedServices") to
2024	// include in API requests with the JSON null value. By default, fields
2025	// with empty values are omitted from API requests. However, any field
2026	// with an empty value appearing in NullFields will be sent to the
2027	// server as null. It is an error if a field in this list has a
2028	// non-empty value. This may be used to include null fields in Patch
2029	// requests.
2030	NullFields []string `json:"-"`
2031}
2032
2033func (s *GoogleIdentityAccesscontextmanagerV1VpcAccessibleServices) MarshalJSON() ([]byte, error) {
2034	type NoMethod GoogleIdentityAccesscontextmanagerV1VpcAccessibleServices
2035	raw := NoMethod(*s)
2036	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2037}
2038
2039type ListFeedsResponse struct {
2040	// Feeds: A list of feeds.
2041	Feeds []*Feed `json:"feeds,omitempty"`
2042
2043	// ServerResponse contains the HTTP response code and headers from the
2044	// server.
2045	googleapi.ServerResponse `json:"-"`
2046
2047	// ForceSendFields is a list of field names (e.g. "Feeds") to
2048	// unconditionally include in API requests. By default, fields with
2049	// empty values are omitted from API requests. However, any non-pointer,
2050	// non-interface field appearing in ForceSendFields will be sent to the
2051	// server regardless of whether the field is empty or not. This may be
2052	// used to include empty fields in Patch requests.
2053	ForceSendFields []string `json:"-"`
2054
2055	// NullFields is a list of field names (e.g. "Feeds") to include in API
2056	// requests with the JSON null value. By default, fields with empty
2057	// values are omitted from API requests. However, any field with an
2058	// empty value appearing in NullFields will be sent to the server as
2059	// null. It is an error if a field in this list has a non-empty value.
2060	// This may be used to include null fields in Patch requests.
2061	NullFields []string `json:"-"`
2062}
2063
2064func (s *ListFeedsResponse) MarshalJSON() ([]byte, error) {
2065	type NoMethod ListFeedsResponse
2066	raw := NoMethod(*s)
2067	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2068}
2069
2070// Operation: This resource represents a long-running operation that is
2071// the result of a
2072// network API call.
2073type Operation struct {
2074	// Done: If the value is `false`, it means the operation is still in
2075	// progress.
2076	// If `true`, the operation is completed, and either `error` or
2077	// `response` is
2078	// available.
2079	Done bool `json:"done,omitempty"`
2080
2081	// Error: The error result of the operation in case of failure or
2082	// cancellation.
2083	Error *Status `json:"error,omitempty"`
2084
2085	// Metadata: Service-specific metadata associated with the operation.
2086	// It typically
2087	// contains progress information and common metadata such as create
2088	// time.
2089	// Some services might not provide such metadata.  Any method that
2090	// returns a
2091	// long-running operation should document the metadata type, if any.
2092	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
2093
2094	// Name: The server-assigned name, which is only unique within the same
2095	// service that
2096	// originally returns it. If you use the default HTTP mapping,
2097	// the
2098	// `name` should be a resource name ending with
2099	// `operations/{unique_id}`.
2100	Name string `json:"name,omitempty"`
2101
2102	// Response: The normal response of the operation in case of success.
2103	// If the original
2104	// method returns no data on success, such as `Delete`, the response
2105	// is
2106	// `google.protobuf.Empty`.  If the original method is
2107	// standard
2108	// `Get`/`Create`/`Update`, the response should be the resource.  For
2109	// other
2110	// methods, the response should have the type `XxxResponse`, where
2111	// `Xxx`
2112	// is the original method name.  For example, if the original method
2113	// name
2114	// is `TakeSnapshot()`, the inferred response type
2115	// is
2116	// `TakeSnapshotResponse`.
2117	Response googleapi.RawMessage `json:"response,omitempty"`
2118
2119	// ServerResponse contains the HTTP response code and headers from the
2120	// server.
2121	googleapi.ServerResponse `json:"-"`
2122
2123	// ForceSendFields is a list of field names (e.g. "Done") to
2124	// unconditionally include in API requests. By default, fields with
2125	// empty values are omitted from API requests. However, any non-pointer,
2126	// non-interface field appearing in ForceSendFields will be sent to the
2127	// server regardless of whether the field is empty or not. This may be
2128	// used to include empty fields in Patch requests.
2129	ForceSendFields []string `json:"-"`
2130
2131	// NullFields is a list of field names (e.g. "Done") to include in API
2132	// requests with the JSON null value. By default, fields with empty
2133	// values are omitted from API requests. However, any field with an
2134	// empty value appearing in NullFields will be sent to the server as
2135	// null. It is an error if a field in this list has a non-empty value.
2136	// This may be used to include null fields in Patch requests.
2137	NullFields []string `json:"-"`
2138}
2139
2140func (s *Operation) MarshalJSON() ([]byte, error) {
2141	type NoMethod Operation
2142	raw := NoMethod(*s)
2143	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2144}
2145
2146// OutputConfig: Output configuration for export assets destination.
2147type OutputConfig struct {
2148	// BigqueryDestination: Destination on BigQuery. The output table stores
2149	// the fields in asset
2150	// proto as columns in BigQuery. The resource/iam_policy field is
2151	// converted
2152	// to a record with each field to a column, except metadata to a single
2153	// JSON
2154	// string.
2155	BigqueryDestination *BigQueryDestination `json:"bigqueryDestination,omitempty"`
2156
2157	// GcsDestination: Destination on Cloud Storage.
2158	GcsDestination *GcsDestination `json:"gcsDestination,omitempty"`
2159
2160	// ForceSendFields is a list of field names (e.g. "BigqueryDestination")
2161	// to unconditionally include in API requests. By default, fields with
2162	// empty values are omitted from API requests. However, any non-pointer,
2163	// non-interface field appearing in ForceSendFields will be sent to the
2164	// server regardless of whether the field is empty or not. This may be
2165	// used to include empty fields in Patch requests.
2166	ForceSendFields []string `json:"-"`
2167
2168	// NullFields is a list of field names (e.g. "BigqueryDestination") to
2169	// include in API requests with the JSON null value. By default, fields
2170	// with empty values are omitted from API requests. However, any field
2171	// with an empty value appearing in NullFields will be sent to the
2172	// server as null. It is an error if a field in this list has a
2173	// non-empty value. This may be used to include null fields in Patch
2174	// requests.
2175	NullFields []string `json:"-"`
2176}
2177
2178func (s *OutputConfig) MarshalJSON() ([]byte, error) {
2179	type NoMethod OutputConfig
2180	raw := NoMethod(*s)
2181	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2182}
2183
2184// Policy: An Identity and Access Management (IAM) policy, which
2185// specifies access
2186// controls for Google Cloud resources.
2187//
2188//
2189// A `Policy` is a collection of `bindings`. A `binding` binds one or
2190// more
2191// `members` to a single `role`. Members can be user accounts, service
2192// accounts,
2193// Google groups, and domains (such as G Suite). A `role` is a named
2194// list of
2195// permissions; each `role` can be an IAM predefined role or a
2196// user-created
2197// custom role.
2198//
2199// Optionally, a `binding` can specify a `condition`, which is a
2200// logical
2201// expression that allows access to a resource only if the expression
2202// evaluates
2203// to `true`. A condition can add constraints based on attributes of
2204// the
2205// request, the resource, or both.
2206//
2207// **JSON example:**
2208//
2209//     {
2210//       "bindings": [
2211//         {
2212//           "role": "roles/resourcemanager.organizationAdmin",
2213//           "members": [
2214//             "user:mike@example.com",
2215//             "group:admins@example.com",
2216//             "domain:google.com",
2217//
2218// "serviceAccount:my-project-id@appspot.gserviceaccount.com"
2219//           ]
2220//         },
2221//         {
2222//           "role": "roles/resourcemanager.organizationViewer",
2223//           "members": ["user:eve@example.com"],
2224//           "condition": {
2225//             "title": "expirable access",
2226//             "description": "Does not grant access after Sep 2020",
2227//             "expression": "request.time <
2228// timestamp('2020-10-01T00:00:00.000Z')",
2229//           }
2230//         }
2231//       ],
2232//       "etag": "BwWWja0YfJA=",
2233//       "version": 3
2234//     }
2235//
2236// **YAML example:**
2237//
2238//     bindings:
2239//     - members:
2240//       - user:mike@example.com
2241//       - group:admins@example.com
2242//       - domain:google.com
2243//       - serviceAccount:my-project-id@appspot.gserviceaccount.com
2244//       role: roles/resourcemanager.organizationAdmin
2245//     - members:
2246//       - user:eve@example.com
2247//       role: roles/resourcemanager.organizationViewer
2248//       condition:
2249//         title: expirable access
2250//         description: Does not grant access after Sep 2020
2251//         expression: request.time <
2252// timestamp('2020-10-01T00:00:00.000Z')
2253//     - etag: BwWWja0YfJA=
2254//     - version: 3
2255//
2256// For a description of IAM and its features, see the
2257// [IAM documentation](https://cloud.google.com/iam/docs/).
2258type Policy struct {
2259	// AuditConfigs: Specifies cloud audit logging configuration for this
2260	// policy.
2261	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
2262
2263	// Bindings: Associates a list of `members` to a `role`. Optionally, may
2264	// specify a
2265	// `condition` that determines how and when the `bindings` are applied.
2266	// Each
2267	// of the `bindings` must contain at least one member.
2268	Bindings []*Binding `json:"bindings,omitempty"`
2269
2270	// Etag: `etag` is used for optimistic concurrency control as a way to
2271	// help
2272	// prevent simultaneous updates of a policy from overwriting each
2273	// other.
2274	// It is strongly suggested that systems make use of the `etag` in
2275	// the
2276	// read-modify-write cycle to perform policy updates in order to avoid
2277	// race
2278	// conditions: An `etag` is returned in the response to `getIamPolicy`,
2279	// and
2280	// systems are expected to put that etag in the request to
2281	// `setIamPolicy` to
2282	// ensure that their change will be applied to the same version of the
2283	// policy.
2284	//
2285	// **Important:** If you use IAM Conditions, you must include the `etag`
2286	// field
2287	// whenever you call `setIamPolicy`. If you omit this field, then IAM
2288	// allows
2289	// you to overwrite a version `3` policy with a version `1` policy, and
2290	// all of
2291	// the conditions in the version `3` policy are lost.
2292	Etag string `json:"etag,omitempty"`
2293
2294	// Version: Specifies the format of the policy.
2295	//
2296	// Valid values are `0`, `1`, and `3`. Requests that specify an invalid
2297	// value
2298	// are rejected.
2299	//
2300	// Any operation that affects conditional role bindings must specify
2301	// version
2302	// `3`. This requirement applies to the following operations:
2303	//
2304	// * Getting a policy that includes a conditional role binding
2305	// * Adding a conditional role binding to a policy
2306	// * Changing a conditional role binding in a policy
2307	// * Removing any role binding, with or without a condition, from a
2308	// policy
2309	//   that includes conditions
2310	//
2311	// **Important:** If you use IAM Conditions, you must include the `etag`
2312	// field
2313	// whenever you call `setIamPolicy`. If you omit this field, then IAM
2314	// allows
2315	// you to overwrite a version `3` policy with a version `1` policy, and
2316	// all of
2317	// the conditions in the version `3` policy are lost.
2318	//
2319	// If a policy does not include any conditions, operations on that
2320	// policy may
2321	// specify any valid version or leave the field unset.
2322	Version int64 `json:"version,omitempty"`
2323
2324	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
2325	// unconditionally include in API requests. By default, fields with
2326	// empty values are omitted from API requests. However, any non-pointer,
2327	// non-interface field appearing in ForceSendFields will be sent to the
2328	// server regardless of whether the field is empty or not. This may be
2329	// used to include empty fields in Patch requests.
2330	ForceSendFields []string `json:"-"`
2331
2332	// NullFields is a list of field names (e.g. "AuditConfigs") to include
2333	// in API requests with the JSON null value. By default, fields with
2334	// empty values are omitted from API requests. However, any field with
2335	// an empty value appearing in NullFields will be sent to the server as
2336	// null. It is an error if a field in this list has a non-empty value.
2337	// This may be used to include null fields in Patch requests.
2338	NullFields []string `json:"-"`
2339}
2340
2341func (s *Policy) MarshalJSON() ([]byte, error) {
2342	type NoMethod Policy
2343	raw := NoMethod(*s)
2344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2345}
2346
2347// PubsubDestination: A Pub/Sub destination.
2348type PubsubDestination struct {
2349	// Topic: The name of the Pub/Sub topic to publish to.
2350	// For example: `projects/PROJECT_ID/topics/TOPIC_ID`.
2351	Topic string `json:"topic,omitempty"`
2352
2353	// ForceSendFields is a list of field names (e.g. "Topic") to
2354	// unconditionally include in API requests. By default, fields with
2355	// empty values are omitted from API requests. However, any non-pointer,
2356	// non-interface field appearing in ForceSendFields will be sent to the
2357	// server regardless of whether the field is empty or not. This may be
2358	// used to include empty fields in Patch requests.
2359	ForceSendFields []string `json:"-"`
2360
2361	// NullFields is a list of field names (e.g. "Topic") to include in API
2362	// requests with the JSON null value. By default, fields with empty
2363	// values are omitted from API requests. However, any field with an
2364	// empty value appearing in NullFields will be sent to the server as
2365	// null. It is an error if a field in this list has a non-empty value.
2366	// This may be used to include null fields in Patch requests.
2367	NullFields []string `json:"-"`
2368}
2369
2370func (s *PubsubDestination) MarshalJSON() ([]byte, error) {
2371	type NoMethod PubsubDestination
2372	raw := NoMethod(*s)
2373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2374}
2375
2376// Resource: A representation of a Google Cloud resource.
2377type Resource struct {
2378	// Data: The content of the resource, in which some sensitive fields are
2379	// removed
2380	// and may not be present.
2381	Data googleapi.RawMessage `json:"data,omitempty"`
2382
2383	// DiscoveryDocumentUri: The URL of the discovery document containing
2384	// the resource's JSON schema.
2385	// For
2386	// example:
2387	// "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest
2388	// "
2389	//
2390	// This value is unspecified for resources that do not have an API based
2391	// on a
2392	// discovery document, such as Cloud Bigtable.
2393	DiscoveryDocumentUri string `json:"discoveryDocumentUri,omitempty"`
2394
2395	// DiscoveryName: The JSON schema name listed in the discovery document.
2396	// For example:
2397	// "Project"
2398	//
2399	// This value is unspecified for resources that do not have an API based
2400	// on a
2401	// discovery document, such as Cloud Bigtable.
2402	DiscoveryName string `json:"discoveryName,omitempty"`
2403
2404	// Parent: The full name of the immediate parent of this resource.
2405	// See
2406	// [Resource
2407	// Names](https://cloud.google.com/apis/design/resource_nam
2408	// es#full_resource_name)
2409	// for more information.
2410	//
2411	// For Google Cloud assets, this value is the parent resource defined in
2412	// the
2413	// [Cloud IAM
2414	// policy
2415	// hierarchy](https://cloud.google.com/iam/docs/overview#policy_hi
2416	// erarchy).
2417	// For
2418	// example:
2419	// "//cloudresourcemanager.googleapis.com/projects/my_project_12
2420	// 3"
2421	//
2422	// For third-party assets, this field may be set differently.
2423	Parent string `json:"parent,omitempty"`
2424
2425	// ResourceUrl: The REST URL for accessing the resource. An HTTP `GET`
2426	// request using this
2427	// URL returns the resource itself. For
2428	// example:
2429	// "https://cloudresourcemanager.googleapis.com/v1/projects/my-p
2430	// roject-123"
2431	//
2432	// This value is unspecified for resources without a REST API.
2433	ResourceUrl string `json:"resourceUrl,omitempty"`
2434
2435	// Version: The API version. For example: "v1"
2436	Version string `json:"version,omitempty"`
2437
2438	// ForceSendFields is a list of field names (e.g. "Data") to
2439	// unconditionally include in API requests. By default, fields with
2440	// empty values are omitted from API requests. However, any non-pointer,
2441	// non-interface field appearing in ForceSendFields will be sent to the
2442	// server regardless of whether the field is empty or not. This may be
2443	// used to include empty fields in Patch requests.
2444	ForceSendFields []string `json:"-"`
2445
2446	// NullFields is a list of field names (e.g. "Data") to include in API
2447	// requests with the JSON null value. By default, fields with empty
2448	// values are omitted from API requests. However, any field with an
2449	// empty value appearing in NullFields will be sent to the server as
2450	// null. It is an error if a field in this list has a non-empty value.
2451	// This may be used to include null fields in Patch requests.
2452	NullFields []string `json:"-"`
2453}
2454
2455func (s *Resource) MarshalJSON() ([]byte, error) {
2456	type NoMethod Resource
2457	raw := NoMethod(*s)
2458	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2459}
2460
2461// Status: The `Status` type defines a logical error model that is
2462// suitable for
2463// different programming environments, including REST APIs and RPC APIs.
2464// It is
2465// used by [gRPC](https://github.com/grpc). Each `Status` message
2466// contains
2467// three pieces of data: error code, error message, and error
2468// details.
2469//
2470// You can find out more about this error model and how to work with it
2471// in the
2472// [API Design Guide](https://cloud.google.com/apis/design/errors).
2473type Status struct {
2474	// Code: The status code, which should be an enum value of
2475	// google.rpc.Code.
2476	Code int64 `json:"code,omitempty"`
2477
2478	// Details: A list of messages that carry the error details.  There is a
2479	// common set of
2480	// message types for APIs to use.
2481	Details []googleapi.RawMessage `json:"details,omitempty"`
2482
2483	// Message: A developer-facing error message, which should be in
2484	// English. Any
2485	// user-facing error message should be localized and sent in
2486	// the
2487	// google.rpc.Status.details field, or localized by the client.
2488	Message string `json:"message,omitempty"`
2489
2490	// ForceSendFields is a list of field names (e.g. "Code") to
2491	// unconditionally include in API requests. By default, fields with
2492	// empty values are omitted from API requests. However, any non-pointer,
2493	// non-interface field appearing in ForceSendFields will be sent to the
2494	// server regardless of whether the field is empty or not. This may be
2495	// used to include empty fields in Patch requests.
2496	ForceSendFields []string `json:"-"`
2497
2498	// NullFields is a list of field names (e.g. "Code") to include in API
2499	// requests with the JSON null value. By default, fields with empty
2500	// values are omitted from API requests. However, any field with an
2501	// empty value appearing in NullFields will be sent to the server as
2502	// null. It is an error if a field in this list has a non-empty value.
2503	// This may be used to include null fields in Patch requests.
2504	NullFields []string `json:"-"`
2505}
2506
2507func (s *Status) MarshalJSON() ([]byte, error) {
2508	type NoMethod Status
2509	raw := NoMethod(*s)
2510	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2511}
2512
2513// TemporalAsset: An asset in Google Cloud and its temporal metadata,
2514// including the time window
2515// when it was observed and its status during that window.
2516type TemporalAsset struct {
2517	// Asset: An asset in Google Cloud.
2518	Asset *Asset `json:"asset,omitempty"`
2519
2520	// Deleted: Whether the asset has been deleted or not.
2521	Deleted bool `json:"deleted,omitempty"`
2522
2523	// Window: The time window when the asset data and state was observed.
2524	Window *TimeWindow `json:"window,omitempty"`
2525
2526	// ForceSendFields is a list of field names (e.g. "Asset") to
2527	// unconditionally include in API requests. By default, fields with
2528	// empty values are omitted from API requests. However, any non-pointer,
2529	// non-interface field appearing in ForceSendFields will be sent to the
2530	// server regardless of whether the field is empty or not. This may be
2531	// used to include empty fields in Patch requests.
2532	ForceSendFields []string `json:"-"`
2533
2534	// NullFields is a list of field names (e.g. "Asset") to include in API
2535	// requests with the JSON null value. By default, fields with empty
2536	// values are omitted from API requests. However, any field with an
2537	// empty value appearing in NullFields will be sent to the server as
2538	// null. It is an error if a field in this list has a non-empty value.
2539	// This may be used to include null fields in Patch requests.
2540	NullFields []string `json:"-"`
2541}
2542
2543func (s *TemporalAsset) MarshalJSON() ([]byte, error) {
2544	type NoMethod TemporalAsset
2545	raw := NoMethod(*s)
2546	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2547}
2548
2549// TimeWindow: A time window specified by its "start_time" and
2550// "end_time".
2551type TimeWindow struct {
2552	// EndTime: End time of the time window (inclusive). If not specified,
2553	// the current
2554	// timestamp is used instead.
2555	EndTime string `json:"endTime,omitempty"`
2556
2557	// StartTime: Start time of the time window (exclusive).
2558	StartTime string `json:"startTime,omitempty"`
2559
2560	// ForceSendFields is a list of field names (e.g. "EndTime") to
2561	// unconditionally include in API requests. By default, fields with
2562	// empty values are omitted from API requests. However, any non-pointer,
2563	// non-interface field appearing in ForceSendFields will be sent to the
2564	// server regardless of whether the field is empty or not. This may be
2565	// used to include empty fields in Patch requests.
2566	ForceSendFields []string `json:"-"`
2567
2568	// NullFields is a list of field names (e.g. "EndTime") to include in
2569	// API requests with the JSON null value. By default, fields with empty
2570	// values are omitted from API requests. However, any field with an
2571	// empty value appearing in NullFields will be sent to the server as
2572	// null. It is an error if a field in this list has a non-empty value.
2573	// This may be used to include null fields in Patch requests.
2574	NullFields []string `json:"-"`
2575}
2576
2577func (s *TimeWindow) MarshalJSON() ([]byte, error) {
2578	type NoMethod TimeWindow
2579	raw := NoMethod(*s)
2580	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2581}
2582
2583// UpdateFeedRequest: Update asset feed request.
2584type UpdateFeedRequest struct {
2585	// Feed: Required. The new values of feed details. It must match an
2586	// existing feed and the
2587	// field `name` must be in the format
2588	// of:
2589	// projects/project_number/feeds/feed_id
2590	// or
2591	// folders/folder_number/feeds/feed_id
2592	// or
2593	// organizations/organization_number/feeds/feed_id.
2594	Feed *Feed `json:"feed,omitempty"`
2595
2596	// UpdateMask: Required. Only updates the `feed` fields indicated by
2597	// this mask.
2598	// The field mask must not be empty, and it must not contain fields
2599	// that
2600	// are immutable or only set by the server.
2601	UpdateMask string `json:"updateMask,omitempty"`
2602
2603	// ForceSendFields is a list of field names (e.g. "Feed") to
2604	// unconditionally include in API requests. By default, fields with
2605	// empty values are omitted from API requests. However, any non-pointer,
2606	// non-interface field appearing in ForceSendFields will be sent to the
2607	// server regardless of whether the field is empty or not. This may be
2608	// used to include empty fields in Patch requests.
2609	ForceSendFields []string `json:"-"`
2610
2611	// NullFields is a list of field names (e.g. "Feed") to include in API
2612	// requests with the JSON null value. By default, fields with empty
2613	// values are omitted from API requests. However, any field with an
2614	// empty value appearing in NullFields will be sent to the server as
2615	// null. It is an error if a field in this list has a non-empty value.
2616	// This may be used to include null fields in Patch requests.
2617	NullFields []string `json:"-"`
2618}
2619
2620func (s *UpdateFeedRequest) MarshalJSON() ([]byte, error) {
2621	type NoMethod UpdateFeedRequest
2622	raw := NoMethod(*s)
2623	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2624}
2625
2626// method id "cloudasset.feeds.create":
2627
2628type FeedsCreateCall struct {
2629	s                 *Service
2630	parent            string
2631	createfeedrequest *CreateFeedRequest
2632	urlParams_        gensupport.URLParams
2633	ctx_              context.Context
2634	header_           http.Header
2635}
2636
2637// Create: Creates a feed in a parent project/folder/organization to
2638// listen to its
2639// asset updates.
2640func (r *FeedsService) Create(parent string, createfeedrequest *CreateFeedRequest) *FeedsCreateCall {
2641	c := &FeedsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2642	c.parent = parent
2643	c.createfeedrequest = createfeedrequest
2644	return c
2645}
2646
2647// Fields allows partial responses to be retrieved. See
2648// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2649// for more information.
2650func (c *FeedsCreateCall) Fields(s ...googleapi.Field) *FeedsCreateCall {
2651	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2652	return c
2653}
2654
2655// Context sets the context to be used in this call's Do method. Any
2656// pending HTTP request will be aborted if the provided context is
2657// canceled.
2658func (c *FeedsCreateCall) Context(ctx context.Context) *FeedsCreateCall {
2659	c.ctx_ = ctx
2660	return c
2661}
2662
2663// Header returns an http.Header that can be modified by the caller to
2664// add HTTP headers to the request.
2665func (c *FeedsCreateCall) Header() http.Header {
2666	if c.header_ == nil {
2667		c.header_ = make(http.Header)
2668	}
2669	return c.header_
2670}
2671
2672func (c *FeedsCreateCall) doRequest(alt string) (*http.Response, error) {
2673	reqHeaders := make(http.Header)
2674	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
2675	for k, v := range c.header_ {
2676		reqHeaders[k] = v
2677	}
2678	reqHeaders.Set("User-Agent", c.s.userAgent())
2679	var body io.Reader = nil
2680	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createfeedrequest)
2681	if err != nil {
2682		return nil, err
2683	}
2684	reqHeaders.Set("Content-Type", "application/json")
2685	c.urlParams_.Set("alt", alt)
2686	c.urlParams_.Set("prettyPrint", "false")
2687	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/feeds")
2688	urls += "?" + c.urlParams_.Encode()
2689	req, err := http.NewRequest("POST", urls, body)
2690	if err != nil {
2691		return nil, err
2692	}
2693	req.Header = reqHeaders
2694	googleapi.Expand(req.URL, map[string]string{
2695		"parent": c.parent,
2696	})
2697	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2698}
2699
2700// Do executes the "cloudasset.feeds.create" call.
2701// Exactly one of *Feed or error will be non-nil. Any non-2xx status
2702// code is an error. Response headers are in either
2703// *Feed.ServerResponse.Header or (if a response was returned at all) in
2704// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
2705// whether the returned error was because http.StatusNotModified was
2706// returned.
2707func (c *FeedsCreateCall) Do(opts ...googleapi.CallOption) (*Feed, error) {
2708	gensupport.SetOptions(c.urlParams_, opts...)
2709	res, err := c.doRequest("json")
2710	if res != nil && res.StatusCode == http.StatusNotModified {
2711		if res.Body != nil {
2712			res.Body.Close()
2713		}
2714		return nil, &googleapi.Error{
2715			Code:   res.StatusCode,
2716			Header: res.Header,
2717		}
2718	}
2719	if err != nil {
2720		return nil, err
2721	}
2722	defer googleapi.CloseBody(res)
2723	if err := googleapi.CheckResponse(res); err != nil {
2724		return nil, err
2725	}
2726	ret := &Feed{
2727		ServerResponse: googleapi.ServerResponse{
2728			Header:         res.Header,
2729			HTTPStatusCode: res.StatusCode,
2730		},
2731	}
2732	target := &ret
2733	if err := gensupport.DecodeResponse(target, res); err != nil {
2734		return nil, err
2735	}
2736	return ret, nil
2737	// {
2738	//   "description": "Creates a feed in a parent project/folder/organization to listen to its\nasset updates.",
2739	//   "flatPath": "v1/{v1Id}/{v1Id1}/feeds",
2740	//   "httpMethod": "POST",
2741	//   "id": "cloudasset.feeds.create",
2742	//   "parameterOrder": [
2743	//     "parent"
2744	//   ],
2745	//   "parameters": {
2746	//     "parent": {
2747	//       "description": "Required. The name of the project/folder/organization where this feed\nshould be created in. It can only be an organization number (such as\n\"organizations/123\"), a folder number (such as \"folders/123\"), a project ID\n(such as \"projects/my-project-id\")\", or a project number (such as\n\"projects/12345\").",
2748	//       "location": "path",
2749	//       "pattern": "^[^/]+/[^/]+$",
2750	//       "required": true,
2751	//       "type": "string"
2752	//     }
2753	//   },
2754	//   "path": "v1/{+parent}/feeds",
2755	//   "request": {
2756	//     "$ref": "CreateFeedRequest"
2757	//   },
2758	//   "response": {
2759	//     "$ref": "Feed"
2760	//   },
2761	//   "scopes": [
2762	//     "https://www.googleapis.com/auth/cloud-platform"
2763	//   ]
2764	// }
2765
2766}
2767
2768// method id "cloudasset.feeds.delete":
2769
2770type FeedsDeleteCall struct {
2771	s          *Service
2772	name       string
2773	urlParams_ gensupport.URLParams
2774	ctx_       context.Context
2775	header_    http.Header
2776}
2777
2778// Delete: Deletes an asset feed.
2779func (r *FeedsService) Delete(name string) *FeedsDeleteCall {
2780	c := &FeedsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2781	c.name = name
2782	return c
2783}
2784
2785// Fields allows partial responses to be retrieved. See
2786// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2787// for more information.
2788func (c *FeedsDeleteCall) Fields(s ...googleapi.Field) *FeedsDeleteCall {
2789	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2790	return c
2791}
2792
2793// Context sets the context to be used in this call's Do method. Any
2794// pending HTTP request will be aborted if the provided context is
2795// canceled.
2796func (c *FeedsDeleteCall) Context(ctx context.Context) *FeedsDeleteCall {
2797	c.ctx_ = ctx
2798	return c
2799}
2800
2801// Header returns an http.Header that can be modified by the caller to
2802// add HTTP headers to the request.
2803func (c *FeedsDeleteCall) Header() http.Header {
2804	if c.header_ == nil {
2805		c.header_ = make(http.Header)
2806	}
2807	return c.header_
2808}
2809
2810func (c *FeedsDeleteCall) doRequest(alt string) (*http.Response, error) {
2811	reqHeaders := make(http.Header)
2812	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
2813	for k, v := range c.header_ {
2814		reqHeaders[k] = v
2815	}
2816	reqHeaders.Set("User-Agent", c.s.userAgent())
2817	var body io.Reader = nil
2818	c.urlParams_.Set("alt", alt)
2819	c.urlParams_.Set("prettyPrint", "false")
2820	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
2821	urls += "?" + c.urlParams_.Encode()
2822	req, err := http.NewRequest("DELETE", urls, body)
2823	if err != nil {
2824		return nil, err
2825	}
2826	req.Header = reqHeaders
2827	googleapi.Expand(req.URL, map[string]string{
2828		"name": c.name,
2829	})
2830	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2831}
2832
2833// Do executes the "cloudasset.feeds.delete" call.
2834// Exactly one of *Empty or error will be non-nil. Any non-2xx status
2835// code is an error. Response headers are in either
2836// *Empty.ServerResponse.Header or (if a response was returned at all)
2837// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
2838// check whether the returned error was because http.StatusNotModified
2839// was returned.
2840func (c *FeedsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
2841	gensupport.SetOptions(c.urlParams_, opts...)
2842	res, err := c.doRequest("json")
2843	if res != nil && res.StatusCode == http.StatusNotModified {
2844		if res.Body != nil {
2845			res.Body.Close()
2846		}
2847		return nil, &googleapi.Error{
2848			Code:   res.StatusCode,
2849			Header: res.Header,
2850		}
2851	}
2852	if err != nil {
2853		return nil, err
2854	}
2855	defer googleapi.CloseBody(res)
2856	if err := googleapi.CheckResponse(res); err != nil {
2857		return nil, err
2858	}
2859	ret := &Empty{
2860		ServerResponse: googleapi.ServerResponse{
2861			Header:         res.Header,
2862			HTTPStatusCode: res.StatusCode,
2863		},
2864	}
2865	target := &ret
2866	if err := gensupport.DecodeResponse(target, res); err != nil {
2867		return nil, err
2868	}
2869	return ret, nil
2870	// {
2871	//   "description": "Deletes an asset feed.",
2872	//   "flatPath": "v1/{v1Id}/{v1Id1}/feeds/{feedsId}",
2873	//   "httpMethod": "DELETE",
2874	//   "id": "cloudasset.feeds.delete",
2875	//   "parameterOrder": [
2876	//     "name"
2877	//   ],
2878	//   "parameters": {
2879	//     "name": {
2880	//       "description": "Required. The name of the feed and it must be in the format of:\nprojects/project_number/feeds/feed_id\nfolders/folder_number/feeds/feed_id\norganizations/organization_number/feeds/feed_id",
2881	//       "location": "path",
2882	//       "pattern": "^[^/]+/[^/]+/feeds/[^/]+$",
2883	//       "required": true,
2884	//       "type": "string"
2885	//     }
2886	//   },
2887	//   "path": "v1/{+name}",
2888	//   "response": {
2889	//     "$ref": "Empty"
2890	//   },
2891	//   "scopes": [
2892	//     "https://www.googleapis.com/auth/cloud-platform"
2893	//   ]
2894	// }
2895
2896}
2897
2898// method id "cloudasset.feeds.get":
2899
2900type FeedsGetCall struct {
2901	s            *Service
2902	name         string
2903	urlParams_   gensupport.URLParams
2904	ifNoneMatch_ string
2905	ctx_         context.Context
2906	header_      http.Header
2907}
2908
2909// Get: Gets details about an asset feed.
2910func (r *FeedsService) Get(name string) *FeedsGetCall {
2911	c := &FeedsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2912	c.name = name
2913	return c
2914}
2915
2916// Fields allows partial responses to be retrieved. See
2917// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2918// for more information.
2919func (c *FeedsGetCall) Fields(s ...googleapi.Field) *FeedsGetCall {
2920	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2921	return c
2922}
2923
2924// IfNoneMatch sets the optional parameter which makes the operation
2925// fail if the object's ETag matches the given value. This is useful for
2926// getting updates only after the object has changed since the last
2927// request. Use googleapi.IsNotModified to check whether the response
2928// error from Do is the result of In-None-Match.
2929func (c *FeedsGetCall) IfNoneMatch(entityTag string) *FeedsGetCall {
2930	c.ifNoneMatch_ = entityTag
2931	return c
2932}
2933
2934// Context sets the context to be used in this call's Do method. Any
2935// pending HTTP request will be aborted if the provided context is
2936// canceled.
2937func (c *FeedsGetCall) Context(ctx context.Context) *FeedsGetCall {
2938	c.ctx_ = ctx
2939	return c
2940}
2941
2942// Header returns an http.Header that can be modified by the caller to
2943// add HTTP headers to the request.
2944func (c *FeedsGetCall) Header() http.Header {
2945	if c.header_ == nil {
2946		c.header_ = make(http.Header)
2947	}
2948	return c.header_
2949}
2950
2951func (c *FeedsGetCall) doRequest(alt string) (*http.Response, error) {
2952	reqHeaders := make(http.Header)
2953	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
2954	for k, v := range c.header_ {
2955		reqHeaders[k] = v
2956	}
2957	reqHeaders.Set("User-Agent", c.s.userAgent())
2958	if c.ifNoneMatch_ != "" {
2959		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
2960	}
2961	var body io.Reader = nil
2962	c.urlParams_.Set("alt", alt)
2963	c.urlParams_.Set("prettyPrint", "false")
2964	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
2965	urls += "?" + c.urlParams_.Encode()
2966	req, err := http.NewRequest("GET", urls, body)
2967	if err != nil {
2968		return nil, err
2969	}
2970	req.Header = reqHeaders
2971	googleapi.Expand(req.URL, map[string]string{
2972		"name": c.name,
2973	})
2974	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2975}
2976
2977// Do executes the "cloudasset.feeds.get" call.
2978// Exactly one of *Feed or error will be non-nil. Any non-2xx status
2979// code is an error. Response headers are in either
2980// *Feed.ServerResponse.Header or (if a response was returned at all) in
2981// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
2982// whether the returned error was because http.StatusNotModified was
2983// returned.
2984func (c *FeedsGetCall) Do(opts ...googleapi.CallOption) (*Feed, error) {
2985	gensupport.SetOptions(c.urlParams_, opts...)
2986	res, err := c.doRequest("json")
2987	if res != nil && res.StatusCode == http.StatusNotModified {
2988		if res.Body != nil {
2989			res.Body.Close()
2990		}
2991		return nil, &googleapi.Error{
2992			Code:   res.StatusCode,
2993			Header: res.Header,
2994		}
2995	}
2996	if err != nil {
2997		return nil, err
2998	}
2999	defer googleapi.CloseBody(res)
3000	if err := googleapi.CheckResponse(res); err != nil {
3001		return nil, err
3002	}
3003	ret := &Feed{
3004		ServerResponse: googleapi.ServerResponse{
3005			Header:         res.Header,
3006			HTTPStatusCode: res.StatusCode,
3007		},
3008	}
3009	target := &ret
3010	if err := gensupport.DecodeResponse(target, res); err != nil {
3011		return nil, err
3012	}
3013	return ret, nil
3014	// {
3015	//   "description": "Gets details about an asset feed.",
3016	//   "flatPath": "v1/{v1Id}/{v1Id1}/feeds/{feedsId}",
3017	//   "httpMethod": "GET",
3018	//   "id": "cloudasset.feeds.get",
3019	//   "parameterOrder": [
3020	//     "name"
3021	//   ],
3022	//   "parameters": {
3023	//     "name": {
3024	//       "description": "Required. The name of the Feed and it must be in the format of:\nprojects/project_number/feeds/feed_id\nfolders/folder_number/feeds/feed_id\norganizations/organization_number/feeds/feed_id",
3025	//       "location": "path",
3026	//       "pattern": "^[^/]+/[^/]+/feeds/[^/]+$",
3027	//       "required": true,
3028	//       "type": "string"
3029	//     }
3030	//   },
3031	//   "path": "v1/{+name}",
3032	//   "response": {
3033	//     "$ref": "Feed"
3034	//   },
3035	//   "scopes": [
3036	//     "https://www.googleapis.com/auth/cloud-platform"
3037	//   ]
3038	// }
3039
3040}
3041
3042// method id "cloudasset.feeds.list":
3043
3044type FeedsListCall struct {
3045	s            *Service
3046	parent       string
3047	urlParams_   gensupport.URLParams
3048	ifNoneMatch_ string
3049	ctx_         context.Context
3050	header_      http.Header
3051}
3052
3053// List: Lists all asset feeds in a parent project/folder/organization.
3054func (r *FeedsService) List(parent string) *FeedsListCall {
3055	c := &FeedsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3056	c.parent = parent
3057	return c
3058}
3059
3060// Fields allows partial responses to be retrieved. See
3061// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3062// for more information.
3063func (c *FeedsListCall) Fields(s ...googleapi.Field) *FeedsListCall {
3064	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3065	return c
3066}
3067
3068// IfNoneMatch sets the optional parameter which makes the operation
3069// fail if the object's ETag matches the given value. This is useful for
3070// getting updates only after the object has changed since the last
3071// request. Use googleapi.IsNotModified to check whether the response
3072// error from Do is the result of In-None-Match.
3073func (c *FeedsListCall) IfNoneMatch(entityTag string) *FeedsListCall {
3074	c.ifNoneMatch_ = entityTag
3075	return c
3076}
3077
3078// Context sets the context to be used in this call's Do method. Any
3079// pending HTTP request will be aborted if the provided context is
3080// canceled.
3081func (c *FeedsListCall) Context(ctx context.Context) *FeedsListCall {
3082	c.ctx_ = ctx
3083	return c
3084}
3085
3086// Header returns an http.Header that can be modified by the caller to
3087// add HTTP headers to the request.
3088func (c *FeedsListCall) Header() http.Header {
3089	if c.header_ == nil {
3090		c.header_ = make(http.Header)
3091	}
3092	return c.header_
3093}
3094
3095func (c *FeedsListCall) doRequest(alt string) (*http.Response, error) {
3096	reqHeaders := make(http.Header)
3097	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
3098	for k, v := range c.header_ {
3099		reqHeaders[k] = v
3100	}
3101	reqHeaders.Set("User-Agent", c.s.userAgent())
3102	if c.ifNoneMatch_ != "" {
3103		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3104	}
3105	var body io.Reader = nil
3106	c.urlParams_.Set("alt", alt)
3107	c.urlParams_.Set("prettyPrint", "false")
3108	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/feeds")
3109	urls += "?" + c.urlParams_.Encode()
3110	req, err := http.NewRequest("GET", urls, body)
3111	if err != nil {
3112		return nil, err
3113	}
3114	req.Header = reqHeaders
3115	googleapi.Expand(req.URL, map[string]string{
3116		"parent": c.parent,
3117	})
3118	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3119}
3120
3121// Do executes the "cloudasset.feeds.list" call.
3122// Exactly one of *ListFeedsResponse or error will be non-nil. Any
3123// non-2xx status code is an error. Response headers are in either
3124// *ListFeedsResponse.ServerResponse.Header or (if a response was
3125// returned at all) in error.(*googleapi.Error).Header. Use
3126// googleapi.IsNotModified to check whether the returned error was
3127// because http.StatusNotModified was returned.
3128func (c *FeedsListCall) Do(opts ...googleapi.CallOption) (*ListFeedsResponse, error) {
3129	gensupport.SetOptions(c.urlParams_, opts...)
3130	res, err := c.doRequest("json")
3131	if res != nil && res.StatusCode == http.StatusNotModified {
3132		if res.Body != nil {
3133			res.Body.Close()
3134		}
3135		return nil, &googleapi.Error{
3136			Code:   res.StatusCode,
3137			Header: res.Header,
3138		}
3139	}
3140	if err != nil {
3141		return nil, err
3142	}
3143	defer googleapi.CloseBody(res)
3144	if err := googleapi.CheckResponse(res); err != nil {
3145		return nil, err
3146	}
3147	ret := &ListFeedsResponse{
3148		ServerResponse: googleapi.ServerResponse{
3149			Header:         res.Header,
3150			HTTPStatusCode: res.StatusCode,
3151		},
3152	}
3153	target := &ret
3154	if err := gensupport.DecodeResponse(target, res); err != nil {
3155		return nil, err
3156	}
3157	return ret, nil
3158	// {
3159	//   "description": "Lists all asset feeds in a parent project/folder/organization.",
3160	//   "flatPath": "v1/{v1Id}/{v1Id1}/feeds",
3161	//   "httpMethod": "GET",
3162	//   "id": "cloudasset.feeds.list",
3163	//   "parameterOrder": [
3164	//     "parent"
3165	//   ],
3166	//   "parameters": {
3167	//     "parent": {
3168	//       "description": "Required. The parent project/folder/organization whose feeds are to be\nlisted. It can only be using project/folder/organization number (such as\n\"folders/12345\")\", or a project ID (such as \"projects/my-project-id\").",
3169	//       "location": "path",
3170	//       "pattern": "^[^/]+/[^/]+$",
3171	//       "required": true,
3172	//       "type": "string"
3173	//     }
3174	//   },
3175	//   "path": "v1/{+parent}/feeds",
3176	//   "response": {
3177	//     "$ref": "ListFeedsResponse"
3178	//   },
3179	//   "scopes": [
3180	//     "https://www.googleapis.com/auth/cloud-platform"
3181	//   ]
3182	// }
3183
3184}
3185
3186// method id "cloudasset.feeds.patch":
3187
3188type FeedsPatchCall struct {
3189	s                 *Service
3190	nameid            string
3191	updatefeedrequest *UpdateFeedRequest
3192	urlParams_        gensupport.URLParams
3193	ctx_              context.Context
3194	header_           http.Header
3195}
3196
3197// Patch: Updates an asset feed configuration.
3198func (r *FeedsService) Patch(nameid string, updatefeedrequest *UpdateFeedRequest) *FeedsPatchCall {
3199	c := &FeedsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3200	c.nameid = nameid
3201	c.updatefeedrequest = updatefeedrequest
3202	return c
3203}
3204
3205// Fields allows partial responses to be retrieved. See
3206// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3207// for more information.
3208func (c *FeedsPatchCall) Fields(s ...googleapi.Field) *FeedsPatchCall {
3209	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3210	return c
3211}
3212
3213// Context sets the context to be used in this call's Do method. Any
3214// pending HTTP request will be aborted if the provided context is
3215// canceled.
3216func (c *FeedsPatchCall) Context(ctx context.Context) *FeedsPatchCall {
3217	c.ctx_ = ctx
3218	return c
3219}
3220
3221// Header returns an http.Header that can be modified by the caller to
3222// add HTTP headers to the request.
3223func (c *FeedsPatchCall) Header() http.Header {
3224	if c.header_ == nil {
3225		c.header_ = make(http.Header)
3226	}
3227	return c.header_
3228}
3229
3230func (c *FeedsPatchCall) doRequest(alt string) (*http.Response, error) {
3231	reqHeaders := make(http.Header)
3232	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
3233	for k, v := range c.header_ {
3234		reqHeaders[k] = v
3235	}
3236	reqHeaders.Set("User-Agent", c.s.userAgent())
3237	var body io.Reader = nil
3238	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updatefeedrequest)
3239	if err != nil {
3240		return nil, err
3241	}
3242	reqHeaders.Set("Content-Type", "application/json")
3243	c.urlParams_.Set("alt", alt)
3244	c.urlParams_.Set("prettyPrint", "false")
3245	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
3246	urls += "?" + c.urlParams_.Encode()
3247	req, err := http.NewRequest("PATCH", urls, body)
3248	if err != nil {
3249		return nil, err
3250	}
3251	req.Header = reqHeaders
3252	googleapi.Expand(req.URL, map[string]string{
3253		"name": c.nameid,
3254	})
3255	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3256}
3257
3258// Do executes the "cloudasset.feeds.patch" call.
3259// Exactly one of *Feed or error will be non-nil. Any non-2xx status
3260// code is an error. Response headers are in either
3261// *Feed.ServerResponse.Header or (if a response was returned at all) in
3262// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
3263// whether the returned error was because http.StatusNotModified was
3264// returned.
3265func (c *FeedsPatchCall) Do(opts ...googleapi.CallOption) (*Feed, error) {
3266	gensupport.SetOptions(c.urlParams_, opts...)
3267	res, err := c.doRequest("json")
3268	if res != nil && res.StatusCode == http.StatusNotModified {
3269		if res.Body != nil {
3270			res.Body.Close()
3271		}
3272		return nil, &googleapi.Error{
3273			Code:   res.StatusCode,
3274			Header: res.Header,
3275		}
3276	}
3277	if err != nil {
3278		return nil, err
3279	}
3280	defer googleapi.CloseBody(res)
3281	if err := googleapi.CheckResponse(res); err != nil {
3282		return nil, err
3283	}
3284	ret := &Feed{
3285		ServerResponse: googleapi.ServerResponse{
3286			Header:         res.Header,
3287			HTTPStatusCode: res.StatusCode,
3288		},
3289	}
3290	target := &ret
3291	if err := gensupport.DecodeResponse(target, res); err != nil {
3292		return nil, err
3293	}
3294	return ret, nil
3295	// {
3296	//   "description": "Updates an asset feed configuration.",
3297	//   "flatPath": "v1/{v1Id}/{v1Id1}/feeds/{feedsId}",
3298	//   "httpMethod": "PATCH",
3299	//   "id": "cloudasset.feeds.patch",
3300	//   "parameterOrder": [
3301	//     "name"
3302	//   ],
3303	//   "parameters": {
3304	//     "name": {
3305	//       "description": "Required. The format will be\nprojects/{project_number}/feeds/{client-assigned_feed_identifier} or\nfolders/{folder_number}/feeds/{client-assigned_feed_identifier} or\norganizations/{organization_number}/feeds/{client-assigned_feed_identifier}\n\nThe client-assigned feed identifier must be unique within the parent\nproject/folder/organization.",
3306	//       "location": "path",
3307	//       "pattern": "^[^/]+/[^/]+/feeds/[^/]+$",
3308	//       "required": true,
3309	//       "type": "string"
3310	//     }
3311	//   },
3312	//   "path": "v1/{+name}",
3313	//   "request": {
3314	//     "$ref": "UpdateFeedRequest"
3315	//   },
3316	//   "response": {
3317	//     "$ref": "Feed"
3318	//   },
3319	//   "scopes": [
3320	//     "https://www.googleapis.com/auth/cloud-platform"
3321	//   ]
3322	// }
3323
3324}
3325
3326// method id "cloudasset.operations.get":
3327
3328type OperationsGetCall struct {
3329	s            *Service
3330	name         string
3331	urlParams_   gensupport.URLParams
3332	ifNoneMatch_ string
3333	ctx_         context.Context
3334	header_      http.Header
3335}
3336
3337// Get: Gets the latest state of a long-running operation.  Clients can
3338// use this
3339// method to poll the operation result at intervals as recommended by
3340// the API
3341// service.
3342func (r *OperationsService) Get(name string) *OperationsGetCall {
3343	c := &OperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3344	c.name = name
3345	return c
3346}
3347
3348// Fields allows partial responses to be retrieved. See
3349// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3350// for more information.
3351func (c *OperationsGetCall) Fields(s ...googleapi.Field) *OperationsGetCall {
3352	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3353	return c
3354}
3355
3356// IfNoneMatch sets the optional parameter which makes the operation
3357// fail if the object's ETag matches the given value. This is useful for
3358// getting updates only after the object has changed since the last
3359// request. Use googleapi.IsNotModified to check whether the response
3360// error from Do is the result of In-None-Match.
3361func (c *OperationsGetCall) IfNoneMatch(entityTag string) *OperationsGetCall {
3362	c.ifNoneMatch_ = entityTag
3363	return c
3364}
3365
3366// Context sets the context to be used in this call's Do method. Any
3367// pending HTTP request will be aborted if the provided context is
3368// canceled.
3369func (c *OperationsGetCall) Context(ctx context.Context) *OperationsGetCall {
3370	c.ctx_ = ctx
3371	return c
3372}
3373
3374// Header returns an http.Header that can be modified by the caller to
3375// add HTTP headers to the request.
3376func (c *OperationsGetCall) Header() http.Header {
3377	if c.header_ == nil {
3378		c.header_ = make(http.Header)
3379	}
3380	return c.header_
3381}
3382
3383func (c *OperationsGetCall) doRequest(alt string) (*http.Response, error) {
3384	reqHeaders := make(http.Header)
3385	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
3386	for k, v := range c.header_ {
3387		reqHeaders[k] = v
3388	}
3389	reqHeaders.Set("User-Agent", c.s.userAgent())
3390	if c.ifNoneMatch_ != "" {
3391		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3392	}
3393	var body io.Reader = nil
3394	c.urlParams_.Set("alt", alt)
3395	c.urlParams_.Set("prettyPrint", "false")
3396	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
3397	urls += "?" + c.urlParams_.Encode()
3398	req, err := http.NewRequest("GET", urls, body)
3399	if err != nil {
3400		return nil, err
3401	}
3402	req.Header = reqHeaders
3403	googleapi.Expand(req.URL, map[string]string{
3404		"name": c.name,
3405	})
3406	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3407}
3408
3409// Do executes the "cloudasset.operations.get" call.
3410// Exactly one of *Operation or error will be non-nil. Any non-2xx
3411// status code is an error. Response headers are in either
3412// *Operation.ServerResponse.Header or (if a response was returned at
3413// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
3414// to check whether the returned error was because
3415// http.StatusNotModified was returned.
3416func (c *OperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
3417	gensupport.SetOptions(c.urlParams_, opts...)
3418	res, err := c.doRequest("json")
3419	if res != nil && res.StatusCode == http.StatusNotModified {
3420		if res.Body != nil {
3421			res.Body.Close()
3422		}
3423		return nil, &googleapi.Error{
3424			Code:   res.StatusCode,
3425			Header: res.Header,
3426		}
3427	}
3428	if err != nil {
3429		return nil, err
3430	}
3431	defer googleapi.CloseBody(res)
3432	if err := googleapi.CheckResponse(res); err != nil {
3433		return nil, err
3434	}
3435	ret := &Operation{
3436		ServerResponse: googleapi.ServerResponse{
3437			Header:         res.Header,
3438			HTTPStatusCode: res.StatusCode,
3439		},
3440	}
3441	target := &ret
3442	if err := gensupport.DecodeResponse(target, res); err != nil {
3443		return nil, err
3444	}
3445	return ret, nil
3446	// {
3447	//   "description": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.",
3448	//   "flatPath": "v1/{v1Id}/{v1Id1}/operations/{operationsId}/{operationsId1}",
3449	//   "httpMethod": "GET",
3450	//   "id": "cloudasset.operations.get",
3451	//   "parameterOrder": [
3452	//     "name"
3453	//   ],
3454	//   "parameters": {
3455	//     "name": {
3456	//       "description": "The name of the operation resource.",
3457	//       "location": "path",
3458	//       "pattern": "^[^/]+/[^/]+/operations/[^/]+/.*$",
3459	//       "required": true,
3460	//       "type": "string"
3461	//     }
3462	//   },
3463	//   "path": "v1/{+name}",
3464	//   "response": {
3465	//     "$ref": "Operation"
3466	//   },
3467	//   "scopes": [
3468	//     "https://www.googleapis.com/auth/cloud-platform"
3469	//   ]
3470	// }
3471
3472}
3473
3474// method id "cloudasset.batchGetAssetsHistory":
3475
3476type V1BatchGetAssetsHistoryCall struct {
3477	s            *Service
3478	parent       string
3479	urlParams_   gensupport.URLParams
3480	ifNoneMatch_ string
3481	ctx_         context.Context
3482	header_      http.Header
3483}
3484
3485// BatchGetAssetsHistory: Batch gets the update history of assets that
3486// overlap a time window.
3487// For RESOURCE content, this API outputs history with asset in
3488// both
3489// non-delete or deleted status.
3490// For IAM_POLICY content, this API outputs history when the asset and
3491// its
3492// attached IAM POLICY both exist. This can create gaps in the output
3493// history.
3494// If a specified asset does not exist, this API returns an
3495// INVALID_ARGUMENT
3496// error.
3497func (r *V1Service) BatchGetAssetsHistory(parent string) *V1BatchGetAssetsHistoryCall {
3498	c := &V1BatchGetAssetsHistoryCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3499	c.parent = parent
3500	return c
3501}
3502
3503// AssetNames sets the optional parameter "assetNames": A list of the
3504// full names of the assets. For
3505// example:
3506// `//compute.googleapis.com/projects/my_project_123/zones/zone1
3507// /instances/instance1`.
3508// See
3509// [Resource
3510// Names](https://cloud.google.com/apis/design/resource_names#f
3511// ull_resource_name)
3512// and [Resource
3513// Name
3514// Format](https://cloud.google.com/asset-inventory/docs/resource-na
3515// me-format)
3516// for more info.
3517//
3518// The request becomes a no-op if the asset name list is empty, and the
3519// max
3520// size of the asset name list is 100 in one request.
3521func (c *V1BatchGetAssetsHistoryCall) AssetNames(assetNames ...string) *V1BatchGetAssetsHistoryCall {
3522	c.urlParams_.SetMulti("assetNames", append([]string{}, assetNames...))
3523	return c
3524}
3525
3526// ContentType sets the optional parameter "contentType": The content
3527// type.
3528//
3529// Possible values:
3530//   "CONTENT_TYPE_UNSPECIFIED"
3531//   "RESOURCE"
3532//   "IAM_POLICY"
3533//   "ORG_POLICY"
3534//   "ACCESS_POLICY"
3535func (c *V1BatchGetAssetsHistoryCall) ContentType(contentType string) *V1BatchGetAssetsHistoryCall {
3536	c.urlParams_.Set("contentType", contentType)
3537	return c
3538}
3539
3540// ReadTimeWindowEndTime sets the optional parameter
3541// "readTimeWindow.endTime": End time of the time window (inclusive). If
3542// not specified, the current
3543// timestamp is used instead.
3544func (c *V1BatchGetAssetsHistoryCall) ReadTimeWindowEndTime(readTimeWindowEndTime string) *V1BatchGetAssetsHistoryCall {
3545	c.urlParams_.Set("readTimeWindow.endTime", readTimeWindowEndTime)
3546	return c
3547}
3548
3549// ReadTimeWindowStartTime sets the optional parameter
3550// "readTimeWindow.startTime": Start time of the time window
3551// (exclusive).
3552func (c *V1BatchGetAssetsHistoryCall) ReadTimeWindowStartTime(readTimeWindowStartTime string) *V1BatchGetAssetsHistoryCall {
3553	c.urlParams_.Set("readTimeWindow.startTime", readTimeWindowStartTime)
3554	return c
3555}
3556
3557// Fields allows partial responses to be retrieved. See
3558// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3559// for more information.
3560func (c *V1BatchGetAssetsHistoryCall) Fields(s ...googleapi.Field) *V1BatchGetAssetsHistoryCall {
3561	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3562	return c
3563}
3564
3565// IfNoneMatch sets the optional parameter which makes the operation
3566// fail if the object's ETag matches the given value. This is useful for
3567// getting updates only after the object has changed since the last
3568// request. Use googleapi.IsNotModified to check whether the response
3569// error from Do is the result of In-None-Match.
3570func (c *V1BatchGetAssetsHistoryCall) IfNoneMatch(entityTag string) *V1BatchGetAssetsHistoryCall {
3571	c.ifNoneMatch_ = entityTag
3572	return c
3573}
3574
3575// Context sets the context to be used in this call's Do method. Any
3576// pending HTTP request will be aborted if the provided context is
3577// canceled.
3578func (c *V1BatchGetAssetsHistoryCall) Context(ctx context.Context) *V1BatchGetAssetsHistoryCall {
3579	c.ctx_ = ctx
3580	return c
3581}
3582
3583// Header returns an http.Header that can be modified by the caller to
3584// add HTTP headers to the request.
3585func (c *V1BatchGetAssetsHistoryCall) Header() http.Header {
3586	if c.header_ == nil {
3587		c.header_ = make(http.Header)
3588	}
3589	return c.header_
3590}
3591
3592func (c *V1BatchGetAssetsHistoryCall) doRequest(alt string) (*http.Response, error) {
3593	reqHeaders := make(http.Header)
3594	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
3595	for k, v := range c.header_ {
3596		reqHeaders[k] = v
3597	}
3598	reqHeaders.Set("User-Agent", c.s.userAgent())
3599	if c.ifNoneMatch_ != "" {
3600		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3601	}
3602	var body io.Reader = nil
3603	c.urlParams_.Set("alt", alt)
3604	c.urlParams_.Set("prettyPrint", "false")
3605	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}:batchGetAssetsHistory")
3606	urls += "?" + c.urlParams_.Encode()
3607	req, err := http.NewRequest("GET", urls, body)
3608	if err != nil {
3609		return nil, err
3610	}
3611	req.Header = reqHeaders
3612	googleapi.Expand(req.URL, map[string]string{
3613		"parent": c.parent,
3614	})
3615	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3616}
3617
3618// Do executes the "cloudasset.batchGetAssetsHistory" call.
3619// Exactly one of *BatchGetAssetsHistoryResponse or error will be
3620// non-nil. Any non-2xx status code is an error. Response headers are in
3621// either *BatchGetAssetsHistoryResponse.ServerResponse.Header or (if a
3622// response was returned at all) in error.(*googleapi.Error).Header. Use
3623// googleapi.IsNotModified to check whether the returned error was
3624// because http.StatusNotModified was returned.
3625func (c *V1BatchGetAssetsHistoryCall) Do(opts ...googleapi.CallOption) (*BatchGetAssetsHistoryResponse, error) {
3626	gensupport.SetOptions(c.urlParams_, opts...)
3627	res, err := c.doRequest("json")
3628	if res != nil && res.StatusCode == http.StatusNotModified {
3629		if res.Body != nil {
3630			res.Body.Close()
3631		}
3632		return nil, &googleapi.Error{
3633			Code:   res.StatusCode,
3634			Header: res.Header,
3635		}
3636	}
3637	if err != nil {
3638		return nil, err
3639	}
3640	defer googleapi.CloseBody(res)
3641	if err := googleapi.CheckResponse(res); err != nil {
3642		return nil, err
3643	}
3644	ret := &BatchGetAssetsHistoryResponse{
3645		ServerResponse: googleapi.ServerResponse{
3646			Header:         res.Header,
3647			HTTPStatusCode: res.StatusCode,
3648		},
3649	}
3650	target := &ret
3651	if err := gensupport.DecodeResponse(target, res); err != nil {
3652		return nil, err
3653	}
3654	return ret, nil
3655	// {
3656	//   "description": "Batch gets the update history of assets that overlap a time window.\nFor RESOURCE content, this API outputs history with asset in both\nnon-delete or deleted status.\nFor IAM_POLICY content, this API outputs history when the asset and its\nattached IAM POLICY both exist. This can create gaps in the output history.\nIf a specified asset does not exist, this API returns an INVALID_ARGUMENT\nerror.",
3657	//   "flatPath": "v1/{v1Id}/{v1Id1}:batchGetAssetsHistory",
3658	//   "httpMethod": "GET",
3659	//   "id": "cloudasset.batchGetAssetsHistory",
3660	//   "parameterOrder": [
3661	//     "parent"
3662	//   ],
3663	//   "parameters": {
3664	//     "assetNames": {
3665	//       "description": "A list of the full names of the assets. For example:\n`//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`.\nSee [Resource\nNames](https://cloud.google.com/apis/design/resource_names#full_resource_name)\nand [Resource Name\nFormat](https://cloud.google.com/asset-inventory/docs/resource-name-format)\nfor more info.\n\nThe request becomes a no-op if the asset name list is empty, and the max\nsize of the asset name list is 100 in one request.",
3666	//       "location": "query",
3667	//       "repeated": true,
3668	//       "type": "string"
3669	//     },
3670	//     "contentType": {
3671	//       "description": "Optional. The content type.",
3672	//       "enum": [
3673	//         "CONTENT_TYPE_UNSPECIFIED",
3674	//         "RESOURCE",
3675	//         "IAM_POLICY",
3676	//         "ORG_POLICY",
3677	//         "ACCESS_POLICY"
3678	//       ],
3679	//       "location": "query",
3680	//       "type": "string"
3681	//     },
3682	//     "parent": {
3683	//       "description": "Required. The relative name of the root asset. It can only be an\norganization number (such as \"organizations/123\"), a project ID (such as\n\"projects/my-project-id\")\", or a project number (such as \"projects/12345\").",
3684	//       "location": "path",
3685	//       "pattern": "^[^/]+/[^/]+$",
3686	//       "required": true,
3687	//       "type": "string"
3688	//     },
3689	//     "readTimeWindow.endTime": {
3690	//       "description": "End time of the time window (inclusive). If not specified, the current\ntimestamp is used instead.",
3691	//       "format": "google-datetime",
3692	//       "location": "query",
3693	//       "type": "string"
3694	//     },
3695	//     "readTimeWindow.startTime": {
3696	//       "description": "Start time of the time window (exclusive).",
3697	//       "format": "google-datetime",
3698	//       "location": "query",
3699	//       "type": "string"
3700	//     }
3701	//   },
3702	//   "path": "v1/{+parent}:batchGetAssetsHistory",
3703	//   "response": {
3704	//     "$ref": "BatchGetAssetsHistoryResponse"
3705	//   },
3706	//   "scopes": [
3707	//     "https://www.googleapis.com/auth/cloud-platform"
3708	//   ]
3709	// }
3710
3711}
3712
3713// method id "cloudasset.exportAssets":
3714
3715type V1ExportAssetsCall struct {
3716	s                   *Service
3717	parent              string
3718	exportassetsrequest *ExportAssetsRequest
3719	urlParams_          gensupport.URLParams
3720	ctx_                context.Context
3721	header_             http.Header
3722}
3723
3724// ExportAssets: Exports assets with time and resource types to a given
3725// Cloud Storage
3726// location. The output format is newline-delimited JSON.
3727// This API implements the google.longrunning.Operation API allowing
3728// you
3729// to keep track of the export.
3730func (r *V1Service) ExportAssets(parent string, exportassetsrequest *ExportAssetsRequest) *V1ExportAssetsCall {
3731	c := &V1ExportAssetsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3732	c.parent = parent
3733	c.exportassetsrequest = exportassetsrequest
3734	return c
3735}
3736
3737// Fields allows partial responses to be retrieved. See
3738// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3739// for more information.
3740func (c *V1ExportAssetsCall) Fields(s ...googleapi.Field) *V1ExportAssetsCall {
3741	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3742	return c
3743}
3744
3745// Context sets the context to be used in this call's Do method. Any
3746// pending HTTP request will be aborted if the provided context is
3747// canceled.
3748func (c *V1ExportAssetsCall) Context(ctx context.Context) *V1ExportAssetsCall {
3749	c.ctx_ = ctx
3750	return c
3751}
3752
3753// Header returns an http.Header that can be modified by the caller to
3754// add HTTP headers to the request.
3755func (c *V1ExportAssetsCall) Header() http.Header {
3756	if c.header_ == nil {
3757		c.header_ = make(http.Header)
3758	}
3759	return c.header_
3760}
3761
3762func (c *V1ExportAssetsCall) doRequest(alt string) (*http.Response, error) {
3763	reqHeaders := make(http.Header)
3764	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
3765	for k, v := range c.header_ {
3766		reqHeaders[k] = v
3767	}
3768	reqHeaders.Set("User-Agent", c.s.userAgent())
3769	var body io.Reader = nil
3770	body, err := googleapi.WithoutDataWrapper.JSONReader(c.exportassetsrequest)
3771	if err != nil {
3772		return nil, err
3773	}
3774	reqHeaders.Set("Content-Type", "application/json")
3775	c.urlParams_.Set("alt", alt)
3776	c.urlParams_.Set("prettyPrint", "false")
3777	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}:exportAssets")
3778	urls += "?" + c.urlParams_.Encode()
3779	req, err := http.NewRequest("POST", urls, body)
3780	if err != nil {
3781		return nil, err
3782	}
3783	req.Header = reqHeaders
3784	googleapi.Expand(req.URL, map[string]string{
3785		"parent": c.parent,
3786	})
3787	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3788}
3789
3790// Do executes the "cloudasset.exportAssets" call.
3791// Exactly one of *Operation or error will be non-nil. Any non-2xx
3792// status code is an error. Response headers are in either
3793// *Operation.ServerResponse.Header or (if a response was returned at
3794// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
3795// to check whether the returned error was because
3796// http.StatusNotModified was returned.
3797func (c *V1ExportAssetsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
3798	gensupport.SetOptions(c.urlParams_, opts...)
3799	res, err := c.doRequest("json")
3800	if res != nil && res.StatusCode == http.StatusNotModified {
3801		if res.Body != nil {
3802			res.Body.Close()
3803		}
3804		return nil, &googleapi.Error{
3805			Code:   res.StatusCode,
3806			Header: res.Header,
3807		}
3808	}
3809	if err != nil {
3810		return nil, err
3811	}
3812	defer googleapi.CloseBody(res)
3813	if err := googleapi.CheckResponse(res); err != nil {
3814		return nil, err
3815	}
3816	ret := &Operation{
3817		ServerResponse: googleapi.ServerResponse{
3818			Header:         res.Header,
3819			HTTPStatusCode: res.StatusCode,
3820		},
3821	}
3822	target := &ret
3823	if err := gensupport.DecodeResponse(target, res); err != nil {
3824		return nil, err
3825	}
3826	return ret, nil
3827	// {
3828	//   "description": "Exports assets with time and resource types to a given Cloud Storage\nlocation. The output format is newline-delimited JSON.\nThis API implements the google.longrunning.Operation API allowing you\nto keep track of the export.",
3829	//   "flatPath": "v1/{v1Id}/{v1Id1}:exportAssets",
3830	//   "httpMethod": "POST",
3831	//   "id": "cloudasset.exportAssets",
3832	//   "parameterOrder": [
3833	//     "parent"
3834	//   ],
3835	//   "parameters": {
3836	//     "parent": {
3837	//       "description": "Required. The relative name of the root asset. This can only be an\norganization number (such as \"organizations/123\"), a project ID (such as\n\"projects/my-project-id\"), or a project number (such as \"projects/12345\"),\nor a folder number (such as \"folders/123\").",
3838	//       "location": "path",
3839	//       "pattern": "^[^/]+/[^/]+$",
3840	//       "required": true,
3841	//       "type": "string"
3842	//     }
3843	//   },
3844	//   "path": "v1/{+parent}:exportAssets",
3845	//   "request": {
3846	//     "$ref": "ExportAssetsRequest"
3847	//   },
3848	//   "response": {
3849	//     "$ref": "Operation"
3850	//   },
3851	//   "scopes": [
3852	//     "https://www.googleapis.com/auth/cloud-platform"
3853	//   ]
3854	// }
3855
3856}
3857