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