1// Copyright 2021 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package ondemandscanning provides access to the On-Demand Scanning API.
8//
9// For product documentation, see: https://cloud.google.com/container-analysis/docs/on-demand-scanning/
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/ondemandscanning/v1beta1"
16//   ...
17//   ctx := context.Background()
18//   ondemandscanningService, err := ondemandscanning.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//   ondemandscanningService, err := ondemandscanning.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//   ondemandscanningService, err := ondemandscanning.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
36//
37// See https://godoc.org/google.golang.org/api/option/ for details on options.
38package ondemandscanning // import "google.golang.org/api/ondemandscanning/v1beta1"
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 = "ondemandscanning:v1beta1"
75const apiName = "ondemandscanning"
76const apiVersion = "v1beta1"
77const basePath = "https://ondemandscanning.googleapis.com/"
78const mtlsBasePath = "https://ondemandscanning.mtls.googleapis.com/"
79
80// OAuth2 scopes used by this API.
81const (
82	// See, edit, configure, and delete your Google Cloud data and see the
83	// email address for your Google Account.
84	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
85)
86
87// NewService creates a new Service.
88func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
89	scopesOption := option.WithScopes(
90		"https://www.googleapis.com/auth/cloud-platform",
91	)
92	// NOTE: prepend, so we don't override user-specified scopes.
93	opts = append([]option.ClientOption{scopesOption}, opts...)
94	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
95	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
96	client, endpoint, err := htransport.NewClient(ctx, opts...)
97	if err != nil {
98		return nil, err
99	}
100	s, err := New(client)
101	if err != nil {
102		return nil, err
103	}
104	if endpoint != "" {
105		s.BasePath = endpoint
106	}
107	return s, nil
108}
109
110// New creates a new Service. It uses the provided http.Client for requests.
111//
112// Deprecated: please use NewService instead.
113// To provide a custom HTTP client, use option.WithHTTPClient.
114// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
115func New(client *http.Client) (*Service, error) {
116	if client == nil {
117		return nil, errors.New("client is nil")
118	}
119	s := &Service{client: client, BasePath: basePath}
120	s.Projects = NewProjectsService(s)
121	return s, nil
122}
123
124type Service struct {
125	client    *http.Client
126	BasePath  string // API endpoint base URL
127	UserAgent string // optional additional User-Agent fragment
128
129	Projects *ProjectsService
130}
131
132func (s *Service) userAgent() string {
133	if s.UserAgent == "" {
134		return googleapi.UserAgent
135	}
136	return googleapi.UserAgent + " " + s.UserAgent
137}
138
139func NewProjectsService(s *Service) *ProjectsService {
140	rs := &ProjectsService{s: s}
141	rs.Locations = NewProjectsLocationsService(s)
142	return rs
143}
144
145type ProjectsService struct {
146	s *Service
147
148	Locations *ProjectsLocationsService
149}
150
151func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
152	rs := &ProjectsLocationsService{s: s}
153	rs.Operations = NewProjectsLocationsOperationsService(s)
154	rs.Scans = NewProjectsLocationsScansService(s)
155	return rs
156}
157
158type ProjectsLocationsService struct {
159	s *Service
160
161	Operations *ProjectsLocationsOperationsService
162
163	Scans *ProjectsLocationsScansService
164}
165
166func NewProjectsLocationsOperationsService(s *Service) *ProjectsLocationsOperationsService {
167	rs := &ProjectsLocationsOperationsService{s: s}
168	return rs
169}
170
171type ProjectsLocationsOperationsService struct {
172	s *Service
173}
174
175func NewProjectsLocationsScansService(s *Service) *ProjectsLocationsScansService {
176	rs := &ProjectsLocationsScansService{s: s}
177	rs.Vulnerabilities = NewProjectsLocationsScansVulnerabilitiesService(s)
178	return rs
179}
180
181type ProjectsLocationsScansService struct {
182	s *Service
183
184	Vulnerabilities *ProjectsLocationsScansVulnerabilitiesService
185}
186
187func NewProjectsLocationsScansVulnerabilitiesService(s *Service) *ProjectsLocationsScansVulnerabilitiesService {
188	rs := &ProjectsLocationsScansVulnerabilitiesService{s: s}
189	return rs
190}
191
192type ProjectsLocationsScansVulnerabilitiesService struct {
193	s *Service
194}
195
196// AliasContext: An alias to a repo revision.
197type AliasContext struct {
198	// Kind: The alias kind.
199	//
200	// Possible values:
201	//   "KIND_UNSPECIFIED" - Unknown.
202	//   "FIXED" - Git tag.
203	//   "MOVABLE" - Git branch.
204	//   "OTHER" - Used to specify non-standard aliases. For example, if a
205	// Git repo has a ref named "refs/foo/bar".
206	Kind string `json:"kind,omitempty"`
207
208	// Name: The alias name.
209	Name string `json:"name,omitempty"`
210
211	// ForceSendFields is a list of field names (e.g. "Kind") to
212	// unconditionally include in API requests. By default, fields with
213	// empty or default values are omitted from API requests. However, any
214	// non-pointer, non-interface field appearing in ForceSendFields will be
215	// sent to the server regardless of whether the field is empty or not.
216	// This may be used to include empty fields in Patch requests.
217	ForceSendFields []string `json:"-"`
218
219	// NullFields is a list of field names (e.g. "Kind") to include in API
220	// requests with the JSON null value. By default, fields with empty
221	// values are omitted from API requests. However, any field with an
222	// empty value appearing in NullFields will be sent to the server as
223	// null. It is an error if a field in this list has a non-empty value.
224	// This may be used to include null fields in Patch requests.
225	NullFields []string `json:"-"`
226}
227
228func (s *AliasContext) MarshalJSON() ([]byte, error) {
229	type NoMethod AliasContext
230	raw := NoMethod(*s)
231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
232}
233
234// AnalyzePackagesMetadata: AnalyzePackagesMetadata contains metadata
235// for an active scan of a container image.
236type AnalyzePackagesMetadata struct {
237	// CreateTime: When the scan was created.
238	CreateTime string `json:"createTime,omitempty"`
239
240	// ResourceUri: The resource URI of the container image being scanned.
241	ResourceUri string `json:"resourceUri,omitempty"`
242
243	// ForceSendFields is a list of field names (e.g. "CreateTime") to
244	// unconditionally include in API requests. By default, fields with
245	// empty or default values are omitted from API requests. However, any
246	// non-pointer, non-interface field appearing in ForceSendFields will be
247	// sent to the server regardless of whether the field is empty or not.
248	// This may be used to include empty fields in Patch requests.
249	ForceSendFields []string `json:"-"`
250
251	// NullFields is a list of field names (e.g. "CreateTime") to include in
252	// API requests with the JSON null value. By default, fields with empty
253	// values are omitted from API requests. However, any field with an
254	// empty value appearing in NullFields will be sent to the server as
255	// null. It is an error if a field in this list has a non-empty value.
256	// This may be used to include null fields in Patch requests.
257	NullFields []string `json:"-"`
258}
259
260func (s *AnalyzePackagesMetadata) MarshalJSON() ([]byte, error) {
261	type NoMethod AnalyzePackagesMetadata
262	raw := NoMethod(*s)
263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
264}
265
266// AnalyzePackagesMetadataV1: AnalyzePackagesMetadata contains metadata
267// for an active scan of a container image.
268type AnalyzePackagesMetadataV1 struct {
269	// CreateTime: When the scan was created.
270	CreateTime string `json:"createTime,omitempty"`
271
272	// ResourceUri: The resource URI of the container image being scanned.
273	ResourceUri string `json:"resourceUri,omitempty"`
274
275	// ForceSendFields is a list of field names (e.g. "CreateTime") to
276	// unconditionally include in API requests. By default, fields with
277	// empty or default values are omitted from API requests. However, any
278	// non-pointer, non-interface field appearing in ForceSendFields will be
279	// sent to the server regardless of whether the field is empty or not.
280	// This may be used to include empty fields in Patch requests.
281	ForceSendFields []string `json:"-"`
282
283	// NullFields is a list of field names (e.g. "CreateTime") to include in
284	// API requests with the JSON null value. By default, fields with empty
285	// values are omitted from API requests. However, any field with an
286	// empty value appearing in NullFields will be sent to the server as
287	// null. It is an error if a field in this list has a non-empty value.
288	// This may be used to include null fields in Patch requests.
289	NullFields []string `json:"-"`
290}
291
292func (s *AnalyzePackagesMetadataV1) MarshalJSON() ([]byte, error) {
293	type NoMethod AnalyzePackagesMetadataV1
294	raw := NoMethod(*s)
295	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
296}
297
298// AnalyzePackagesRequest: AnalyzePackagesRequest is the request to
299// analyze a list of packages and create Vulnerability Occurrences for
300// it.
301type AnalyzePackagesRequest struct {
302	// Packages: The packages to analyze.
303	Packages []*PackageData `json:"packages,omitempty"`
304
305	// ResourceUri: Required. The resource URI of the container image being
306	// scanned.
307	ResourceUri string `json:"resourceUri,omitempty"`
308
309	// ForceSendFields is a list of field names (e.g. "Packages") to
310	// unconditionally include in API requests. By default, fields with
311	// empty or default values are omitted from API requests. However, any
312	// non-pointer, non-interface field appearing in ForceSendFields will be
313	// sent to the server regardless of whether the field is empty or not.
314	// This may be used to include empty fields in Patch requests.
315	ForceSendFields []string `json:"-"`
316
317	// NullFields is a list of field names (e.g. "Packages") to include in
318	// API requests with the JSON null value. By default, fields with empty
319	// values are omitted from API requests. However, any field with an
320	// empty value appearing in NullFields will be sent to the server as
321	// null. It is an error if a field in this list has a non-empty value.
322	// This may be used to include null fields in Patch requests.
323	NullFields []string `json:"-"`
324}
325
326func (s *AnalyzePackagesRequest) MarshalJSON() ([]byte, error) {
327	type NoMethod AnalyzePackagesRequest
328	raw := NoMethod(*s)
329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
330}
331
332// AnalyzePackagesResponse: AnalyzePackagesResponse contains the
333// information necessary to find results for the given scan.
334type AnalyzePackagesResponse struct {
335	// Scan: The name of the scan resource created by this successful scan.
336	Scan string `json:"scan,omitempty"`
337
338	// ForceSendFields is a list of field names (e.g. "Scan") to
339	// unconditionally include in API requests. By default, fields with
340	// empty or default values are omitted from API requests. However, any
341	// non-pointer, non-interface field appearing in ForceSendFields will be
342	// sent to the server regardless of whether the field is empty or not.
343	// This may be used to include empty fields in Patch requests.
344	ForceSendFields []string `json:"-"`
345
346	// NullFields is a list of field names (e.g. "Scan") to include in API
347	// requests with the JSON null value. By default, fields with empty
348	// values are omitted from API requests. However, any field with an
349	// empty value appearing in NullFields will be sent to the server as
350	// null. It is an error if a field in this list has a non-empty value.
351	// This may be used to include null fields in Patch requests.
352	NullFields []string `json:"-"`
353}
354
355func (s *AnalyzePackagesResponse) MarshalJSON() ([]byte, error) {
356	type NoMethod AnalyzePackagesResponse
357	raw := NoMethod(*s)
358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
359}
360
361// AnalyzePackagesResponseV1: AnalyzePackagesResponse contains the
362// information necessary to find results for the given scan.
363type AnalyzePackagesResponseV1 struct {
364	// Scan: The name of the scan resource created by this successful scan.
365	Scan string `json:"scan,omitempty"`
366
367	// ForceSendFields is a list of field names (e.g. "Scan") to
368	// unconditionally include in API requests. By default, fields with
369	// empty or default values are omitted from API requests. However, any
370	// non-pointer, non-interface field appearing in ForceSendFields will be
371	// sent to the server regardless of whether the field is empty or not.
372	// This may be used to include empty fields in Patch requests.
373	ForceSendFields []string `json:"-"`
374
375	// NullFields is a list of field names (e.g. "Scan") to include in API
376	// requests with the JSON null value. By default, fields with empty
377	// values are omitted from API requests. However, any field with an
378	// empty value appearing in NullFields will be sent to the server as
379	// null. It is an error if a field in this list has a non-empty value.
380	// This may be used to include null fields in Patch requests.
381	NullFields []string `json:"-"`
382}
383
384func (s *AnalyzePackagesResponseV1) MarshalJSON() ([]byte, error) {
385	type NoMethod AnalyzePackagesResponseV1
386	raw := NoMethod(*s)
387	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
388}
389
390// Artifact: Artifact describes a build product.
391type Artifact struct {
392	// Checksum: Hash or checksum value of a binary, or Docker Registry 2.0
393	// digest of a container.
394	Checksum string `json:"checksum,omitempty"`
395
396	// Id: Artifact ID, if any; for container images, this will be a URL by
397	// digest like `gcr.io/projectID/imagename@sha256:123456`.
398	Id string `json:"id,omitempty"`
399
400	// Names: Related artifact names. This may be the path to a binary or
401	// jar file, or in the case of a container build, the name used to push
402	// the container image to Google Container Registry, as presented to
403	// `docker push`. Note that a single Artifact ID can have multiple
404	// names, for example if two tags are applied to one image.
405	Names []string `json:"names,omitempty"`
406
407	// ForceSendFields is a list of field names (e.g. "Checksum") to
408	// unconditionally include in API requests. By default, fields with
409	// empty or default values are omitted from API requests. However, any
410	// non-pointer, non-interface field appearing in ForceSendFields will be
411	// sent to the server regardless of whether the field is empty or not.
412	// This may be used to include empty fields in Patch requests.
413	ForceSendFields []string `json:"-"`
414
415	// NullFields is a list of field names (e.g. "Checksum") to include in
416	// API requests with the JSON null value. By default, fields with empty
417	// values are omitted from API requests. However, any field with an
418	// empty value appearing in NullFields will be sent to the server as
419	// null. It is an error if a field in this list has a non-empty value.
420	// This may be used to include null fields in Patch requests.
421	NullFields []string `json:"-"`
422}
423
424func (s *Artifact) MarshalJSON() ([]byte, error) {
425	type NoMethod Artifact
426	raw := NoMethod(*s)
427	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
428}
429
430// AttestationOccurrence: Occurrence that represents a single
431// "attestation". The authenticity of an attestation can be verified
432// using the attached signature. If the verifier trusts the public key
433// of the signer, then verifying the signature is sufficient to
434// establish trust. In this circumstance, the authority to which this
435// attestation is attached is primarily useful for lookup (how to find
436// this attestation if you already know the authority and artifact to be
437// verified) and intent (for which authority this attestation was
438// intended to sign.
439type AttestationOccurrence struct {
440	// Jwts: One or more JWTs encoding a self-contained attestation. Each
441	// JWT encodes the payload that it verifies within the JWT itself.
442	// Verifier implementation SHOULD ignore the `serialized_payload` field
443	// when verifying these JWTs. If only JWTs are present on this
444	// AttestationOccurrence, then the `serialized_payload` SHOULD be left
445	// empty. Each JWT SHOULD encode a claim specific to the `resource_uri`
446	// of this Occurrence, but this is not validated by Grafeas metadata API
447	// implementations. The JWT itself is opaque to Grafeas.
448	Jwts []*Jwt `json:"jwts,omitempty"`
449
450	// SerializedPayload: Required. The serialized payload that is verified
451	// by one or more `signatures`.
452	SerializedPayload string `json:"serializedPayload,omitempty"`
453
454	// Signatures: One or more signatures over `serialized_payload`.
455	// Verifier implementations should consider this attestation message
456	// verified if at least one `signature` verifies `serialized_payload`.
457	// See `Signature` in common.proto for more details on signature
458	// structure and verification.
459	Signatures []*Signature `json:"signatures,omitempty"`
460
461	// ForceSendFields is a list of field names (e.g. "Jwts") to
462	// unconditionally include in API requests. By default, fields with
463	// empty or default values are omitted from API requests. However, any
464	// non-pointer, non-interface field appearing in ForceSendFields will be
465	// sent to the server regardless of whether the field is empty or not.
466	// This may be used to include empty fields in Patch requests.
467	ForceSendFields []string `json:"-"`
468
469	// NullFields is a list of field names (e.g. "Jwts") to include in API
470	// requests with the JSON null value. By default, fields with empty
471	// values are omitted from API requests. However, any field with an
472	// empty value appearing in NullFields will be sent to the server as
473	// null. It is an error if a field in this list has a non-empty value.
474	// This may be used to include null fields in Patch requests.
475	NullFields []string `json:"-"`
476}
477
478func (s *AttestationOccurrence) MarshalJSON() ([]byte, error) {
479	type NoMethod AttestationOccurrence
480	raw := NoMethod(*s)
481	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
482}
483
484// BuildOccurrence: Details of a build occurrence.
485type BuildOccurrence struct {
486	// IntotoProvenance: In-toto Provenance representation as defined in
487	// spec.
488	IntotoProvenance *InTotoProvenance `json:"intotoProvenance,omitempty"`
489
490	// Provenance: Required. The actual provenance for the build.
491	Provenance *BuildProvenance `json:"provenance,omitempty"`
492
493	// ProvenanceBytes: Serialized JSON representation of the provenance,
494	// used in generating the build signature in the corresponding build
495	// note. After verifying the signature, `provenance_bytes` can be
496	// unmarshalled and compared to the provenance to confirm that it is
497	// unchanged. A base64-encoded string representation of the provenance
498	// bytes is used for the signature in order to interoperate with openssl
499	// which expects this format for signature verification. The serialized
500	// form is captured both to avoid ambiguity in how the provenance is
501	// marshalled to json as well to prevent incompatibilities with future
502	// changes.
503	ProvenanceBytes string `json:"provenanceBytes,omitempty"`
504
505	// ForceSendFields is a list of field names (e.g. "IntotoProvenance") to
506	// unconditionally include in API requests. By default, fields with
507	// empty or default values are omitted from API requests. However, any
508	// non-pointer, non-interface field appearing in ForceSendFields will be
509	// sent to the server regardless of whether the field is empty or not.
510	// This may be used to include empty fields in Patch requests.
511	ForceSendFields []string `json:"-"`
512
513	// NullFields is a list of field names (e.g. "IntotoProvenance") to
514	// include in API requests with the JSON null value. By default, fields
515	// with empty values are omitted from API requests. However, any field
516	// with an empty value appearing in NullFields will be sent to the
517	// server as null. It is an error if a field in this list has a
518	// non-empty value. This may be used to include null fields in Patch
519	// requests.
520	NullFields []string `json:"-"`
521}
522
523func (s *BuildOccurrence) MarshalJSON() ([]byte, error) {
524	type NoMethod BuildOccurrence
525	raw := NoMethod(*s)
526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
527}
528
529// BuildProvenance: Provenance of a build. Contains all information
530// needed to verify the full details about the build from source to
531// completion.
532type BuildProvenance struct {
533	// BuildOptions: Special options applied to this build. This is a
534	// catch-all field where build providers can enter any desired
535	// additional details.
536	BuildOptions map[string]string `json:"buildOptions,omitempty"`
537
538	// BuilderVersion: Version string of the builder at the time this build
539	// was executed.
540	BuilderVersion string `json:"builderVersion,omitempty"`
541
542	// BuiltArtifacts: Output of the build.
543	BuiltArtifacts []*Artifact `json:"builtArtifacts,omitempty"`
544
545	// Commands: Commands requested by the build.
546	Commands []*Command `json:"commands,omitempty"`
547
548	// CreateTime: Time at which the build was created.
549	CreateTime string `json:"createTime,omitempty"`
550
551	// Creator: E-mail address of the user who initiated this build. Note
552	// that this was the user's e-mail address at the time the build was
553	// initiated; this address may not represent the same end-user for all
554	// time.
555	Creator string `json:"creator,omitempty"`
556
557	// EndTime: Time at which execution of the build was finished.
558	EndTime string `json:"endTime,omitempty"`
559
560	// Id: Required. Unique identifier of the build.
561	Id string `json:"id,omitempty"`
562
563	// LogsUri: URI where any logs for this provenance were written.
564	LogsUri string `json:"logsUri,omitempty"`
565
566	// ProjectId: ID of the project.
567	ProjectId string `json:"projectId,omitempty"`
568
569	// SourceProvenance: Details of the Source input to the build.
570	SourceProvenance *Source `json:"sourceProvenance,omitempty"`
571
572	// StartTime: Time at which execution of the build was started.
573	StartTime string `json:"startTime,omitempty"`
574
575	// TriggerId: Trigger identifier if the build was triggered
576	// automatically; empty if not.
577	TriggerId string `json:"triggerId,omitempty"`
578
579	// ForceSendFields is a list of field names (e.g. "BuildOptions") to
580	// unconditionally include in API requests. By default, fields with
581	// empty or default values are omitted from API requests. However, any
582	// non-pointer, non-interface field appearing in ForceSendFields will be
583	// sent to the server regardless of whether the field is empty or not.
584	// This may be used to include empty fields in Patch requests.
585	ForceSendFields []string `json:"-"`
586
587	// NullFields is a list of field names (e.g. "BuildOptions") to include
588	// in API requests with the JSON null value. By default, fields with
589	// empty values are omitted from API requests. However, any field with
590	// an empty value appearing in NullFields will be sent to the server as
591	// null. It is an error if a field in this list has a non-empty value.
592	// This may be used to include null fields in Patch requests.
593	NullFields []string `json:"-"`
594}
595
596func (s *BuildProvenance) MarshalJSON() ([]byte, error) {
597	type NoMethod BuildProvenance
598	raw := NoMethod(*s)
599	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
600}
601
602type BuilderConfig struct {
603	Id string `json:"id,omitempty"`
604
605	// ForceSendFields is a list of field names (e.g. "Id") to
606	// unconditionally include in API requests. By default, fields with
607	// empty or default values are omitted from API requests. However, any
608	// non-pointer, non-interface field appearing in ForceSendFields will be
609	// sent to the server regardless of whether the field is empty or not.
610	// This may be used to include empty fields in Patch requests.
611	ForceSendFields []string `json:"-"`
612
613	// NullFields is a list of field names (e.g. "Id") to include in API
614	// requests with the JSON null value. By default, fields with empty
615	// values are omitted from API requests. However, any field with an
616	// empty value appearing in NullFields will be sent to the server as
617	// null. It is an error if a field in this list has a non-empty value.
618	// This may be used to include null fields in Patch requests.
619	NullFields []string `json:"-"`
620}
621
622func (s *BuilderConfig) MarshalJSON() ([]byte, error) {
623	type NoMethod BuilderConfig
624	raw := NoMethod(*s)
625	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
626}
627
628// Category: The category to which the update belongs.
629type Category struct {
630	// CategoryId: The identifier of the category.
631	CategoryId string `json:"categoryId,omitempty"`
632
633	// Name: The localized name of the category.
634	Name string `json:"name,omitempty"`
635
636	// ForceSendFields is a list of field names (e.g. "CategoryId") to
637	// unconditionally include in API requests. By default, fields with
638	// empty or default values are omitted from API requests. However, any
639	// non-pointer, non-interface field appearing in ForceSendFields will be
640	// sent to the server regardless of whether the field is empty or not.
641	// This may be used to include empty fields in Patch requests.
642	ForceSendFields []string `json:"-"`
643
644	// NullFields is a list of field names (e.g. "CategoryId") to include in
645	// API requests with the JSON null value. By default, fields with empty
646	// values are omitted from API requests. However, any field with an
647	// empty value appearing in NullFields will be sent to the server as
648	// null. It is an error if a field in this list has a non-empty value.
649	// This may be used to include null fields in Patch requests.
650	NullFields []string `json:"-"`
651}
652
653func (s *Category) MarshalJSON() ([]byte, error) {
654	type NoMethod Category
655	raw := NoMethod(*s)
656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
657}
658
659// CloudRepoSourceContext: A CloudRepoSourceContext denotes a particular
660// revision in a Google Cloud Source Repo.
661type CloudRepoSourceContext struct {
662	// AliasContext: An alias, which may be a branch or tag.
663	AliasContext *AliasContext `json:"aliasContext,omitempty"`
664
665	// RepoId: The ID of the repo.
666	RepoId *RepoId `json:"repoId,omitempty"`
667
668	// RevisionId: A revision ID.
669	RevisionId string `json:"revisionId,omitempty"`
670
671	// ForceSendFields is a list of field names (e.g. "AliasContext") to
672	// unconditionally include in API requests. By default, fields with
673	// empty or default values are omitted from API requests. However, any
674	// non-pointer, non-interface field appearing in ForceSendFields will be
675	// sent to the server regardless of whether the field is empty or not.
676	// This may be used to include empty fields in Patch requests.
677	ForceSendFields []string `json:"-"`
678
679	// NullFields is a list of field names (e.g. "AliasContext") to include
680	// in API requests with the JSON null value. By default, fields with
681	// empty values are omitted from API requests. However, any field with
682	// an empty value appearing in NullFields will be sent to the server as
683	// null. It is an error if a field in this list has a non-empty value.
684	// This may be used to include null fields in Patch requests.
685	NullFields []string `json:"-"`
686}
687
688func (s *CloudRepoSourceContext) MarshalJSON() ([]byte, error) {
689	type NoMethod CloudRepoSourceContext
690	raw := NoMethod(*s)
691	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
692}
693
694// Command: Command describes a step performed as part of the build
695// pipeline.
696type Command struct {
697	// Args: Command-line arguments used when executing this command.
698	Args []string `json:"args,omitempty"`
699
700	// Dir: Working directory (relative to project source root) used when
701	// running this command.
702	Dir string `json:"dir,omitempty"`
703
704	// Env: Environment variables set before running this command.
705	Env []string `json:"env,omitempty"`
706
707	// Id: Optional unique identifier for this command, used in wait_for to
708	// reference this command as a dependency.
709	Id string `json:"id,omitempty"`
710
711	// Name: Required. Name of the command, as presented on the command
712	// line, or if the command is packaged as a Docker container, as
713	// presented to `docker pull`.
714	Name string `json:"name,omitempty"`
715
716	// WaitFor: The ID(s) of the command(s) that this command depends on.
717	WaitFor []string `json:"waitFor,omitempty"`
718
719	// ForceSendFields is a list of field names (e.g. "Args") to
720	// unconditionally include in API requests. By default, fields with
721	// empty or default values are omitted from API requests. However, any
722	// non-pointer, non-interface field appearing in ForceSendFields will be
723	// sent to the server regardless of whether the field is empty or not.
724	// This may be used to include empty fields in Patch requests.
725	ForceSendFields []string `json:"-"`
726
727	// NullFields is a list of field names (e.g. "Args") to include in API
728	// requests with the JSON null value. By default, fields with empty
729	// values are omitted from API requests. However, any field with an
730	// empty value appearing in NullFields will be sent to the server as
731	// null. It is an error if a field in this list has a non-empty value.
732	// This may be used to include null fields in Patch requests.
733	NullFields []string `json:"-"`
734}
735
736func (s *Command) MarshalJSON() ([]byte, error) {
737	type NoMethod Command
738	raw := NoMethod(*s)
739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
740}
741
742// Completeness: Indicates that the builder claims certain fields in
743// this message to be complete.
744type Completeness struct {
745	// Arguments: If true, the builder claims that recipe.arguments is
746	// complete, meaning that all external inputs are properly captured in
747	// the recipe.
748	Arguments bool `json:"arguments,omitempty"`
749
750	// Environment: If true, the builder claims that recipe.environment is
751	// claimed to be complete.
752	Environment bool `json:"environment,omitempty"`
753
754	// Materials: If true, the builder claims that materials are complete,
755	// usually through some controls to prevent network access. Sometimes
756	// called "hermetic".
757	Materials bool `json:"materials,omitempty"`
758
759	// ForceSendFields is a list of field names (e.g. "Arguments") to
760	// unconditionally include in API requests. By default, fields with
761	// empty or default values are omitted from API requests. However, any
762	// non-pointer, non-interface field appearing in ForceSendFields will be
763	// sent to the server regardless of whether the field is empty or not.
764	// This may be used to include empty fields in Patch requests.
765	ForceSendFields []string `json:"-"`
766
767	// NullFields is a list of field names (e.g. "Arguments") to include in
768	// API requests with the JSON null value. By default, fields with empty
769	// values are omitted from API requests. However, any field with an
770	// empty value appearing in NullFields will be sent to the server as
771	// null. It is an error if a field in this list has a non-empty value.
772	// This may be used to include null fields in Patch requests.
773	NullFields []string `json:"-"`
774}
775
776func (s *Completeness) MarshalJSON() ([]byte, error) {
777	type NoMethod Completeness
778	raw := NoMethod(*s)
779	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
780}
781
782// ComplianceOccurrence: An indication that the compliance checks in the
783// associated ComplianceNote were not satisfied for particular resources
784// or a specified reason.
785type ComplianceOccurrence struct {
786	NonComplianceReason string `json:"nonComplianceReason,omitempty"`
787
788	NonCompliantFiles []*NonCompliantFile `json:"nonCompliantFiles,omitempty"`
789
790	// ForceSendFields is a list of field names (e.g. "NonComplianceReason")
791	// to unconditionally include in API requests. By default, fields with
792	// empty or default values are omitted from API requests. However, any
793	// non-pointer, non-interface field appearing in ForceSendFields will be
794	// sent to the server regardless of whether the field is empty or not.
795	// This may be used to include empty fields in Patch requests.
796	ForceSendFields []string `json:"-"`
797
798	// NullFields is a list of field names (e.g. "NonComplianceReason") to
799	// include in API requests with the JSON null value. By default, fields
800	// with empty values are omitted from API requests. However, any field
801	// with an empty value appearing in NullFields will be sent to the
802	// server as null. It is an error if a field in this list has a
803	// non-empty value. This may be used to include null fields in Patch
804	// requests.
805	NullFields []string `json:"-"`
806}
807
808func (s *ComplianceOccurrence) MarshalJSON() ([]byte, error) {
809	type NoMethod ComplianceOccurrence
810	raw := NoMethod(*s)
811	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
812}
813
814type DSSEAttestationOccurrence struct {
815	// Envelope: If doing something security critical, make sure to verify
816	// the signatures in this metadata.
817	Envelope *Envelope `json:"envelope,omitempty"`
818
819	Statement *InTotoStatement `json:"statement,omitempty"`
820
821	// ForceSendFields is a list of field names (e.g. "Envelope") to
822	// unconditionally include in API requests. By default, fields with
823	// empty or default values are omitted from API requests. However, any
824	// non-pointer, non-interface field appearing in ForceSendFields will be
825	// sent to the server regardless of whether the field is empty or not.
826	// This may be used to include empty fields in Patch requests.
827	ForceSendFields []string `json:"-"`
828
829	// NullFields is a list of field names (e.g. "Envelope") to include in
830	// API requests with the JSON null value. By default, fields with empty
831	// values are omitted from API requests. However, any field with an
832	// empty value appearing in NullFields will be sent to the server as
833	// null. It is an error if a field in this list has a non-empty value.
834	// This may be used to include null fields in Patch requests.
835	NullFields []string `json:"-"`
836}
837
838func (s *DSSEAttestationOccurrence) MarshalJSON() ([]byte, error) {
839	type NoMethod DSSEAttestationOccurrence
840	raw := NoMethod(*s)
841	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
842}
843
844// DeploymentOccurrence: The period during which some deployable was
845// active in a runtime.
846type DeploymentOccurrence struct {
847	// Address: Address of the runtime element hosting this deployment.
848	Address string `json:"address,omitempty"`
849
850	// Config: Configuration used to create this deployment.
851	Config string `json:"config,omitempty"`
852
853	// DeployTime: Required. Beginning of the lifetime of this deployment.
854	DeployTime string `json:"deployTime,omitempty"`
855
856	// Platform: Platform hosting this deployment.
857	//
858	// Possible values:
859	//   "PLATFORM_UNSPECIFIED" - Unknown.
860	//   "GKE" - Google Container Engine.
861	//   "FLEX" - Google App Engine: Flexible Environment.
862	//   "CUSTOM" - Custom user-defined platform.
863	Platform string `json:"platform,omitempty"`
864
865	// ResourceUri: Output only. Resource URI for the artifact being
866	// deployed taken from the deployable field with the same name.
867	ResourceUri []string `json:"resourceUri,omitempty"`
868
869	// UndeployTime: End of the lifetime of this deployment.
870	UndeployTime string `json:"undeployTime,omitempty"`
871
872	// UserEmail: Identity of the user that triggered this deployment.
873	UserEmail string `json:"userEmail,omitempty"`
874
875	// ForceSendFields is a list of field names (e.g. "Address") to
876	// unconditionally include in API requests. By default, fields with
877	// empty or default values are omitted from API requests. However, any
878	// non-pointer, non-interface field appearing in ForceSendFields will be
879	// sent to the server regardless of whether the field is empty or not.
880	// This may be used to include empty fields in Patch requests.
881	ForceSendFields []string `json:"-"`
882
883	// NullFields is a list of field names (e.g. "Address") to include in
884	// API requests with the JSON null value. By default, fields with empty
885	// values are omitted from API requests. However, any field with an
886	// empty value appearing in NullFields will be sent to the server as
887	// null. It is an error if a field in this list has a non-empty value.
888	// This may be used to include null fields in Patch requests.
889	NullFields []string `json:"-"`
890}
891
892func (s *DeploymentOccurrence) MarshalJSON() ([]byte, error) {
893	type NoMethod DeploymentOccurrence
894	raw := NoMethod(*s)
895	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
896}
897
898// DiscoveryOccurrence: Provides information about the analysis status
899// of a discovered resource.
900type DiscoveryOccurrence struct {
901	// AnalysisStatus: The status of discovery for the resource.
902	//
903	// Possible values:
904	//   "ANALYSIS_STATUS_UNSPECIFIED" - Unknown.
905	//   "PENDING" - Resource is known but no action has been taken yet.
906	//   "SCANNING" - Resource is being analyzed.
907	//   "FINISHED_SUCCESS" - Analysis has finished successfully.
908	//   "FINISHED_FAILED" - Analysis has finished unsuccessfully, the
909	// analysis itself is in a bad state.
910	//   "FINISHED_UNSUPPORTED" - The resource is known not to be supported
911	AnalysisStatus string `json:"analysisStatus,omitempty"`
912
913	// AnalysisStatusError: When an error is encountered this will contain a
914	// LocalizedMessage under details to show to the user. The
915	// LocalizedMessage is output only and populated by the API.
916	AnalysisStatusError *Status `json:"analysisStatusError,omitempty"`
917
918	// ContinuousAnalysis: Whether the resource is continuously analyzed.
919	//
920	// Possible values:
921	//   "CONTINUOUS_ANALYSIS_UNSPECIFIED" - Unknown.
922	//   "ACTIVE" - The resource is continuously analyzed.
923	//   "INACTIVE" - The resource is ignored for continuous analysis.
924	ContinuousAnalysis string `json:"continuousAnalysis,omitempty"`
925
926	// Cpe: The CPE of the resource being scanned.
927	Cpe string `json:"cpe,omitempty"`
928
929	// LastScanTime: The last time this resource was scanned.
930	LastScanTime string `json:"lastScanTime,omitempty"`
931
932	// ForceSendFields is a list of field names (e.g. "AnalysisStatus") to
933	// unconditionally include in API requests. By default, fields with
934	// empty or default values are omitted from API requests. However, any
935	// non-pointer, non-interface field appearing in ForceSendFields will be
936	// sent to the server regardless of whether the field is empty or not.
937	// This may be used to include empty fields in Patch requests.
938	ForceSendFields []string `json:"-"`
939
940	// NullFields is a list of field names (e.g. "AnalysisStatus") to
941	// include in API requests with the JSON null value. By default, fields
942	// with empty values are omitted from API requests. However, any field
943	// with an empty value appearing in NullFields will be sent to the
944	// server as null. It is an error if a field in this list has a
945	// non-empty value. This may be used to include null fields in Patch
946	// requests.
947	NullFields []string `json:"-"`
948}
949
950func (s *DiscoveryOccurrence) MarshalJSON() ([]byte, error) {
951	type NoMethod DiscoveryOccurrence
952	raw := NoMethod(*s)
953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
954}
955
956// Empty: A generic empty message that you can re-use to avoid defining
957// duplicated empty messages in your APIs. A typical example is to use
958// it as the request or the response type of an API method. For
959// instance: service Foo { rpc Bar(google.protobuf.Empty) returns
960// (google.protobuf.Empty); } The JSON representation for `Empty` is
961// empty JSON object `{}`.
962type Empty struct {
963	// ServerResponse contains the HTTP response code and headers from the
964	// server.
965	googleapi.ServerResponse `json:"-"`
966}
967
968// Envelope: MUST match
969// https://github.com/secure-systems-lab/dsse/blob/master/envelope.proto.
970// An authenticated message of arbitrary type.
971type Envelope struct {
972	Payload string `json:"payload,omitempty"`
973
974	PayloadType string `json:"payloadType,omitempty"`
975
976	Signatures []*EnvelopeSignature `json:"signatures,omitempty"`
977
978	// ForceSendFields is a list of field names (e.g. "Payload") to
979	// unconditionally include in API requests. By default, fields with
980	// empty or default values are omitted from API requests. However, any
981	// non-pointer, non-interface field appearing in ForceSendFields will be
982	// sent to the server regardless of whether the field is empty or not.
983	// This may be used to include empty fields in Patch requests.
984	ForceSendFields []string `json:"-"`
985
986	// NullFields is a list of field names (e.g. "Payload") to include in
987	// API requests with the JSON null value. By default, fields with empty
988	// values are omitted from API requests. However, any field with an
989	// empty value appearing in NullFields will be sent to the server as
990	// null. It is an error if a field in this list has a non-empty value.
991	// This may be used to include null fields in Patch requests.
992	NullFields []string `json:"-"`
993}
994
995func (s *Envelope) MarshalJSON() ([]byte, error) {
996	type NoMethod Envelope
997	raw := NoMethod(*s)
998	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
999}
1000
1001type EnvelopeSignature struct {
1002	Keyid string `json:"keyid,omitempty"`
1003
1004	Sig string `json:"sig,omitempty"`
1005
1006	// ForceSendFields is a list of field names (e.g. "Keyid") to
1007	// unconditionally include in API requests. By default, fields with
1008	// empty or default values are omitted from API requests. However, any
1009	// non-pointer, non-interface field appearing in ForceSendFields will be
1010	// sent to the server regardless of whether the field is empty or not.
1011	// This may be used to include empty fields in Patch requests.
1012	ForceSendFields []string `json:"-"`
1013
1014	// NullFields is a list of field names (e.g. "Keyid") to include in API
1015	// requests with the JSON null value. By default, fields with empty
1016	// values are omitted from API requests. However, any field with an
1017	// empty value appearing in NullFields will be sent to the server as
1018	// null. It is an error if a field in this list has a non-empty value.
1019	// This may be used to include null fields in Patch requests.
1020	NullFields []string `json:"-"`
1021}
1022
1023func (s *EnvelopeSignature) MarshalJSON() ([]byte, error) {
1024	type NoMethod EnvelopeSignature
1025	raw := NoMethod(*s)
1026	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1027}
1028
1029// FileHashes: Container message for hashes of byte content of files,
1030// used in source messages to verify integrity of source input to the
1031// build.
1032type FileHashes struct {
1033	// FileHash: Required. Collection of file hashes.
1034	FileHash []*Hash `json:"fileHash,omitempty"`
1035
1036	// ForceSendFields is a list of field names (e.g. "FileHash") to
1037	// unconditionally include in API requests. By default, fields with
1038	// empty or default values are omitted from API requests. However, any
1039	// non-pointer, non-interface field appearing in ForceSendFields will be
1040	// sent to the server regardless of whether the field is empty or not.
1041	// This may be used to include empty fields in Patch requests.
1042	ForceSendFields []string `json:"-"`
1043
1044	// NullFields is a list of field names (e.g. "FileHash") to include in
1045	// API requests with the JSON null value. By default, fields with empty
1046	// values are omitted from API requests. However, any field with an
1047	// empty value appearing in NullFields will be sent to the server as
1048	// null. It is an error if a field in this list has a non-empty value.
1049	// This may be used to include null fields in Patch requests.
1050	NullFields []string `json:"-"`
1051}
1052
1053func (s *FileHashes) MarshalJSON() ([]byte, error) {
1054	type NoMethod FileHashes
1055	raw := NoMethod(*s)
1056	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1057}
1058
1059// Fingerprint: A set of properties that uniquely identify a given
1060// Docker image.
1061type Fingerprint struct {
1062	// V1Name: Required. The layer ID of the final layer in the Docker
1063	// image's v1 representation.
1064	V1Name string `json:"v1Name,omitempty"`
1065
1066	// V2Blob: Required. The ordered list of v2 blobs that represent a given
1067	// image.
1068	V2Blob []string `json:"v2Blob,omitempty"`
1069
1070	// V2Name: Output only. The name of the image's v2 blobs computed via:
1071	// [bottom] := v2_blobbottom := sha256(v2_blob[N] + " " + v2_name[N+1])
1072	// Only the name of the final blob is kept.
1073	V2Name string `json:"v2Name,omitempty"`
1074
1075	// ForceSendFields is a list of field names (e.g. "V1Name") to
1076	// unconditionally include in API requests. By default, fields with
1077	// empty or default values are omitted from API requests. However, any
1078	// non-pointer, non-interface field appearing in ForceSendFields will be
1079	// sent to the server regardless of whether the field is empty or not.
1080	// This may be used to include empty fields in Patch requests.
1081	ForceSendFields []string `json:"-"`
1082
1083	// NullFields is a list of field names (e.g. "V1Name") to include in API
1084	// requests with the JSON null value. By default, fields with empty
1085	// values are omitted from API requests. However, any field with an
1086	// empty value appearing in NullFields will be sent to the server as
1087	// null. It is an error if a field in this list has a non-empty value.
1088	// This may be used to include null fields in Patch requests.
1089	NullFields []string `json:"-"`
1090}
1091
1092func (s *Fingerprint) MarshalJSON() ([]byte, error) {
1093	type NoMethod Fingerprint
1094	raw := NoMethod(*s)
1095	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1096}
1097
1098// GerritSourceContext: A SourceContext referring to a Gerrit project.
1099type GerritSourceContext struct {
1100	// AliasContext: An alias, which may be a branch or tag.
1101	AliasContext *AliasContext `json:"aliasContext,omitempty"`
1102
1103	// GerritProject: The full project name within the host. Projects may be
1104	// nested, so "project/subproject" is a valid project name. The "repo
1105	// name" is the hostURI/project.
1106	GerritProject string `json:"gerritProject,omitempty"`
1107
1108	// HostUri: The URI of a running Gerrit instance.
1109	HostUri string `json:"hostUri,omitempty"`
1110
1111	// RevisionId: A revision (commit) ID.
1112	RevisionId string `json:"revisionId,omitempty"`
1113
1114	// ForceSendFields is a list of field names (e.g. "AliasContext") to
1115	// unconditionally include in API requests. By default, fields with
1116	// empty or default values are omitted from API requests. However, any
1117	// non-pointer, non-interface field appearing in ForceSendFields will be
1118	// sent to the server regardless of whether the field is empty or not.
1119	// This may be used to include empty fields in Patch requests.
1120	ForceSendFields []string `json:"-"`
1121
1122	// NullFields is a list of field names (e.g. "AliasContext") to include
1123	// in API requests with the JSON null value. By default, fields with
1124	// empty values are omitted from API requests. However, any field with
1125	// an empty value appearing in NullFields will be sent to the server as
1126	// null. It is an error if a field in this list has a non-empty value.
1127	// This may be used to include null fields in Patch requests.
1128	NullFields []string `json:"-"`
1129}
1130
1131func (s *GerritSourceContext) MarshalJSON() ([]byte, error) {
1132	type NoMethod GerritSourceContext
1133	raw := NoMethod(*s)
1134	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1135}
1136
1137// GitSourceContext: A GitSourceContext denotes a particular revision in
1138// a third party Git repository (e.g., GitHub).
1139type GitSourceContext struct {
1140	// RevisionId: Git commit hash.
1141	RevisionId string `json:"revisionId,omitempty"`
1142
1143	// Url: Git repository URL.
1144	Url string `json:"url,omitempty"`
1145
1146	// ForceSendFields is a list of field names (e.g. "RevisionId") to
1147	// unconditionally include in API requests. By default, fields with
1148	// empty or default values are omitted from API requests. However, any
1149	// non-pointer, non-interface field appearing in ForceSendFields will be
1150	// sent to the server regardless of whether the field is empty or not.
1151	// This may be used to include empty fields in Patch requests.
1152	ForceSendFields []string `json:"-"`
1153
1154	// NullFields is a list of field names (e.g. "RevisionId") to include in
1155	// API requests with the JSON null value. By default, fields with empty
1156	// values are omitted from API requests. However, any field with an
1157	// empty value appearing in NullFields will be sent to the server as
1158	// null. It is an error if a field in this list has a non-empty value.
1159	// This may be used to include null fields in Patch requests.
1160	NullFields []string `json:"-"`
1161}
1162
1163func (s *GitSourceContext) MarshalJSON() ([]byte, error) {
1164	type NoMethod GitSourceContext
1165	raw := NoMethod(*s)
1166	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1167}
1168
1169// Hash: Container message for hash values.
1170type Hash struct {
1171	// Type: Required. The type of hash that was performed, e.g. "SHA-256".
1172	Type string `json:"type,omitempty"`
1173
1174	// Value: Required. The hash value.
1175	Value string `json:"value,omitempty"`
1176
1177	// ForceSendFields is a list of field names (e.g. "Type") to
1178	// unconditionally include in API requests. By default, fields with
1179	// empty or default values are omitted from API requests. However, any
1180	// non-pointer, non-interface field appearing in ForceSendFields will be
1181	// sent to the server regardless of whether the field is empty or not.
1182	// This may be used to include empty fields in Patch requests.
1183	ForceSendFields []string `json:"-"`
1184
1185	// NullFields is a list of field names (e.g. "Type") to include in API
1186	// requests with the JSON null value. By default, fields with empty
1187	// values are omitted from API requests. However, any field with an
1188	// empty value appearing in NullFields will be sent to the server as
1189	// null. It is an error if a field in this list has a non-empty value.
1190	// This may be used to include null fields in Patch requests.
1191	NullFields []string `json:"-"`
1192}
1193
1194func (s *Hash) MarshalJSON() ([]byte, error) {
1195	type NoMethod Hash
1196	raw := NoMethod(*s)
1197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1198}
1199
1200// Identity: The unique identifier of the update.
1201type Identity struct {
1202	// Revision: The revision number of the update.
1203	Revision int64 `json:"revision,omitempty"`
1204
1205	// UpdateId: The revision independent identifier of the update.
1206	UpdateId string `json:"updateId,omitempty"`
1207
1208	// ForceSendFields is a list of field names (e.g. "Revision") to
1209	// unconditionally include in API requests. By default, fields with
1210	// empty or default values are omitted from API requests. However, any
1211	// non-pointer, non-interface field appearing in ForceSendFields will be
1212	// sent to the server regardless of whether the field is empty or not.
1213	// This may be used to include empty fields in Patch requests.
1214	ForceSendFields []string `json:"-"`
1215
1216	// NullFields is a list of field names (e.g. "Revision") to include in
1217	// API requests with the JSON null value. By default, fields with empty
1218	// values are omitted from API requests. However, any field with an
1219	// empty value appearing in NullFields will be sent to the server as
1220	// null. It is an error if a field in this list has a non-empty value.
1221	// This may be used to include null fields in Patch requests.
1222	NullFields []string `json:"-"`
1223}
1224
1225func (s *Identity) MarshalJSON() ([]byte, error) {
1226	type NoMethod Identity
1227	raw := NoMethod(*s)
1228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1229}
1230
1231// ImageOccurrence: Details of the derived image portion of the
1232// DockerImage relationship. This image would be produced from a
1233// Dockerfile with FROM .
1234type ImageOccurrence struct {
1235	// BaseResourceUrl: Output only. This contains the base image URL for
1236	// the derived image occurrence.
1237	BaseResourceUrl string `json:"baseResourceUrl,omitempty"`
1238
1239	// Distance: Output only. The number of layers by which this image
1240	// differs from the associated image basis.
1241	Distance int64 `json:"distance,omitempty"`
1242
1243	// Fingerprint: Required. The fingerprint of the derived image.
1244	Fingerprint *Fingerprint `json:"fingerprint,omitempty"`
1245
1246	// LayerInfo: This contains layer-specific metadata, if populated it has
1247	// length "distance" and is ordered with [distance] being the layer
1248	// immediately following the base image and [1] being the final layer.
1249	LayerInfo []*Layer `json:"layerInfo,omitempty"`
1250
1251	// ForceSendFields is a list of field names (e.g. "BaseResourceUrl") to
1252	// unconditionally include in API requests. By default, fields with
1253	// empty or default values are omitted from API requests. However, any
1254	// non-pointer, non-interface field appearing in ForceSendFields will be
1255	// sent to the server regardless of whether the field is empty or not.
1256	// This may be used to include empty fields in Patch requests.
1257	ForceSendFields []string `json:"-"`
1258
1259	// NullFields is a list of field names (e.g. "BaseResourceUrl") to
1260	// include in API requests with the JSON null value. By default, fields
1261	// with empty values are omitted from API requests. However, any field
1262	// with an empty value appearing in NullFields will be sent to the
1263	// server as null. It is an error if a field in this list has a
1264	// non-empty value. This may be used to include null fields in Patch
1265	// requests.
1266	NullFields []string `json:"-"`
1267}
1268
1269func (s *ImageOccurrence) MarshalJSON() ([]byte, error) {
1270	type NoMethod ImageOccurrence
1271	raw := NoMethod(*s)
1272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1273}
1274
1275type InTotoProvenance struct {
1276	// BuilderConfig: required
1277	BuilderConfig *BuilderConfig `json:"builderConfig,omitempty"`
1278
1279	// Materials: The collection of artifacts that influenced the build
1280	// including sources, dependencies, build tools, base images, and so on.
1281	// This is considered to be incomplete unless
1282	// metadata.completeness.materials is true. Unset or null is equivalent
1283	// to empty.
1284	Materials []string `json:"materials,omitempty"`
1285
1286	Metadata *Metadata `json:"metadata,omitempty"`
1287
1288	// Recipe: Identifies the configuration used for the build. When
1289	// combined with materials, this SHOULD fully describe the build, such
1290	// that re-running this recipe results in bit-for-bit identical output
1291	// (if the build is reproducible). required
1292	Recipe *Recipe `json:"recipe,omitempty"`
1293
1294	// ForceSendFields is a list of field names (e.g. "BuilderConfig") to
1295	// unconditionally include in API requests. By default, fields with
1296	// empty or default values are omitted from API requests. However, any
1297	// non-pointer, non-interface field appearing in ForceSendFields will be
1298	// sent to the server regardless of whether the field is empty or not.
1299	// This may be used to include empty fields in Patch requests.
1300	ForceSendFields []string `json:"-"`
1301
1302	// NullFields is a list of field names (e.g. "BuilderConfig") to include
1303	// in API requests with the JSON null value. By default, fields with
1304	// empty values are omitted from API requests. However, any field with
1305	// an empty value appearing in NullFields will be sent to the server as
1306	// null. It is an error if a field in this list has a non-empty value.
1307	// This may be used to include null fields in Patch requests.
1308	NullFields []string `json:"-"`
1309}
1310
1311func (s *InTotoProvenance) MarshalJSON() ([]byte, error) {
1312	type NoMethod InTotoProvenance
1313	raw := NoMethod(*s)
1314	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1315}
1316
1317// InTotoStatement: Spec defined at
1318// https://github.com/in-toto/attestation/tree/main/spec#statement The
1319// serialized InTotoStatement will be stored as Envelope.payload.
1320// Envelope.payloadType is always "application/vnd.in-toto+json".
1321type InTotoStatement struct {
1322	// PredicateType: "https://in-toto.io/Provenance/v0.1" for
1323	// InTotoProvenance.
1324	PredicateType string `json:"predicateType,omitempty"`
1325
1326	Provenance *InTotoProvenance `json:"provenance,omitempty"`
1327
1328	Subject []*Subject `json:"subject,omitempty"`
1329
1330	// Type: Always "https://in-toto.io/Statement/v0.1".
1331	Type string `json:"type,omitempty"`
1332
1333	// ForceSendFields is a list of field names (e.g. "PredicateType") to
1334	// unconditionally include in API requests. By default, fields with
1335	// empty or default values are omitted from API requests. However, any
1336	// non-pointer, non-interface field appearing in ForceSendFields will be
1337	// sent to the server regardless of whether the field is empty or not.
1338	// This may be used to include empty fields in Patch requests.
1339	ForceSendFields []string `json:"-"`
1340
1341	// NullFields is a list of field names (e.g. "PredicateType") to include
1342	// in API requests with the JSON null value. By default, fields with
1343	// empty values are omitted from API requests. However, any field with
1344	// an empty value appearing in NullFields will be sent to the server as
1345	// null. It is an error if a field in this list has a non-empty value.
1346	// This may be used to include null fields in Patch requests.
1347	NullFields []string `json:"-"`
1348}
1349
1350func (s *InTotoStatement) MarshalJSON() ([]byte, error) {
1351	type NoMethod InTotoStatement
1352	raw := NoMethod(*s)
1353	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1354}
1355
1356type Jwt struct {
1357	// CompactJwt: The compact encoding of a JWS, which is always three
1358	// base64 encoded strings joined by periods. For details, see:
1359	// https://tools.ietf.org/html/rfc7515.html#section-3.1
1360	CompactJwt string `json:"compactJwt,omitempty"`
1361
1362	// ForceSendFields is a list of field names (e.g. "CompactJwt") to
1363	// unconditionally include in API requests. By default, fields with
1364	// empty or default values are omitted from API requests. However, any
1365	// non-pointer, non-interface field appearing in ForceSendFields will be
1366	// sent to the server regardless of whether the field is empty or not.
1367	// This may be used to include empty fields in Patch requests.
1368	ForceSendFields []string `json:"-"`
1369
1370	// NullFields is a list of field names (e.g. "CompactJwt") to include in
1371	// API requests with the JSON null value. By default, fields with empty
1372	// values are omitted from API requests. However, any field with an
1373	// empty value appearing in NullFields will be sent to the server as
1374	// null. It is an error if a field in this list has a non-empty value.
1375	// This may be used to include null fields in Patch requests.
1376	NullFields []string `json:"-"`
1377}
1378
1379func (s *Jwt) MarshalJSON() ([]byte, error) {
1380	type NoMethod Jwt
1381	raw := NoMethod(*s)
1382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1383}
1384
1385// Layer: Layer holds metadata specific to a layer of a Docker image.
1386type Layer struct {
1387	// Arguments: The recovered arguments to the Dockerfile directive.
1388	Arguments string `json:"arguments,omitempty"`
1389
1390	// Directive: Required. The recovered Dockerfile directive used to
1391	// construct this layer. See
1392	// https://docs.docker.com/engine/reference/builder/ for more
1393	// information.
1394	Directive string `json:"directive,omitempty"`
1395
1396	// ForceSendFields is a list of field names (e.g. "Arguments") to
1397	// unconditionally include in API requests. By default, fields with
1398	// empty or default values are omitted from API requests. However, any
1399	// non-pointer, non-interface field appearing in ForceSendFields will be
1400	// sent to the server regardless of whether the field is empty or not.
1401	// This may be used to include empty fields in Patch requests.
1402	ForceSendFields []string `json:"-"`
1403
1404	// NullFields is a list of field names (e.g. "Arguments") to include in
1405	// API requests with the JSON null value. By default, fields with empty
1406	// values are omitted from API requests. However, any field with an
1407	// empty value appearing in NullFields will be sent to the server as
1408	// null. It is an error if a field in this list has a non-empty value.
1409	// This may be used to include null fields in Patch requests.
1410	NullFields []string `json:"-"`
1411}
1412
1413func (s *Layer) MarshalJSON() ([]byte, error) {
1414	type NoMethod Layer
1415	raw := NoMethod(*s)
1416	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1417}
1418
1419// ListOperationsResponse: The response message for
1420// Operations.ListOperations.
1421type ListOperationsResponse struct {
1422	// NextPageToken: The standard List next-page token.
1423	NextPageToken string `json:"nextPageToken,omitempty"`
1424
1425	// Operations: A list of operations that matches the specified filter in
1426	// the request.
1427	Operations []*Operation `json:"operations,omitempty"`
1428
1429	// ServerResponse contains the HTTP response code and headers from the
1430	// server.
1431	googleapi.ServerResponse `json:"-"`
1432
1433	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
1434	// unconditionally include in API requests. By default, fields with
1435	// empty or default values are omitted from API requests. However, any
1436	// non-pointer, non-interface field appearing in ForceSendFields will be
1437	// sent to the server regardless of whether the field is empty or not.
1438	// This may be used to include empty fields in Patch requests.
1439	ForceSendFields []string `json:"-"`
1440
1441	// NullFields is a list of field names (e.g. "NextPageToken") to include
1442	// in API requests with the JSON null value. By default, fields with
1443	// empty values are omitted from API requests. However, any field with
1444	// an empty value appearing in NullFields will be sent to the server as
1445	// null. It is an error if a field in this list has a non-empty value.
1446	// This may be used to include null fields in Patch requests.
1447	NullFields []string `json:"-"`
1448}
1449
1450func (s *ListOperationsResponse) MarshalJSON() ([]byte, error) {
1451	type NoMethod ListOperationsResponse
1452	raw := NoMethod(*s)
1453	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1454}
1455
1456// ListVulnerabilitiesResponse: ListVulnerabilitiesResponse contains a
1457// single page of vulnerabilities resulting from a scan.
1458type ListVulnerabilitiesResponse struct {
1459	// NextPageToken: A page token that can be used in a subsequent call to
1460	// ListVulnerabilities to continue retrieving results.
1461	NextPageToken string `json:"nextPageToken,omitempty"`
1462
1463	// Occurrences: The list of Vulnerability Occurrences resulting from a
1464	// scan.
1465	Occurrences []*Occurrence `json:"occurrences,omitempty"`
1466
1467	// ServerResponse contains the HTTP response code and headers from the
1468	// server.
1469	googleapi.ServerResponse `json:"-"`
1470
1471	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
1472	// unconditionally include in API requests. By default, fields with
1473	// empty or default values are omitted from API requests. However, any
1474	// non-pointer, non-interface field appearing in ForceSendFields will be
1475	// sent to the server regardless of whether the field is empty or not.
1476	// This may be used to include empty fields in Patch requests.
1477	ForceSendFields []string `json:"-"`
1478
1479	// NullFields is a list of field names (e.g. "NextPageToken") to include
1480	// in API requests with the JSON null value. By default, fields with
1481	// empty values are omitted from API requests. However, any field with
1482	// an empty value appearing in NullFields will be sent to the server as
1483	// null. It is an error if a field in this list has a non-empty value.
1484	// This may be used to include null fields in Patch requests.
1485	NullFields []string `json:"-"`
1486}
1487
1488func (s *ListVulnerabilitiesResponse) MarshalJSON() ([]byte, error) {
1489	type NoMethod ListVulnerabilitiesResponse
1490	raw := NoMethod(*s)
1491	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1492}
1493
1494// Location: An occurrence of a particular package installation found
1495// within a system's filesystem. E.g., glibc was found in
1496// `/var/lib/dpkg/status`.
1497type Location struct {
1498	// CpeUri: Required. The CPE URI in CPE format
1499	// (https://cpe.mitre.org/specification/) denoting the package manager
1500	// version distributing a package.
1501	CpeUri string `json:"cpeUri,omitempty"`
1502
1503	// Path: The path from which we gathered that this package/version is
1504	// installed.
1505	Path string `json:"path,omitempty"`
1506
1507	// Version: The version installed at this location.
1508	Version *Version `json:"version,omitempty"`
1509
1510	// ForceSendFields is a list of field names (e.g. "CpeUri") to
1511	// unconditionally include in API requests. By default, fields with
1512	// empty or default values are omitted from API requests. However, any
1513	// non-pointer, non-interface field appearing in ForceSendFields will be
1514	// sent to the server regardless of whether the field is empty or not.
1515	// This may be used to include empty fields in Patch requests.
1516	ForceSendFields []string `json:"-"`
1517
1518	// NullFields is a list of field names (e.g. "CpeUri") to include in API
1519	// requests with the JSON null value. By default, fields with empty
1520	// values are omitted from API requests. However, any field with an
1521	// empty value appearing in NullFields will be sent to the server as
1522	// null. It is an error if a field in this list has a non-empty value.
1523	// This may be used to include null fields in Patch requests.
1524	NullFields []string `json:"-"`
1525}
1526
1527func (s *Location) MarshalJSON() ([]byte, error) {
1528	type NoMethod Location
1529	raw := NoMethod(*s)
1530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1531}
1532
1533// Metadata: Other properties of the build.
1534type Metadata struct {
1535	// BuildFinishedOn: The timestamp of when the build completed.
1536	BuildFinishedOn string `json:"buildFinishedOn,omitempty"`
1537
1538	// BuildInvocationId: Identifies the particular build invocation, which
1539	// can be useful for finding associated logs or other ad-hoc analysis.
1540	// The value SHOULD be globally unique, per in-toto Provenance spec.
1541	BuildInvocationId string `json:"buildInvocationId,omitempty"`
1542
1543	// BuildStartedOn: The timestamp of when the build started.
1544	BuildStartedOn string `json:"buildStartedOn,omitempty"`
1545
1546	// Completeness: Indicates that the builder claims certain fields in
1547	// this message to be complete.
1548	Completeness *Completeness `json:"completeness,omitempty"`
1549
1550	// Reproducible: If true, the builder claims that running the recipe on
1551	// materials will produce bit-for-bit identical output.
1552	Reproducible bool `json:"reproducible,omitempty"`
1553
1554	// ForceSendFields is a list of field names (e.g. "BuildFinishedOn") to
1555	// unconditionally include in API requests. By default, fields with
1556	// empty or default values are omitted from API requests. However, any
1557	// non-pointer, non-interface field appearing in ForceSendFields will be
1558	// sent to the server regardless of whether the field is empty or not.
1559	// This may be used to include empty fields in Patch requests.
1560	ForceSendFields []string `json:"-"`
1561
1562	// NullFields is a list of field names (e.g. "BuildFinishedOn") to
1563	// include in API requests with the JSON null value. By default, fields
1564	// with empty values are omitted from API requests. However, any field
1565	// with an empty value appearing in NullFields will be sent to the
1566	// server as null. It is an error if a field in this list has a
1567	// non-empty value. This may be used to include null fields in Patch
1568	// requests.
1569	NullFields []string `json:"-"`
1570}
1571
1572func (s *Metadata) MarshalJSON() ([]byte, error) {
1573	type NoMethod Metadata
1574	raw := NoMethod(*s)
1575	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1576}
1577
1578// NonCompliantFile: Details about files that caused a compliance check
1579// to fail.
1580type NonCompliantFile struct {
1581	// DisplayCommand: Command to display the non-compliant files.
1582	DisplayCommand string `json:"displayCommand,omitempty"`
1583
1584	// Path: display_command is a single command that can be used to display
1585	// a list of non compliant files. When there is no such command, we can
1586	// also iterate a list of non compliant file using 'path'. Empty if
1587	// `display_command` is set.
1588	Path string `json:"path,omitempty"`
1589
1590	// Reason: Explains why a file is non compliant for a CIS check.
1591	Reason string `json:"reason,omitempty"`
1592
1593	// ForceSendFields is a list of field names (e.g. "DisplayCommand") to
1594	// unconditionally include in API requests. By default, fields with
1595	// empty or default values are omitted from API requests. However, any
1596	// non-pointer, non-interface field appearing in ForceSendFields will be
1597	// sent to the server regardless of whether the field is empty or not.
1598	// This may be used to include empty fields in Patch requests.
1599	ForceSendFields []string `json:"-"`
1600
1601	// NullFields is a list of field names (e.g. "DisplayCommand") to
1602	// include in API requests with the JSON null value. By default, fields
1603	// with empty values are omitted from API requests. However, any field
1604	// with an empty value appearing in NullFields will be sent to the
1605	// server as null. It is an error if a field in this list has a
1606	// non-empty value. This may be used to include null fields in Patch
1607	// requests.
1608	NullFields []string `json:"-"`
1609}
1610
1611func (s *NonCompliantFile) MarshalJSON() ([]byte, error) {
1612	type NoMethod NonCompliantFile
1613	raw := NoMethod(*s)
1614	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1615}
1616
1617// Occurrence: An instance of an analysis type that has been found on a
1618// resource.
1619type Occurrence struct {
1620	// Attestation: Describes an attestation of an artifact.
1621	Attestation *AttestationOccurrence `json:"attestation,omitempty"`
1622
1623	// Build: Describes a verifiable build.
1624	Build *BuildOccurrence `json:"build,omitempty"`
1625
1626	// Compliance: Describes a compliance violation on a linked resource.
1627	Compliance *ComplianceOccurrence `json:"compliance,omitempty"`
1628
1629	// CreateTime: Output only. The time this occurrence was created.
1630	CreateTime string `json:"createTime,omitempty"`
1631
1632	// Deployment: Describes the deployment of an artifact on a runtime.
1633	Deployment *DeploymentOccurrence `json:"deployment,omitempty"`
1634
1635	// Discovery: Describes when a resource was discovered.
1636	Discovery *DiscoveryOccurrence `json:"discovery,omitempty"`
1637
1638	// DsseAttestation: Describes an attestation of an artifact using dsse.
1639	DsseAttestation *DSSEAttestationOccurrence `json:"dsseAttestation,omitempty"`
1640
1641	// Envelope: https://github.com/secure-systems-lab/dsse
1642	Envelope *Envelope `json:"envelope,omitempty"`
1643
1644	// Image: Describes how this resource derives from the basis in the
1645	// associated note.
1646	Image *ImageOccurrence `json:"image,omitempty"`
1647
1648	// Kind: Output only. This explicitly denotes which of the occurrence
1649	// details are specified. This field can be used as a filter in list
1650	// requests.
1651	//
1652	// Possible values:
1653	//   "NOTE_KIND_UNSPECIFIED" - Default value. This value is unused.
1654	//   "VULNERABILITY" - The note and occurrence represent a package
1655	// vulnerability.
1656	//   "BUILD" - The note and occurrence assert build provenance.
1657	//   "IMAGE" - This represents an image basis relationship.
1658	//   "PACKAGE" - This represents a package installed via a package
1659	// manager.
1660	//   "DEPLOYMENT" - The note and occurrence track deployment events.
1661	//   "DISCOVERY" - The note and occurrence track the initial discovery
1662	// status of a resource.
1663	//   "ATTESTATION" - This represents a logical "role" that can attest to
1664	// artifacts.
1665	//   "UPGRADE" - This represents an available package upgrade.
1666	//   "COMPLIANCE" - This represents a Compliance Note
1667	//   "DSSE_ATTESTATION" - This represents a DSSE attestation Note
1668	Kind string `json:"kind,omitempty"`
1669
1670	// Name: Output only. The name of the occurrence in the form of
1671	// `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.
1672	Name string `json:"name,omitempty"`
1673
1674	// NoteName: Required. Immutable. The analysis note associated with this
1675	// occurrence, in the form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.
1676	// This field can be used as a filter in list requests.
1677	NoteName string `json:"noteName,omitempty"`
1678
1679	// Package: Describes the installation of a package on the linked
1680	// resource.
1681	Package *PackageOccurrence `json:"package,omitempty"`
1682
1683	// Remediation: A description of actions that can be taken to remedy the
1684	// note.
1685	Remediation string `json:"remediation,omitempty"`
1686
1687	// ResourceUri: Required. Immutable. A URI that represents the resource
1688	// for which the occurrence applies. For example,
1689	// `https://gcr.io/project/image@sha256:123abc` for a Docker image.
1690	ResourceUri string `json:"resourceUri,omitempty"`
1691
1692	// UpdateTime: Output only. The time this occurrence was last updated.
1693	UpdateTime string `json:"updateTime,omitempty"`
1694
1695	// Upgrade: Describes an available package upgrade on the linked
1696	// resource.
1697	Upgrade *UpgradeOccurrence `json:"upgrade,omitempty"`
1698
1699	// Vulnerability: Describes a security vulnerability.
1700	Vulnerability *VulnerabilityOccurrence `json:"vulnerability,omitempty"`
1701
1702	// ForceSendFields is a list of field names (e.g. "Attestation") to
1703	// unconditionally include in API requests. By default, fields with
1704	// empty or default values are omitted from API requests. However, any
1705	// non-pointer, non-interface field appearing in ForceSendFields will be
1706	// sent to the server regardless of whether the field is empty or not.
1707	// This may be used to include empty fields in Patch requests.
1708	ForceSendFields []string `json:"-"`
1709
1710	// NullFields is a list of field names (e.g. "Attestation") to include
1711	// in API requests with the JSON null value. By default, fields with
1712	// empty values are omitted from API requests. However, any field with
1713	// an empty value appearing in NullFields will be sent to the server as
1714	// null. It is an error if a field in this list has a non-empty value.
1715	// This may be used to include null fields in Patch requests.
1716	NullFields []string `json:"-"`
1717}
1718
1719func (s *Occurrence) MarshalJSON() ([]byte, error) {
1720	type NoMethod Occurrence
1721	raw := NoMethod(*s)
1722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1723}
1724
1725// Operation: This resource represents a long-running operation that is
1726// the result of a network API call.
1727type Operation struct {
1728	// Done: If the value is `false`, it means the operation is still in
1729	// progress. If `true`, the operation is completed, and either `error`
1730	// or `response` is available.
1731	Done bool `json:"done,omitempty"`
1732
1733	// Error: The error result of the operation in case of failure or
1734	// cancellation.
1735	Error *Status `json:"error,omitempty"`
1736
1737	// Metadata: Service-specific metadata associated with the operation. It
1738	// typically contains progress information and common metadata such as
1739	// create time. Some services might not provide such metadata. Any
1740	// method that returns a long-running operation should document the
1741	// metadata type, if any.
1742	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
1743
1744	// Name: The server-assigned name, which is only unique within the same
1745	// service that originally returns it. If you use the default HTTP
1746	// mapping, the `name` should be a resource name ending with
1747	// `operations/{unique_id}`.
1748	Name string `json:"name,omitempty"`
1749
1750	// Response: The normal response of the operation in case of success. If
1751	// the original method returns no data on success, such as `Delete`, the
1752	// response is `google.protobuf.Empty`. If the original method is
1753	// standard `Get`/`Create`/`Update`, the response should be the
1754	// resource. For other methods, the response should have the type
1755	// `XxxResponse`, where `Xxx` is the original method name. For example,
1756	// if the original method name is `TakeSnapshot()`, the inferred
1757	// response type is `TakeSnapshotResponse`.
1758	Response googleapi.RawMessage `json:"response,omitempty"`
1759
1760	// ServerResponse contains the HTTP response code and headers from the
1761	// server.
1762	googleapi.ServerResponse `json:"-"`
1763
1764	// ForceSendFields is a list of field names (e.g. "Done") to
1765	// unconditionally include in API requests. By default, fields with
1766	// empty or default values are omitted from API requests. However, any
1767	// non-pointer, non-interface field appearing in ForceSendFields will be
1768	// sent to the server regardless of whether the field is empty or not.
1769	// This may be used to include empty fields in Patch requests.
1770	ForceSendFields []string `json:"-"`
1771
1772	// NullFields is a list of field names (e.g. "Done") to include in API
1773	// requests with the JSON null value. By default, fields with empty
1774	// values are omitted from API requests. However, any field with an
1775	// empty value appearing in NullFields will be sent to the server as
1776	// null. It is an error if a field in this list has a non-empty value.
1777	// This may be used to include null fields in Patch requests.
1778	NullFields []string `json:"-"`
1779}
1780
1781func (s *Operation) MarshalJSON() ([]byte, error) {
1782	type NoMethod Operation
1783	raw := NoMethod(*s)
1784	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1785}
1786
1787type PackageData struct {
1788	// CpeUri: The cpe_uri in [cpe format]
1789	// (https://cpe.mitre.org/specification/) in which the vulnerability may
1790	// manifest. Examples include distro or storage location for vulnerable
1791	// jar.
1792	CpeUri string `json:"cpeUri,omitempty"`
1793
1794	// Os: The OS affected by a vulnerability This field is deprecated and
1795	// the information is in cpe_uri
1796	Os string `json:"os,omitempty"`
1797
1798	// OsVersion: The version of the OS This field is deprecated and the
1799	// information is in cpe_uri
1800	OsVersion string `json:"osVersion,omitempty"`
1801
1802	// Package: The package being analysed for vulnerabilities
1803	Package string `json:"package,omitempty"`
1804
1805	// PackageType: The type of package: os, maven, go, etc.
1806	//
1807	// Possible values:
1808	//   "PACKAGE_TYPE_UNSPECIFIED"
1809	//   "OS" - Operating System
1810	//   "MAVEN" - Java packages from Maven.
1811	//   "GO" - Go third-party packages.
1812	//   "GO_STDLIB" - Go toolchain + standard library packages.
1813	PackageType string `json:"packageType,omitempty"`
1814
1815	Unused string `json:"unused,omitempty"`
1816
1817	// Version: The version of the package being analysed
1818	Version string `json:"version,omitempty"`
1819
1820	// ForceSendFields is a list of field names (e.g. "CpeUri") to
1821	// unconditionally include in API requests. By default, fields with
1822	// empty or default values are omitted from API requests. However, any
1823	// non-pointer, non-interface field appearing in ForceSendFields will be
1824	// sent to the server regardless of whether the field is empty or not.
1825	// This may be used to include empty fields in Patch requests.
1826	ForceSendFields []string `json:"-"`
1827
1828	// NullFields is a list of field names (e.g. "CpeUri") to include in API
1829	// requests with the JSON null value. By default, fields with empty
1830	// values are omitted from API requests. However, any field with an
1831	// empty value appearing in NullFields will be sent to the server as
1832	// null. It is an error if a field in this list has a non-empty value.
1833	// This may be used to include null fields in Patch requests.
1834	NullFields []string `json:"-"`
1835}
1836
1837func (s *PackageData) MarshalJSON() ([]byte, error) {
1838	type NoMethod PackageData
1839	raw := NoMethod(*s)
1840	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1841}
1842
1843// PackageIssue: A detail for a distro and package this vulnerability
1844// occurrence was found in and its associated fix (if one is available).
1845type PackageIssue struct {
1846	// AffectedCpeUri: Required. The CPE URI
1847	// (https://cpe.mitre.org/specification/) this vulnerability was found
1848	// in.
1849	AffectedCpeUri string `json:"affectedCpeUri,omitempty"`
1850
1851	// AffectedPackage: Required. The package this vulnerability was found
1852	// in.
1853	AffectedPackage string `json:"affectedPackage,omitempty"`
1854
1855	// AffectedVersion: Required. The version of the package that is
1856	// installed on the resource affected by this vulnerability.
1857	AffectedVersion *Version `json:"affectedVersion,omitempty"`
1858
1859	// FixAvailable: Output only. Whether a fix is available for this
1860	// package.
1861	FixAvailable bool `json:"fixAvailable,omitempty"`
1862
1863	// FixedCpeUri: The CPE URI (https://cpe.mitre.org/specification/) this
1864	// vulnerability was fixed in. It is possible for this to be different
1865	// from the affected_cpe_uri.
1866	FixedCpeUri string `json:"fixedCpeUri,omitempty"`
1867
1868	// FixedPackage: The package this vulnerability was fixed in. It is
1869	// possible for this to be different from the affected_package.
1870	FixedPackage string `json:"fixedPackage,omitempty"`
1871
1872	// FixedVersion: Required. The version of the package this vulnerability
1873	// was fixed in. Setting this to VersionKind.MAXIMUM means no fix is yet
1874	// available.
1875	FixedVersion *Version `json:"fixedVersion,omitempty"`
1876
1877	// ForceSendFields is a list of field names (e.g. "AffectedCpeUri") to
1878	// unconditionally include in API requests. By default, fields with
1879	// empty or default values are omitted from API requests. However, any
1880	// non-pointer, non-interface field appearing in ForceSendFields will be
1881	// sent to the server regardless of whether the field is empty or not.
1882	// This may be used to include empty fields in Patch requests.
1883	ForceSendFields []string `json:"-"`
1884
1885	// NullFields is a list of field names (e.g. "AffectedCpeUri") to
1886	// include in API requests with the JSON null value. By default, fields
1887	// with empty values are omitted from API requests. However, any field
1888	// with an empty value appearing in NullFields will be sent to the
1889	// server as null. It is an error if a field in this list has a
1890	// non-empty value. This may be used to include null fields in Patch
1891	// requests.
1892	NullFields []string `json:"-"`
1893}
1894
1895func (s *PackageIssue) MarshalJSON() ([]byte, error) {
1896	type NoMethod PackageIssue
1897	raw := NoMethod(*s)
1898	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1899}
1900
1901// PackageOccurrence: Details on how a particular software package was
1902// installed on a system.
1903type PackageOccurrence struct {
1904	// Location: Required. All of the places within the filesystem versions
1905	// of this package have been found.
1906	Location []*Location `json:"location,omitempty"`
1907
1908	// Name: Output only. The name of the installed package.
1909	Name string `json:"name,omitempty"`
1910
1911	// ForceSendFields is a list of field names (e.g. "Location") to
1912	// unconditionally include in API requests. By default, fields with
1913	// empty or default values are omitted from API requests. However, any
1914	// non-pointer, non-interface field appearing in ForceSendFields will be
1915	// sent to the server regardless of whether the field is empty or not.
1916	// This may be used to include empty fields in Patch requests.
1917	ForceSendFields []string `json:"-"`
1918
1919	// NullFields is a list of field names (e.g. "Location") to include in
1920	// API requests with the JSON null value. By default, fields with empty
1921	// values are omitted from API requests. However, any field with an
1922	// empty value appearing in NullFields will be sent to the server as
1923	// null. It is an error if a field in this list has a non-empty value.
1924	// This may be used to include null fields in Patch requests.
1925	NullFields []string `json:"-"`
1926}
1927
1928func (s *PackageOccurrence) MarshalJSON() ([]byte, error) {
1929	type NoMethod PackageOccurrence
1930	raw := NoMethod(*s)
1931	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1932}
1933
1934// ProjectRepoId: Selects a repo using a Google Cloud Platform project
1935// ID (e.g., winged-cargo-31) and a repo name within that project.
1936type ProjectRepoId struct {
1937	// ProjectId: The ID of the project.
1938	ProjectId string `json:"projectId,omitempty"`
1939
1940	// RepoName: The name of the repo. Leave empty for the default repo.
1941	RepoName string `json:"repoName,omitempty"`
1942
1943	// ForceSendFields is a list of field names (e.g. "ProjectId") to
1944	// unconditionally include in API requests. By default, fields with
1945	// empty or default values are omitted from API requests. However, any
1946	// non-pointer, non-interface field appearing in ForceSendFields will be
1947	// sent to the server regardless of whether the field is empty or not.
1948	// This may be used to include empty fields in Patch requests.
1949	ForceSendFields []string `json:"-"`
1950
1951	// NullFields is a list of field names (e.g. "ProjectId") to include in
1952	// API requests with the JSON null value. By default, fields with empty
1953	// values are omitted from API requests. However, any field with an
1954	// empty value appearing in NullFields will be sent to the server as
1955	// null. It is an error if a field in this list has a non-empty value.
1956	// This may be used to include null fields in Patch requests.
1957	NullFields []string `json:"-"`
1958}
1959
1960func (s *ProjectRepoId) MarshalJSON() ([]byte, error) {
1961	type NoMethod ProjectRepoId
1962	raw := NoMethod(*s)
1963	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1964}
1965
1966// Recipe: Steps taken to build the artifact. For a TaskRun, typically
1967// each container corresponds to one step in the recipe.
1968type Recipe struct {
1969	// Arguments: Collection of all external inputs that influenced the
1970	// build on top of recipe.definedInMaterial and recipe.entryPoint. For
1971	// example, if the recipe type were "make", then this might be the flags
1972	// passed to make aside from the target, which is captured in
1973	// recipe.entryPoint.
1974	Arguments []string `json:"arguments,omitempty"`
1975
1976	// DefinedInMaterial: Index in materials containing the recipe steps
1977	// that are not implied by recipe.type. For example, if the recipe type
1978	// were "make", then this would point to the source containing the
1979	// Makefile, not the make program itself. Set to -1 if the recipe
1980	// doesn't come from a material, as zero is default unset value for
1981	// int64.
1982	DefinedInMaterial int64 `json:"definedInMaterial,omitempty,string"`
1983
1984	// EntryPoint: String identifying the entry point into the build. This
1985	// is often a path to a configuration file and/or a target label within
1986	// that file. The syntax and meaning are defined by recipe.type. For
1987	// example, if the recipe type were "make", then this would reference
1988	// the directory in which to run make as well as which target to use.
1989	EntryPoint string `json:"entryPoint,omitempty"`
1990
1991	// Environment: Any other builder-controlled inputs necessary for
1992	// correctly evaluating the recipe. Usually only needed for reproducing
1993	// the build but not evaluated as part of policy.
1994	Environment map[string]string `json:"environment,omitempty"`
1995
1996	// Type: URI indicating what type of recipe was performed. It determines
1997	// the meaning of recipe.entryPoint, recipe.arguments,
1998	// recipe.environment, and materials.
1999	Type string `json:"type,omitempty"`
2000
2001	// ForceSendFields is a list of field names (e.g. "Arguments") to
2002	// unconditionally include in API requests. By default, fields with
2003	// empty or default values are omitted from API requests. However, any
2004	// non-pointer, non-interface field appearing in ForceSendFields will be
2005	// sent to the server regardless of whether the field is empty or not.
2006	// This may be used to include empty fields in Patch requests.
2007	ForceSendFields []string `json:"-"`
2008
2009	// NullFields is a list of field names (e.g. "Arguments") to include in
2010	// API requests with the JSON null value. By default, fields with empty
2011	// values are omitted from API requests. However, any field with an
2012	// empty value appearing in NullFields will be sent to the server as
2013	// null. It is an error if a field in this list has a non-empty value.
2014	// This may be used to include null fields in Patch requests.
2015	NullFields []string `json:"-"`
2016}
2017
2018func (s *Recipe) MarshalJSON() ([]byte, error) {
2019	type NoMethod Recipe
2020	raw := NoMethod(*s)
2021	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2022}
2023
2024// RelatedUrl: Metadata for any related URL information.
2025type RelatedUrl struct {
2026	// Label: Label to describe usage of the URL.
2027	Label string `json:"label,omitempty"`
2028
2029	// Url: Specific URL associated with the resource.
2030	Url string `json:"url,omitempty"`
2031
2032	// ForceSendFields is a list of field names (e.g. "Label") to
2033	// unconditionally include in API requests. By default, fields with
2034	// empty or default values are omitted from API requests. However, any
2035	// non-pointer, non-interface field appearing in ForceSendFields will be
2036	// sent to the server regardless of whether the field is empty or not.
2037	// This may be used to include empty fields in Patch requests.
2038	ForceSendFields []string `json:"-"`
2039
2040	// NullFields is a list of field names (e.g. "Label") to include in API
2041	// requests with the JSON null value. By default, fields with empty
2042	// values are omitted from API requests. However, any field with an
2043	// empty value appearing in NullFields will be sent to the server as
2044	// null. It is an error if a field in this list has a non-empty value.
2045	// This may be used to include null fields in Patch requests.
2046	NullFields []string `json:"-"`
2047}
2048
2049func (s *RelatedUrl) MarshalJSON() ([]byte, error) {
2050	type NoMethod RelatedUrl
2051	raw := NoMethod(*s)
2052	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2053}
2054
2055// RepoId: A unique identifier for a Cloud Repo.
2056type RepoId struct {
2057	// ProjectRepoId: A combination of a project ID and a repo name.
2058	ProjectRepoId *ProjectRepoId `json:"projectRepoId,omitempty"`
2059
2060	// Uid: A server-assigned, globally unique identifier.
2061	Uid string `json:"uid,omitempty"`
2062
2063	// ForceSendFields is a list of field names (e.g. "ProjectRepoId") to
2064	// unconditionally include in API requests. By default, fields with
2065	// empty or default values are omitted from API requests. However, any
2066	// non-pointer, non-interface field appearing in ForceSendFields will be
2067	// sent to the server regardless of whether the field is empty or not.
2068	// This may be used to include empty fields in Patch requests.
2069	ForceSendFields []string `json:"-"`
2070
2071	// NullFields is a list of field names (e.g. "ProjectRepoId") to include
2072	// in API requests with the JSON null value. By default, fields with
2073	// empty values are omitted from API requests. However, any field with
2074	// an empty value appearing in NullFields will be sent to the server as
2075	// null. It is an error if a field in this list has a non-empty value.
2076	// This may be used to include null fields in Patch requests.
2077	NullFields []string `json:"-"`
2078}
2079
2080func (s *RepoId) MarshalJSON() ([]byte, error) {
2081	type NoMethod RepoId
2082	raw := NoMethod(*s)
2083	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2084}
2085
2086// Signature: Verifiers (e.g. Kritis implementations) MUST verify
2087// signatures with respect to the trust anchors defined in policy (e.g.
2088// a Kritis policy). Typically this means that the verifier has been
2089// configured with a map from `public_key_id` to public key material
2090// (and any required parameters, e.g. signing algorithm). In particular,
2091// verification implementations MUST NOT treat the signature
2092// `public_key_id` as anything more than a key lookup hint. The
2093// `public_key_id` DOES NOT validate or authenticate a public key; it
2094// only provides a mechanism for quickly selecting a public key ALREADY
2095// CONFIGURED on the verifier through a trusted channel. Verification
2096// implementations MUST reject signatures in any of the following
2097// circumstances: * The `public_key_id` is not recognized by the
2098// verifier. * The public key that `public_key_id` refers to does not
2099// verify the signature with respect to the payload. The `signature`
2100// contents SHOULD NOT be "attached" (where the payload is included with
2101// the serialized `signature` bytes). Verifiers MUST ignore any
2102// "attached" payload and only verify signatures with respect to
2103// explicitly provided payload (e.g. a `payload` field on the proto
2104// message that holds this Signature, or the canonical serialization of
2105// the proto message that holds this signature).
2106type Signature struct {
2107	// PublicKeyId: The identifier for the public key that verifies this
2108	// signature. * The `public_key_id` is required. * The `public_key_id`
2109	// SHOULD be an RFC3986 conformant URI. * When possible, the
2110	// `public_key_id` SHOULD be an immutable reference, such as a
2111	// cryptographic digest. Examples of valid `public_key_id`s: OpenPGP V4
2112	// public key fingerprint: *
2113	// "openpgp4fpr:74FAF3B861BDA0870C7B6DEF607E48D2A663AEEA" See
2114	// https://www.iana.org/assignments/uri-schemes/prov/openpgp4fpr for
2115	// more details on this scheme. RFC6920 digest-named
2116	// SubjectPublicKeyInfo (digest of the DER serialization): *
2117	// "ni:///sha-256;cD9o9Cq6LG3jD0iKXqEi_vdjJGecm_iXkbqVoScViaU" *
2118	// "nih:///sha-256;703f68f42aba2c6de30f488a5ea122fef76324679c9bf89791ba95
2119	// a1271589a5"
2120	PublicKeyId string `json:"publicKeyId,omitempty"`
2121
2122	// Signature: The content of the signature, an opaque bytestring. The
2123	// payload that this signature verifies MUST be unambiguously provided
2124	// with the Signature during verification. A wrapper message might
2125	// provide the payload explicitly. Alternatively, a message might have a
2126	// canonical serialization that can always be unambiguously computed to
2127	// derive the payload.
2128	Signature string `json:"signature,omitempty"`
2129
2130	// ForceSendFields is a list of field names (e.g. "PublicKeyId") to
2131	// unconditionally include in API requests. By default, fields with
2132	// empty or default values are omitted from API requests. However, any
2133	// non-pointer, non-interface field appearing in ForceSendFields will be
2134	// sent to the server regardless of whether the field is empty or not.
2135	// This may be used to include empty fields in Patch requests.
2136	ForceSendFields []string `json:"-"`
2137
2138	// NullFields is a list of field names (e.g. "PublicKeyId") to include
2139	// in API requests with the JSON null value. By default, fields with
2140	// empty values are omitted from API requests. However, any field with
2141	// an empty value appearing in NullFields will be sent to the server as
2142	// null. It is an error if a field in this list has a non-empty value.
2143	// This may be used to include null fields in Patch requests.
2144	NullFields []string `json:"-"`
2145}
2146
2147func (s *Signature) MarshalJSON() ([]byte, error) {
2148	type NoMethod Signature
2149	raw := NoMethod(*s)
2150	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2151}
2152
2153// Source: Source describes the location of the source used for the
2154// build.
2155type Source struct {
2156	// AdditionalContexts: If provided, some of the source code used for the
2157	// build may be found in these locations, in the case where the source
2158	// repository had multiple remotes or submodules. This list will not
2159	// include the context specified in the context field.
2160	AdditionalContexts []*SourceContext `json:"additionalContexts,omitempty"`
2161
2162	// ArtifactStorageSourceUri: If provided, the input binary artifacts for
2163	// the build came from this location.
2164	ArtifactStorageSourceUri string `json:"artifactStorageSourceUri,omitempty"`
2165
2166	// Context: If provided, the source code used for the build came from
2167	// this location.
2168	Context *SourceContext `json:"context,omitempty"`
2169
2170	// FileHashes: Hash(es) of the build source, which can be used to verify
2171	// that the original source integrity was maintained in the build. The
2172	// keys to this map are file paths used as build source and the values
2173	// contain the hash values for those files. If the build source came in
2174	// a single package such as a gzipped tarfile (.tar.gz), the FileHash
2175	// will be for the single path to that file.
2176	FileHashes map[string]FileHashes `json:"fileHashes,omitempty"`
2177
2178	// ForceSendFields is a list of field names (e.g. "AdditionalContexts")
2179	// to unconditionally include in API requests. By default, fields with
2180	// empty or default values are omitted from API requests. However, any
2181	// non-pointer, non-interface field appearing in ForceSendFields will be
2182	// sent to the server regardless of whether the field is empty or not.
2183	// This may be used to include empty fields in Patch requests.
2184	ForceSendFields []string `json:"-"`
2185
2186	// NullFields is a list of field names (e.g. "AdditionalContexts") to
2187	// include in API requests with the JSON null value. By default, fields
2188	// with empty values are omitted from API requests. However, any field
2189	// with an empty value appearing in NullFields will be sent to the
2190	// server as null. It is an error if a field in this list has a
2191	// non-empty value. This may be used to include null fields in Patch
2192	// requests.
2193	NullFields []string `json:"-"`
2194}
2195
2196func (s *Source) MarshalJSON() ([]byte, error) {
2197	type NoMethod Source
2198	raw := NoMethod(*s)
2199	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2200}
2201
2202// SourceContext: A SourceContext is a reference to a tree of files. A
2203// SourceContext together with a path point to a unique revision of a
2204// single file or directory.
2205type SourceContext struct {
2206	// CloudRepo: A SourceContext referring to a revision in a Google Cloud
2207	// Source Repo.
2208	CloudRepo *CloudRepoSourceContext `json:"cloudRepo,omitempty"`
2209
2210	// Gerrit: A SourceContext referring to a Gerrit project.
2211	Gerrit *GerritSourceContext `json:"gerrit,omitempty"`
2212
2213	// Git: A SourceContext referring to any third party Git repo (e.g.,
2214	// GitHub).
2215	Git *GitSourceContext `json:"git,omitempty"`
2216
2217	// Labels: Labels with user defined metadata.
2218	Labels map[string]string `json:"labels,omitempty"`
2219
2220	// ForceSendFields is a list of field names (e.g. "CloudRepo") to
2221	// unconditionally include in API requests. By default, fields with
2222	// empty or default values are omitted from API requests. However, any
2223	// non-pointer, non-interface field appearing in ForceSendFields will be
2224	// sent to the server regardless of whether the field is empty or not.
2225	// This may be used to include empty fields in Patch requests.
2226	ForceSendFields []string `json:"-"`
2227
2228	// NullFields is a list of field names (e.g. "CloudRepo") to include in
2229	// API requests with the JSON null value. By default, fields with empty
2230	// values are omitted from API requests. However, any field with an
2231	// empty value appearing in NullFields will be sent to the server as
2232	// null. It is an error if a field in this list has a non-empty value.
2233	// This may be used to include null fields in Patch requests.
2234	NullFields []string `json:"-"`
2235}
2236
2237func (s *SourceContext) MarshalJSON() ([]byte, error) {
2238	type NoMethod SourceContext
2239	raw := NoMethod(*s)
2240	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2241}
2242
2243// Status: The `Status` type defines a logical error model that is
2244// suitable for different programming environments, including REST APIs
2245// and RPC APIs. It is used by gRPC (https://github.com/grpc). Each
2246// `Status` message contains three pieces of data: error code, error
2247// message, and error details. You can find out more about this error
2248// model and how to work with it in the API Design Guide
2249// (https://cloud.google.com/apis/design/errors).
2250type Status struct {
2251	// Code: The status code, which should be an enum value of
2252	// google.rpc.Code.
2253	Code int64 `json:"code,omitempty"`
2254
2255	// Details: A list of messages that carry the error details. There is a
2256	// common set of message types for APIs to use.
2257	Details []googleapi.RawMessage `json:"details,omitempty"`
2258
2259	// Message: A developer-facing error message, which should be in
2260	// English. Any user-facing error message should be localized and sent
2261	// in the google.rpc.Status.details field, or localized by the client.
2262	Message string `json:"message,omitempty"`
2263
2264	// ForceSendFields is a list of field names (e.g. "Code") to
2265	// unconditionally include in API requests. By default, fields with
2266	// empty or default values are omitted from API requests. However, any
2267	// non-pointer, non-interface field appearing in ForceSendFields will be
2268	// sent to the server regardless of whether the field is empty or not.
2269	// This may be used to include empty fields in Patch requests.
2270	ForceSendFields []string `json:"-"`
2271
2272	// NullFields is a list of field names (e.g. "Code") to include in API
2273	// requests with the JSON null value. By default, fields with empty
2274	// values are omitted from API requests. However, any field with an
2275	// empty value appearing in NullFields will be sent to the server as
2276	// null. It is an error if a field in this list has a non-empty value.
2277	// This may be used to include null fields in Patch requests.
2278	NullFields []string `json:"-"`
2279}
2280
2281func (s *Status) MarshalJSON() ([]byte, error) {
2282	type NoMethod Status
2283	raw := NoMethod(*s)
2284	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2285}
2286
2287type Subject struct {
2288	// Digest: "": ""
2289	Digest map[string]string `json:"digest,omitempty"`
2290
2291	Name string `json:"name,omitempty"`
2292
2293	// ForceSendFields is a list of field names (e.g. "Digest") to
2294	// unconditionally include in API requests. By default, fields with
2295	// empty or default values are omitted from API requests. However, any
2296	// non-pointer, non-interface field appearing in ForceSendFields will be
2297	// sent to the server regardless of whether the field is empty or not.
2298	// This may be used to include empty fields in Patch requests.
2299	ForceSendFields []string `json:"-"`
2300
2301	// NullFields is a list of field names (e.g. "Digest") to include in API
2302	// requests with the JSON null value. By default, fields with empty
2303	// values are omitted from API requests. However, any field with an
2304	// empty value appearing in NullFields will be sent to the server as
2305	// null. It is an error if a field in this list has a non-empty value.
2306	// This may be used to include null fields in Patch requests.
2307	NullFields []string `json:"-"`
2308}
2309
2310func (s *Subject) MarshalJSON() ([]byte, error) {
2311	type NoMethod Subject
2312	raw := NoMethod(*s)
2313	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2314}
2315
2316// UpgradeDistribution: The Upgrade Distribution represents metadata
2317// about the Upgrade for each operating system (CPE). Some distributions
2318// have additional metadata around updates, classifying them into
2319// various categories and severities.
2320type UpgradeDistribution struct {
2321	// Classification: The operating system classification of this Upgrade,
2322	// as specified by the upstream operating system upgrade feed. For
2323	// Windows the classification is one of the category_ids listed at
2324	// https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ff357803(v=vs.85)
2325	Classification string `json:"classification,omitempty"`
2326
2327	// CpeUri: Required - The specific operating system this metadata
2328	// applies to. See https://cpe.mitre.org/specification/.
2329	CpeUri string `json:"cpeUri,omitempty"`
2330
2331	// Cve: The cve tied to this Upgrade.
2332	Cve []string `json:"cve,omitempty"`
2333
2334	// Severity: The severity as specified by the upstream operating system.
2335	Severity string `json:"severity,omitempty"`
2336
2337	// ForceSendFields is a list of field names (e.g. "Classification") to
2338	// unconditionally include in API requests. By default, fields with
2339	// empty or default values are omitted from API requests. However, any
2340	// non-pointer, non-interface field appearing in ForceSendFields will be
2341	// sent to the server regardless of whether the field is empty or not.
2342	// This may be used to include empty fields in Patch requests.
2343	ForceSendFields []string `json:"-"`
2344
2345	// NullFields is a list of field names (e.g. "Classification") to
2346	// include in API requests with the JSON null value. By default, fields
2347	// with empty values are omitted from API requests. However, any field
2348	// with an empty value appearing in NullFields will be sent to the
2349	// server as null. It is an error if a field in this list has a
2350	// non-empty value. This may be used to include null fields in Patch
2351	// requests.
2352	NullFields []string `json:"-"`
2353}
2354
2355func (s *UpgradeDistribution) MarshalJSON() ([]byte, error) {
2356	type NoMethod UpgradeDistribution
2357	raw := NoMethod(*s)
2358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2359}
2360
2361// UpgradeOccurrence: An Upgrade Occurrence represents that a specific
2362// resource_url could install a specific upgrade. This presence is
2363// supplied via local sources (i.e. it is present in the mirror and the
2364// running system has noticed its availability). For Windows, both
2365// distribution and windows_update contain information for the Windows
2366// update.
2367type UpgradeOccurrence struct {
2368	// Distribution: Metadata about the upgrade for available for the
2369	// specific operating system for the resource_url. This allows efficient
2370	// filtering, as well as making it easier to use the occurrence.
2371	Distribution *UpgradeDistribution `json:"distribution,omitempty"`
2372
2373	// Package: Required for non-Windows OS. The package this Upgrade is
2374	// for.
2375	Package string `json:"package,omitempty"`
2376
2377	// ParsedVersion: Required for non-Windows OS. The version of the
2378	// package in a machine + human readable form.
2379	ParsedVersion *Version `json:"parsedVersion,omitempty"`
2380
2381	// WindowsUpdate: Required for Windows OS. Represents the metadata about
2382	// the Windows update.
2383	WindowsUpdate *WindowsUpdate `json:"windowsUpdate,omitempty"`
2384
2385	// ForceSendFields is a list of field names (e.g. "Distribution") to
2386	// unconditionally include in API requests. By default, fields with
2387	// empty or default values are omitted from API requests. However, any
2388	// non-pointer, non-interface field appearing in ForceSendFields will be
2389	// sent to the server regardless of whether the field is empty or not.
2390	// This may be used to include empty fields in Patch requests.
2391	ForceSendFields []string `json:"-"`
2392
2393	// NullFields is a list of field names (e.g. "Distribution") to include
2394	// in API requests with the JSON null value. By default, fields with
2395	// empty values are omitted from API requests. However, any field with
2396	// an empty value appearing in NullFields will be sent to the server as
2397	// null. It is an error if a field in this list has a non-empty value.
2398	// This may be used to include null fields in Patch requests.
2399	NullFields []string `json:"-"`
2400}
2401
2402func (s *UpgradeOccurrence) MarshalJSON() ([]byte, error) {
2403	type NoMethod UpgradeOccurrence
2404	raw := NoMethod(*s)
2405	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2406}
2407
2408// Version: Version contains structured information about the version of
2409// a package.
2410type Version struct {
2411	// Epoch: Used to correct mistakes in the version numbering scheme.
2412	Epoch int64 `json:"epoch,omitempty"`
2413
2414	// FullName: Human readable version string. This string is of the form
2415	// :- and is only set when kind is NORMAL.
2416	FullName string `json:"fullName,omitempty"`
2417
2418	// Inclusive: Whether this version is specifying part of an inclusive
2419	// range. Grafeas does not have the capability to specify version
2420	// ranges; instead we have fields that specify start version and end
2421	// versions. At times this is insufficient - we also need to specify
2422	// whether the version is included in the range or is excluded from the
2423	// range. This boolean is expected to be set to true when the version is
2424	// included in a range.
2425	Inclusive bool `json:"inclusive,omitempty"`
2426
2427	// Kind: Required. Distinguishes between sentinel MIN/MAX versions and
2428	// normal versions.
2429	//
2430	// Possible values:
2431	//   "VERSION_KIND_UNSPECIFIED" - Unknown.
2432	//   "NORMAL" - A standard package version.
2433	//   "MINIMUM" - A special version representing negative infinity.
2434	//   "MAXIMUM" - A special version representing positive infinity.
2435	Kind string `json:"kind,omitempty"`
2436
2437	// Name: Required only when version kind is NORMAL. The main part of the
2438	// version name.
2439	Name string `json:"name,omitempty"`
2440
2441	// Revision: The iteration of the package build from the above version.
2442	Revision string `json:"revision,omitempty"`
2443
2444	// ForceSendFields is a list of field names (e.g. "Epoch") to
2445	// unconditionally include in API requests. By default, fields with
2446	// empty or default values are omitted from API requests. However, any
2447	// non-pointer, non-interface field appearing in ForceSendFields will be
2448	// sent to the server regardless of whether the field is empty or not.
2449	// This may be used to include empty fields in Patch requests.
2450	ForceSendFields []string `json:"-"`
2451
2452	// NullFields is a list of field names (e.g. "Epoch") to include in API
2453	// requests with the JSON null value. By default, fields with empty
2454	// values are omitted from API requests. However, any field with an
2455	// empty value appearing in NullFields will be sent to the server as
2456	// null. It is an error if a field in this list has a non-empty value.
2457	// This may be used to include null fields in Patch requests.
2458	NullFields []string `json:"-"`
2459}
2460
2461func (s *Version) MarshalJSON() ([]byte, error) {
2462	type NoMethod Version
2463	raw := NoMethod(*s)
2464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2465}
2466
2467// VulnerabilityOccurrence: An occurrence of a severity vulnerability on
2468// a resource.
2469type VulnerabilityOccurrence struct {
2470	// CvssScore: Output only. The CVSS score of this vulnerability. CVSS
2471	// score is on a scale of 0 - 10 where 0 indicates low severity and 10
2472	// indicates high severity.
2473	CvssScore float64 `json:"cvssScore,omitempty"`
2474
2475	// EffectiveSeverity: The distro assigned severity for this
2476	// vulnerability when it is available, otherwise this is the note
2477	// provider assigned severity.
2478	//
2479	// Possible values:
2480	//   "SEVERITY_UNSPECIFIED" - Unknown.
2481	//   "MINIMAL" - Minimal severity.
2482	//   "LOW" - Low severity.
2483	//   "MEDIUM" - Medium severity.
2484	//   "HIGH" - High severity.
2485	//   "CRITICAL" - Critical severity.
2486	EffectiveSeverity string `json:"effectiveSeverity,omitempty"`
2487
2488	// FixAvailable: Output only. Whether at least one of the affected
2489	// packages has a fix available.
2490	FixAvailable bool `json:"fixAvailable,omitempty"`
2491
2492	// LongDescription: Output only. A detailed description of this
2493	// vulnerability.
2494	LongDescription string `json:"longDescription,omitempty"`
2495
2496	// PackageIssue: Required. The set of affected locations and their fixes
2497	// (if available) within the associated resource.
2498	PackageIssue []*PackageIssue `json:"packageIssue,omitempty"`
2499
2500	// RelatedUrls: Output only. URLs related to this vulnerability.
2501	RelatedUrls []*RelatedUrl `json:"relatedUrls,omitempty"`
2502
2503	// Severity: Output only. The note provider assigned severity of this
2504	// vulnerability.
2505	//
2506	// Possible values:
2507	//   "SEVERITY_UNSPECIFIED" - Unknown.
2508	//   "MINIMAL" - Minimal severity.
2509	//   "LOW" - Low severity.
2510	//   "MEDIUM" - Medium severity.
2511	//   "HIGH" - High severity.
2512	//   "CRITICAL" - Critical severity.
2513	Severity string `json:"severity,omitempty"`
2514
2515	// ShortDescription: Output only. A one sentence description of this
2516	// vulnerability.
2517	ShortDescription string `json:"shortDescription,omitempty"`
2518
2519	// Type: The type of package; whether native or non native (e.g., ruby
2520	// gems, node.js packages, etc.).
2521	Type string `json:"type,omitempty"`
2522
2523	// ForceSendFields is a list of field names (e.g. "CvssScore") to
2524	// unconditionally include in API requests. By default, fields with
2525	// empty or default values are omitted from API requests. However, any
2526	// non-pointer, non-interface field appearing in ForceSendFields will be
2527	// sent to the server regardless of whether the field is empty or not.
2528	// This may be used to include empty fields in Patch requests.
2529	ForceSendFields []string `json:"-"`
2530
2531	// NullFields is a list of field names (e.g. "CvssScore") to include in
2532	// API requests with the JSON null value. By default, fields with empty
2533	// values are omitted from API requests. However, any field with an
2534	// empty value appearing in NullFields will be sent to the server as
2535	// null. It is an error if a field in this list has a non-empty value.
2536	// This may be used to include null fields in Patch requests.
2537	NullFields []string `json:"-"`
2538}
2539
2540func (s *VulnerabilityOccurrence) MarshalJSON() ([]byte, error) {
2541	type NoMethod VulnerabilityOccurrence
2542	raw := NoMethod(*s)
2543	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2544}
2545
2546func (s *VulnerabilityOccurrence) UnmarshalJSON(data []byte) error {
2547	type NoMethod VulnerabilityOccurrence
2548	var s1 struct {
2549		CvssScore gensupport.JSONFloat64 `json:"cvssScore"`
2550		*NoMethod
2551	}
2552	s1.NoMethod = (*NoMethod)(s)
2553	if err := json.Unmarshal(data, &s1); err != nil {
2554		return err
2555	}
2556	s.CvssScore = float64(s1.CvssScore)
2557	return nil
2558}
2559
2560// WindowsUpdate: Windows Update represents the metadata about the
2561// update for the Windows operating system. The fields in this message
2562// come from the Windows Update API documented at
2563// https://docs.microsoft.com/en-us/windows/win32/api/wuapi/nn-wuapi-iupdate.
2564type WindowsUpdate struct {
2565	// Categories: The list of categories to which the update belongs.
2566	Categories []*Category `json:"categories,omitempty"`
2567
2568	// Description: The localized description of the update.
2569	Description string `json:"description,omitempty"`
2570
2571	// Identity: Required - The unique identifier for the update.
2572	Identity *Identity `json:"identity,omitempty"`
2573
2574	// KbArticleIds: The Microsoft Knowledge Base article IDs that are
2575	// associated with the update.
2576	KbArticleIds []string `json:"kbArticleIds,omitempty"`
2577
2578	// LastPublishedTimestamp: The last published timestamp of the update.
2579	LastPublishedTimestamp string `json:"lastPublishedTimestamp,omitempty"`
2580
2581	// SupportUrl: The hyperlink to the support information for the update.
2582	SupportUrl string `json:"supportUrl,omitempty"`
2583
2584	// Title: The localized title of the update.
2585	Title string `json:"title,omitempty"`
2586
2587	// ForceSendFields is a list of field names (e.g. "Categories") to
2588	// unconditionally include in API requests. By default, fields with
2589	// empty or default values are omitted from API requests. However, any
2590	// non-pointer, non-interface field appearing in ForceSendFields will be
2591	// sent to the server regardless of whether the field is empty or not.
2592	// This may be used to include empty fields in Patch requests.
2593	ForceSendFields []string `json:"-"`
2594
2595	// NullFields is a list of field names (e.g. "Categories") to include in
2596	// API requests with the JSON null value. By default, fields with empty
2597	// values are omitted from API requests. However, any field with an
2598	// empty value appearing in NullFields will be sent to the server as
2599	// null. It is an error if a field in this list has a non-empty value.
2600	// This may be used to include null fields in Patch requests.
2601	NullFields []string `json:"-"`
2602}
2603
2604func (s *WindowsUpdate) MarshalJSON() ([]byte, error) {
2605	type NoMethod WindowsUpdate
2606	raw := NoMethod(*s)
2607	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2608}
2609
2610// method id "ondemandscanning.projects.locations.operations.cancel":
2611
2612type ProjectsLocationsOperationsCancelCall struct {
2613	s          *Service
2614	name       string
2615	urlParams_ gensupport.URLParams
2616	ctx_       context.Context
2617	header_    http.Header
2618}
2619
2620// Cancel: Starts asynchronous cancellation on a long-running operation.
2621// The server makes a best effort to cancel the operation, but success
2622// is not guaranteed. If the server doesn't support this method, it
2623// returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use
2624// Operations.GetOperation or other methods to check whether the
2625// cancellation succeeded or whether the operation completed despite
2626// cancellation. On successful cancellation, the operation is not
2627// deleted; instead, it becomes an operation with an Operation.error
2628// value with a google.rpc.Status.code of 1, corresponding to
2629// `Code.CANCELLED`.
2630//
2631// - name: The name of the operation resource to be cancelled.
2632func (r *ProjectsLocationsOperationsService) Cancel(name string) *ProjectsLocationsOperationsCancelCall {
2633	c := &ProjectsLocationsOperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2634	c.name = name
2635	return c
2636}
2637
2638// Fields allows partial responses to be retrieved. See
2639// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2640// for more information.
2641func (c *ProjectsLocationsOperationsCancelCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsCancelCall {
2642	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2643	return c
2644}
2645
2646// Context sets the context to be used in this call's Do method. Any
2647// pending HTTP request will be aborted if the provided context is
2648// canceled.
2649func (c *ProjectsLocationsOperationsCancelCall) Context(ctx context.Context) *ProjectsLocationsOperationsCancelCall {
2650	c.ctx_ = ctx
2651	return c
2652}
2653
2654// Header returns an http.Header that can be modified by the caller to
2655// add HTTP headers to the request.
2656func (c *ProjectsLocationsOperationsCancelCall) Header() http.Header {
2657	if c.header_ == nil {
2658		c.header_ = make(http.Header)
2659	}
2660	return c.header_
2661}
2662
2663func (c *ProjectsLocationsOperationsCancelCall) doRequest(alt string) (*http.Response, error) {
2664	reqHeaders := make(http.Header)
2665	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
2666	for k, v := range c.header_ {
2667		reqHeaders[k] = v
2668	}
2669	reqHeaders.Set("User-Agent", c.s.userAgent())
2670	var body io.Reader = nil
2671	c.urlParams_.Set("alt", alt)
2672	c.urlParams_.Set("prettyPrint", "false")
2673	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}:cancel")
2674	urls += "?" + c.urlParams_.Encode()
2675	req, err := http.NewRequest("POST", urls, body)
2676	if err != nil {
2677		return nil, err
2678	}
2679	req.Header = reqHeaders
2680	googleapi.Expand(req.URL, map[string]string{
2681		"name": c.name,
2682	})
2683	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2684}
2685
2686// Do executes the "ondemandscanning.projects.locations.operations.cancel" call.
2687// Exactly one of *Empty or error will be non-nil. Any non-2xx status
2688// code is an error. Response headers are in either
2689// *Empty.ServerResponse.Header or (if a response was returned at all)
2690// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
2691// check whether the returned error was because http.StatusNotModified
2692// was returned.
2693func (c *ProjectsLocationsOperationsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
2694	gensupport.SetOptions(c.urlParams_, opts...)
2695	res, err := c.doRequest("json")
2696	if res != nil && res.StatusCode == http.StatusNotModified {
2697		if res.Body != nil {
2698			res.Body.Close()
2699		}
2700		return nil, &googleapi.Error{
2701			Code:   res.StatusCode,
2702			Header: res.Header,
2703		}
2704	}
2705	if err != nil {
2706		return nil, err
2707	}
2708	defer googleapi.CloseBody(res)
2709	if err := googleapi.CheckResponse(res); err != nil {
2710		return nil, err
2711	}
2712	ret := &Empty{
2713		ServerResponse: googleapi.ServerResponse{
2714			Header:         res.Header,
2715			HTTPStatusCode: res.StatusCode,
2716		},
2717	}
2718	target := &ret
2719	if err := gensupport.DecodeResponse(target, res); err != nil {
2720		return nil, err
2721	}
2722	return ret, nil
2723	// {
2724	//   "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
2725	//   "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
2726	//   "httpMethod": "POST",
2727	//   "id": "ondemandscanning.projects.locations.operations.cancel",
2728	//   "parameterOrder": [
2729	//     "name"
2730	//   ],
2731	//   "parameters": {
2732	//     "name": {
2733	//       "description": "The name of the operation resource to be cancelled.",
2734	//       "location": "path",
2735	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
2736	//       "required": true,
2737	//       "type": "string"
2738	//     }
2739	//   },
2740	//   "path": "v1beta1/{+name}:cancel",
2741	//   "response": {
2742	//     "$ref": "Empty"
2743	//   },
2744	//   "scopes": [
2745	//     "https://www.googleapis.com/auth/cloud-platform"
2746	//   ]
2747	// }
2748
2749}
2750
2751// method id "ondemandscanning.projects.locations.operations.delete":
2752
2753type ProjectsLocationsOperationsDeleteCall struct {
2754	s          *Service
2755	name       string
2756	urlParams_ gensupport.URLParams
2757	ctx_       context.Context
2758	header_    http.Header
2759}
2760
2761// Delete: Deletes a long-running operation. This method indicates that
2762// the client is no longer interested in the operation result. It does
2763// not cancel the operation. If the server doesn't support this method,
2764// it returns `google.rpc.Code.UNIMPLEMENTED`.
2765//
2766// - name: The name of the operation resource to be deleted.
2767func (r *ProjectsLocationsOperationsService) Delete(name string) *ProjectsLocationsOperationsDeleteCall {
2768	c := &ProjectsLocationsOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2769	c.name = name
2770	return c
2771}
2772
2773// Fields allows partial responses to be retrieved. See
2774// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2775// for more information.
2776func (c *ProjectsLocationsOperationsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsDeleteCall {
2777	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2778	return c
2779}
2780
2781// Context sets the context to be used in this call's Do method. Any
2782// pending HTTP request will be aborted if the provided context is
2783// canceled.
2784func (c *ProjectsLocationsOperationsDeleteCall) Context(ctx context.Context) *ProjectsLocationsOperationsDeleteCall {
2785	c.ctx_ = ctx
2786	return c
2787}
2788
2789// Header returns an http.Header that can be modified by the caller to
2790// add HTTP headers to the request.
2791func (c *ProjectsLocationsOperationsDeleteCall) Header() http.Header {
2792	if c.header_ == nil {
2793		c.header_ = make(http.Header)
2794	}
2795	return c.header_
2796}
2797
2798func (c *ProjectsLocationsOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
2799	reqHeaders := make(http.Header)
2800	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
2801	for k, v := range c.header_ {
2802		reqHeaders[k] = v
2803	}
2804	reqHeaders.Set("User-Agent", c.s.userAgent())
2805	var body io.Reader = nil
2806	c.urlParams_.Set("alt", alt)
2807	c.urlParams_.Set("prettyPrint", "false")
2808	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}")
2809	urls += "?" + c.urlParams_.Encode()
2810	req, err := http.NewRequest("DELETE", urls, body)
2811	if err != nil {
2812		return nil, err
2813	}
2814	req.Header = reqHeaders
2815	googleapi.Expand(req.URL, map[string]string{
2816		"name": c.name,
2817	})
2818	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2819}
2820
2821// Do executes the "ondemandscanning.projects.locations.operations.delete" call.
2822// Exactly one of *Empty or error will be non-nil. Any non-2xx status
2823// code is an error. Response headers are in either
2824// *Empty.ServerResponse.Header or (if a response was returned at all)
2825// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
2826// check whether the returned error was because http.StatusNotModified
2827// was returned.
2828func (c *ProjectsLocationsOperationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
2829	gensupport.SetOptions(c.urlParams_, opts...)
2830	res, err := c.doRequest("json")
2831	if res != nil && res.StatusCode == http.StatusNotModified {
2832		if res.Body != nil {
2833			res.Body.Close()
2834		}
2835		return nil, &googleapi.Error{
2836			Code:   res.StatusCode,
2837			Header: res.Header,
2838		}
2839	}
2840	if err != nil {
2841		return nil, err
2842	}
2843	defer googleapi.CloseBody(res)
2844	if err := googleapi.CheckResponse(res); err != nil {
2845		return nil, err
2846	}
2847	ret := &Empty{
2848		ServerResponse: googleapi.ServerResponse{
2849			Header:         res.Header,
2850			HTTPStatusCode: res.StatusCode,
2851		},
2852	}
2853	target := &ret
2854	if err := gensupport.DecodeResponse(target, res); err != nil {
2855		return nil, err
2856	}
2857	return ret, nil
2858	// {
2859	//   "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.",
2860	//   "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
2861	//   "httpMethod": "DELETE",
2862	//   "id": "ondemandscanning.projects.locations.operations.delete",
2863	//   "parameterOrder": [
2864	//     "name"
2865	//   ],
2866	//   "parameters": {
2867	//     "name": {
2868	//       "description": "The name of the operation resource to be deleted.",
2869	//       "location": "path",
2870	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
2871	//       "required": true,
2872	//       "type": "string"
2873	//     }
2874	//   },
2875	//   "path": "v1beta1/{+name}",
2876	//   "response": {
2877	//     "$ref": "Empty"
2878	//   },
2879	//   "scopes": [
2880	//     "https://www.googleapis.com/auth/cloud-platform"
2881	//   ]
2882	// }
2883
2884}
2885
2886// method id "ondemandscanning.projects.locations.operations.get":
2887
2888type ProjectsLocationsOperationsGetCall struct {
2889	s            *Service
2890	name         string
2891	urlParams_   gensupport.URLParams
2892	ifNoneMatch_ string
2893	ctx_         context.Context
2894	header_      http.Header
2895}
2896
2897// Get: Gets the latest state of a long-running operation. Clients can
2898// use this method to poll the operation result at intervals as
2899// recommended by the API service.
2900//
2901// - name: The name of the operation resource.
2902func (r *ProjectsLocationsOperationsService) Get(name string) *ProjectsLocationsOperationsGetCall {
2903	c := &ProjectsLocationsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2904	c.name = name
2905	return c
2906}
2907
2908// Fields allows partial responses to be retrieved. See
2909// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2910// for more information.
2911func (c *ProjectsLocationsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsGetCall {
2912	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2913	return c
2914}
2915
2916// IfNoneMatch sets the optional parameter which makes the operation
2917// fail if the object's ETag matches the given value. This is useful for
2918// getting updates only after the object has changed since the last
2919// request. Use googleapi.IsNotModified to check whether the response
2920// error from Do is the result of In-None-Match.
2921func (c *ProjectsLocationsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsGetCall {
2922	c.ifNoneMatch_ = entityTag
2923	return c
2924}
2925
2926// Context sets the context to be used in this call's Do method. Any
2927// pending HTTP request will be aborted if the provided context is
2928// canceled.
2929func (c *ProjectsLocationsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsOperationsGetCall {
2930	c.ctx_ = ctx
2931	return c
2932}
2933
2934// Header returns an http.Header that can be modified by the caller to
2935// add HTTP headers to the request.
2936func (c *ProjectsLocationsOperationsGetCall) Header() http.Header {
2937	if c.header_ == nil {
2938		c.header_ = make(http.Header)
2939	}
2940	return c.header_
2941}
2942
2943func (c *ProjectsLocationsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
2944	reqHeaders := make(http.Header)
2945	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
2946	for k, v := range c.header_ {
2947		reqHeaders[k] = v
2948	}
2949	reqHeaders.Set("User-Agent", c.s.userAgent())
2950	if c.ifNoneMatch_ != "" {
2951		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
2952	}
2953	var body io.Reader = nil
2954	c.urlParams_.Set("alt", alt)
2955	c.urlParams_.Set("prettyPrint", "false")
2956	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}")
2957	urls += "?" + c.urlParams_.Encode()
2958	req, err := http.NewRequest("GET", urls, body)
2959	if err != nil {
2960		return nil, err
2961	}
2962	req.Header = reqHeaders
2963	googleapi.Expand(req.URL, map[string]string{
2964		"name": c.name,
2965	})
2966	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2967}
2968
2969// Do executes the "ondemandscanning.projects.locations.operations.get" call.
2970// Exactly one of *Operation or error will be non-nil. Any non-2xx
2971// status code is an error. Response headers are in either
2972// *Operation.ServerResponse.Header or (if a response was returned at
2973// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
2974// to check whether the returned error was because
2975// http.StatusNotModified was returned.
2976func (c *ProjectsLocationsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
2977	gensupport.SetOptions(c.urlParams_, opts...)
2978	res, err := c.doRequest("json")
2979	if res != nil && res.StatusCode == http.StatusNotModified {
2980		if res.Body != nil {
2981			res.Body.Close()
2982		}
2983		return nil, &googleapi.Error{
2984			Code:   res.StatusCode,
2985			Header: res.Header,
2986		}
2987	}
2988	if err != nil {
2989		return nil, err
2990	}
2991	defer googleapi.CloseBody(res)
2992	if err := googleapi.CheckResponse(res); err != nil {
2993		return nil, err
2994	}
2995	ret := &Operation{
2996		ServerResponse: googleapi.ServerResponse{
2997			Header:         res.Header,
2998			HTTPStatusCode: res.StatusCode,
2999		},
3000	}
3001	target := &ret
3002	if err := gensupport.DecodeResponse(target, res); err != nil {
3003		return nil, err
3004	}
3005	return ret, nil
3006	// {
3007	//   "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
3008	//   "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
3009	//   "httpMethod": "GET",
3010	//   "id": "ondemandscanning.projects.locations.operations.get",
3011	//   "parameterOrder": [
3012	//     "name"
3013	//   ],
3014	//   "parameters": {
3015	//     "name": {
3016	//       "description": "The name of the operation resource.",
3017	//       "location": "path",
3018	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
3019	//       "required": true,
3020	//       "type": "string"
3021	//     }
3022	//   },
3023	//   "path": "v1beta1/{+name}",
3024	//   "response": {
3025	//     "$ref": "Operation"
3026	//   },
3027	//   "scopes": [
3028	//     "https://www.googleapis.com/auth/cloud-platform"
3029	//   ]
3030	// }
3031
3032}
3033
3034// method id "ondemandscanning.projects.locations.operations.list":
3035
3036type ProjectsLocationsOperationsListCall struct {
3037	s            *Service
3038	name         string
3039	urlParams_   gensupport.URLParams
3040	ifNoneMatch_ string
3041	ctx_         context.Context
3042	header_      http.Header
3043}
3044
3045// List: Lists operations that match the specified filter in the
3046// request. If the server doesn't support this method, it returns
3047// `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to
3048// override the binding to use different resource name schemes, such as
3049// `users/*/operations`. To override the binding, API services can add a
3050// binding such as "/v1/{name=users/*}/operations" to their service
3051// configuration. For backwards compatibility, the default name includes
3052// the operations collection id, however overriding users must ensure
3053// the name binding is the parent resource, without the operations
3054// collection id.
3055//
3056// - name: The name of the operation's parent resource.
3057func (r *ProjectsLocationsOperationsService) List(name string) *ProjectsLocationsOperationsListCall {
3058	c := &ProjectsLocationsOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3059	c.name = name
3060	return c
3061}
3062
3063// Filter sets the optional parameter "filter": The standard list
3064// filter.
3065func (c *ProjectsLocationsOperationsListCall) Filter(filter string) *ProjectsLocationsOperationsListCall {
3066	c.urlParams_.Set("filter", filter)
3067	return c
3068}
3069
3070// PageSize sets the optional parameter "pageSize": The standard list
3071// page size.
3072func (c *ProjectsLocationsOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsOperationsListCall {
3073	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
3074	return c
3075}
3076
3077// PageToken sets the optional parameter "pageToken": The standard list
3078// page token.
3079func (c *ProjectsLocationsOperationsListCall) PageToken(pageToken string) *ProjectsLocationsOperationsListCall {
3080	c.urlParams_.Set("pageToken", pageToken)
3081	return c
3082}
3083
3084// Fields allows partial responses to be retrieved. See
3085// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3086// for more information.
3087func (c *ProjectsLocationsOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsListCall {
3088	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3089	return c
3090}
3091
3092// IfNoneMatch sets the optional parameter which makes the operation
3093// fail if the object's ETag matches the given value. This is useful for
3094// getting updates only after the object has changed since the last
3095// request. Use googleapi.IsNotModified to check whether the response
3096// error from Do is the result of In-None-Match.
3097func (c *ProjectsLocationsOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsListCall {
3098	c.ifNoneMatch_ = entityTag
3099	return c
3100}
3101
3102// Context sets the context to be used in this call's Do method. Any
3103// pending HTTP request will be aborted if the provided context is
3104// canceled.
3105func (c *ProjectsLocationsOperationsListCall) Context(ctx context.Context) *ProjectsLocationsOperationsListCall {
3106	c.ctx_ = ctx
3107	return c
3108}
3109
3110// Header returns an http.Header that can be modified by the caller to
3111// add HTTP headers to the request.
3112func (c *ProjectsLocationsOperationsListCall) Header() http.Header {
3113	if c.header_ == nil {
3114		c.header_ = make(http.Header)
3115	}
3116	return c.header_
3117}
3118
3119func (c *ProjectsLocationsOperationsListCall) doRequest(alt string) (*http.Response, error) {
3120	reqHeaders := make(http.Header)
3121	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
3122	for k, v := range c.header_ {
3123		reqHeaders[k] = v
3124	}
3125	reqHeaders.Set("User-Agent", c.s.userAgent())
3126	if c.ifNoneMatch_ != "" {
3127		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3128	}
3129	var body io.Reader = nil
3130	c.urlParams_.Set("alt", alt)
3131	c.urlParams_.Set("prettyPrint", "false")
3132	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}/operations")
3133	urls += "?" + c.urlParams_.Encode()
3134	req, err := http.NewRequest("GET", urls, body)
3135	if err != nil {
3136		return nil, err
3137	}
3138	req.Header = reqHeaders
3139	googleapi.Expand(req.URL, map[string]string{
3140		"name": c.name,
3141	})
3142	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3143}
3144
3145// Do executes the "ondemandscanning.projects.locations.operations.list" call.
3146// Exactly one of *ListOperationsResponse or error will be non-nil. Any
3147// non-2xx status code is an error. Response headers are in either
3148// *ListOperationsResponse.ServerResponse.Header or (if a response was
3149// returned at all) in error.(*googleapi.Error).Header. Use
3150// googleapi.IsNotModified to check whether the returned error was
3151// because http.StatusNotModified was returned.
3152func (c *ProjectsLocationsOperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
3153	gensupport.SetOptions(c.urlParams_, opts...)
3154	res, err := c.doRequest("json")
3155	if res != nil && res.StatusCode == http.StatusNotModified {
3156		if res.Body != nil {
3157			res.Body.Close()
3158		}
3159		return nil, &googleapi.Error{
3160			Code:   res.StatusCode,
3161			Header: res.Header,
3162		}
3163	}
3164	if err != nil {
3165		return nil, err
3166	}
3167	defer googleapi.CloseBody(res)
3168	if err := googleapi.CheckResponse(res); err != nil {
3169		return nil, err
3170	}
3171	ret := &ListOperationsResponse{
3172		ServerResponse: googleapi.ServerResponse{
3173			Header:         res.Header,
3174			HTTPStatusCode: res.StatusCode,
3175		},
3176	}
3177	target := &ret
3178	if err := gensupport.DecodeResponse(target, res); err != nil {
3179		return nil, err
3180	}
3181	return ret, nil
3182	// {
3183	//   "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.",
3184	//   "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations",
3185	//   "httpMethod": "GET",
3186	//   "id": "ondemandscanning.projects.locations.operations.list",
3187	//   "parameterOrder": [
3188	//     "name"
3189	//   ],
3190	//   "parameters": {
3191	//     "filter": {
3192	//       "description": "The standard list filter.",
3193	//       "location": "query",
3194	//       "type": "string"
3195	//     },
3196	//     "name": {
3197	//       "description": "The name of the operation's parent resource.",
3198	//       "location": "path",
3199	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
3200	//       "required": true,
3201	//       "type": "string"
3202	//     },
3203	//     "pageSize": {
3204	//       "description": "The standard list page size.",
3205	//       "format": "int32",
3206	//       "location": "query",
3207	//       "type": "integer"
3208	//     },
3209	//     "pageToken": {
3210	//       "description": "The standard list page token.",
3211	//       "location": "query",
3212	//       "type": "string"
3213	//     }
3214	//   },
3215	//   "path": "v1beta1/{+name}/operations",
3216	//   "response": {
3217	//     "$ref": "ListOperationsResponse"
3218	//   },
3219	//   "scopes": [
3220	//     "https://www.googleapis.com/auth/cloud-platform"
3221	//   ]
3222	// }
3223
3224}
3225
3226// Pages invokes f for each page of results.
3227// A non-nil error returned from f will halt the iteration.
3228// The provided context supersedes any context provided to the Context method.
3229func (c *ProjectsLocationsOperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error {
3230	c.ctx_ = ctx
3231	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
3232	for {
3233		x, err := c.Do()
3234		if err != nil {
3235			return err
3236		}
3237		if err := f(x); err != nil {
3238			return err
3239		}
3240		if x.NextPageToken == "" {
3241			return nil
3242		}
3243		c.PageToken(x.NextPageToken)
3244	}
3245}
3246
3247// method id "ondemandscanning.projects.locations.operations.wait":
3248
3249type ProjectsLocationsOperationsWaitCall struct {
3250	s          *Service
3251	name       string
3252	urlParams_ gensupport.URLParams
3253	ctx_       context.Context
3254	header_    http.Header
3255}
3256
3257// Wait: Waits until the specified long-running operation is done or
3258// reaches at most a specified timeout, returning the latest state. If
3259// the operation is already done, the latest state is immediately
3260// returned. If the timeout specified is greater than the default
3261// HTTP/RPC timeout, the HTTP/RPC timeout is used. If the server does
3262// not support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.
3263// Note that this method is on a best-effort basis. It may return the
3264// latest state before the specified timeout (including immediately),
3265// meaning even an immediate response is no guarantee that the operation
3266// is done.
3267//
3268// - name: The name of the operation resource to wait on.
3269func (r *ProjectsLocationsOperationsService) Wait(name string) *ProjectsLocationsOperationsWaitCall {
3270	c := &ProjectsLocationsOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3271	c.name = name
3272	return c
3273}
3274
3275// Timeout sets the optional parameter "timeout": The maximum duration
3276// to wait before timing out. If left blank, the wait will be at most
3277// the time permitted by the underlying HTTP/RPC protocol. If RPC
3278// context deadline is also specified, the shorter one will be used.
3279func (c *ProjectsLocationsOperationsWaitCall) Timeout(timeout string) *ProjectsLocationsOperationsWaitCall {
3280	c.urlParams_.Set("timeout", timeout)
3281	return c
3282}
3283
3284// Fields allows partial responses to be retrieved. See
3285// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3286// for more information.
3287func (c *ProjectsLocationsOperationsWaitCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsWaitCall {
3288	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3289	return c
3290}
3291
3292// Context sets the context to be used in this call's Do method. Any
3293// pending HTTP request will be aborted if the provided context is
3294// canceled.
3295func (c *ProjectsLocationsOperationsWaitCall) Context(ctx context.Context) *ProjectsLocationsOperationsWaitCall {
3296	c.ctx_ = ctx
3297	return c
3298}
3299
3300// Header returns an http.Header that can be modified by the caller to
3301// add HTTP headers to the request.
3302func (c *ProjectsLocationsOperationsWaitCall) Header() http.Header {
3303	if c.header_ == nil {
3304		c.header_ = make(http.Header)
3305	}
3306	return c.header_
3307}
3308
3309func (c *ProjectsLocationsOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
3310	reqHeaders := make(http.Header)
3311	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
3312	for k, v := range c.header_ {
3313		reqHeaders[k] = v
3314	}
3315	reqHeaders.Set("User-Agent", c.s.userAgent())
3316	var body io.Reader = nil
3317	c.urlParams_.Set("alt", alt)
3318	c.urlParams_.Set("prettyPrint", "false")
3319	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}:wait")
3320	urls += "?" + c.urlParams_.Encode()
3321	req, err := http.NewRequest("POST", urls, body)
3322	if err != nil {
3323		return nil, err
3324	}
3325	req.Header = reqHeaders
3326	googleapi.Expand(req.URL, map[string]string{
3327		"name": c.name,
3328	})
3329	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3330}
3331
3332// Do executes the "ondemandscanning.projects.locations.operations.wait" call.
3333// Exactly one of *Operation or error will be non-nil. Any non-2xx
3334// status code is an error. Response headers are in either
3335// *Operation.ServerResponse.Header or (if a response was returned at
3336// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
3337// to check whether the returned error was because
3338// http.StatusNotModified was returned.
3339func (c *ProjectsLocationsOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
3340	gensupport.SetOptions(c.urlParams_, opts...)
3341	res, err := c.doRequest("json")
3342	if res != nil && res.StatusCode == http.StatusNotModified {
3343		if res.Body != nil {
3344			res.Body.Close()
3345		}
3346		return nil, &googleapi.Error{
3347			Code:   res.StatusCode,
3348			Header: res.Header,
3349		}
3350	}
3351	if err != nil {
3352		return nil, err
3353	}
3354	defer googleapi.CloseBody(res)
3355	if err := googleapi.CheckResponse(res); err != nil {
3356		return nil, err
3357	}
3358	ret := &Operation{
3359		ServerResponse: googleapi.ServerResponse{
3360			Header:         res.Header,
3361			HTTPStatusCode: res.StatusCode,
3362		},
3363	}
3364	target := &ret
3365	if err := gensupport.DecodeResponse(target, res); err != nil {
3366		return nil, err
3367	}
3368	return ret, nil
3369	// {
3370	//   "description": "Waits until the specified long-running operation is done or reaches at most a specified timeout, returning the latest state. If the operation is already done, the latest state is immediately returned. If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC timeout is used. If the server does not support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Note that this method is on a best-effort basis. It may return the latest state before the specified timeout (including immediately), meaning even an immediate response is no guarantee that the operation is done.",
3371	//   "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:wait",
3372	//   "httpMethod": "POST",
3373	//   "id": "ondemandscanning.projects.locations.operations.wait",
3374	//   "parameterOrder": [
3375	//     "name"
3376	//   ],
3377	//   "parameters": {
3378	//     "name": {
3379	//       "description": "The name of the operation resource to wait on.",
3380	//       "location": "path",
3381	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
3382	//       "required": true,
3383	//       "type": "string"
3384	//     },
3385	//     "timeout": {
3386	//       "description": "The maximum duration to wait before timing out. If left blank, the wait will be at most the time permitted by the underlying HTTP/RPC protocol. If RPC context deadline is also specified, the shorter one will be used.",
3387	//       "format": "google-duration",
3388	//       "location": "query",
3389	//       "type": "string"
3390	//     }
3391	//   },
3392	//   "path": "v1beta1/{+name}:wait",
3393	//   "response": {
3394	//     "$ref": "Operation"
3395	//   },
3396	//   "scopes": [
3397	//     "https://www.googleapis.com/auth/cloud-platform"
3398	//   ]
3399	// }
3400
3401}
3402
3403// method id "ondemandscanning.projects.locations.scans.analyzePackages":
3404
3405type ProjectsLocationsScansAnalyzePackagesCall struct {
3406	s                      *Service
3407	parent                 string
3408	analyzepackagesrequest *AnalyzePackagesRequest
3409	urlParams_             gensupport.URLParams
3410	ctx_                   context.Context
3411	header_                http.Header
3412}
3413
3414// AnalyzePackages: Initiates an analysis of the provided packages.
3415//
3416// - parent: The parent of the resource for which analysis is requested.
3417//   Format: projects/[project_name]/locations/[location].
3418func (r *ProjectsLocationsScansService) AnalyzePackages(parent string, analyzepackagesrequest *AnalyzePackagesRequest) *ProjectsLocationsScansAnalyzePackagesCall {
3419	c := &ProjectsLocationsScansAnalyzePackagesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3420	c.parent = parent
3421	c.analyzepackagesrequest = analyzepackagesrequest
3422	return c
3423}
3424
3425// Fields allows partial responses to be retrieved. See
3426// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3427// for more information.
3428func (c *ProjectsLocationsScansAnalyzePackagesCall) Fields(s ...googleapi.Field) *ProjectsLocationsScansAnalyzePackagesCall {
3429	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3430	return c
3431}
3432
3433// Context sets the context to be used in this call's Do method. Any
3434// pending HTTP request will be aborted if the provided context is
3435// canceled.
3436func (c *ProjectsLocationsScansAnalyzePackagesCall) Context(ctx context.Context) *ProjectsLocationsScansAnalyzePackagesCall {
3437	c.ctx_ = ctx
3438	return c
3439}
3440
3441// Header returns an http.Header that can be modified by the caller to
3442// add HTTP headers to the request.
3443func (c *ProjectsLocationsScansAnalyzePackagesCall) Header() http.Header {
3444	if c.header_ == nil {
3445		c.header_ = make(http.Header)
3446	}
3447	return c.header_
3448}
3449
3450func (c *ProjectsLocationsScansAnalyzePackagesCall) doRequest(alt string) (*http.Response, error) {
3451	reqHeaders := make(http.Header)
3452	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
3453	for k, v := range c.header_ {
3454		reqHeaders[k] = v
3455	}
3456	reqHeaders.Set("User-Agent", c.s.userAgent())
3457	var body io.Reader = nil
3458	body, err := googleapi.WithoutDataWrapper.JSONReader(c.analyzepackagesrequest)
3459	if err != nil {
3460		return nil, err
3461	}
3462	reqHeaders.Set("Content-Type", "application/json")
3463	c.urlParams_.Set("alt", alt)
3464	c.urlParams_.Set("prettyPrint", "false")
3465	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/scans:analyzePackages")
3466	urls += "?" + c.urlParams_.Encode()
3467	req, err := http.NewRequest("POST", urls, body)
3468	if err != nil {
3469		return nil, err
3470	}
3471	req.Header = reqHeaders
3472	googleapi.Expand(req.URL, map[string]string{
3473		"parent": c.parent,
3474	})
3475	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3476}
3477
3478// Do executes the "ondemandscanning.projects.locations.scans.analyzePackages" call.
3479// Exactly one of *Operation or error will be non-nil. Any non-2xx
3480// status code is an error. Response headers are in either
3481// *Operation.ServerResponse.Header or (if a response was returned at
3482// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
3483// to check whether the returned error was because
3484// http.StatusNotModified was returned.
3485func (c *ProjectsLocationsScansAnalyzePackagesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
3486	gensupport.SetOptions(c.urlParams_, opts...)
3487	res, err := c.doRequest("json")
3488	if res != nil && res.StatusCode == http.StatusNotModified {
3489		if res.Body != nil {
3490			res.Body.Close()
3491		}
3492		return nil, &googleapi.Error{
3493			Code:   res.StatusCode,
3494			Header: res.Header,
3495		}
3496	}
3497	if err != nil {
3498		return nil, err
3499	}
3500	defer googleapi.CloseBody(res)
3501	if err := googleapi.CheckResponse(res); err != nil {
3502		return nil, err
3503	}
3504	ret := &Operation{
3505		ServerResponse: googleapi.ServerResponse{
3506			Header:         res.Header,
3507			HTTPStatusCode: res.StatusCode,
3508		},
3509	}
3510	target := &ret
3511	if err := gensupport.DecodeResponse(target, res); err != nil {
3512		return nil, err
3513	}
3514	return ret, nil
3515	// {
3516	//   "description": "Initiates an analysis of the provided packages.",
3517	//   "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/scans:analyzePackages",
3518	//   "httpMethod": "POST",
3519	//   "id": "ondemandscanning.projects.locations.scans.analyzePackages",
3520	//   "parameterOrder": [
3521	//     "parent"
3522	//   ],
3523	//   "parameters": {
3524	//     "parent": {
3525	//       "description": "Required. The parent of the resource for which analysis is requested. Format: projects/[project_name]/locations/[location]",
3526	//       "location": "path",
3527	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
3528	//       "required": true,
3529	//       "type": "string"
3530	//     }
3531	//   },
3532	//   "path": "v1beta1/{+parent}/scans:analyzePackages",
3533	//   "request": {
3534	//     "$ref": "AnalyzePackagesRequest"
3535	//   },
3536	//   "response": {
3537	//     "$ref": "Operation"
3538	//   },
3539	//   "scopes": [
3540	//     "https://www.googleapis.com/auth/cloud-platform"
3541	//   ]
3542	// }
3543
3544}
3545
3546// method id "ondemandscanning.projects.locations.scans.vulnerabilities.list":
3547
3548type ProjectsLocationsScansVulnerabilitiesListCall struct {
3549	s            *Service
3550	parent       string
3551	urlParams_   gensupport.URLParams
3552	ifNoneMatch_ string
3553	ctx_         context.Context
3554	header_      http.Header
3555}
3556
3557// List: Lists vulnerabilities resulting from a successfully completed
3558// scan.
3559//
3560// - parent: The parent of the collection of Vulnerabilities being
3561//   requested. Format:
3562//   projects/[project_name]/locations/[location]/scans/[scan_id].
3563func (r *ProjectsLocationsScansVulnerabilitiesService) List(parent string) *ProjectsLocationsScansVulnerabilitiesListCall {
3564	c := &ProjectsLocationsScansVulnerabilitiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3565	c.parent = parent
3566	return c
3567}
3568
3569// PageSize sets the optional parameter "pageSize": The number of
3570// vulnerabilities to retrieve.
3571func (c *ProjectsLocationsScansVulnerabilitiesListCall) PageSize(pageSize int64) *ProjectsLocationsScansVulnerabilitiesListCall {
3572	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
3573	return c
3574}
3575
3576// PageToken sets the optional parameter "pageToken": The page token,
3577// resulting from a previous call to ListVulnerabilities.
3578func (c *ProjectsLocationsScansVulnerabilitiesListCall) PageToken(pageToken string) *ProjectsLocationsScansVulnerabilitiesListCall {
3579	c.urlParams_.Set("pageToken", pageToken)
3580	return c
3581}
3582
3583// Fields allows partial responses to be retrieved. See
3584// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3585// for more information.
3586func (c *ProjectsLocationsScansVulnerabilitiesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsScansVulnerabilitiesListCall {
3587	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3588	return c
3589}
3590
3591// IfNoneMatch sets the optional parameter which makes the operation
3592// fail if the object's ETag matches the given value. This is useful for
3593// getting updates only after the object has changed since the last
3594// request. Use googleapi.IsNotModified to check whether the response
3595// error from Do is the result of In-None-Match.
3596func (c *ProjectsLocationsScansVulnerabilitiesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsScansVulnerabilitiesListCall {
3597	c.ifNoneMatch_ = entityTag
3598	return c
3599}
3600
3601// Context sets the context to be used in this call's Do method. Any
3602// pending HTTP request will be aborted if the provided context is
3603// canceled.
3604func (c *ProjectsLocationsScansVulnerabilitiesListCall) Context(ctx context.Context) *ProjectsLocationsScansVulnerabilitiesListCall {
3605	c.ctx_ = ctx
3606	return c
3607}
3608
3609// Header returns an http.Header that can be modified by the caller to
3610// add HTTP headers to the request.
3611func (c *ProjectsLocationsScansVulnerabilitiesListCall) Header() http.Header {
3612	if c.header_ == nil {
3613		c.header_ = make(http.Header)
3614	}
3615	return c.header_
3616}
3617
3618func (c *ProjectsLocationsScansVulnerabilitiesListCall) doRequest(alt string) (*http.Response, error) {
3619	reqHeaders := make(http.Header)
3620	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
3621	for k, v := range c.header_ {
3622		reqHeaders[k] = v
3623	}
3624	reqHeaders.Set("User-Agent", c.s.userAgent())
3625	if c.ifNoneMatch_ != "" {
3626		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3627	}
3628	var body io.Reader = nil
3629	c.urlParams_.Set("alt", alt)
3630	c.urlParams_.Set("prettyPrint", "false")
3631	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/vulnerabilities")
3632	urls += "?" + c.urlParams_.Encode()
3633	req, err := http.NewRequest("GET", urls, body)
3634	if err != nil {
3635		return nil, err
3636	}
3637	req.Header = reqHeaders
3638	googleapi.Expand(req.URL, map[string]string{
3639		"parent": c.parent,
3640	})
3641	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3642}
3643
3644// Do executes the "ondemandscanning.projects.locations.scans.vulnerabilities.list" call.
3645// Exactly one of *ListVulnerabilitiesResponse or error will be non-nil.
3646// Any non-2xx status code is an error. Response headers are in either
3647// *ListVulnerabilitiesResponse.ServerResponse.Header or (if a response
3648// was returned at all) in error.(*googleapi.Error).Header. Use
3649// googleapi.IsNotModified to check whether the returned error was
3650// because http.StatusNotModified was returned.
3651func (c *ProjectsLocationsScansVulnerabilitiesListCall) Do(opts ...googleapi.CallOption) (*ListVulnerabilitiesResponse, error) {
3652	gensupport.SetOptions(c.urlParams_, opts...)
3653	res, err := c.doRequest("json")
3654	if res != nil && res.StatusCode == http.StatusNotModified {
3655		if res.Body != nil {
3656			res.Body.Close()
3657		}
3658		return nil, &googleapi.Error{
3659			Code:   res.StatusCode,
3660			Header: res.Header,
3661		}
3662	}
3663	if err != nil {
3664		return nil, err
3665	}
3666	defer googleapi.CloseBody(res)
3667	if err := googleapi.CheckResponse(res); err != nil {
3668		return nil, err
3669	}
3670	ret := &ListVulnerabilitiesResponse{
3671		ServerResponse: googleapi.ServerResponse{
3672			Header:         res.Header,
3673			HTTPStatusCode: res.StatusCode,
3674		},
3675	}
3676	target := &ret
3677	if err := gensupport.DecodeResponse(target, res); err != nil {
3678		return nil, err
3679	}
3680	return ret, nil
3681	// {
3682	//   "description": "Lists vulnerabilities resulting from a successfully completed scan.",
3683	//   "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/scans/{scansId}/vulnerabilities",
3684	//   "httpMethod": "GET",
3685	//   "id": "ondemandscanning.projects.locations.scans.vulnerabilities.list",
3686	//   "parameterOrder": [
3687	//     "parent"
3688	//   ],
3689	//   "parameters": {
3690	//     "pageSize": {
3691	//       "description": "The number of vulnerabilities to retrieve.",
3692	//       "format": "int32",
3693	//       "location": "query",
3694	//       "type": "integer"
3695	//     },
3696	//     "pageToken": {
3697	//       "description": "The page token, resulting from a previous call to ListVulnerabilities.",
3698	//       "location": "query",
3699	//       "type": "string"
3700	//     },
3701	//     "parent": {
3702	//       "description": "Required. The parent of the collection of Vulnerabilities being requested. Format: projects/[project_name]/locations/[location]/scans/[scan_id]",
3703	//       "location": "path",
3704	//       "pattern": "^projects/[^/]+/locations/[^/]+/scans/[^/]+$",
3705	//       "required": true,
3706	//       "type": "string"
3707	//     }
3708	//   },
3709	//   "path": "v1beta1/{+parent}/vulnerabilities",
3710	//   "response": {
3711	//     "$ref": "ListVulnerabilitiesResponse"
3712	//   },
3713	//   "scopes": [
3714	//     "https://www.googleapis.com/auth/cloud-platform"
3715	//   ]
3716	// }
3717
3718}
3719
3720// Pages invokes f for each page of results.
3721// A non-nil error returned from f will halt the iteration.
3722// The provided context supersedes any context provided to the Context method.
3723func (c *ProjectsLocationsScansVulnerabilitiesListCall) Pages(ctx context.Context, f func(*ListVulnerabilitiesResponse) error) error {
3724	c.ctx_ = ctx
3725	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
3726	for {
3727		x, err := c.Do()
3728		if err != nil {
3729			return err
3730		}
3731		if err := f(x); err != nil {
3732			return err
3733		}
3734		if x.NextPageToken == "" {
3735			return nil
3736		}
3737		c.PageToken(x.NextPageToken)
3738	}
3739}
3740